[memo2] friendlier error messages for bpp=2 mistakes
This commit is contained in:
parent
9a51a2a1b2
commit
e76eef79e8
@ -1,5 +1,7 @@
|
|||||||
# v1.4.1
|
# v1.4.1
|
||||||
## Changed
|
## Changed
|
||||||
|
- [memo2] The parser now displays much friendlier error messages when
|
||||||
|
it finds uneven byte lengths in `#bpp=2` mode
|
||||||
- Minimum required Python version is now 3.9
|
- Minimum required Python version is now 3.9
|
||||||
## Fixed
|
## Fixed
|
||||||
- A fresh install of jubeatools would fail because of a API break in a
|
- A fresh install of jubeatools would fail because of a API break in a
|
||||||
|
@ -17,7 +17,7 @@ Sanity checks before anything serious happens, from the repo's root :
|
|||||||
|
|
||||||
Now that this is done you can move on to actually making a new version,
|
Now that this is done you can move on to actually making a new version,
|
||||||
while still being in the repo's root :
|
while still being in the repo's root :
|
||||||
1. Update `CHANGELOG.md`
|
1. Update `CHANGELOG.md` (I like to follow this changelog style: https://keepachangelog.com/en/1.0.0/)
|
||||||
1. Update `README.md` if you've just added support for a new format
|
1. Update `README.md` if you've just added support for a new format
|
||||||
1. Commit everything you want in the new release
|
1. Commit everything you want in the new release
|
||||||
1. Run the script <br> `$ poetry run python utils/bump_version.py {rule}`
|
1. Run the script <br> `$ poetry run python utils/bump_version.py {rule}`
|
||||||
|
@ -385,7 +385,7 @@ class JubeatAnalyserParser:
|
|||||||
elif self.circle_free and bpp == 1:
|
elif self.circle_free and bpp == 1:
|
||||||
raise ValueError("Can't set #bpp to 1 when #circlefree is on")
|
raise ValueError("Can't set #bpp to 1 when #circlefree is on")
|
||||||
else:
|
else:
|
||||||
self.bytes_per_panel = int(value)
|
self.bytes_per_panel = bpp
|
||||||
|
|
||||||
def do_holdbyarrow(self, value: str) -> None:
|
def do_holdbyarrow(self, value: str) -> None:
|
||||||
self.hold_by_arrow = int(value) == 1
|
self.hold_by_arrow = int(value) == 1
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import textwrap
|
||||||
from dataclasses import astuple, dataclass
|
from dataclasses import astuple, dataclass
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from itertools import product, zip_longest
|
from itertools import product, zip_longest
|
||||||
@ -63,6 +64,10 @@ class BPM:
|
|||||||
Event = Union[NoteCluster, Stop, BPM]
|
Event = Union[NoteCluster, Stop, BPM]
|
||||||
|
|
||||||
|
|
||||||
|
def dump_timing_part(events: List[Event]) -> str:
|
||||||
|
return f"|{''.join(e.dump() for e in events)}|"
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class RawMemo2ChartLine:
|
class RawMemo2ChartLine:
|
||||||
position: str
|
position: str
|
||||||
@ -70,7 +75,7 @@ class RawMemo2ChartLine:
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
if self.timing:
|
if self.timing:
|
||||||
return f"{self.position} |{''.join(e.dump() for e in self.timing)}|"
|
return f"{self.position} {dump_timing_part(self.timing)}"
|
||||||
else:
|
else:
|
||||||
return self.position
|
return self.position
|
||||||
|
|
||||||
@ -169,6 +174,16 @@ class Memo2Frame:
|
|||||||
return "\n".join(res)
|
return "\n".join(res)
|
||||||
|
|
||||||
|
|
||||||
|
CHARACTER_WIDTH_HELP = textwrap.dedent(
|
||||||
|
"""
|
||||||
|
Make sure the file is :
|
||||||
|
- truly encoded as Shift-JIS
|
||||||
|
- not missusing half-width characters instead of full-width ones
|
||||||
|
- only using half-width characters in pairs
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
class Memo2Parser(JubeatAnalyserParser):
|
class Memo2Parser(JubeatAnalyserParser):
|
||||||
|
|
||||||
FORMAT_TAG = "#memo2"
|
FORMAT_TAG = "#memo2"
|
||||||
@ -212,22 +227,53 @@ class Memo2Parser(JubeatAnalyserParser):
|
|||||||
self._do_bpp(value)
|
self._do_bpp(value)
|
||||||
|
|
||||||
def append_chart_line(self, raw_line: RawMemo2ChartLine) -> None:
|
def append_chart_line(self, raw_line: RawMemo2ChartLine) -> None:
|
||||||
if (
|
position_length = len(
|
||||||
len(raw_line.position.encode("shift-jis-2004", errors="surrogateescape"))
|
raw_line.position.encode("shift-jis-2004", errors="surrogateescape")
|
||||||
!= 4 * self.bytes_per_panel
|
)
|
||||||
):
|
expected_position_length = 4 * self.bytes_per_panel
|
||||||
raise SyntaxError(
|
if position_length != expected_position_length:
|
||||||
f"Invalid chart line for #bpp={self.bytes_per_panel} : {raw_line}"
|
message = [
|
||||||
)
|
textwrap.dedent(
|
||||||
|
f"""
|
||||||
|
The position part of this chart line :
|
||||||
|
|
||||||
|
{raw_line.position}
|
||||||
|
|
||||||
|
should be {expected_position_length} bytes long (4 × #bpp value) but it is {position_length}
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
]
|
||||||
|
message.append(CHARACTER_WIDTH_HELP)
|
||||||
|
raise SyntaxError("\n".join(message))
|
||||||
|
|
||||||
if raw_line.timing is not None and self.bytes_per_panel == 2:
|
if raw_line.timing is not None and self.bytes_per_panel == 2:
|
||||||
if any(
|
for note_cluster in (
|
||||||
len(e.string.encode("shift-jis-2004", errors="surrogateescape")) % 2
|
elem for elem in raw_line.timing if isinstance(elem, NoteCluster)
|
||||||
!= 0
|
|
||||||
for e in raw_line.timing
|
|
||||||
if isinstance(e, NoteCluster)
|
|
||||||
):
|
):
|
||||||
raise SyntaxError(f"Invalid chart line for #bpp=2 : {raw_line}")
|
length = len(
|
||||||
|
note_cluster.string.encode(
|
||||||
|
"shift-jis-2004", errors="surrogateescape"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if length % 2 != 0:
|
||||||
|
timing_part = dump_timing_part(raw_line.timing)
|
||||||
|
message = [
|
||||||
|
textwrap.dedent(
|
||||||
|
f"""
|
||||||
|
The timing part of this chart line :
|
||||||
|
|
||||||
|
{timing_part}
|
||||||
|
|
||||||
|
contains the following {length} bytes long series of notes :
|
||||||
|
|
||||||
|
{note_cluster.string}
|
||||||
|
|
||||||
|
Series of notes of odd byte lengths should not happen in files that use #bpp=2
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
]
|
||||||
|
message.append(CHARACTER_WIDTH_HELP)
|
||||||
|
raise SyntaxError("\n".join(message))
|
||||||
|
|
||||||
if not raw_line.timing:
|
if not raw_line.timing:
|
||||||
line = Memo2ChartLine(raw_line.position, None)
|
line = Memo2ChartLine(raw_line.position, None)
|
||||||
|
571
jubeatools/formats/jubeat_analyser/tests/data/beat(1).txt
Normal file
571
jubeatools/formats/jubeat_analyser/tests/data/beat(1).txt
Normal file
@ -0,0 +1,571 @@
|
|||||||
|
#memo2
|
||||||
|
#circlefree=1
|
||||||
|
#holdbyarrow=1
|
||||||
|
|
||||||
|
t=150
|
||||||
|
|
||||||
|
// 1
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡A |----|
|
||||||
|
<EFBFBD> <EFBFBD> ‡B<EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |--‡@-|
|
||||||
|
‡@<40> <EFBFBD> <EFBFBD> |‡A-‡B-|
|
||||||
|
2
|
||||||
|
‡F‡C‡C<EFBFBD> |‡@-‡A-|
|
||||||
|
<EFBFBD> ‡G<EFBFBD> <EFBFBD> |‡B-‡C-|
|
||||||
|
<EFBFBD> ‡@‡B‡@ |‡D-‡E-|
|
||||||
|
‡D<EFBFBD> ‡A‡E |‡F-‡G-|
|
||||||
|
3
|
||||||
|
‡E‡C‡C‡F |‡@-‡A-|
|
||||||
|
<EFBFBD> ‡F‡F<EFBFBD> |‡B-‡C-|
|
||||||
|
‡@‡B‡@<40> |‡D-‡E-|
|
||||||
|
<EFBFBD> ‡A<EFBFBD> ‡D |‡F---|
|
||||||
|
4
|
||||||
|
‡C‡D<EFBFBD> <EFBFBD> |‡@-‡A-|
|
||||||
|
‡E<EFBFBD> <EFBFBD> <EFBFBD> |‡B-‡C‡D|
|
||||||
|
<EFBFBD> ‡@‡@‡B |‡E-‡F-|
|
||||||
|
‡@<40> ‡A<E280A1> |‡G---|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡G<EFBFBD>
|
||||||
|
<EFBFBD> ‡G<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡F
|
||||||
|
5
|
||||||
|
<EFBFBD> ‡C<EFBFBD> <EFBFBD> |‡@-‡A-|
|
||||||
|
‡C‡@<40> <EFBFBD> |‡B-‡C-|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@‡B |--‡D-|
|
||||||
|
‡A<EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡E
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡D‡F<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
6
|
||||||
|
‡F‡G‡C‡E |‡@-‡A-|
|
||||||
|
<EFBFBD> ‡@‡@‡C |‡B-‡C-|
|
||||||
|
‡D‡E‡F‡G |‡D-‡E-|
|
||||||
|
‡@‡A‡B‡C |‡F-‡G-|
|
||||||
|
7
|
||||||
|
<EFBFBD> ‡F‡C‡F |‡@-‡A-|
|
||||||
|
<EFBFBD> ‡@‡@‡C |‡B-‡C-|
|
||||||
|
‡D‡E‡F<EFBFBD> |‡D-‡E-|
|
||||||
|
‡@‡A‡B‡C |‡F---|
|
||||||
|
8
|
||||||
|
‡C‡D‡E<EFBFBD> |‡@-‡A-|
|
||||||
|
‡@<40> ‡@<40> |‡B-‡C‡D|
|
||||||
|
‡E<EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F-|
|
||||||
|
‡@‡A‡B‡C |‡G-‡H-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡G‡G<EFBFBD>
|
||||||
|
<EFBFBD> ‡F‡G‡H
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
9
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡@ |‡@-‡A-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡@ |‡B-‡C-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
‡@‡A‡B<E280A1> |----|
|
||||||
|
|
||||||
|
‡C<EFBFBD> <EFBFBD> <
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡C
|
||||||
|
10
|
||||||
|
1<EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@---|
|
||||||
|
11
|
||||||
|
><3E> <EFBFBD> ‡@ |‡@--‡A|
|
||||||
|
<EFBFBD> ‡A‡@<40> |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
‡B‡@‡A<E280A1> |‡E---|
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡D‡C<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
12
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> 1 |‡@--‡A|
|
||||||
|
‡@<40> <‡A |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
<EFBFBD> ‡@‡A‡B |‡E-‡F-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
4‡C‡D<EFBFBD>
|
||||||
|
<EFBFBD> ><3E> ‡C
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡F<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
13
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@--‡A|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> 1 |‡C‡D--|
|
||||||
|
‡@<40> <EFBFBD> < |‡E---|
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> ‡A
|
||||||
|
<EFBFBD> ‡C‡D<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡B<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40>
|
||||||
|
14
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡A |‡@--‡A|
|
||||||
|
‡@<40> <EFBFBD> < |--‡B-|
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
1<EFBFBD> ‡@<40> |‡E---|
|
||||||
|
|
||||||
|
<EFBFBD> ‡D‡C<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
15
|
||||||
|
><3E> <EFBFBD> ‡@ |‡@--‡A|
|
||||||
|
1<EFBFBD> ‡A<EFBFBD> |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
‡B‡@<40> <EFBFBD> |‡E---|
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡D‡C<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
16
|
||||||
|
<EFBFBD> <EFBFBD> ‡B1 |‡@--‡A|
|
||||||
|
‡@<40> <<3C> |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> ‡A<EFBFBD> |‡C‡D--|
|
||||||
|
<EFBFBD> ‡@‡A<E280A1> |‡E‡F‡G-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
4‡C‡D<EFBFBD>
|
||||||
|
<EFBFBD> ><3E> ‡C
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ><3E> ‡F
|
||||||
|
<EFBFBD> ‡G<EFBFBD> 6
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
17
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@--‡A|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> 1 |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
‡@<40> <EFBFBD> < |‡E---|
|
||||||
|
|
||||||
|
<EFBFBD> ‡E<EFBFBD> ‡A
|
||||||
|
<EFBFBD> ‡C‡D<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡B<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40>
|
||||||
|
18
|
||||||
|
<EFBFBD> <EFBFBD> ‡A<EFBFBD>É |‡@--‡A|
|
||||||
|
‡@‡D‡C<E280A1> |--‡B-|
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡C‡D--|
|
||||||
|
1<EFBFBD> ‡E‡@ |‡E---|
|
||||||
|
19
|
||||||
|
‡@‡@‡F‡A |‡@-‡A‡B|
|
||||||
|
‡H‡D<EFBFBD> ‡G |-‡C‡D-|
|
||||||
|
<EFBFBD> ‡I‡C<EFBFBD> |--‡E-|
|
||||||
|
‡B‡E<EFBFBD> 1 |‡F‡G‡H‡I|
|
||||||
|
20
|
||||||
|
‡A‡F‡F‡D |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡E‡E<EFBFBD> |-‡C‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E---|
|
||||||
|
<EFBFBD> ‡C‡B‡@ |‡F---|
|
||||||
|
21
|
||||||
|
‡A<EFBFBD> <EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> ‡D<EFBFBD> |-‡C‡D-|
|
||||||
|
<EFBFBD> ‡C‡@‡@ |--‡E-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡B |‡F‡G‡H‡I|
|
||||||
|
|
||||||
|
<EFBFBD> ‡F<EFBFBD> <EFBFBD>
|
||||||
|
‡G<EFBFBD> <EFBFBD> ‡H
|
||||||
|
<EFBFBD> <EFBFBD> ‡I<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
22
|
||||||
|
‡D‡H‡G‡A |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡F‡E<EFBFBD> |-‡C‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F-|
|
||||||
|
‡@‡B‡C<E280A1> |‡G-‡H-|
|
||||||
|
23
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
‡C‡D<EFBFBD> <EFBFBD> |-‡C‡D-|
|
||||||
|
<EFBFBD> ‡D<EFBFBD> ‡@ |-‡E-‡F|
|
||||||
|
‡A‡B<EFBFBD> ‡@ |‡G--‡H|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡E
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡G‡F
|
||||||
|
‡H<EFBFBD> ‡G<EFBFBD>
|
||||||
|
24
|
||||||
|
‡A‡B‡@‡E |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@‡E |‡C‡D‡E-|
|
||||||
|
‡C‡D‡F<EFBFBD> |‡F---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD> |‡G-‡H‡I|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡G<EFBFBD> ‡I<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡H
|
||||||
|
‡G<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
25
|
||||||
|
‡@‡@‡@<40> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡C |‡C-‡D-|
|
||||||
|
‡D<EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
<EFBFBD> ‡B‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> ‡G<EFBFBD> ‡E
|
||||||
|
<EFBFBD> <EFBFBD> ‡H<EFBFBD>
|
||||||
|
<EFBFBD> ‡E‡I‡F
|
||||||
|
‡E‡I<EFBFBD> <EFBFBD>
|
||||||
|
26
|
||||||
|
‡@<40> ‡@<40> |‡@-‡A‡B|
|
||||||
|
‡D‡@<40> ‡C |‡C-‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
‡B<EFBFBD> ‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
‡I‡E‡H‡I
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> ‡F
|
||||||
|
<EFBFBD> ‡G<EFBFBD> <EFBFBD>
|
||||||
|
27
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C<EFBFBD> |‡C-‡D-|
|
||||||
|
<EFBFBD> ‡@‡@<40> |‡E-‡F‡G|
|
||||||
|
‡@‡D<E280A1> ‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡I<EFBFBD>
|
||||||
|
<EFBFBD> ‡E<EFBFBD> ‡H
|
||||||
|
‡E‡G<EFBFBD> ‡E
|
||||||
|
‡I<EFBFBD> ‡F<EFBFBD>
|
||||||
|
28
|
||||||
|
‡@‡B<E280A1> ‡D |‡@-‡A‡B|
|
||||||
|
‡@<40> ‡C<E280A1> |‡C-‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40> |‡E-‡F‡G|
|
||||||
|
<EFBFBD> ‡D<EFBFBD> ‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
‡I<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡I‡E<EFBFBD> ‡E
|
||||||
|
‡E‡G‡H‡E
|
||||||
|
‡G<EFBFBD> ‡F<EFBFBD>
|
||||||
|
29
|
||||||
|
<EFBFBD> ‡@‡@<40> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡C |‡C-‡D-|
|
||||||
|
‡D<EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
<EFBFBD> ‡B‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> ‡G<EFBFBD> ‡E
|
||||||
|
<EFBFBD> <EFBFBD> ‡H<EFBFBD>
|
||||||
|
<EFBFBD> ‡E‡I‡F
|
||||||
|
‡E‡I<EFBFBD> <EFBFBD>
|
||||||
|
30
|
||||||
|
‡@<40> ‡@<40> |‡@-‡A‡B|
|
||||||
|
‡D‡@<40> ‡C |‡C-‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
‡B<EFBFBD> ‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
‡I‡E‡H‡I
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> ‡F
|
||||||
|
<EFBFBD> ‡G<EFBFBD> <EFBFBD>
|
||||||
|
31
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C<EFBFBD> |‡C-‡D-|
|
||||||
|
<EFBFBD> ‡@‡@<40> |‡E-‡F‡G|
|
||||||
|
‡@‡D<E280A1> ‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡I<EFBFBD>
|
||||||
|
<EFBFBD> ‡E<EFBFBD> ‡H
|
||||||
|
‡E‡G<EFBFBD> ‡E
|
||||||
|
‡I<EFBFBD> ‡F<EFBFBD>
|
||||||
|
32
|
||||||
|
‡@‡B<E280A1> ‡D |‡@-‡A‡B|
|
||||||
|
‡@<40> ‡C<E280A1> |‡C-‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40> |‡E-‡F‡G|
|
||||||
|
<EFBFBD> ‡D<EFBFBD> ‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡I‡E<EFBFBD> ‡I
|
||||||
|
‡E‡G‡H‡E
|
||||||
|
‡G<EFBFBD> ‡F<EFBFBD>
|
||||||
|
33
|
||||||
|
‡@<40> ‡@<40> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡D‡B<EFBFBD> |-‡C‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E‡F‡G‡H|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C‡A |‡I‡J‡K‡L|
|
||||||
|
|
||||||
|
<EFBFBD> ‡H<EFBFBD> ‡I
|
||||||
|
‡J<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡G<EFBFBD> ‡E‡K
|
||||||
|
‡L‡F<EFBFBD> <EFBFBD>
|
||||||
|
34
|
||||||
|
‡B‡D‡@<40> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡@ |-‡C‡D-|
|
||||||
|
<EFBFBD> ‡A‡C<EFBFBD> |‡E‡F‡G‡H|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡I‡J‡K‡L|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡H<EFBFBD>
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
‡K‡L<EFBFBD> ‡G
|
||||||
|
‡I‡J‡F<EFBFBD>
|
||||||
|
35
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡@ |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡D‡B‡@ |-‡C‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E‡F‡G‡H|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C‡A |‡I‡J‡K‡L|
|
||||||
|
|
||||||
|
‡J‡F<EFBFBD> ‡I
|
||||||
|
‡E<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡G<EFBFBD>
|
||||||
|
‡L‡H<EFBFBD> ‡K
|
||||||
|
36
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡B‡D‡@ |-‡C‡D-|
|
||||||
|
‡A‡C<EFBFBD> ‡@ |‡E‡F‡G‡H|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡I‡J‡K‡L|
|
||||||
|
|
||||||
|
‡F<EFBFBD> <EFBFBD> ‡E
|
||||||
|
‡L‡K<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡J‡I
|
||||||
|
‡H<EFBFBD> ‡G<EFBFBD>
|
||||||
|
37
|
||||||
|
<EFBFBD> ‡@‡@<40> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡C |‡C-‡D-|
|
||||||
|
‡D<EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
<EFBFBD> ‡B‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> ‡G<EFBFBD> ‡E
|
||||||
|
<EFBFBD> <EFBFBD> ‡H<EFBFBD>
|
||||||
|
<EFBFBD> ‡E‡I‡F
|
||||||
|
‡E‡I<EFBFBD> <EFBFBD>
|
||||||
|
38
|
||||||
|
‡@<40> ‡@<40> |‡@-‡A‡B|
|
||||||
|
‡D‡@<40> ‡C |‡C-‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡E-‡F‡G|
|
||||||
|
‡B<EFBFBD> ‡D‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
‡I‡E‡H‡I
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> ‡F
|
||||||
|
<EFBFBD> ‡G<EFBFBD> <EFBFBD>
|
||||||
|
39
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡@-‡A‡B|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C<EFBFBD> |‡C-‡D-|
|
||||||
|
<EFBFBD> ‡@‡@<40> |‡E-‡F‡G|
|
||||||
|
‡@‡D<E280A1> ‡A |‡H-‡I-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡I<EFBFBD>
|
||||||
|
<EFBFBD> ‡E<EFBFBD> ‡H
|
||||||
|
‡E‡G<EFBFBD> ‡E
|
||||||
|
‡I<EFBFBD> ‡F<EFBFBD>
|
||||||
|
40
|
||||||
|
‡@‡B‡F<E280A1> |‡@-‡A‡B|
|
||||||
|
‡@‡E‡C<E280A1> |‡C-‡D-|
|
||||||
|
<EFBFBD> ‡E‡@<40> |‡E-‡F-|
|
||||||
|
<EFBFBD> ‡D‡D‡A |‡G‡H‡I‡J‡K‡L‡M‡N|
|
||||||
|
|
||||||
|
‡G<EFBFBD> <EFBFBD> ‡K
|
||||||
|
‡H<EFBFBD> <EFBFBD> ‡L
|
||||||
|
‡I<EFBFBD> <EFBFBD> ‡M
|
||||||
|
‡J<EFBFBD> <EFBFBD> ‡N
|
||||||
|
41
|
||||||
|
<EFBFBD> ‡@<40> <EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A-‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |--‡C-|
|
||||||
|
<EFBFBD> <EFBFBD>È<EFBFBD> <EFBFBD> |--‡D-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡B‡D
|
||||||
|
<EFBFBD> ‡C‡C‡D
|
||||||
|
<EFBFBD> <EFBFBD> ‡A<EFBFBD>
|
||||||
|
42
|
||||||
|
<EFBFBD> 1<EFBFBD>É<EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡B---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40> |‡C---|
|
||||||
|
|
||||||
|
‡A<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡B‡C<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
43
|
||||||
|
‡@<40> ‡A<E280A1> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C<EFBFBD> |--‡A-|
|
||||||
|
<EFBFBD> ‡B<EFBFBD> ‡@ |--‡B-|
|
||||||
|
<EFBFBD>È<EFBFBD> 1<EFBFBD> |--‡C-|
|
||||||
|
44
|
||||||
|
1<EFBFBD> <EFBFBD> <EFBFBD>É |‡@---|
|
||||||
|
<EFBFBD> ‡C‡C<EFBFBD> |‡A---|
|
||||||
|
<EFBFBD> ‡B‡B<EFBFBD> |‡B---|
|
||||||
|
<EFBFBD> ‡A‡A‡@ |‡C---|
|
||||||
|
45
|
||||||
|
<EFBFBD> ‡@‡@‡A |‡@---|
|
||||||
|
‡@<40> <EFBFBD> < |--‡A-|
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |--‡B-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> 1 |----|
|
||||||
|
46
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@-‡A-|
|
||||||
|
1<EFBFBD> <EFBFBD> <EFBFBD> |‡B-‡C-|
|
||||||
|
><3E> <EFBFBD> ‡@ |--‡D-|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
|
||||||
|
<EFBFBD> ‡D<EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡C<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡B‡A<EFBFBD>
|
||||||
|
47
|
||||||
|
<EFBFBD> <EFBFBD> ‡B‡A |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡A‡B |--‡A-|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@1 |--‡B-|
|
||||||
|
‡@<40> <EFBFBD> < |----|
|
||||||
|
48
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
1<EFBFBD> <EFBFBD> ‡@ |----|
|
||||||
|
49
|
||||||
|
‡C<EFBFBD> ‡E‡A |----|
|
||||||
|
‡D<EFBFBD> ‡B‡F |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡C<EFBFBD> <EFBFBD> |‡C---|
|
||||||
|
‡@<40> ‡D‡@ |‡D-‡E‡F|
|
||||||
|
50
|
||||||
|
‡C<EFBFBD> <EFBFBD> ‡C |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A-‡B-|
|
||||||
|
‡@‡B‡@‡C |‡C--‡D|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |‡E-‡F-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
‡E‡F<EFBFBD> ‡D
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
51
|
||||||
|
‡D‡@<40> ‡B |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@‡C |‡A-‡B‡C|
|
||||||
|
‡@<40> ‡D<E280A1> |‡D---|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |‡E-‡F‡G|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
‡E<EFBFBD> ‡G<EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
52
|
||||||
|
‡B<EFBFBD> <EFBFBD> ‡B |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A---|
|
||||||
|
‡@<40> <EFBFBD> ‡@ |‡B-‡C‡D|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |‡E-‡F-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡C‡D‡F
|
||||||
|
<EFBFBD> ‡E<EFBFBD> <EFBFBD>
|
||||||
|
53
|
||||||
|
‡D<EFBFBD> <EFBFBD> ‡B |‡@---|
|
||||||
|
<EFBFBD> ‡@‡C‡@ |‡A-‡B‡C|
|
||||||
|
‡@‡D<E280A1> <EFBFBD> |‡D---|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |‡E-‡F‡G|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> ‡G
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
54
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A-‡B-|
|
||||||
|
‡@‡B‡@<40> |‡C--‡D|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |‡E-‡F-|
|
||||||
|
|
||||||
|
‡C<EFBFBD> ‡D<EFBFBD>
|
||||||
|
‡E‡E‡C‡F
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡C
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
55
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡B<EFBFBD> |‡A-‡B-|
|
||||||
|
‡@<40> ‡@<40> |‡C-‡D‡E|
|
||||||
|
‡A‡A<EFBFBD> ‡@ |--‡F-|
|
||||||
|
|
||||||
|
‡C<EFBFBD> <EFBFBD> ‡E
|
||||||
|
‡F‡D<EFBFBD> <EFBFBD>
|
||||||
|
‡E‡C<EFBFBD> ‡C
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> ‡F
|
||||||
|
56
|
||||||
|
‡F‡B‡C‡E |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡D‡A<EFBFBD> |‡C-‡D‡E|
|
||||||
|
<EFBFBD> ‡F‡C‡F |‡F-‡G‡H|
|
||||||
|
‡C‡@‡@<40> |‡I‡J‡K-|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
‡I<EFBFBD> ‡J‡G
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡K‡H<EFBFBD>
|
||||||
|
57
|
||||||
|
‡H‡@‡@‡D |‡@-‡A‡B|
|
||||||
|
<EFBFBD> ‡A<EFBFBD> ‡E |‡C---‡D‡E‡F‡G|
|
||||||
|
‡@‡H‡B‡F |‡H---|
|
||||||
|
‡C<EFBFBD> <EFBFBD> ‡G |‡I-‡J‡K|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡J<EFBFBD>
|
||||||
|
‡I<EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> ‡K<EFBFBD> <EFBFBD>
|
||||||
|
58
|
||||||
|
‡F‡@‡@<40> |‡@---|
|
||||||
|
‡D‡B‡G‡E |‡A-‡B‡C|
|
||||||
|
‡H‡F‡A<EFBFBD> |‡D-‡E‡F|
|
||||||
|
‡D‡H‡C<EFBFBD> |-‡G‡H-|
|
||||||
|
59
|
||||||
|
<EFBFBD> ‡D‡@<40> |‡@---|
|
||||||
|
<EFBFBD> ‡B‡F‡C |‡A-‡B‡C|
|
||||||
|
<EFBFBD> ‡G‡D‡@ |‡D---|
|
||||||
|
‡A‡E‡E‡A |‡E-‡F‡G|
|
||||||
|
60
|
||||||
|
‡D<EFBFBD> ‡@<40> |‡@---|
|
||||||
|
<EFBFBD> ‡B<EFBFBD> <EFBFBD> |‡A-‡B‡C|
|
||||||
|
‡D<EFBFBD> ‡C‡@ |‡D-‡E‡F|
|
||||||
|
‡A<EFBFBD> <EFBFBD> ‡A |-‡G‡H-|
|
||||||
|
|
||||||
|
<EFBFBD> ‡H<EFBFBD> <EFBFBD>
|
||||||
|
‡H<EFBFBD> <EFBFBD> ‡E
|
||||||
|
<EFBFBD> ‡F<EFBFBD> ‡G
|
||||||
|
<EFBFBD> ‡F<EFBFBD> <EFBFBD>
|
||||||
|
61
|
||||||
|
‡D<EFBFBD> ‡@‡B |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡C<EFBFBD> |‡A-‡B‡C|
|
||||||
|
<EFBFBD> ‡D<EFBFBD> <EFBFBD> |‡D---|
|
||||||
|
‡A<EFBFBD> ‡@‡A |‡E-‡F‡G|
|
||||||
|
|
||||||
|
<EFBFBD> <EFBFBD> ‡F<EFBFBD>
|
||||||
|
‡E<EFBFBD> <EFBFBD> ‡G
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> ‡E<EFBFBD>
|
||||||
|
62
|
||||||
|
‡C<EFBFBD> ‡D<EFBFBD> |‡@---|
|
||||||
|
‡E‡E‡C‡F |‡A-‡B-|
|
||||||
|
‡@‡B‡@‡C |‡C--‡D|
|
||||||
|
‡A<EFBFBD> ‡F‡A |‡E-‡F-|
|
||||||
|
63
|
||||||
|
‡C<EFBFBD> <EFBFBD> <EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> ‡B<EFBFBD> |‡A-‡B-|
|
||||||
|
‡@‡C‡@‡C |‡C--‡D|
|
||||||
|
‡A‡A<EFBFBD> ‡@ |‡E-‡F-|
|
||||||
|
|
||||||
|
<EFBFBD> ‡F<EFBFBD> ‡D
|
||||||
|
‡E‡D<EFBFBD> ‡F
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
|
||||||
|
64
|
||||||
|
<EFBFBD> <EFBFBD> ‡A<EFBFBD> |‡@---|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |‡A---|
|
||||||
|
‡@<40> ‡A<E280A1> |‡B-‡C‡D|
|
||||||
|
‡A‡@‡@<40> |-‡E‡F-|
|
||||||
|
|
||||||
|
‡B‡C<EFBFBD> ‡D
|
||||||
|
‡B<EFBFBD> ‡F‡D
|
||||||
|
‡E‡C<EFBFBD> ‡B
|
||||||
|
<EFBFBD> ‡E‡F‡B
|
||||||
|
65
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40> |‡@---|
|
||||||
|
<EFBFBD> ‡@<40> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> ‡@<40> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
66
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
||||||
|
<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> |----|
|
@ -40,3 +40,11 @@ def test_MTC_Nageki_no_Ki_EXT() -> None:
|
|||||||
def test_MTC_Mimi_EXT() -> None:
|
def test_MTC_Mimi_EXT() -> None:
|
||||||
"""Also an euc-kr file but also has long notes"""
|
"""Also an euc-kr file but also has long notes"""
|
||||||
try_to_load("MTC_Mimi_EXT.txt")
|
try_to_load("MTC_Mimi_EXT.txt")
|
||||||
|
|
||||||
|
|
||||||
|
def test_beat_1() -> None:
|
||||||
|
"""This file uses #bpp=2 with half-width hyphens in the timing part, this
|
||||||
|
is bound to fail on the first line that has an odd length when encoded
|
||||||
|
to shift-jis, for now I just want to display a friendlier error message"""
|
||||||
|
with pytest.raises(SyntaxError, match="Series of notes of odd byte lengths"):
|
||||||
|
try_to_load("beat(1).txt")
|
||||||
|
@ -73,7 +73,7 @@ def test_memon_0_2_0(song: song.Song) -> None:
|
|||||||
|
|
||||||
@st.composite
|
@st.composite
|
||||||
def memon_0_3_0_compatible_song(draw: st.DrawFn) -> song.Song:
|
def memon_0_3_0_compatible_song(draw: st.DrawFn) -> song.Song:
|
||||||
return draw(
|
random_song: song.Song = draw(
|
||||||
jbst.song(
|
jbst.song(
|
||||||
diffs_strat=memon_diffs(),
|
diffs_strat=memon_diffs(),
|
||||||
chart_strat=jbst.chart(timing_strat=st.none()),
|
chart_strat=jbst.chart(timing_strat=st.none()),
|
||||||
@ -81,6 +81,8 @@ def memon_0_3_0_compatible_song(draw: st.DrawFn) -> song.Song:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return random_song
|
||||||
|
|
||||||
|
|
||||||
@given(memon_0_3_0_compatible_song())
|
@given(memon_0_3_0_compatible_song())
|
||||||
def test_memon_0_3_0(song: song.Song) -> None:
|
def test_memon_0_3_0(song: song.Song) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user