(root)/
harfbuzz-8.3.0/
test/
shape/
data/
text-rendering-tests/
fonts/
Selawik-variable.ttf
GDEFOdGPOS2Q0(GSUBtaaz HVAR(e~0OS/21:[`STATѢlxTSI0(TSI1nTSI28(TSI3DDnTSI5P`avar/*S`cmapS|cvarcW>cvt !Bfpgm
'Cfvar3iWLgaspXglyfPX(igvarfhead+q(6hhea*<$(@$hmtxfqJ)(dlocaX?b.dmaxpV1h name|WI1post87`
prep	VHv<>!!##225599CRWXZ]^^__ab},<
PPQQaabbRc(CCDDEEFFGIIJJKKLLMMNNOOWWXXYZZ[[\\]]__H@@











%****			





%7676%****			














*****					







/8F8F%****			
"
'
'
'
'			%****			














*****					







/8F8F














*****					







/8F8F%****			%****						








			///&&					///++   ///++&




	-8-88



















%%%%7							'				









				J													66




				))))			7%.&./



									)))))					K%3+3/


%K%



									)))))					K%3+3/*//%/%***+///%/


%K%3+3/






			
 -
			
			
			
							   &B				   &B
			
			/'/$/$/$81710100-






;










													Iw_h_www|w			

																														
			

		4




	

			

;$;AA:AAAAAAAA


B,%AA









Y

















	

;;
/BB%UU









Y

















 	

;;AAAAAAAAAAA
/BB%UU









Y

















 	

;;AAAAAAAAAAA
/BB%UU							+  				+  				+  				+  (







&&
			5TH1/8











	..







/%!&/
	



	
%


.
.
+// +/
	



	

	



	
	







''
+
)G#R%AAF







'''+3AGGT%ZZF







'''++3AGGT%ZZ




'''














%%%&&&&&&&&&///%		1_&&&&&5	55//55//












&>//&&




























:>>/::




























:>>/::X5(**	/%%%%	

		 %%	

			

		.(:<===7%%%%%%%%%%%%%6666KGKG686-%%%%	%%%%%%%   KKK/&++++BGGG%////APPPf&%//%/%/.333&&&7888


&:&:&:::&%////%%%APPP	%//&:%/%///%'A===&&.GG&:&:&:::&++++%%%'&  KKK8/////AZZZ%////H#)))3&)	-$!2!!!D$$$$$"
									$$ 








8!'''''0
$555555555o
:
:
:
:
:
:
:
:
:888888888)BBBBBBBBB2222222222$$$$$$$$! 5$ =5lC#&{
2


v
-$$
2




.

		{!9!!*+{)A))"4+'l
6N666+

l$$.	l  /,
%



l

3K33 ttttt,l!'?''04+9
0	$
o******%%%%%%%%%]
]
]
]
]
]
aaaaa((((((((%aV	'Fj~S%:qeGFi){#)#)#)#)#)#)#)#)$/vO}ac5
:5
:5
:5
:5
:5
:5
:5
:5$ =
aV	1Gj~S%:qteGFi)t{t########0	$
o
^9vug$!5$ =5$0	$
o	l
Il(
\DFLTlatn84AZE 4CAT 4CRT 4KAZ 4MOL 4ROM 4TAT 4TRK 4kernmarkmkmk.	

6|ZDx	D
$\
Dr     !j!x""$`$%H%&0'+J.2h58<4>|ABpCEFGH&IKBLLMVNNQS8TWPY\_0_`a.abio^u|}}}}}@}~4~(̊$P|4^B`$$\vİ޲IJҲ,FTHHHHHb2@H>4RZ:*^P̖<И(6hӬԈԖԤԲbךVr #/7!==*?W+YrD~^bcdelmnpst}

A
 !"#//?@ABCDEFGHUVWYZ[\]^_`abcdefghj$k*l0m6n<oBpHqNrTZ`flrx~33nn	

 !"#$%&'()*+,-./0126
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqr3456789:;<=>?@AC
 !"#//?@ABCDEFGHUVWYZ[\]^_`abcdefg$h*j0k6l<mBnHoNpTqZr`flrx~33nnBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu6
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqrvwxyz{|}~6
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqr6
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqrC
 !"#//?@ABCDEFGHUVWYZ[\]^_`abcdefg$h*j0k6l<mBnHoNpTqZr`flrx~33nn€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀրC
 !"#//?@ABCDEFGHUVWYZ[\]^_`abcdefg$h*j0k6l<mBnHoNpTqZr`flrx~33nn׀؀ـڀۀ܀݀ހ߀	
6
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqr
6
 !"#//F?@ABCDEFGHULVRWXY^Z[\]^_`abcddjepfvg|hjklmnopqr !"#$%&'(/
)UDVJWPYVj\kblhmnntz*+,-./01234
 !"#?@ABCDEFGHK
56789:;<=>?@ABCDEFGHIJK
 !"#?@ABCDEFGHK
LMNOPQRSTUVWXYZ[\]^_`a
 !"#?@ABCDEFGHK
bcdefghijklmnopqrstuvw
tz !"#?@ABCDEFGHKxyz{|}~ 	
UV
WYcdefghim"o(p.q4r:@FLRX 	
UV
WYcdefghim"o(p.q4r:@FLRX	
UVWYimopqr
"(€ÀĀŀƀǀȀɀʀˀ̀	
/U	VWYcdefghi

̀΀/.π	
/UVWYdefghi

Ѐр/.Ҁ/.Ӏ	
/UVWYdefghi

ԀՀ/.ր	
/UVWYdefghi

׀؀	
/UVWYdefghi

ـڀ*
"(	.
4w:/@PFQLRRSXT^U
dV
jW
pYsvtuvwxyz|{|}vvۀ܀݀ހ߀
UPVVW\Ybchdefghin
UPVVW\Ybchdefghin
UPVVW\Ybchdefghin	

UPVVW\Ybchdefghin
	
/stuvw
xyz{"|(}.4:@FL !"#$%&'()*+,-X
$ *!0"6#</-B?H@NATBZC`DfElFrGxH~KUcdefghijklmnopqr &,28>DJPV\bhntz33./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv_
<BHN T!Z"`#f/-l?r@xA~BCDEFGHK^_abcdefghijklmnopqr &,28>DJPV\bhntzdwxyz{|}~M	

 !"#/2?@$A*B0C6D<EBFHGNHTKZU`VfWlYrZx[~\]^_`abcdefghjklmnopqr &,28>DcJP3V\bhn3t€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀M	

 !"#/2?@$A*B0C6D<EBFHGNHTKZU`VfWlYrZx[~\]^_`abcdefghjklmnopqr &,28>DcJP3V\bhn3t	

 !"#$%&'()*+,-./0123456789:;<=>?@G----
 !"#/L?@ABCDEFG$H*K0UVWYZ6[<\B]H^N_T`Za`bfcdefghjklmno-lp-rq-xr-~c33ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrM	

 !"#/2?@$A*B0C6D<EBFHGNHTKZU`VfWlYrZx[~\]^_`abcdefghjklmnopqr &,28>DcJP3V\bhn3tstuvwxyz{|}~G----
 !"#/L?@ABCDEFGHKUVWYZ[\]^_`abcdefghjklmno-p-$q-*r-063<3B€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀG----
 !"#/L?@ABCDEF$G*H0K6U<VBWHYZN[T\Z]`^f_l`raxb~cdefghjklmno-p-q-r-c 3&,28>3DԀՀր׀؀ـڀۀ܀݀ހ߀	

	
/stuvwxyz{|}$	

/UV"W(Y.cdefghi4j:k@lFmLnRoXp^qdrjpv|w !"#$%&'()*+,-./0123456	
/UVWYcdefghijklmnopqr789:;<=>?@ABC	
/UVWYcdefghijklmnopqrDEFGHIJKLMNOP	
/UVWYcdefghijklmnopqrQRSTUVWXYZ[\]	
/UVWYcdefghijklmnopqr^_`abcdefghij$	

/UV"W(Y.cdefghi4j:k@lFmLnRoXp^qdrjpv|wklmnopqrstuvwxyz{|}~$	

/UV"W(Y.cdefghi4j:k@lFmLnRoXp^qdrjpv|w	
/UVWYcdefghijklmnopqr	
/UVWYcdefghijklmnopqr	
/UVWYcdefghijklmnopqr€ÀĀŀƀǀȀɀʀD	
, !"#/defghist$u*v0w6x<yBzH{N|T}Z`flrx~ &,ˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀	

D	
 !"#/defghistuvwxyz{|}#	

UVWY"cdefghi(j.k4l:m@nFoLpRqXr^djpv| !"#$%&'()*+,-./0<
jpv| !"#/?@ABCDEFGHKUVWYjklmn$*06<BHNTZ`flrx~)123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab=
pv| !"#/?@ABCDEFGHKMUVWYjklmn$*06<BHNTZ`flrx~!cdefghijklmnopqrstuvwxyz{|}~=
pv| !"#/?@ABCDEFGHKMUVWYjklmn$*06<BHNTZ`flrx~!€ÀĀŀƀǀȀ<
jpv| !"#/?@ABCDEFGHKUVWYjklmn$*06<BHNTZ`flrx~!ɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀\bhntz\bhntz	

\bhntz !"\bhntz#$%&'()*+,-./\bhntz0123456789:;<\bhntz	
G
 !"#/?@ABCDEFGH
KPQRSTUVW"Y(c.d4e:f@gFhLiRjXk^ldmnjsptvu|vwxyz{|}$*06<BHNTyZy`fylrx~yyyyyyyy &,28>DJPVw\wbhntOzO=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÀĀŀbhntz	
G
 !"#/?@ABCDEFG
HKMPQRSTUVW"Y(c.d4e:f@gFhLiRjXk^ldmnjsptvu|vwxyz{|}$*06<BHNTZ`flrx~ww &,O28>ODƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀	

 !"#$%&'()*+,-./0123456789:;<=>?@Abhntz	
G
 !"#/?@ABCDEFG
HKMyPQRSTUV"W(Y.c4d:e@fFgLhRiXj^kdljmnpsvt|uvwxyz{|}$*06<BHNTyZy`fylrx~yyyyyyyy &,28>DJPVw\wbhntOzOBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÀĀŀƀǀȀɀbhntz	
G
 !"#/?@ABCDEFG
HKMyPQRSTUV"W(Y.c4d:e@fFgLhRiXj^kdljmnpsvt|uvwxyz{|}$*06<BHNTyZy`fylrx~yyyyyyyy &,28>DJPVw\wbhntOzOʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQV\bh	
n/tzRSTUVWX
	

PV\b	
hntYZ[\]^_
PV\b	
hnt`abcdef
PV\b	
hntghijklm
PV\b	
hntnopqrstw	
q
  &!,"2#8/>?D@JAPBVC\DbEhFnGtHzKPQRSTUVWYstuvwxyz{|}
"(.4:@FLRX^djpv|$*0e6R<RBHNTZuvwxyz{|}~€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀G	
UVWYstuvwx$y*z0{6|<}BHNTZ`flrx~ &,28>												
			
																			 	!	"	#	$	%	&D	
UVWYstuvwxyz{$|*}06<BHNTZ`flrx~ &	'	(	)	*	+	,	-	.	/	0	1	2	3	4	5	6	7	8	9	:	;	<	=	>	?	@	A	B	C	D	E	F	G	H	I	J	K	L	M	N	O	P	Q	R	S	T	U	V	W	X	Y	Z	[	\	]	^	_	`	a	b	c	d	e	f	g	h	iD	
UVWYstuvwxyz{$|*}06<BHNTZ`flrx~ &	j	k	l	m	n	o	p	q	r	s	t	u	v	w	x	y	z	{	|	}	~																																														D	
UVWYstuvwxyz{$|*}06<BHNTZ`flrx~ &																						€	À	Ā	ŀ	ƀ	ǀ	Ȁ	ɀ	ʀ	ˀ	̀	̀	΀	π	Ѐ	р	Ҁ	Ӏ	Ԁ	Հ	ր	׀	؀	ـ	ڀ	ۀ	܀	݀	ހ	߀																D	
UVWYstuvwxyz{$|*}06<BHNTZ`flrx~ &																









	
























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2 
 !"#/0?@AB
CDEF"G(H.K4U:V@WFYL>R>X3^+d+j>p>v3|
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
Ru	
n
 ! "&#,/2?8@>ADBJCPDVE\FbGhHnKtPzQRSTUVWYstuvwxyz{|}
"(.4:@FLRX^djpv|zllR$D*D0
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~




























































s	
n
 !"# /&?,@2A8B>CDDJEPFVG\HbKhPnQtRzSTUVWYstuvwxyz{|}
"(.4:@FLRX^djpv|zllRDD$






€
À
Ā
ŀ
ƀ
ǀ
Ȁ
ɀ
ʀ
ˀ
̀
̀
΀
π
Ѐ
р
Ҁ
Ӏ
Ԁ
Հ
ր
׀
؀
ـ
ڀ
ۀ
܀
݀
ހ
߀































	

 !"#$s	
n
 !"# /&?,@2A8B>CDDJEPFVG\HbKhPnQtRzSTUVWYstuvwxyz{|}
"(.4:@FLRX^djpv|zllRDD$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`BHNT	

Z`f l!r"x#~/?@ABCDEFGHKPQRSTUVWYstuvwxyz{|}s	

 !"# /&?,@2A8B>CDDJEPFVG\HbKhPnQtRzSTUVWYstuvwxyz{|}
"(.4:@FLRX^djpv|$*06<BHNTZ`€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀	

	/)8U>VDWJYPV\b>h	/)8U>VDWJYPV\b>h !"#$%&	/)8U>VDWJYPV\b>h'()*+,-./	/)8U>VDWJYPV\b>h012345678
stuvwxyz{|}PV9:	/58U>VDWJYjPkVl\nb;<=>?@AB	/UVWYjklnCDEFGHIJKL(~



\
"\
"(.4:@FLR
X^>djpv2|>>kkG>G>MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop$q$r$s$tuv)))!))w(>!!!!!xyz{|}~stuvwxyz{|}zszstuvwxyz{|}tzstuvwxyz{|}tzszstuvwxyz{|}hntz
stuvwxyz{|}NC$*06<BHNT
Z
`
f
l
r-x-~->>>>>>->>>}\}\€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀрҀӀԀՀր׀DN
Q
$*06<BHNTZ


`-f
l-r>x>~>>>>->>>}\}\؀ـڀۀ܀݀ހ߀









	








DN
Q
$*06<BHNTZ


`-f
l-r>x>~>>>>->>>}\}\














 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
KT
 ?
@ACGHK-Pd>i>s->>!!!!!!>!!@0@0h
L
M
N
O
P
Q"
R
S
T"
U"
V
W"
X
Y
Z
[
\
]
^
_
`
a.stuvwxyz{|}"(.
b
c
d
e
f#
g
h
i
j
k#
"(.4:@FLRX^djpv|
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~















#
"(.4:@FLRX^djpv|

































#
"(.4:@FLRX^djpv|

















€
À
Ā
ŀ
ƀ
ǀ
Ȁ
ɀ
ʀ
ˀ
̀
̀
΀
π
Ѐ
р
Ҁ
Ӏ#
"(.4:@FLRX^djpv|
Ԁ
Հ
ր
׀
؀
ـ
ڀ
ۀ
܀
݀
ހ
߀






















,
"(.4	:@F








tz/	

cc c&c,cl c&l,zcl c&l, j&k,l2n8>!"#$%	8>DJPV\bh&'()*+,-.	8>DJPV\bh/0123456789:/>\UbVhWnYdtezfgho>p>q>r>	;<=>?@ABCDEFGHUVV\WbYchdnetfzghjklnIJKLMNOPQRSTU" !"#/S?DEUcVcWc
YZ_`a"b(c.d4e:f@gFhLiRjlXkl^lldnljpv|VWXYZ[\]^_`abcdefghijklmnopqrstuvYYYY/U>V>W>Y!
"(.4:@FLRXwxyz{|}~EU>V>W>Y!
"(.4:@FLRX YYYYE
/U>V>W>Y!
"(.4:@FLRX^dj}p€ÀĀŀƀǀȀɀʀˀ̀$D/U>V>W>
Y!szll"l(.4:@FLRX^djpv|}̀΀πЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀# !"#/S?DEUcVc
WcYZ_`"a(b.c4d:e@fFgLhRi+XjD^kDdlDjnDpv|	

d	&(<%>:!!##225599"2Bv

o
]
m


*:JZjz 0@P`p&6FVfv"2BRbr(8HXhx
*:Pfv&6FVfv			&	6	F	V	f	v								


,
<
L
\
l
|







,<L\l|"2BXhx


.
>
N
^
n
~






$:P`p,<L\l|,<L\rK
K
K
K
K
K
K
K
K
f
&
=
=
=
>(
 =
!g
"g
#g
$g
%
&
'
(
)
*
+
,
-
.
/`
0`
1D
23`
4l
5l
6
7
8
9
:
;
<
=
>
?)
@

AB
C
D
E
FG
H
I
J
K
L
Mc
NO
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]3
^3
_3
`
ab
c
d
e(
fg
hi

j

k

l(
mn
op`
q`
r`
s`
t`
u`
v`
w`
x`
y>
z
{
|
}
~
.





$
$
$
$











-



 (

.
.
.










.
.
.
.
"
"
|
|
|
|
|
|
|
|
|
|
|


|
|
|
`
|
€
À
Ā"
ŀ"
ƀ"
ǀ
Ȁɀ"
ʀ"
ˀ,
̀,
̀,
΀,
π,
Ѐ,
р,
Ҁ,
Ӏ,
Ԁ-
Հ-
ր.
׀}
؀}
ـ}
ڀa
ۀ܀
݀
ހ
߀(




(

"
"
"
"
"
"
"
"

r
r
r
r
r










L

,


	Hd	
&.HHZbs}&1:DEL22M55N"2BS
^

_
`|
aO 0@P`p 0@P`p 0@P`p 0@P`p 0@P`pS
S
S
S
S
S
S
S
S










 
!
"
#
$
%
&
'
(
)I
*_
+_
,_
-_
._
/_
0_
1_
2_
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R

S

T

U

V

W

X

Y

Z
[
\]		L	Rh27?GKKZb",8229L
I:v&6FVfv&6Lbx
*:JZp(8H





	




















Q
Q
Q

 !
"#
$%
&'
()
*+N
,N
-N
.N
/N
0N
1N
2N
3N
4O
5
67
89
:;
<=
>?:
@:
A:
B:
C:
D:
E:
F:
GD
H	"tRc}~"2BS



|
,"2BRbr




2
}

#
"2BRbrR

R

R

R

"2BRbrR

R

R

R

	(}L
<"8H^&
34
56R
7!
89&
:;
(zPQabPQab"2Bv
=o
>]
?m
@.DZpK
A"
BZ
CDp(
EFA
GHn(
IJ	
$<	
$
.HL
:
(CGIOW]__	&(<%>:!!##225599Rbr"2BRbr
h

e
{






t

[






,BXn~(>Tj0@Vl2H^t(8Ndz*@Vl
 6Lbx		(	>	T	j							

*
:
P
f
|




&<Rh~,<Rbr


,
<
L
\
r







 6Lbx&<L\r&6L\r*:J`v
 0F\l|
 6L\rK
bP
cdL
efL
ghK
i	
jkL
lmL
noK
pz
qr&
se
tuj
vwf
xye
z{e
|}N
~N
O
N














l
l





G



)
)






€À
Ā
ŀƀ
ǀȀ
ɀʀ
ˀ̀
̀΀
πЀ
рҀ
ӀԀ
Հր@
׀؀
ـڀ
ۀ܀
݀ހ
߀




$
 















`
e
a
`
	

`

a
`
a
>





.

 ! 
"#
$%
&'
()$
*+)
,-%
./$
01
2

34
56
78
9:
;<
=>
?
@A
BC
D-
E
F
GH
IJ
K
LM.
N.
O.
P
Q
RS

TU

VW

XY

Z[
\]

^_
`
a.
b/
cdHD
ef/
gh"
i"
j|
k|
l
mn}
op}
qr}
st:
uv}
wx}
yz|
{|
|
}
~}

}
}
}


"
'
#
"
"
#
,
1
-
-

,
-
,
-
-
-
.














"
'
#
€#
ÀĀ
ŀƀ"
ǀ#
Ȁɀ#
ʀˀ
̀r
̀w
΀πs
Ѐрs
ҀӀ0
ԀՀ
ր
׀
؀ـ
ڀۀ
܀݀
ހ߀





,

9
(zPQab'}~"2Bv
o
]
m
4Z
J
K|
L
M-
N
O,<L\l|,<L\l
P,
Q
R5
S
T

U
VX
WH
X
Y,
Z
[d
\
]0
^~
_u
`!
a"
b$
c&E
d2BRbr"2BRbrJ
eU
fJ
g@
h_
ii
jJ
kU
lJ
m@
n_
oi
pJ
qU
rJ
s@
t_
ui
vJ
wU
xJ
y@
z_
{i
|2BRbr"2BRbrJ
}U
~J
@
_
i
J
U
J
@
_
i
J
U
J
@
_
i
J
U
J
@
_
i
(8CGIOW]__'}~Rbr"2BRbr
h

 e
!{
"
#
$
%
&
'
(t
)
*[
+
,
-
.
/
01
2:` 

|

-

,BRhx.>Ndt
,

5

€

À
ĀX
ŀH
ƀ
ǀ,
Ȁ
ɀ_
ʀˀ
̀0
̀~
΀z
π!
Ѐр"
Ҁ$
Ӏ&@
ԀՀ2BRh~&6LbxJ
րU
׀r
؀ـ'
ڀۀs
܀݀i
ހJ
߀U
r
'
s
i
J
U
r
'
s
i
J
U
r
'
s
i
2BRh~&6LbxJ
U
r
'
s
i
J
U
r
'
s
	
i
J
U

r
'
s
i
J
U
r
'
s
i
 rRc"2BS
K

L
M|
NS
O

P(TCGIOW]__CDEFIJKLMNOWXZ[\]_Rbr"2BRbr
Qh
R
Se
T{
U
V
W
X
Y
Z
[t
\
][
^
_
`
a
b
cd
e*:J`v 6LbxK
f"
g
hii
jk
lmj
no
pq
rs
tu
vw
xy
zD
{|
}~`






(DFLTlatn$	4AZE pCAT HCRT pKAZ pMOL \ROM \TAT pTRK p				
aalt>ccmpFfracLligaRloclXlocl^locldsaltjss01jsupsp
	
Rh>Xl	TYB	SX=
L.:QRCGIO
>(>JJ26SX
,
 			
4Lbxvwx
z
~	s	sB	~y}su{s|st=V@@1f:&IU/mJr$2p7o<g@GyJM+84wMW%+8H4`'+H2:Z%%(37)F-!#%M@C2V!%7,5/0E4GL/7;@0>1T*8;?Y'S	= ,	&,-#
8


5pSSSSSSSSSS;5yyyyy::::hhhhhhhhhBKKKK--########.ZZZZZZ     ~~~~~RRr+++++]]]]]Q"""""=[[[[[ssssWWWWWWWWWW}8MMMMM69	7JJJJJJJJJ'666602&&&&&&&&&&&&&&4!111111AAA@AAAAAe886NNNN(((((?111111111<$33333CCCCCCCCCCE%%`\|b||tt|LLT|DpIPIOIIppnniiVVVqpCwCCCCCw*********/,U_
saav^^jj*XFppY>zzkHp{{mdppXFul
fokHp{xcd)kzmzXFGYpdHg,pNfMff3$MS  @
((5 $italwght$0<H,^XPP,vl	
Fh
	
X
H
B^F&rjZ (!"#Z$%&'t()2*+,,-.v/ 0 1!2"<3"4x#5#6$7%F8&
9&:';(P<(=)>*?+,@+A,B-,C-D.E/2F/G0H21lI2J3nK4NL5*M6.N6O7zP8 Q8R9S:@T:U;V<6W<X=~Y>$Z>[?~\@$]@^Az_B `BaCzbDcDdEzeFNfFgGhHViIjIkJlK<mKnLoM>pMqNrO>s&OtQuQvRZwSxSyTTz6T{V0|V}W~YZZ[d\
\]T^0_H_`ab6bcd.dez,f gLhiijlkklm>mnnoophvqqr*s
stxurvvwPwxy>@y{(||}l~&2*~vvvdH.zTh8.rj4fXT^`
v|LlLh`@~Xr&
0r	r
f2r"
r@r2xz^x~äp"xĒ
ŲZd`HPǨ N!F""#$$%&&.'>(N)<*+Ѽ,Қ->.r/d0H1$2ֲ3׺4zN5F678ۤ9d:J\;ަ<߼=b>?~@FAXBC`D`ZE`FbG`|HI`jJ`K`*LbM`N`LOPb:Q`R`S\TU`dV`W$XY@Z[\0]b^`F_``,abcdefgph.ijfklzm&noFpqrbst*u`vRwRpxby8$z	 8{ A| b}>~\4tH/* TT glyph 0, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */

/* TT glyph 1, char 0x41 (A) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SRP1[], 0
IP[], 14
IP[], 9
MDAP[R], 14
CALL[], 14, 16, 105
SRP1[], 0
SHP[1], 4
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xc1 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 344, 240, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 97, 86
SHC[2], 2
/* VTTTalk Unicode 0x102 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 348, 165, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 77, 86
SHC[2], 2

/* VTTTalk Unicode 0xc2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 346, 121, 205
SVTCA[Y]
CALL[], 22, 2, 1, 1, 81, 86
SHC[2], 2
/* VTTTalk Unicode 0xc4 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 341, 122, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 72, 86
SHC[2], 2
SHC[2], 3
/* VTTTalk Unicode 0xc0 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 343, 120, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 81, 86
SHC[2], 2
/* VTTTalk Unicode 0x100 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 351, 148, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 83, 86
SHC[2], 2

/* TT glyph 8, char 0x104 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 11, 106
CALL[], 17, 8, 114
SHP[2], 21
CALL[], 18, 2, 114
SRP1[], 17
IP[], 31
MDAP[R], 31
IP[], 26
CALL[], 31, 32, 106
CALL[], 5, 8, 114
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xc5 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 349, 187, -25
SVTCA[Y]
CALL[], 18, 2, 1, 1, 41, 86
SHC[2], 2
SHC[2], 3
/* VTTTalk Unicode 0xc3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 1, 0, 0
OFFSET[R], 350, 153, 205
SVTCA[Y]
CALL[], 18, 2, 1, 1, 86, 86
SHC[2], 2
/* TT glyph 11, char 0xc6 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SHP[2], 11
CALL[], 1, 14, 105
SHP[2], 4
SRP2[], 0
IP[], 18
MDAP[R], 18
CALL[], 18, 15, 106
SRP1[], 1
SRP2[], 0
IP[], 6
MDAP[R], 6
CALL[], 6, 7, 106
SRP1[], 0
SHP[1], 10
CALL[], 10, 19, 106
IUP[Y]
IUP[X]
/* TT glyph 12, char 0x42 (B) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 1, 8, 114
CALL[], 1, 15, 106
CALL[], 2, 2, 114
CALL[], 2, 32, 106
SRP2[], 1
IP[], 23
MDAP[R], 23
CALL[], 23, 24, 106
IP[], 8
IP[], 9
IUP[Y]
IUP[X]
/* TT glyph 13, char 0x43 (C) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 9, 114
CALL[], 6, 3, 114
CALL[], 6, 13, 106
CALL[], 0, 19, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x106 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 13, 0, 0
OFFSET[R], 344, 266, 190
SVTCA[Y]
CALL[], 26, 6, 1, 1, 69, 86
SHC[2], 1
/* VTTTalk Unicode 0x10c */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 13, 0, 0
OFFSET[R], 347, 135, 190
SVTCA[Y]
CALL[], 26, 6, 1, 1, 54, 86
SHC[2], 1
/* VTTTalk Unicode 0xc7 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 13, 0, 0
OFFSET[R], 354, 208, 0
SVTCA[Y]
CALL[], 40, 0, 0, 0, 45, 86
SHC[2], 1

/* VTTTalk Unicode 0x10a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 13, 0, 0
OFFSET[R], 342, 253, 190
SVTCA[Y]
CALL[], 26, 6, 1, 1, 51, 86
SHC[2], 1
/* TT glyph 18, char 0x44 (D) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 1, 17, 106
CALL[], 0, 9, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xd0 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 18, 0, 0
OFFSET[R], 339, 0, 0
SVTCA[Y]
CALL[], 18, 0, 2, 0, 314, 86
SHC[2], 2
/* VTTTalk Unicode 0x10e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 18, 0, 0
OFFSET[R], 347, 112, 190
SVTCA[Y]
CALL[], 18, 2, 1, 1, 68, 86
SHC[2], 2
/* VTTTalk Unicode 0x110 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 19, 0, 0
/* TT glyph 22, char 0x45 (E) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 1, 4, 106
SRP2[], 0
IP[], 8
MDAP[R], 8
CALL[], 8, 5, 106
CALL[], 0, 9, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xc9 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 344, 183, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 82, 86
SHC[2], 1

/* VTTTalk Unicode 0x11a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 347, 52, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 67, 86
SHC[2], 1

/* VTTTalk Unicode 0xca */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 346, 64, 190
SVTCA[Y]
CALL[], 18, 2, 1, 1, 66, 86
SHC[2], 1
/* VTTTalk Unicode 0xcb */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 341, 65, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 57, 86
SHC[2], 1
SHC[2], 2
/* VTTTalk Unicode 0x116 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 342, 170, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 64, 86
SHC[2], 1
/* VTTTalk Unicode 0xc8 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 343, 63, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 66, 86
SHC[2], 1
/* VTTTalk Unicode 0x112 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 351, 91, 190
SVTCA[Y]
CALL[], 12, 2, 1, 1, 68, 86
SHC[2], 1

/* VTTTalk Unicode 0x118 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 22, 0, 0
OFFSET[R], 355, 286, 0
SVTCA[Y]
CALL[], 17, 0 , 1, 0, 0, 86
SHC[2], 1


/* TT glyph 31, char 0x46 (F) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 1, 4, 106
SRP2[], 0
IP[], 8
MDAP[R], 8
CALL[], 8, 5, 106
IUP[Y]
IUP[X]
/* TT glyph 32, char 0x47 (G) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 9, 114
CALL[], 6, 3, 114
CALL[], 6, 13, 106
SRP2[], 0
IP[], 23
MDAP[R], 23
CALL[], 23, 24, 106
CALL[], 0, 19, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x11e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 32, 0, 0
OFFSET[R], 348, 226, 190
SVTCA[Y]
CALL[], 28, 6, 1, 1, 49, 86
SHC[2], 1
/* VTTTalk Unicode 0x122 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 32, 0, 0
OFFSET[R], 353, 259, 0
SVTCA[Y]
CALL[], 32, 0, 1, 1, -52, 86
SHC[2], 1

/* VTTTalk Unicode 0x120 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 32, 0, 0
OFFSET[R], 342, 288, 190
SVTCA[Y]
CALL[], 28, 6, 1, 1, 51, 86
SHC[2], 1
/* TT glyph 36, char 0x48 (H) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SRP1[], 0
IP[], 10
MDAP[R], 10
CALL[], 10, 3, 106
SRP1[], 1
SHP[1], 6
SRP1[], 0
SHP[1], 8
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x126 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 36, 0, 0
OFFSET[R], 340, 0, 0
SVTCA[Y]
CALL[], 12, 3, 1, 0, 106, 86
SHC[2], 1

/* TT glyph 38, char 0x49 (I) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x132 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 47, 273, 0
/* VTTTalk Unicode 0xcd */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 344, 46, 190
SVTCA[Y]
CALL[], 4, 2, 1, 1, 82, 86
SHC[2], 1

/* VTTTalk Unicode 0xce */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 346, -73, 190
SVTCA[Y]
CALL[], 10, 2, 1, 1, 66, 86
SHC[2], 1

/* VTTTalk Unicode 0xcf */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 341, -72, 190
SVTCA[Y]
CALL[], 4, 2, 1, 1, 57, 86
SHC[2], 1
SHC[2], 2
/* VTTTalk Unicode 0x130 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 342, 33, 190
SVTCA[Y]
CALL[], 4, 2, 1, 1, 64, 86
SHC[2], 1


/* VTTTalk Unicode 0xcc */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 343, -74, 190
SVTCA[Y]
CALL[], 4, 2, 1, 1, 66, 86
SHC[2], 1
/* VTTTalk Unicode 0x12a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 351, -46, 190
SVTCA[Y]
CALL[], 4, 2, 1, 1, 68, 86
SHC[2], 1

/* VTTTalk Unicode 0x12e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 38, 0, 0
OFFSET[R], 355, 19, 0
SVTCA[Y]
CALL[], 9, 0, 1, 0, 0, 86
SHC[2], 1

/* TT glyph 47, char 0x4a (J) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 11, 2, 114
CALL[], 0, 1, 106
IUP[Y]
IUP[X]

/* TT glyph 48, char 0x4b (K) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 7, 8, 114
CALL[], 8, 2, 114
SHP[2], 6
SRP1[], 7
SHP[1], 11
IP[], 0
IP[], 12
CALL[], 0, 1, 106
CALL[], 12, 13, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x136 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 48, 0, 0
OFFSET[R], 353, 204, 0
SVTCA[Y]
CALL[], 20, 7, 1, 1, -63, 86
SHC[2], 3

/* TT glyph 50, char 0x4c (L) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 0, 3, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x139 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 50, 0, 0
OFFSET[R], 344, 45, 185
SVTCA[Y]
CALL[], 9, 2, 1, 1, 77, 86
SHC[2], 1
/* VTTTalk Unicode 0x13d */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 50, 0, 0
OFFSET[R], 328, 326, 0



/* VTTTalk Unicode 0x13b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 50, 0, 0
OFFSET[R], 353, 148, 0
SVTCA[Y]
CALL[], 10, 0, 1, 1, -63, 86
SHC[2], 1

/* VTTTalk Unicode 0x13f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 50, 0, 0
OFFSET[R], 251, 249, 66
SVTCA[Y]
CALL[], 12, 2, 2, 0, -288, 86
SHC[2], 1

/* TT glyph 55, char 0x141 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 4, 8, 114
CALL[], 5, 2, 114
CALL[], 4, 8, 106
SRP1[], 5
SHP[1], 3
SRP1[], 4
SHP[1], 1
IUP[Y]
IUP[X]
/* TT glyph 56, char 0x4d (M) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SHP[2], 12
SRP1[], 0
SHP[1], 24
SHP[1], 14
IP[], 7
IP[], 28
SRP1[], 28
SHP[1], 19
IUP[Y]
IUP[X]

/* TT glyph 57, char 0x4e (N) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 12, 2, 114
SHP[2], 2
SRP1[], 0
SHP[1], 14
IP[], 7
IP[], 19
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x143 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 57, 0, 0
OFFSET[R], 344, 292, 190
SVTCA[Y]
CALL[], 24, 2, 1, 1, 81, 86
SHC[2], 1


/* VTTTalk Unicode 0x147 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 57, 0, 0
OFFSET[R], 347, 161, 190
SVTCA[Y]
CALL[], 24, 12, 1, 1, 67, 86
SHC[2], 1

/* VTTTalk Unicode 0x145 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 57, 0, 0
OFFSET[R], 353, 290, 0
SVTCA[Y]
CALL[], 28, 14, 1, 1, -63, 86
SHC[2], 1


/* TT glyph 61, char 0x14a */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 24, -1, 114
CALL[], 11, 2, 114
CALL[], 0, 8, 114
SRP1[], 11
SHP[1], 2
SHP[2], 14
IP[], 7
IP[], 19
CALL[], 24, 25, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xd1 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 57, 0, 0
OFFSET[R], 350, 205, 190
SVTCA[Y]
CALL[], 24, 12, 1, 1, 71, 86
SHC[2], 1


/* TT glyph 63, char 0x4f (O) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 9, 114
CALL[], 6, 3, 114
CALL[], 6, 18, 106
CALL[], 0, 12, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xd3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 344, 295, 190
SVTCA[Y]
CALL[], 24, 6, 1, 1, 70, 86
SHC[2], 2

/* VTTTalk Unicode 0xd4 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 346, 176, 190
SVTCA[Y]
CALL[], 28, 6, 1, 1, 54, 86
SHC[2], 2

/* VTTTalk Unicode 0xd6 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 341, 177, 190
SVTCA[Y]
CALL[], 24, 6, 1, 1, 45, 86
SHC[2], 2
SHC[2], 3

/* VTTTalk Unicode 0xd2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 343, 175, 190
SVTCA[Y]
CALL[], 24, 6, 1, 1, 54, 86
SHC[2], 2

/* VTTTalk Unicode 0x150 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 345, 238, 190
SVTCA[Y]
CALL[], 28, 6, 1, 1, 55, 86
SHC[2], 2
SHC[2], 3
/* VTTTalk Unicode 0x14c */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 351, 203, 190
SVTCA[Y]
CALL[], 24, 6, 1, 1, 56, 86
SHC[2], 2
/* TT glyph 70, char 0xd8 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 4, 9, 114
CALL[], 10, 3, 114
CALL[], 10, 22, 106
CALL[], 4, 16, 106
SRP1[], 10
SHP[1], 2
SHP[1], 3
SRP1[], 4
SHP[1], 0
SHP[1], 1
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xd5 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 63, 0, 0
OFFSET[R], 350, 208, 190
SVTCA[Y]
CALL[], 24, 6, 1, 1, 59, 86
SHC[2], 2

/* TT glyph 72, char 0x152 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 9, 114
CALL[], 0, 18, 106
CALL[], 6, 3, 114
CALL[], 6, 12, 106
CALL[], 24, 8, 114
CALL[], 24, 33, 105
CALL[], 25, 2, 114
CALL[], 25, 28, 105
SRP2[], 24
IP[], 32
MDAP[R], 32
CALL[], 32, 29, 106
IUP[Y]
IUP[X]
/* TT glyph 73, char 0x50 (P) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 1, 19, 106
SRP2[], 0
IP[], 9
MDAP[R], 9
CALL[], 9, 11, 106
IUP[Y]
IUP[X]
/* TT glyph 74, char 0xde */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 21, 2, 114
SRP1[], 0
IP[], 1
IP[], 9
MDAP[R], 9
MDAP[R], 1
CALL[], 9, 11, 106
CALL[], 1, 19, 105
IUP[Y]
IUP[X]
/* TT glyph 75, char 0x51 (Q) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 14, 3, 114
CALL[], 8, 9, 114
CALL[], 14, 26, 106
CALL[], 8, 20, 106
SHP[1], 3
CALL[], 0, 7, 106
IUP[Y]
IUP[X]
/* TT glyph 76, char 0x52 (R) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
CALL[], 1, 23, 106
SRP2[], 0
IP[], 9
MDAP[R], 9
CALL[], 9, 15, 106
SHP[1], 12
CALL[], 12, 13, 106
SRP1[], 0
SHP[1], 11
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x154 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 76, 0, 0
OFFSET[R], 344, 196, 185
SVTCA[Y]
CALL[], 24, 2, 1, 1, 77, 86
SHC[2], 3
/* VTTTalk Unicode 0x158 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 76, 0, 0
OFFSET[R], 347, 65, 185
SVTCA[Y]
CALL[], 24, 2, 1, 1, 62, 86
SHC[2], 3

/* VTTTalk Unicode 0x156 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 76, 0, 0
OFFSET[R], 353, 214, 0
SVTCA[Y]
CALL[], 28, 0, 1, 1, -63, 86
SHC[2], 3

/* TT glyph 80, char 0x53 (S) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 0, 7, 106
CALL[], 19, 3, 114
CALL[], 19, 26, 106
SRP2[], 0
IP[], 10
IP[], 29
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x15a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 80, 0, 0
OFFSET[R], 344, 181, 190
SVTCA[Y]
CALL[], 38, 19, 1, 1, 75, 86
SHC[2], 1

/* VTTTalk Unicode 0x160 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 80, 0, 0
OFFSET[R], 347, 50, 190
SVTCA[Y]
CALL[], 38, 19, 1, 1, 60, 86
SHC[2], 1


/* VTTTalk Unicode 0x15e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 80, 0, 0
OFFSET[R], 354, 163, 0
SVTCA[Y]
CALL[], 52, 0, 0, 0, 41, 86
SHC[2], 1


/* VTTTalk Unicode 0x218 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 80, 0, 0
OFFSET[R], 353, 179, 0
SVTCA[Y]
CALL[], 42, 0, 1, 1, -57, 86
SHC[2], 1

/* TT glyph 85, char 0x54 (T) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 7, 8, 114
CALL[], 3, 2, 114
CALL[], 3, 2, 106
SHP[2], 6
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x166 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 85, 0, 0
OFFSET[R], 339, 68, 0
SVTCA[Y]
CALL[], 8, 0, 2, 0, 314, 86
SHC[2], 1

/* VTTTalk Unicode 0x164 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 85, 0, 0
OFFSET[R], 347, 47, 190
SVTCA[Y]
CALL[], 8, 4, 1, 1, 67, 86
SHC[2], 1
/* VTTTalk Unicode 0x162 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 85, 0, 0
OFFSET[R], 354, 160, 0
SVTCA[Y]
CALL[], 22, 0, 0, 0, 35, 86
SHC[2], 1


/* VTTTalk Unicode 0x21a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 85, 0, 0
OFFSET[R], 353, 176, 0
SVTCA[Y]
CALL[], 12, 0, 1, 1, -63, 86
SHC[2], 1

/* TT glyph 90, char 0x55 (U) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 9, 114
CALL[], 4, 2, 114
CALL[], 0, 9, 106
SRP1[], 4
SHP[1], 14
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xda */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 344, 241, 190
SVTCA[Y]
CALL[], 18, 4, 1, 1, 82, 86
SHC[2], 1

/* VTTTalk Unicode 0xdb */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 346, 142, 190
SVTCA[Y]
CALL[], 22, 4 , 1, 1, 66, 86
SHC[2], 1
/* VTTTalk Unicode 0xdc */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 341, 143, 190
SVTCA[Y]
CALL[], 18, 4, 1, 1, 57, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0xd9 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 343, 141, 190
SVTCA[Y]
CALL[], 18, 13, 1, 1, 66, 86
SHC[2], 1
/* VTTTalk Unicode 0x170 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 345, 204, 190
SVTCA[Y]
CALL[], 18, 13, 1, 1, 67, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0x16a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 351, 169, 190
SVTCA[Y]
CALL[], 18, 4 , 1, 1, 68, 86
SHC[2], 1

/* VTTTalk Unicode 0x172 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 355, 227, 0
SVTCA[Y]
CALL[], 23, 0, 0, 0, 12, 86
SHC[2], 1
/* VTTTalk Unicode 0x16e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 90, 0, 0
OFFSET[R], 349, 208, -40
SVTCA[Y]
CALL[], 18, 14, 1, 1, 26, 86
SHC[2], 1
SHC[2], 2

/* TT glyph 99, char 0x56 (V) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SHP[2], 12
SRP2[], 0
IP[], 7
IUP[Y]
IUP[X]
/* TT glyph 100, char 0x57 (W) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 1, 2, 114
SHP[2], 22
SHP[2], 12
SRP1[], 0
SHP[1], 24
SLOOP[], 3
IP[], 7, 17, 28
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x1e82 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 100, 0, 0
OFFSET[R], 344, 393, 190
SVTCA[Y]
CALL[], 33, 12, 1, 1, 82, 86
SHC[2], 1

/* VTTTalk Unicode 0x174 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 100, 0, 0
OFFSET[R], 346, 274, 190
SVTCA[Y]
CALL[], 39, 12, 1, 1, 66, 86
SHC[2], 1


/* VTTTalk Unicode 0x1e84 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 100, 0, 0
OFFSET[R], 341, 275, 190
SVTCA[Y]
CALL[], 33, 12, 1, 1, 57, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0x1e80 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 100, 0, 0
OFFSET[R], 343, 273, 190
SVTCA[Y]
CALL[], 33, 12, 1, 1, 66, 86
SHC[2], 1

/* TT glyph 105, char 0x58 (X) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 13, 2, 114
SHP[2], 3
SRP1[], 0
SHP[1], 16
SLOOP[], 4
IP[], 21, 1, 8, 14
SRP1[], 1
SHP[1], 14
IUP[Y]
IUP[X]

/* TT glyph 106, char 0x59 (Y) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 2, 2, 114
SHP[2], 13
SRP2[], 0
IP[], 1
IP[], 8
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xdd */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 106, 0, 0
OFFSET[R], 344, 192, 190
SVTCA[Y]
CALL[], 16, 3, 1, 1, 82, 86
SHC[2], 1
/* VTTTalk Unicode 0x176 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 106, 0, 0
OFFSET[R], 346, 73, 190
SVTCA[Y]
CALL[], 22, 13, 1, 1, 66, 86
SHC[2], 1

/* VTTTalk Unicode 0x178 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 106, 0, 0
OFFSET[R], 341, 74, 190
SVTCA[Y]
CALL[], 16, 3, 1, 1, 57, 86
SHC[2], 1
SHC[2], 2
/* VTTTalk Unicode 0x1ef2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 106, 0, 0
OFFSET[R], 343, 72, 190
SVTCA[Y]
CALL[], 16, 13, 1, 1, 66, 86
SHC[2], 1


/* TT glyph 111, char 0x5a (Z) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 8, 114
CALL[], 4, 2, 114
CALL[], 4, 3, 106
CALL[], 0, 7, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x179 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 111, 0, 0
OFFSET[R], 344, 201, 190
SVTCA[Y]
CALL[], 10, 5, 1, 1, 82, 86
SHC[2], 1

/* VTTTalk Unicode 0x17d */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 111, 0, 0
OFFSET[R], 347, 70, 190
SVTCA[Y]
CALL[], 10, 5, 1, 1, 67, 86
SHC[2], 1
/* VTTTalk Unicode 0x17b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 111, 0, 0
OFFSET[R], 342, 188, 190
SVTCA[Y]
CALL[], 10, 5, 1, 1, 64, 86
SHC[2], 1

/* TT glyph 115, char 0x61 (a) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 21, 11, 114
CALL[], 14, 7, 114
CALL[], 14, 7, 200, 108
SRP2[], 21
IP[], 27
MDAP[R], 27
CALL[], 27, 32, 200, 108
CALL[], 21, 38, 200, 108
SRP1[], 14
SHP[1], 11
SRP1[], 21
SHP[1], 0
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xe1 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 326, 160, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 109, 86
SHC[2], 2
/* VTTTalk Unicode 0x103 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 331, 105, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 104, 86
SHC[2], 2

/* VTTTalk Unicode 0xe2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 329, 74, 0
SVTCA[Y]
CALL[], 51, 14, 1, 1, 109, 86
SHC[2], 2

/* VTTTalk Unicode 0xe4 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 323, 52, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 84, 86
SHC[2], 2
SHC[2], 3
/* VTTTalk Unicode 0xe0 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 325, 55, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 109, 86
SHC[2], 2

/* VTTTalk Unicode 0x101 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 334, 48, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 95, 86
SHC[2], 2

/* TT glyph 122, char 0x105 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 9, 106
CALL[], 29, 7, 114
CALL[], 29, 22, 200, 108
SHP[1], 26
CALL[], 36, 11, 114
SHP[2], 5
SHP[2], 35
CALL[], 36, 53, 200, 108
SRP2[], 29
IP[], 42
MDAP[R], 42
CALL[], 42, 47, 200, 108
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xe5 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 332, 117, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 73, 86
SHC[2], 2
SHC[2], 3

/* VTTTalk Unicode 0xe3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 115, 0, 0
OFFSET[R], 333, 83, 0
SVTCA[Y]
CALL[], 45, 14, 1, 1, 98, 86
SHC[2], 2
/* TT glyph 125, char 0xe6 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 0, 17, 200, 108
SHP[1], 39
CALL[], 39, 61, 200, 108
CALL[], 35, 7, 114
CALL[], 35, 28, 200, 108
SHP[1], 32
SRP2[], 0
IP[], 6
MDAP[R], 6
CALL[], 6, 11, 200, 108
SRP1[], 35
SHP[1], 45
MDAP[R], 45
CALL[], 45, 55, 200, 108
SRP2[], 39
IP[], 50
MDAP[R], 50
CALL[], 50, 51, 201, 108
IUP[Y]
IUP[X]

/* TT glyph 126, char 0x62 (b) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 30, 0, 114
CALL[], 23, 7, 114
CALL[], 29, 10, 114
CALL[], 23, 16, 83, 108
CALL[], 0, 10, 83, 108
IUP[Y]
IUP[X]
/* TT glyph 127, char 0x63 (c) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 6, 7, 114
CALL[], 6, 13, 83, 108
CALL[], 0, 19, 83, 108
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x107 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 127, 0, 0
OFFSET[R], 326, 136, 0
SVTCA[Y]
CALL[], 26, 6, 1, 1, 110, 86
SHC[2], 1
/* VTTTalk Unicode 0x10d */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 127, 0, 0
OFFSET[R], 330, 88, 0
SVTCA[Y]
CALL[], 26, 6, 1, 1, 110, 86
SHC[2], 1

/* VTTTalk Unicode 0xe7 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 127, 0, 0
OFFSET[R], 337, 176, 0
SVTCA[Y]
CALL[], 40, 0, 0, 0, 47, 86
SHC[2], 1
/* VTTTalk Unicode 0x10b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 127, 0, 0
OFFSET[R], 324, 163, 0
SVTCA[Y]
CALL[], 26, 6, 1, 1, 92, 86
SHC[2], 1

/* TT glyph 132, char 0x64 (d) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 35, 0, 114
CALL[], 6, 7, 114
CALL[], 6, 12, 83, 108
CALL[], 0, 18, 83, 108
SHP[1], 25
IUP[Y]
IUP[X]

/* TT glyph 133, char 0xf0 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 18, 0, 114
MDAP[R], 6
CALL[], 6, 35, 83, 108
CALL[], 0, 30, 83, 108
SRP1[], 6
SHP[1], 9
SRP2[], 18
SLOOP[], 9
IP[], 17, 14, 13, 12, 11, 24, 23, 22, 21
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x10f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 132, 0, 0
OFFSET[R], 328, 521, 0

SVTCA[Y]
CALL[], 37, 6, 1, 0, 112, 86
SHC[2], 3

/* VTTTalk Unicode 0x111 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 132, 0, 0
OFFSET[R], 339, 242, 278
SVTCA[Y]
CALL[], 37, 6, 1, 1, 92, 86
SHC[2], 3

/* TT glyph 136, char 0x65 (e) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 6, 7, 114
CALL[], 6, 16, 200, 108
SRP2[], 0
IP[], 11
MDAP[R], 11
CALL[], 11, 12, 201, 108
CALL[], 0, 22, 200, 108
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xe9 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 326, 167, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 107, 86
SHC[2], 1

/* VTTTalk Unicode 0x11b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 330, 76, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 107, 86
SHC[2], 1

/* VTTTalk Unicode 0xea */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 329, 81, 0
SVTCA[Y]
CALL[], 34, 6, 1, 1, 107, 86
SHC[2], 1
/* VTTTalk Unicode 0xeb */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 323, 59, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 82, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0x117 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 324, 164, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 89, 86
SHC[2], 1

/* VTTTalk Unicode 0xe8 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 325, 62, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 107, 86
SHC[2], 1


/* VTTTalk Unicode 0x113 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 136, 0, 0
OFFSET[R], 334, 55, 0
SVTCA[Y]
CALL[], 28, 6, 1, 1, 93, 86
SHC[2], 1


/* TT glyph 144, char 0x119 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 9, 106
CALL[], 14, 11, 114
SHP[2], 5
SHP[2], 39
CALL[], 14, 36, 200, 108
CALL[], 20, 7, 114
CALL[], 20, 30, 200, 108
SRP2[], 14
IP[], 25
MDAP[R], 25
CALL[], 25, 26, 201, 108
IUP[Y]
IUP[X]

/* TT glyph 145, char 0x66 (f) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 4, 1, 114
CALL[], 4, 11, 83, 108
CALL[], 17, 6, 114
CALL[], 17, 16, 82, 108
IUP[Y]
IUP[X]

/* TT glyph 146, char 0x67 (g) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 15, 114
CALL[], 22, 7, 114
CALL[], 11, 6, 114
CALL[], 16, 11, 114
CALL[], 22, 29, 83, 108
CALL[], 16, 35, 83, 108
CALL[], 0, 1, 83, 108
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x11f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 146, 0, 0
OFFSET[R], 331, 146, 0
SVTCA[Y]
CALL[], 42, 22, 1, 1, 104, 86
SHC[2], 2

/* VTTTalk Unicode 0x123 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 146, 0, 0
OFFSET[R], 335, 186, 0
SVTCA[Y]
CALL[], 47, 22, 1, 1, 90, 86
SHC[2], 2


/* VTTTalk Unicode 0x121 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 146, 0, 0
OFFSET[R], 324, 198, 0
SVTCA[Y]
CALL[], 42, 22, 1, 1, 91, 86
SHC[2], 2
/* TT glyph 150, char 0x68 (h) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 15, 10, 114
CALL[], 16, 0, 114
CALL[], 10, 7, 114
CALL[], 10, 4, 83, 108
SRP1[], 15
SHP[1], 0
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x127 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 150, 0, 0
OFFSET[R], 339, -32, 285
SVTCA[Y]
CALL[], 20, 16, 2, 0, -87, 86
SHC[2], 2

/* TT glyph 152, char 0x69 (i) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 12, 10, 114
CALL[], 13, 6, 114
MDRP[m<RWh], 0
CALL[], 0, 6, 106
IUP[Y]
IUP[X]
/* TT glyph 153, char 0x131 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 1, 6, 114
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xed */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 326, 23, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 122, 86
SHC[2], 1

/* VTTTalk Unicode 0xee */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 329, -63, 0
SVTCA[Y]
CALL[], 10, 1, 1, 1, 122, 86
SHC[2], 1

/* VTTTalk Unicode 0xef */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 323, -85, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 97, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 324, 20, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 104, 86
SHC[2], 1

/* VTTTalk Unicode 0xec */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 325, -82, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 122, 86
SHC[2], 1


/* VTTTalk Unicode 0x133 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 152, 0, 0
OFFSET[R], 162, 263, 0
/* VTTTalk Unicode 0x12b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 334, -89, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 108, 86
SHC[2], 1

/* VTTTalk Unicode 0x12f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 153, 0, 0
OFFSET[R], 324, 20, 0
OFFSET[R], 338, -4, 0
SVTCA[Y]
CALL[], 4, 1, 1, 1, 104, 86
SHC[2], 1
CALL[], 21, 0, 1, 0, 0, 86
SHC[2], 2

/* TT glyph 162, char 0x6a (j) */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 12, 15, 114
CALL[], 12, 13, 83, 108
CALL[], 22, 6, 114
MDRP[m<RWh], 0
CALL[], 0, 6, 106
IUP[Y]
IUP[X]
/* TT glyph 163, char 0x237 */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */
SVTCA[Y]
CALL[], 0, 15, 114
CALL[], 10, 6, 114
CALL[], 0, 1, 83, 108
IUP[Y]
IUP[X]

/* TT glyph 164, char 0x6b (k) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 9, 10, 114
CALL[], 10, 0, 114
CALL[], 8, 6, 114
SRP1[], 9
SHP[1], 13
SRP2[], 10
IP[], 0
IP[], 14
CALL[], 0, 2, 105
CALL[], 14, 15, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x137 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 164, 0, 0
OFFSET[R], 336, 137, 0
SVTCA[Y]
CALL[], 21, 9, 1, 1, -63, 86
SHC[2], 3


/* TT glyph 166, char 0x6c (l) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 1, 0, 114
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x13a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 166, 0, 0
OFFSET[R], 326, 24, 195
SVTCA[Y]
CALL[], 4, 1, 1, 1, 46, 86
SHC[2], 1

/* VTTTalk Unicode 0x13e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 166, 0, 0
OFFSET[R], 328, 203, 0
SVTCA[Y]
CALL[], 5, 1, 0, 0, 0, 86
SHC[2], 1

/* VTTTalk Unicode 0x13c */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 166, 0, 0
OFFSET[R], 336, 6, 0
SVTCA[Y]
CALL[], 8, 0, 1, 1, -63, 86
SHC[2], 1

/* VTTTalk Unicode 0x140 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 166, 0, 0
OFFSET[R], 251, 156, 50
SVTCA[Y]
CALL[], 4, 0, 2, 0, 300, 86
SHC[2], 1
/* TT glyph 171, char 0x142 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 4, 10, 114
CALL[], 5, 0, 114
SHP[2], 3
SRP1[], 4
SHP[1], 1
IUP[Y]
IUP[X]
/* TT glyph 172, char 0x6d (m) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 16, 10, 114
CALL[], 32, 7, 114
CALL[], 17, 6, 114
CALL[], 32, 25, 83, 108
SHP[1], 11
CALL[], 11, 4, 83, 108
SRP1[], 16
SHP[1], 0
SHP[1], 21
SRP2[], 32
IP[], 28
IP[], 7
CALL[], 28, 29, 106
CALL[], 7, 8, 106
IUP[Y]
IUP[X]
/* TT glyph 173, char 0x6e (n) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 15, 10, 114
CALL[], 10, 7, 114
CALL[], 16, 6, 114
CALL[], 10, 4, 83, 108
SRP1[], 15
SHP[1], 0
SRP2[], 10
IP[], 7
CALL[], 7, 8, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x144 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 173, 0, 0
OFFSET[R], 326, 189, 0
SVTCA[Y]
CALL[], 20, 10, 1, 1, 122, 86
SHC[2], 2

/* VTTTalk Unicode 0x148 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 173, 0, 0
OFFSET[R], 330, 98, 0
SVTCA[Y]
CALL[], 20, 10, 1, 1, 122, 86
SHC[2], 2
/* VTTTalk Unicode 0x146 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 173, 0, 0
OFFSET[R], 336, 172, 0
SVTCA[Y]
CALL[], 24, 15, 1, 1, -63, 86
SHC[2], 2

/* TT glyph 177, char 0x14b */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 15, 114
CALL[], 22, 7, 114
CALL[], 27, 10, 114
CALL[], 28, 6, 114
CALL[], 22, 16, 83, 108
SRP2[], 27
IP[], 19
SHP[2], 12
CALL[], 0, 1, 106
CALL[], 19, 20, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xf1 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 173, 0, 0
OFFSET[R], 333, 112, 0
SVTCA[Y]
CALL[], 20, 17, 1, 1, 111, 86
SHC[2], 2


/* TT glyph 179, char 0x6f (o) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 6, 7, 114
CALL[], 6, 18, 83, 108
CALL[], 0, 12, 83, 108
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xf3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 326, 199, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 110, 86
SHC[2], 2

/* VTTTalk Unicode 0xf4 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 329, 113, 0
SVTCA[Y]
CALL[], 30, 6, 1, 1, 110, 86
SHC[2], 2

/* VTTTalk Unicode 0xf6 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 323, 91, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 85, 86
SHC[2], 2
SHC[2], 3

/* VTTTalk Unicode 0xf2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 325, 94, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 110, 86
SHC[2], 2
/* VTTTalk Unicode 0x151 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 327, 177, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 110, 86
SHC[2], 2
SHC[2], 3
/* VTTTalk Unicode 0x14d */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 334, 87, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 96, 86
SHC[2], 2
/* TT glyph 186, char 0xf8 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 4, 11, 114
CALL[], 10, 7, 114
CALL[], 10, 22, 83, 108
CALL[], 4, 16, 83, 108
SRP1[], 10
SHP[1], 2
SHP[1], 3
SRP1[], 4
SHP[1], 0
SHP[1], 1
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xf5 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 0, 0
OFFSET[R], 333, 122, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 99, 86
SHC[2], 2
/* VTTTalk Unicode 0x153 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 179, 1, 0
OFFSET[R], 136, 419, 0
/* TT glyph 189, char 0x70 (p) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 28, 14, 114
CALL[], 22, 7, 114
CALL[], 0, 11, 114
CALL[], 29, 6, 114
CALL[], 22, 16, 83, 108
CALL[], 0, 10, 83, 108
IUP[Y]
IUP[X]
/* TT glyph 190, char 0xfe */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 32, 14, 114
MDAP[R], 1
CALL[], 4, 11, 114
CALL[], 26, 7, 114
CALL[], 33, 6, 114
CALL[], 26, 20, 83, 108
CALL[], 4, 14, 83, 108
IUP[Y]
IUP[X]

/* TT glyph 191, char 0x71 (q) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 24, 14, 114
CALL[], 6, 7, 114
CALL[], 0, 11, 114
CALL[], 26, 6, 114
CALL[], 6, 11, 83, 108
CALL[], 0, 17, 83, 108
IUP[Y]
IUP[X]
/* TT glyph 192, char 0x72 (r) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 1, 6, 114
CALL[], 8, 7, 114
CALL[], 8, 9, 83, 108
SRP1[], 0
SRP2[], 1
IP[], 5
CALL[], 5, 6, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x155 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 192, 0, 0
OFFSET[R], 326, 77, 0
SVTCA[Y]
CALL[], 11, 1, 1, 1, 122, 86
SHC[2], 2

/* VTTTalk Unicode 0x159 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 192, 0, 0
OFFSET[R], 330, -14, 0
SVTCA[Y]
CALL[], 11, 1, 1, 1, 122, 86
SHC[2], 2
/* VTTTalk Unicode 0x157 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 192, 0, 0
OFFSET[R], 336, 7, 0
SVTCA[Y]
CALL[], 15, 0, 1, 1, -63, 86
SHC[2], 2
/* TT glyph 196, char 0x73 (s) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 15, 7, 114
CALL[], 15, 20, 82, 108
CALL[], 0, 5, 82, 108
SRP2[], 15
SLOOP[], 4
IP[], 7, 27, 22, 12
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x15b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 196, 0, 0
OFFSET[R], 326, 117, 0
SVTCA[Y]
CALL[], 30, 15, 1, 1, 108, 86
SHC[2], 1

/* VTTTalk Unicode 0x161 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 196, 0, 0
OFFSET[R], 330, 26, 0
SVTCA[Y]
CALL[], 30, 15, 1, 1, 108, 86
SHC[2], 1
/* VTTTalk Unicode 0x15f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 196, 0, 0
OFFSET[R], 337, 102, 0
SVTCA[Y]
CALL[], 44, 0, 0, 0, 48, 86
SHC[2], 1

/* VTTTalk Unicode 0x219 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 196, 0, 0
OFFSET[R], 336, 95, 0
SVTCA[Y]
CALL[], 34, 0, 1, 1, -50, 86
SHC[2], 1

/* TT glyph 201, char 0xdf */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 8, 11, 114
CALL[], 39, 1, 114
CALL[], 35, 10, 114
CALL[], 39, 30, 106
CALL[], 8, 15, 106
IUP[Y]
IUP[X]

/* TT glyph 202, char 0x74 (t) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
MDAP[R], 4
MIAP[R], 22, 6
CALL[], 22, 23, 82, 108
CALL[], 0, 9, 83, 108
SHP[1], 12
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x167 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 202, 0, 0
OFFSET[R], 339, -25, -45
SVTCA[Y]
CALL[], 30, 15, 1, 1, -72, 86
SHC[2], 2

/* VTTTalk Unicode 0x165 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 202, 0, 0
OFFSET[R], 328, 282, -40
SVTCA[Y]
CALL[], 30, 4, 0, 0, 56, 86
SHC[2], 2

/* VTTTalk Unicode 0x163 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 202, 0, 0
OFFSET[R], 337, 68, 0
SVTCA[Y]
CALL[], 43, 0, 0, 0, 47, 86
SHC[2], 2
/* VTTTalk Unicode 0x21b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 202, 0, 0
OFFSET[R], 336, 61, 0
SVTCA[Y]
CALL[], 33, 0, 1, 1, -51, 86
SHC[2], 2

/* TT glyph 207, char 0x75 (u) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 4, 6, 114
CALL[], 0, 9, 83, 108
SHP[1], 16
SRP1[], 4
SHP[1], 27
SRP2[], 0
IP[], 13
CALL[], 13, 12, 106
SHP[2], 25
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xfa */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 326, 189, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 122, 86
SHC[2], 3

/* VTTTalk Unicode 0xfb */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 329, 103, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 122, 86
SHC[2], 3

/* VTTTalk Unicode 0xfc */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 323, 81, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 97, 86
SHC[2], 3
SHC[2], 4

/* VTTTalk Unicode 0xf9 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 325, 84, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 122, 86
SHC[2], 3
/* VTTTalk Unicode 0x171 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 327, 167, 0
SVTCA[Y]
CALL[], 32, 4, 1, 1, 122, 86
SHC[2], 3
SHC[2], 4
/* VTTTalk Unicode 0x16b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 334, 77, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 108, 86
SHC[2], 3

/* TT glyph 214, char 0x173 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 10, 106
CALL[], 16, 11, 114
SHP[2], 6
CALL[], 16, 25, 83, 108
SHP[1], 39
CALL[], 20, 6, 114
SHP[2], 42
SRP2[], 16
IP[], 29
CALL[], 29, 28, 106
SHP[2], 41
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x16f */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 207, 0, 0
OFFSET[R], 332, 146, 0
SVTCA[Y]
CALL[], 28, 4, 1, 1, 86, 86
SHC[2], 3
SHC[2], 4

/* TT glyph 216, char 0x76 (v) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 1, 6, 114
SHP[2], 12
SRP2[], 0
IP[], 7
IUP[Y]
IUP[X]
/* TT glyph 217, char 0x77 (w) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 1, 6, 114
SHP[2], 12
SHP[2], 22
SRP1[], 0
SHP[1], 24
IP[], 7
IP[], 29
SRP1[], 7
SHP[1], 17
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x1e83 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 217, 0, 0
OFFSET[R], 326, 269, 0
SVTCA[Y]
CALL[], 34, 11, 1, 1, 121, 86
SHC[2], 1


/* VTTTalk Unicode 0x175 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 217, 0, 0
OFFSET[R], 329, 183, 0
SVTCA[Y]
CALL[], 40, 11, 1, 1, 121, 86
SHC[2], 1

/* VTTTalk Unicode 0x1e85 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 217, 0, 0
OFFSET[R], 323, 161, 0
SVTCA[Y]
CALL[], 34, 11, 1, 1, 96, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0x1e81 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 217, 0, 0
OFFSET[R], 325, 164, 0
SVTCA[Y]
CALL[], 34, 11, 1, 1, 121, 86
SHC[2], 1
/* TT glyph 222, char 0x78 (x) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
SHP[2], 10
CALL[], 2, 6, 114
SHP[2], 7
SRP2[], 10
SLOOP[], 4
IP[], 11, 1, 8, 4
IUP[Y]
IUP[X]
/* TT glyph 223, char 0x79 (y) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 15, 114
CALL[], 6, 6, 114
SHP[2], 13
CALL[], 0, 1, 69, 108
SRP2[], 6
IP[], 5
IP[], 10
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xfd */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 223, 0, 0
OFFSET[R], 326, 147, 0
SVTCA[Y]
CALL[], 21, 6, 1, 1, 122, 86
SHC[2], 1

/* VTTTalk Unicode 0x177 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 223, -1, 0
OFFSET[R], 329, 60, 0
SVTCA[Y]
CALL[], 24, 6, 1, 1, 122, 86
SHC[2], 1


/* VTTTalk Unicode 0xff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 223, 0, 0
OFFSET[R], 323, 39, 0
SVTCA[Y]
CALL[], 18, 6, 1, 1, 97, 86
SHC[2], 1
SHC[2], 2

/* VTTTalk Unicode 0x1ef3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 223, 0, 0
OFFSET[R], 325, 42, 0
SVTCA[Y]
CALL[], 18, 12, 1, 1, 122, 86
SHC[2], 1

/* TT glyph 228, char 0x7a (z) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 10, 114
CALL[], 4, 6, 114
CALL[], 4, 3, 83, 108
CALL[], 0, 7, 83, 108
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x17a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 228, 0, 0
OFFSET[R], 326, 131, 0
SVTCA[Y]
CALL[], 10, 4, 1, 1, 122, 86
SHC[2], 1
/* VTTTalk Unicode 0x17e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 228, 0, 0
OFFSET[R], 330, 40, 0
SVTCA[Y]
CALL[], 10, 4, 1, 1, 122, 86
SHC[2], 1

/* VTTTalk Unicode 0x17c */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 228, 0, 0
OFFSET[R], 324, 128, 0
SVTCA[Y]
CALL[], 10, 4, 1, 1, 104, 86
SHC[2], 1
/* TT glyph 232, char 0x30 (0) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 7, 5, 114
CALL[], 7, 19, 106
CALL[], 0, 13, 106
IUP[Y]
IUP[X]

/* TT glyph 233, char 0x31 (1) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 4, 5, 114
SRP2[], 0
IP[], 3
MDAP[R], 3
CALL[], 3, 2, 106
IP[], 1
IUP[Y]
IUP[X]
/* TT glyph 234, char 0x32 (2) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 12, 114
CALL[], 0, 27, 106
CALL[], 17, 5, 114
CALL[], 17, 10, 106
SRP2[], 0
IP[], 7
IP[], 21
IUP[Y]
IUP[X]
/* TT glyph 235, char 0x33 (3) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 38, 12, 114
SHP[2], 0
CALL[], 38, 4, 106
CALL[], 24, 5, 114
CALL[], 24, 17, 106
SHP[1], 21
SRP2[], 38
IP[], 10
CALL[], 10, 11, 106
IP[], 30
IP[], 31
IUP[Y]
IUP[X]

/* TT glyph 236, char 0x34 (4) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 12, 114
CALL[], 4, 4, 114
SRP1[], 0
IP[], 9
MDAP[R], 9
CALL[], 9, 6, 106
SHP[1], 2
SHP[2], 11
SRP1[], 4
IP[], 13
IUP[Y]
IUP[X]
/* TT glyph 237, char 0x35 (5) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 28
CALL[], 14, 4, 114
CALL[], 14, 17, 106
SRP2[], 28
IP[], 21
MDAP[R], 21
CALL[], 21, 10, 106
CALL[], 28, 4, 106
IUP[Y]
IUP[X]
/* TT glyph 238, char 0x36 (6) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 7, 5, 114
CALL[], 7, 12, 106
SRP2[], 0
IP[], 38
IP[], 33
MDAP[R], 38
CALL[], 38, 29, 106
CALL[], 33, 34, 106
CALL[], 0, 23, 106
SRP1[], 7
SHP[1], 9
IUP[Y]
IUP[X]

/* TT glyph 239, char 0x37 (7) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 12, 114
CALL[], 3, 4, 114
CALL[], 3, 2, 106
IUP[Y]
IUP[X]

/* TT glyph 240, char 0x38 (8) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 12, 5, 114
CALL[], 12, 42, 106
SRP2[], 0
IP[], 30
MDAP[R], 30
CALL[], 30, 36, 106
CALL[], 0, 24, 106
SRP1[], 30
SRP2[], 36
IP[], 6
IP[], 18
IUP[Y]
IUP[X]

/* TT glyph 241, char 0x39 (9) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 34
CALL[], 27, 5, 114
CALL[], 27, 9, 106
SRP2[], 34
IP[], 17
IP[], 21
MDAP[R], 21
CALL[], 21, 15, 106
CALL[], 17, 18, 106
CALL[], 34, 3, 106
IUP[Y]
IUP[X]
/* TT glyph 242, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 4
IP[], 9
MDAP[R], 9
CALL[], 9, 6, 106
SHP[1], 2
SHP[2], 11
SRP1[], 4
IP[], 13
IUP[Y]
IUP[X]

/* TT glyph 243, char 0xb9 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 5
IUP[Y]
IUP[X]
/* TT glyph 244, char 0xb2 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 13
CALL[], 0, 21, 106
CALL[], 13, 8, 106
IUP[Y]
IUP[X]

/* TT glyph 245, char 0xb3 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 22
CALL[], 22, 17, 106
CALL[], 0, 5, 106
SRP2[], 22
IP[], 11
MDAP[R], 11
CALL[], 11, 12, 106
IP[], 28
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xbd */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 243, 0, 0
OFFSET[R], 244, 560, -440
OFFSET[R], 370, -30, 0

/* VTTTalk Unicode 0xbc */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 243, 0, 0
OFFSET[R], 242, -30, 0
OFFSET[R], 370, -33, 0
/* VTTTalk Unicode 0xbe */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 245, 0, 0
OFFSET[R], 242, 0, 0
OFFSET[R], 370, 0, 0
/* TT glyph 249, char 0x2a (*) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 12
CALL[], 15, 16, 114
SHP[2], 3
SRP1[], 12
SHP[1], 0
SHP[2], 9
SHP[1], 6
IUP[Y]
IUP[X]

/* TT glyph 250, char 0x5c (\) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 1, 16, 114
SHP[2], 2
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xb7 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 259, 0, 261
/* TT glyph 252, char 0x2022 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 6
IUP[Y]
IUP[X]
/* TT glyph 253, char 0x3a (:) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 12, 19, 114
CALL[], 6, 7, 114
CALL[], 6, 0, 106
CALL[], 12, 18, 106
IUP[Y]
IUP[X]
/* TT glyph 254, char 0x2c (,) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDRP[m>RBl], 4
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x2026 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 259, 13, 0
OFFSET[R], 259, 265, 0
OFFSET[R], 259, 518, 0

/* TT glyph 256, char 0x21 (!) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 1, 16, 114
CALL[], 4, 19, 114
MDRP[M>RBl], 10
MDRP[m>RWh], 0
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xa1 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 256, 291, 502, -1, 0, 0, -1

/* TT glyph 258, char 0x23 (#) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 8, -1, 114
CALL[], 2, 16, 114
SRP1[], 8
IP[], 13
MDAP[R], 13
CALL[], 13, 12, 106
SRP1[], 2
SRP2[], 8
IP[], 4
MDAP[R], 4
CALL[], 4, 5, 106
SRP1[], 8
SHP[1], 0
SRP1[], 2
SHP[1], 10
IUP[Y]
IUP[X]

/* TT glyph 259, char 0x2e (.) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 19, 114
CALL[], 0, 6, 106
IUP[Y]
IUP[X]

/* TT glyph 260, char 0x3f (?) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 13, 17, 114
CALL[], 13, 8, 106
SHP[1], 11
CALL[], 23, 19, 114
MDRP[M>RBl], 29
MDRP[m>RWh], 0
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xbf */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 260, 459, 493, -1, 0, 0, -1

/* TT glyph 262, char 0x22 (") */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 2
SHP[1], 6
SHP[2], 4
IUP[Y]
IUP[X]
/* TT glyph 263, char 0x27 (') */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 2
IUP[Y]
IUP[X]
/* TT glyph 264, char 0x3b (;) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 6, 7, 114
CALL[], 6, 0, 106
MDAP[R], 12
MDRP[m>RBl], 17
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x2f (/) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 250, 389, 0, -1, 0, 0, 1
/* VTTTalk Unicode 0x5f (_) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 365, 0, -743

/* TT glyph 267, char 0x7b ({) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 13, 16, 114
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x7d (}) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 267, 311, 0, -1, 0, 0, 1
/* TT glyph 269, char 0x5b ([) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 1, 16, 114
CALL[], 1, 4, 106
CALL[], 0, 5, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x5d (]) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 269, 309, 0, -1, 0, 0, 1
/* TT glyph 271, char 0x28 (() */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 6
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x29 ()) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 271, 316, 0, -1, 0, 0, 1
/* VTTTalk Unicode 0x2014 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 274, 500, 0
OFFSET[R], 274, 0, 0

/* VTTTalk Unicode 0x2013 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 275, -72, 0
OFFSET[R], 275, 167, 0

/* TT glyph 275, char 0x2d (-) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDRP[m>RBl], 2
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xad */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 275, 0, 0
/* TT glyph 277, char 0xab */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 3
SHP[1], 9
SHP[2], 6
IUP[Y]
IUP[X]
/* TT glyph 278, char 0xbb */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 1
MDAP[R], 4
SHP[1], 10
SRP1[], 1
SHP[1], 7
IUP[Y]
IUP[X]

/* TT glyph 279, char 0x2039 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 3
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x203a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 279, 351, 0, -1, 0, 0, 1
/* VTTTalk Unicode 0x201e */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 254, 161, 0
OFFSET[R], 254, 0, 0

/* TT glyph 282, char 0x201c */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 5
SHP[1], 13
MDRP[m>RBl], 0
SHP[2], 8
IP[], 9
IP[], 1
IUP[Y]
IUP[X]

/* TT glyph 283, char 0x201d */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
SHP[2], 8
MDRP[m>RBl], 4
SHP[2], 12
IP[], 1
IP[], 9
IUP[Y]
IUP[X]

/* TT glyph 284, char 0x2018 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 5
MDRP[m>RBl], 0
IP[], 1
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x2019 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 254, 25, 615

/* VTTTalk Unicode 0x201a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 254, 0, 0
/* TT glyph 287, char 0x20 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */

/* TT glyph 288, char 0xd */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
/* TT glyph 289, char 0xa2 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 4, 11, 114
CALL[], 10, 7, 114
MDRP[m>RBl], 2
SRP0[], 4
MDRP[m>RBl], 0
CALL[], 4, 23, 105
CALL[], 10, 17, 105
IUP[Y]
IUP[X]

/* TT glyph 290, char 0xa4 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 25, -1, 114
CALL[], 11, -1, 114
SHP[2], 8
SHP[2], 14
SRP1[], 25
SHP[1], 0
SHP[1], 22
CALL[], 11, 34, 106
CALL[], 25, 28, 106
IUP[Y]
IUP[X]

/* TT glyph 291, char 0x24 ($) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 4, 11, 114
CALL[], 23, 5, 114
CALL[], 4, 11, 106
CALL[], 23, 30, 105
SHP[1], 2
SRP1[], 4
SHP[1], 0
IUP[Y]
IUP[X]

/* TT glyph 292, char 0x20ac */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 12, 114
CALL[], 6, 5, 114
CALL[], 6, 13, 106
SRP2[], 0
IP[], 30
MDAP[R], 30
CALL[], 30, 31, 106
SRP1[], 6
SRP2[], 0
IP[], 26
MDAP[R], 26
CALL[], 26, 27, 106
CALL[], 0, 19, 106
IUP[Y]
IUP[X]

/* TT glyph 293, char 0x192 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 15, -1, 114
CALL[], 15, 20, 106
SRP2[], 0
IP[], 10
MDAP[R], 10
CALL[], 10, 9, 106
SHP[2], 26
SHP[1], 23
CALL[], 0, 5, 106
SRP1[], 15
SHP[1], 17
SRP1[], 0
SHP[1], 2
IUP[Y]
IUP[X]
/* TT glyph 294, char 0xa3 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 22, 12, 114
CALL[], 8, 5, 114
CALL[], 8, 15, 106
SRP2[], 22
IP[], 26
MDAP[R], 26
CALL[], 26, 27, 105
CALL[], 22, 23, 106
CALL[], 22, 1, 106
SRP1[], 8
SHP[1], 11
IUP[Y]
IUP[X]

/* TT glyph 295, char 0xa5 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 12, 114
CALL[], 2, 4, 114
SRP1[], 0
IP[], 20
MDAP[R], 20
CALL[], 20, 21, 106
SRP1[], 2
SRP2[], 0
IP[], 16
MDAP[R], 16
CALL[], 16, 17, 106
SRP1[], 2
SHP[1], 13
IUP[Y]
IUP[X]
/* TT glyph 296, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 11, -1, 114
CALL[], 25, -1, 114
SRP1[], 11
SHP[1], 14
SHP[1], 8
SHP[2], 0
SHP[2], 22
CALL[], 11, 34, 106
CALL[], 25, 28, 106
IUP[Y]
IUP[X]

/* TT glyph 297, char 0x2b (+) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 6, -1, 114
SRP1[], 0
IP[], 2
MDAP[R], 2
CALL[], 2, 3, 106
SHP[1], 10
SHP[2], 7
IUP[Y]
IUP[X]
/* TT glyph 298, char 0xd7 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 4, -1, 114
SHP[2], 6
SRP1[], 0
SHP[1], 10
IUP[Y]
IUP[X]

/* TT glyph 299, char 0xf7 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 2, 106
SRP0[], 0
MDRP[m<RWh], 10
CALL[], 10, 4, 106
SRP0[], 2
MDRP[m<RWh], 16
CALL[], 16, 22, 106
IUP[Y]
IUP[X]
/* TT glyph 300, char 0x3d (=) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 5
MDAP[R], 0
CALL[], 5, 4, 106
CALL[], 0, 1, 106
IUP[Y]
IUP[X]
/* TT glyph 301, char 0x3e (>) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 5, -1, 114
CALL[], 5, 4, 106
CALL[], 0, 1, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0x3c (<) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

SOFFSET[R], 301, 702, 0, -1, 0, 0, 1
/* TT glyph 303, char 0xb1 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 18, 114
CALL[], 10, -1, 114
SRP1[], 0
IP[], 6
MDAP[R], 6
CALL[], 6, 7, 106
SHP[1], 14
SHP[2], 11
CALL[], 0, 2, 106
IUP[Y]
IUP[X]
/* TT glyph 304, char 0x7e (~) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MIAP[R], 14, 17
SHP[1], 20
CALL[], 14, 7, 106
SMD[], 128
SRP0[], 14
MDRP[m>RBl], 3
SHP[2], 10
CALL[], 3, 18, 106
IUP[Y]
IUP[X]

/* TT glyph 305, char 0xac */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 3
CALL[], 3, 2, 106
IUP[Y]
IUP[X]
/* TT glyph 306, char 0xb5 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 3, -1, 114
CALL[], 8, 6, 114
CALL[], 4, 19, 114
CALL[], 4, 13, 69, 108
SHP[1], 18
SRP1[], 8
SHP[1], 30
SRP2[], 4
IP[], 17
CALL[], 17, 29, 105
SHP[2], 23
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x25 (%) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 370, -55, 0
OFFSET[R], 371, 428, -383
OFFSET[R], 371, 0, 0

/* VTTTalk Unicode 0x2030 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 307, 0, 0
OFFSET[R], 371, 828, -384
/* TT glyph 309, char 0x40 (@) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 21
MDAP[R], 27
CALL[], 51, 19, 114
CALL[], 27, 10, 106
SRP2[], 21
IP[], 44
MDAP[R], 44
CALL[], 44, 37, 106
SRP1[], 27
SRP2[], 21
IP[], 62
MDAP[R], 62
CALL[], 62, 57, 106
CALL[], 51, 68, 106
CALL[], 21, 16, 106
IUP[Y]
IUP[X]

/* TT glyph 310, char 0x26 (&) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 4, 19, 114
CALL[], 32, 17, 114
CALL[], 32, 17, 106
CALL[], 5, 44, 106
SHP[1], 25
SRP2[], 32
IP[], 1
IUP[Y]
IUP[X]
/* TT glyph 311, char 0xb6 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 18, 114
CALL[], 7, 16, 114
CALL[], 7, 14, 106
SHP[2], 10
SRP1[], 0
SHP[1], 12
IUP[Y]
IUP[X]

/* TT glyph 312, char 0xa7 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 40
CALL[], 40, 45, 106
CALL[], 0, 5, 106
SRP2[], 40
IP[], 28
IP[], 17
IUP[Y]
IUP[X]
/* TT glyph 313, char 0xa9 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 8, 17, 114
CALL[], 8, 24, 106
CALL[], 8, 38, 105
CALL[], 38, 45, 106
CALL[], 0, 32, 105
CALL[], 32, 51, 106
CALL[], 0, 16, 106
IUP[Y]
IUP[X]
/* TT glyph 314, char 0xae */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, 11, 114
CALL[], 8, 17, 114
CALL[], 8, 24, 106
CALL[], 8, 37, 105
CALL[], 37, 53, 106
SRP1[], 8
SRP2[], 0
IP[], 45
MDAP[R], 45
CALL[], 45, 47, 106
CALL[], 0, 16, 106
SRP1[], 45
SHP[1], 33
CALL[], 0, 36, 105
SHP[2], 32
IUP[Y]
IUP[X]
/* TT glyph 315, char 0x2122 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 19, 16, 114
CALL[], 19, 18, 106
SHP[2], 22
SHP[1], 6
SHP[1], 2
SRP1[], 0
SHP[1], 12
SHP[1], 8
SHP[1], 16
SRP2[], 19
IP[], 4
IP[], 14
SRP1[], 14
SHP[1], 10
IUP[Y]
IUP[X]
/* TT glyph 316, char 0xb0 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
MIAP[R], 6, 17
CALL[], 6, 18, 106
CALL[], 0, 12, 106
IUP[Y]
IUP[X]
/* TT glyph 317, char 0x7c (|) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 2, -1, 114
IUP[Y]
IUP[X]
/* TT glyph 318, char 0xa6 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 6, -1, 114
IUP[Y]
IUP[X]
/* TT glyph 319, char 0x2020 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 9, -1, 114
CALL[], 3, -1, 114
SRP1[], 9
IP[], 0
CALL[], 0, 11, 105
SHP[1], 5
SHP[2], 6
IUP[Y]
IUP[X]

/* TT glyph 320, char 0x2021 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 22, -1, 114
CALL[], 3, 16, 114
SRP1[], 22
IP[], 0
CALL[], 0, 11, 105
SHP[1], 5
SHP[2], 6
SRP1[], 3
SRP2[], 22
IP[], 13
CALL[], 13, 12, 105
SHP[1], 18
SHP[2], 19
IUP[Y]
IUP[X]

/* TT glyph 321, char 0x5e (^) */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 1, 17, 114
SRP1[], 0
SHP[1], 4
IP[], 6
IUP[Y]
IUP[X]
/* TT glyph 322, char 0xe010 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 16, -1, 114
CALL[], 18, -1, 114
SRP1[], 16
IP[], 8
MDAP[R], 8
CALL[], 8, 28, 106
SRP1[], 18
SRP2[], 16
IP[], 0
MDAP[R], 0
CALL[], 0, 20, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x308 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 361, 0, 0

/* VTTTalk Unicode 0x307 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 362, 0, 0

/* VTTTalk Unicode 0x300 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 363, 0, 0

/* VTTTalk Unicode 0x301 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 356, -10, 0

/* VTTTalk Unicode 0x30b */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 364, 0, 0

/* TT glyph 328, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 2
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x302 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 360, 0, 0

/* VTTTalk Unicode 0x30c */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 358, 0, 0

/* VTTTalk Unicode 0x306 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 357, 0, 0

/* VTTTalk Unicode 0x30a */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 367, 0, -15

/* VTTTalk Unicode 0x303 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 368, 0, 0

/* VTTTalk Unicode 0x304 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 365, 0, 0

/* TT glyph 335, char 0x312 */
/* VTT 6.20 compiler Mon Mar 13 19:47:52 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 5, -1, 114
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0x326 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 254, 0, -177
/* VTTTalk Unicode 0x327 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 359, 39, 0
/* VTTTalk Unicode 0x328 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 366, 0, 0

/* TT glyph 339, char 0x335 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 2, 106
IUP[Y]
IUP[X]
/* TT glyph 340, char 0x336 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 2, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 323, 0, 0
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 324, 0, 0
/* TT glyph 343, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 2
IUP[Y]
IUP[X]

/* TT glyph 344, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 2
IUP[Y]
IUP[X]

/* TT glyph 345, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MIAP[R], 4, 16
SHP[1], 0
SMD[], 128
MDRP[m>RBl], 5
SHP[2], 1
IUP[Y]
IUP[X]

/* TT glyph 346, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 4
SHP[1], 0
SMD[], 128
MDRP[m>RBl], 1
IP[], 5
IUP[Y]
IUP[X]

/* TT glyph 347, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 4
SHP[2], 1
SRP2[], 1
IP[], 3
IUP[Y]
IUP[X]

/* TT glyph 348, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 5, 106
SMD[], 128
SRP0[], 0
MDRP[m>RGr], 3
SHP[2], 7
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 332, 0, 210
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 333, 0, 0
/* TT glyph 351, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 2, 106
IUP[Y]
IUP[X]

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 335, 0, 0
/* TT glyph 353, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 4, -1, 114
CALL[], 0, -1, 114
IUP[Y]
IUP[X]
/* TT glyph 354, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 14
MDRP[m>RGr], 0
CALL[], 0, 6, 106
SRP2[], 14
IP[], 10
MDAP[R], 10
CALL[], 10, 16, 106
IUP[Y]
IUP[X]

/* TT glyph 355, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 5, -1, 114
CALL[], 0, 11, 106
IUP[Y]
IUP[X]

/* TT glyph 356, char 0xb4 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 2
IUP[Y]
IUP[X]

/* TT glyph 357, char 0x2d8 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 6, 106
SMD[], 128
SRP0[], 0
MDRP[m>RGr], 4
SHP[2], 10
IUP[Y]
IUP[X]

/* TT glyph 358, char 0x2c7 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 1, -1, 114
SHP[2], 4
SRP1[], 0
IP[], 3
IUP[Y]
IUP[X]

/* TT glyph 359, char 0xb8 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 14, -1, 114
CALL[], 14, 10, 106
CALL[], 0, 6, 106
SHP[1], 3
IUP[Y]
IUP[X]

/* TT glyph 360, char 0x2c6 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SHP[2], 4
SMD[], 128
MDRP[m>RBl], 2
IP[], 5
IUP[Y]
IUP[X]
/* TT glyph 361, char 0xa8 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SHP[2], 12
CALL[], 0, 6, 106
SHP[2], 18
IUP[Y]
IUP[X]

/* TT glyph 362, char 0x2d9 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 6, 106
IUP[Y]
IUP[X]
/* TT glyph 363, char 0x60 (`) */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SMD[], 128
MDRP[m>RBl], 2
IUP[Y]
IUP[X]

/* TT glyph 364, char 0x2dd */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 2, -1, 114
SHP[2], 6
SRP1[], 0
SHP[1], 4
IUP[Y]
IUP[X]

/* TT glyph 365, char 0xaf */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
MDRP[m>RBl], 2
IUP[Y]
IUP[X]
/* TT glyph 366, char 0x2db */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 0, -1, 114
CALL[], 5, 18, 114
CALL[], 0, 11, 106
IUP[Y]
IUP[X]
/* TT glyph 367, char 0x2da */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
CALL[], 0, 12, 106
SMD[], 128
SRP0[], 0
MDRP[m>RGr], 6
CALL[], 6, 18, 106
IUP[Y]
IUP[X]
/* TT glyph 368, char 0x2dc */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
SHP[2], 7
CALL[], 0, 14, 106
SMD[], 128
SRP0[], 0
MDRP[m>RBl], 10
CALL[], 10, 4, 106
SHP[1], 16
IUP[Y]
IUP[X]
/* TT glyph 369, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 4, -1, 114
CALL[], 0, -1, 114
IUP[Y]
IUP[X]
/* TT glyph 370, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
CALL[], 1, -1, 114
CALL[], 3, -1, 114
IUP[Y]
IUP[X]
/* TT glyph 371, char 0xffff */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */
SVTCA[Y]
MDAP[R], 0
MDAP[R], 6
CALL[], 6, 18, 106
CALL[], 0, 12, 106
IUP[Y]
IUP[X]
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */


/* This glyph is used to display the current PPEm dynamically

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik

*/

/* Components for MSD */
OFFSET[R], 232, 0, 0
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 2nd Digit */

OFFSET[R], 232, 0, 0 /* 1104 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 3rd Digit */
OFFSET[R], 232, 0, 0 /* 2208 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for LSD */
OFFSET[R], 232, 0, 0  /* 3312 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Initialize Digit Code */
CALL[], 158

/*
For the second digit position, we'll get the CVT width, round it
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 284       /* Starting point number */
DUP[]            /* Number of points happens to be the same as starting point */
#PUSH, 157       /* Shift Function */
CALL[]

/*
For the third digit position, we'll get the CVT width, round it
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 568, 284, 157 /* Starting point, Point count, Shift Function */
CALL[]

/*
For the final digit position, we'll get the CVT width, round it
and then duplicate the value twice and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
ADD[]
ADD[]
DUP[]            /* Save a copy for moving the RSB later */
ROLL[]
ROLL[]
#PUSH, 852, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]
/*
Update the RSB point
*/
SVTCA[X]
#PUSH, 22
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 1137      /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON

/* Code to remove segments of the glyph */
SVTCA[Y]
MPPEM[]
/*
POP[],*
#PUSH,1111
*/
DUP[],*
/* Filter out numbers greater than 10000 */
#PUSH,6400
DIV[],*,*
DUP[],*
/* Get MSD (4) */
#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*
/* 3RD DIGIT on top */
ROLL[],*,*,*
DUP[],*

/* Filter out numbers greater than 100 */
#PUSH,6400
DIV[],*,*
#PUSH,6400
MUL[],*,*
SUB[],*,*
DUP[],*
/* Get MSD */
#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*
/* LSD on top */

#PUSH,21
RS[],*
ADD[],*,*
#PUSH,852                                                        /* LSD Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,568                                                        /* 2ND Digit Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,284                                                        /* 3RD Digit Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,0                                                            /* MSD Base point number */
SWAP[],*,*
CALL[],*,*
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 373, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:35 2016 */


/* TT glyph 376, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:35 2016 */
/* This glyph is used to display the current point size dynamically

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

*/

/* Components for MSD */
OFFSET[R], 232, 0, 0
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 2nd Digit */

OFFSET[R], 232, 0, 0 /* 552 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for LSD */
OFFSET[R], 232, 0, 0  /* 1104 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Initialize Digit Code */
CALL[], 158

/*
For the second digit position, we'll get the CVT width, round it
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 284       /* Starting point number */
DUP[]            /* Number of points happens to be the same as starting point */
#PUSH, 157       /* Shift Function */
CALL[]

/*
For the final digit position, we'll get the CVT width, round it
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
DUP[]            /* Save a copy for moving the RSB later */
ROLL[]
ROLL[]
#PUSH, 568, 284, 157 /* Starting point, Point count, Shift Function */
CALL[]
/*
Update the RSB point
*/
SVTCA[X]
#PUSH, 22
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 853       /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON

/* Code to remove segments of the glyph */
#PUSH, 2
RS[],*
/*POP[],*
#PUSH,9578*/
DUP[],*
/* Filter out numbers greater than 1000 */
#PUSH, 1000, 4096 /* Assembler bug, must have ints < 32K */
MUL[],*,*
DIV[],*,*
#PUSH, 4096
MUL[],*,*
#PUSH, 1000
MUL[],*,*
SUB[],*,*
/* Stack now has only the lower three digits */
DUP[],*
/* Divide by 100 to get the first digit */
#PUSH,6400
DIV[],*,*
DUP[],*
#PUSH,6400
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*
DUP[],*
/* Get 2SD */
#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*
/* LSD on top */

#PUSH,21
RS[],*
ADD[],*,*
#PUSH,568                                                        /* 2ND Digit Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,284                                                        /* 3RD Digit Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,0                                                            /* MSD Base point number */
SWAP[],*,*
CALL[],*,*
/* TT glyph 374, char 0xe002 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */

/* TT glyph 375, char 0xe003 */
/* VTT 6.20 compiler Mon Mar 13 19:47:53 2017 */

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 376, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:35 2016 */

      /* This glyph is used to display the current point size dynamically

      Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
      Version 2.0        2013-02-24       GregH       Updated for better digits
      Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
      Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

      */

      /* Components for MSD */
      OFFSET[R], 232, 0, 0
      OFFSET[R], 233, 0, 0
      OFFSET[R], 234, 0, 0
      OFFSET[R], 235, 0, 0
      OFFSET[R], 236, 0, 0
      OFFSET[R], 237, 0, 0
      OFFSET[R], 238, 0, 0
      OFFSET[R], 239, 0, 0
      OFFSET[R], 240, 0, 0
      OFFSET[R], 241, 0, 0

      /* Components for 2nd Digit */
      /*
      OFFSET[R], 232, 1104, 0
      OFFSET[R], 233, 1104, 0
      OFFSET[R], 234, 1104, 0
      OFFSET[R], 235, 1104, 0
      OFFSET[R], 236, 1104, 0
      OFFSET[R], 238, 1104, 0
      OFFSET[R], 238, 1104, 0
      OFFSET[R], 239, 1104, 0
      OFFSET[R], 240, 1104, 0
      OFFSET[R], 241, 1104, 0
      */

      OFFSET[R], 232, 0, 0 /* 552 */
      OFFSET[R], 233, 0, 0
      OFFSET[R], 234, 0, 0
      OFFSET[R], 235, 0, 0
      OFFSET[R], 236, 0, 0
      OFFSET[R], 237, 0, 0
      OFFSET[R], 238, 0, 0
      OFFSET[R], 239, 0, 0
      OFFSET[R], 240, 0, 0
      OFFSET[R], 241, 0, 0

      /* Components for 3rd Digit */
      /*
      OFFSET[R], 232, 2208, 0
      OFFSET[R], 233, 2208, 0
      OFFSET[R], 234, 2208, 0
      OFFSET[R], 235, 2208, 0
      OFFSET[R], 236, 2208, 0
      OFFSET[R], 237, 2208, 0
      OFFSET[R], 238, 2208, 0
      OFFSET[R], 239, 2208, 0
      OFFSET[R], 240, 2208, 0
      OFFSET[R], 241, 2208, 0
      */
      OFFSET[R], 232, 0, 0 /* 1104 */
      OFFSET[R], 233, 0, 0
      OFFSET[R], 234, 0, 0
      OFFSET[R], 235, 0, 0
      OFFSET[R], 236, 0, 0
      OFFSET[R], 237, 0, 0
      OFFSET[R], 238, 0, 0
      OFFSET[R], 239, 0, 0
      OFFSET[R], 240, 0, 0
      OFFSET[R], 241, 0, 0

      /* Components for LSD */
      /*
      OFFSET[R], 232, 3312, 0
      OFFSET[R], 233, 3312, 0
      OFFSET[R], 234, 3312, 0
      OFFSET[R], 235, 3312, 0
      OFFSET[R], 236, 3312, 0
      OFFSET[R], 237, 3312, 0
      OFFSET[R], 238, 3312, 0
      OFFSET[R], 239, 3312, 0
      OFFSET[R], 240, 3312, 0
      OFFSET[R], 241, 3312, 0
      */
      OFFSET[R], 232, 0, 0  /* 1656 */
      OFFSET[R], 233, 0, 0
      OFFSET[R], 234, 0, 0
      OFFSET[R], 235, 0, 0
      OFFSET[R], 236, 0, 0
      OFFSET[R], 237, 0, 0
      OFFSET[R], 238, 0, 0
      OFFSET[R], 239, 0, 0
      OFFSET[R], 240, 0, 0
      OFFSET[R], 241, 0, 0

      /* Initialize Digit Code */
      CALL[], 158

      /*
      For the second digit position, we'll get the CVT width, round it
      and then pass it in to the shift function for that digit position.
      */
      #PUSHOFF
      #PUSH, 1, 22     /* touch boolean and storage for CVT */
      RS[]
      RCVT[]           /* The CVT value will be updated for variations */
      ROUND[Gr]
      #PUSH, 284       /* Starting point number */
      DUP[]            /* Number of points happens to be the same as starting point */
      #PUSH, 157       /* Shift Function */
      CALL[]

      /*
      For the third digit position, we'll get the CVT width, round it
      and then duplicate the value and add. This cummulation of rounding
      keeps the distance between digits consistent. (e.g. the same
      rounding error for each digit. We then pass it in to the shift
      function for that digit position.
      */
      #PUSH, 1, 22     /* touch boolean and storage for CVT */
      RS[]
      RCVT[]           /* The CVT value will be updated for variations */
      ROUND[Gr]
      DUP[]
      ADD[]
      #PUSH, 568, 284, 157 /* Starting point, Point count, Shift Function */
      CALL[]

      /*
      For the final digit position, we'll get the CVT width, round it
      and then duplicate the value twice and add. This cummulation of rounding
      keeps the distance between digits consistent. (e.g. the same
      rounding error for each digit. We then pass it in to the shift
      function for that digit position.
      */
      #PUSH, 1, 22     /* touch boolean and storage for CVT */
      RS[]
      RCVT[]           /* The CVT value will be updated for variations */
      ROUND[Gr]
      DUP[]
      DUP[]
      ADD[]
      ADD[]
      DUP[]            /* Save a copy for moving the RSB later */
      ROLL[]
      ROLL[]
      #PUSH, 852, 284, 157  /* Starting point, Point count, Shift Function */
      CALL[]
      /*
      Update the RSB point
      */
      SVTCA[X]
      #PUSH, 22
      RS[]
      RCVT[]           /* The CVT value will be updated for variations */
      ROUND[Gr]
      ADD[]
      #PUSH, 1137      /* Right Side Bearing Point */
      SWAP[]
      SCFS[]

      #PUSHON
      /* Code to remove segments of the glyph */
      SVTCA[Y]
      MPS[]
      /*POP[],*
      #PUSH,9578*/
      DUP[],*
      /* Filter out numbers greater than 10000 */
      #PUSH,6400
      DIV[],*,*
      DUP[],*
      /* Get MSD (4) */
      #PUSH,640
      DIV[],*,*
      DUP[],*
      #PUSH,640
      MUL[],*,*
      ROLL[],*,*,*
      SWAP[],*,*
      SUB[],*,*
      /* 3RD DIGIT on top */
      ROLL[],*,*,*
      DUP[],*

      /* Filter out numbers greater than 100 */
      #PUSH,6400
      DIV[],*,*
      #PUSH,6400
      MUL[],*,*
      SUB[],*,*
      DUP[],*
      /* Get MSD */
      #PUSH,640
      DIV[],*,*
      DUP[],*
      #PUSH,640
      MUL[],*,*
      ROLL[],*,*,*
      SWAP[],*,*
      SUB[],*,*
      /* LSD on top */

      #PUSH,21
      RS[],*
      ADD[],*,*
      #PUSH,852                                                        /* LSD Base point number */
      SWAP[],*,*
      CALL[],*,*
      #PUSH,21
      RS[],*
      ADD[],*,*
      #PUSH,568                                                        /* 2ND Digit Base point number */
      SWAP[],*,*
      CALL[],*,*
      #PUSH,21
      RS[],*
      ADD[],*,*
      #PUSH,284                                                        /* 3RD Digit Base point number */
      SWAP[],*,*
      CALL[],*,*
      #PUSH,21
      RS[],*
      ADD[],*,*
      #PUSH,0                                                            /* MSD Base point number */
      SWAP[],*,*
      CALL[],*,*

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 233, 0, 0
OFFSET[R], 259, 552, 0
OFFSET[R], 232, 774, 0
OFFSET[R], 234, 1326, 0
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 378, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:36 2016 */

/* This glyph is used to display the current version of the TrueType
   rasterizer as reported by GETINFO

   Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
   Version 2.0        2013-02-27       GregH       Update for better glyphs
   Version 2.10       2016-07-15       GregH       Added support for font variations CVAR

*/

 /* Components for MSD */
 OFFSET[R], 232, 0, 0
 OFFSET[R], 233, 0, 0
 OFFSET[R], 234, 0, 0
 OFFSET[R], 235, 0, 0
 OFFSET[R], 236, 0, 0
 OFFSET[R], 237, 0, 0
 OFFSET[R], 238, 0, 0
 OFFSET[R], 239, 0, 0
 OFFSET[R], 240, 0, 0
 OFFSET[R], 241, 0, 0

 /* Components for LSD */

 OFFSET[R], 232, 0, 0 /* 552 */
 OFFSET[R], 233, 0, 0
 OFFSET[R], 234, 0, 0
 OFFSET[R], 235, 0, 0
 OFFSET[R], 236, 0, 0
 OFFSET[R], 237, 0, 0
 OFFSET[R], 238, 0, 0
 OFFSET[R], 239, 0, 0
 OFFSET[R], 240, 0, 0
 OFFSET[R], 241, 0, 0
        
/* Initialize Digit Code */
CALL[], 158

SVTCA[X]

/* 
For the second digit position, we'll get the CVT width, round it 
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 284       /* Starting point number */
DUP[]            /* Number of points happens to be the same as starting point */
#PUSH, 157       /* Shift Function */
CALL[]
/*
Update the RSB point
*/
#PUSH, 22
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 569       /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON

/* Code to remove segments of the glyph */

#PUSH, 1
GETINFO[],*
/*#PUSH,88*/
DUP[],*

/* Filter out numbers greater than 100 */
#PUSH,6400
DIV[],*,*
#PUSH,6400
MUL[],*,*
SUB[],*,*
DUP[],* 
/* Get MSD */
#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*
/* LSD on top */

#PUSH,21
RS[],*
ADD[],*,*
#PUSH,284                                                        /* LSD Base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,0                                                          /* MSD Digit Base point number */
SWAP[],*,*
CALL[],*,*

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 379, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:36 2016 */

/* This glyph is used to display the current variations axis value. AXIS 1.

The glyph requires 11 functions in the font program, with 10 being responsible
for each of the digits. 10 of the functions must be on function numbers that are a
multiple of 10.

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.02       2016-05-04       GregH       Variations Axis Support
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

*/
/* Components for + and - */
OFFSET[R], 297, -291, 0 /* -291 */ /* SP: 0 */
OFFSET[R], 275, 0, 0 /* 0 */

/* Components for MSD */
OFFSET[R], 232, 0, 0 /* 701 */ /* SP: 16 */
OFFSET[R], 233, 0, 0

/* Components for Decimal Point */
OFFSET[R], 259, 0, 0 /* 1253 */ /* SP:48 */

/* Components for 2nd Digit */

OFFSET[R], 232, 0, 0 /* 1475 */ /* SP: 60 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 3rd Digit */

OFFSET[R], 232, 0, 0 /* 2027 */ /* SP: 344 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 4th Digit */

OFFSET[R], 232, 0, 0 /* 2579 */ /* SP: 628 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for LSD */

OFFSET[R], 232, 0, 0 /* 3131 */ /* SP: 912 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Initialize Digit Code */
CALL[], 158

/* 
For the second digit position, we'll get the CVT width, round it 
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 23     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ROLL[]           /* Save Value for next shift */
SWAP[]
#PUSH, 16, 32, 157 /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the third digit position, we'll get the CVT width, round it 
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1         /* touch boolean */
SWAP[]
#PUSH, 22        /* Storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]            /* Add the value from the previous char to the current */
#PUSH, 48, 12, 157 /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the fourth digit position, we'll get the CVT width, round it 
and then duplicate the value twice and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 60, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the fifth digit position, we'll get the CVT width, round it 
and then duplicate the value three times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 344, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the sixth digit position, we'll get the CVT width, round it 
and then duplicate the value four times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
ADD[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 628, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the seventh digit position, we'll get the CVT width, round it 
and then duplicate the value five times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
DUP[]
ADD[]
ADD[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
DUP[]
ROLL[]
ROLL[]
#PUSH, 912, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

SVTCA[X]
#PUSH, 22
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 1197      /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON
#BEGIN

/* Code to remove segments of the glyph */
CALL[], 1, 190             /* Get the axis value for index 1 */

DUP[],*
DUP[],*

/* If negative, absolute value and display negative, otherwise plus sign. */

#PUSH, 0
LT[],*,*
IF[],*
#BEGIN
#PUSHOFF
POP[]
#PUSH,-64
MUL[]
DUP[]
#PUSH, 0, 12, 20
RS[]
CALL[]
#PUSHON
#END
ELSE[]
#BEGIN
#PUSHOFF
#PUSH, 12, 4, 20
RS[]
CALL[]
#PUSHON
#END
EIF[]

/* If +/- 1, then display digit one, otherwise zero */

#PUSH, 16384
SUB[],*,*
IF[],*
#BEGIN
#PUSHOFF
#PUSH, 41, 7, 20
RS[]
CALL[]
#PUSHON
#END
ELSE[]
#BEGIN
#PUSHOFF
#PUSH, 16, 25, 20
RS[]
CALL[]
#PUSHON
#END
EIF[]

/* Multiply Axis Value by 10000, to get 4 digits of decimal accuracy */
#PUSH, 6400,6400
MUL[],*,*
MUL[],*,*
/* Divide by 16384 to convert 2.14 to decimal */
#PUSH, 16384, 4096
MUL[],*,*
DIV[],*,*
DUP[],*

/* Special case, if 1.0000, convert it to zero (the one was already displayed) */

#PUSH,10000
EQ[],*,*
IF[],*
#BEGIN
#PUSHOFF
POP[]
#PUSH,0
#PUSHON
#END
EIF[]
DUP[],*

/* Filter out numbers greater than 10000 */

#PUSH,6400
DIV[],*,*
DUP[],*

/* Get MSD (4) */

#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*

/* 3RD DIGIT on top */

ROLL[],*,*,*
DUP[],*

/* Filter out numbers greater than 100 */

#PUSH,6400
DIV[],*,*
#PUSH,6400
MUL[],*,*
SUB[],*,*
DUP[],*

/* Get MSD */

#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*

/* LSD on top */

#PUSH,21
RS[],*
ADD[],*,*
#PUSH,912                                                       /* LSD absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,628                                                        /* 2ND Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,344                                                        /* 3RD Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,60                                                            /* MSD absolute base point number */
SWAP[],*,*
CALL[],*,*
#END

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 380, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:36 2016 */


/* This glyph is used to display the current variations axis value. AXIS 2.

The glyph requires 11 functions in the font program, with 10 being responsible
for each of the digits. 10 of the functions must be on function numbers that are a
multiple of 10.

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.02       2016-05-04       GregH       Variations Axis Support
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

*/
/* Components for + and - */
OFFSET[R], 297, -291, 0 /* -291 */ /* SP: 0 */
OFFSET[R], 275, 0, 0 /* 0 */

/* Components for MSD */
OFFSET[R], 232, 0, 0 /* 701 */ /* SP: 16 */
OFFSET[R], 233, 0, 0

/* Components for Decimal Point */
OFFSET[R], 259, 0, 0 /* 1253 */ /* SP:48 */

/* Components for 2nd Digit */

OFFSET[R], 232, 0, 0 /* 1475 */ /* SP: 60 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 3rd Digit */

OFFSET[R], 232, 0, 0 /* 2027 */ /* SP: 344 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for 4th Digit */

OFFSET[R], 232, 0, 0 /* 2579 */ /* SP: 628 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Components for LSD */

OFFSET[R], 232, 0, 0 /* 3131 */ /* SP: 912 */
OFFSET[R], 233, 0, 0
OFFSET[R], 234, 0, 0
OFFSET[R], 235, 0, 0
OFFSET[R], 236, 0, 0
OFFSET[R], 237, 0, 0
OFFSET[R], 238, 0, 0
OFFSET[R], 239, 0, 0
OFFSET[R], 240, 0, 0
OFFSET[R], 241, 0, 0

/* Initialize Digit Code */
CALL[], 158

/* 
For the second digit position, we'll get the CVT width, round it 
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 23     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ROLL[]           /* Save Value for next shift */
SWAP[]
#PUSH, 16, 32, 157 /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the third digit position, we'll get the CVT width, round it 
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1         /* touch boolean */
SWAP[]
#PUSH, 22        /* Storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]            /* Add the value from the previous char to the current */
#PUSH, 48, 12, 157 /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the fourth digit position, we'll get the CVT width, round it 
and then duplicate the value twice and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 60, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the fifth digit position, we'll get the CVT width, round it 
and then duplicate the value three times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 344, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the sixth digit position, we'll get the CVT width, round it 
and then duplicate the value four times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
ADD[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
#PUSH, 628, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

/* 
For the seventh digit position, we'll get the CVT width, round it 
and then duplicate the value five times and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same 
rounding error for each digit. We then pass it in to the shift 
function for that digit position.
*/
#PUSH, 1, 22     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
DUP[]
ADD[]
ADD[]
ADD[]
#PUSH, 23
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 24
RS[]
RCVT[]
ROUND[Gr]
ADD[]
DUP[]
ROLL[]
ROLL[]
#PUSH, 912, 284, 157  /* Starting point, Point count, Shift Function */
CALL[]

SVTCA[X]
#PUSH, 22
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 1197      /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON
#BEGIN

/* Code to remove segments of the glyph */
CALL[], 2, 190             /* Get the axis value for index 1 */

DUP[],*
DUP[],*

/* If negative, absolute value and display negative, otherwise plus sign. */

#PUSH, 0
LT[],*,*
IF[],*
#BEGIN
#PUSHOFF
POP[]
#PUSH,-64
MUL[]
DUP[]
#PUSH, 0, 12, 20
RS[]
CALL[]
#PUSHON
#END
ELSE[]
#BEGIN
#PUSHOFF
#PUSH, 12, 4, 20
RS[]
CALL[]
#PUSHON
#END
EIF[]

/* If +/- 1, then display digit one, otherwise zero */

#PUSH, 16384
SUB[],*,*
IF[],*
#BEGIN
#PUSHOFF
#PUSH, 41, 7, 20
RS[]
CALL[]
#PUSHON
#END
ELSE[]
#BEGIN
#PUSHOFF
#PUSH, 16, 25, 20
RS[]
CALL[]
#PUSHON
#END
EIF[]

/* Multiply Axis Value by 10000, to get 4 digits of decimal accuracy */
#PUSH, 6400,6400
MUL[],*,*
MUL[],*,*
/* Divide by 16384 to convert 2.14 to decimal */
#PUSH, 16384, 4096
MUL[],*,*
DIV[],*,*
DUP[],*

/* Special case, if 1.0000, convert it to zero (the one was already displayed) */

#PUSH,10000
EQ[],*,*
IF[],*
#BEGIN
#PUSHOFF
POP[]
#PUSH,0
#PUSHON
#END
EIF[]
DUP[],*

/* Filter out numbers greater than 10000 */

#PUSH,6400
DIV[],*,*
DUP[],*

/* Get MSD (4) */

#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*

/* 3RD DIGIT on top */

ROLL[],*,*,*
DUP[],*

/* Filter out numbers greater than 100 */

#PUSH,6400
DIV[],*,*
#PUSH,6400
MUL[],*,*
SUB[],*,*
DUP[],*

/* Get MSD */

#PUSH,640
DIV[],*,*
DUP[],*
#PUSH,640
MUL[],*,*
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*

/* LSD on top */

#PUSH,21
RS[],*
ADD[],*,*
#PUSH,912                                                       /* LSD absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,628                                                        /* 2ND Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,344                                                        /* 3RD Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
#PUSH,21
RS[],*
ADD[],*,*
#PUSH,60                                                            /* MSD absolute base point number */
SWAP[],*,*
CALL[],*,*
#END
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

OFFSET[R], 80, 0, 0
OFFSET[R], 136, 544, 0
OFFSET[R], 166, 1080, 0
OFFSET[R], 115, 1328, 0
OFFSET[R], 217, 1849, 0
OFFSET[R], 152, 2589, 0
OFFSET[R], 164, 2837, 0
OFFSET[R], 99, 3610, 0
OFFSET[R], 115, 4163, 0
OFFSET[R], 192, 4684, 0
OFFSET[R], 152, 5040, 0
OFFSET[R], 115, 5288, 0
OFFSET[R], 202, 5809, 0
OFFSET[R], 152, 6156, 0
OFFSET[R], 179, 6404, 0
OFFSET[R], 173, 7004, 0
OFFSET[R], 196, 7584, 0
OFFSET[R], 202, 8300, 0
OFFSET[R], 136, 8647, 0
OFFSET[R], 196, 9183, 0
OFFSET[R], 202, 9618, 0

/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 379, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:36 2016 */

/* This glyph is used to display the current variations axis value. AXIS 1.

The glyph requires 11 functions in the font program, with 10 being responsible
for each of the digits. 10 of the functions must be on function numbers that are a
multiple of 10.

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.02       2016-05-04       GregH       Variations Axis Support
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

*/
/* X-coordinates for offsets are (new LSB) - (old LSB) */
/* Components for 1st Digit */ 

OFFSET[R], 232,  55, 0 /* 0 */ /* SP: 0 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for 2nd Digit */

OFFSET[R], 232,  55, 0 /* 660 */ /* SP: 402 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for 3rd Digit */

OFFSET[R], 232,  55, 0 /* 1320 */ /* SP: 804 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for LSD */

OFFSET[R], 232,  55, 0 /* 1980 */ /* SP: 1206 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Initialize Digit Code */
CALL[], 158

/* CALL[], 156 */
/*
For the second digit position, we'll get the CVT width, round it
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 401       /* Starting point number */
DUP[]            /* Number of points happens to be the same as starting point */
#PUSH, 157       /* Shift Function */
CALL[]

/*
For the third digit position, we'll get the CVT width, round it
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 802, 401, 157 /* Starting point, Point count, Shift Function */
CALL[]

/*
For the final digit position, we'll get the CVT width, round it
and then duplicate the value twice and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
ADD[]
ADD[]
DUP[]            /* Save a copy for moving the RSB later */
ROLL[]
ROLL[]
#PUSH, 1203, 401, 157  /* Starting point, Point count, Shift Function */
CALL[]
/*
Update the RSB point
*/
SVTCA[X]
#PUSH, 26
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 1605      /* Right Side Bearing Point */
SWAP[]
SCFS[]

SVTCA[X]
#PUSH, 26
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 256       /* Multiply by 4 for each digit slot */
MUL[]
#PUSH, 1605      /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON
#BEGIN

/* Code to remove segments of the glyph */
CALL[], 1, 190             /* Get the axis value for index 1 */
/*#PUSH, 0x7FFF*/

/* Check for a negative number */
DUP[],*
#PUSH, 0
LT[],*,*
IF[],*
#BEGIN
  #PUSH, 0xFFFF
  #PUSH, 0x2000, 0x800, 0x400  /* Multiply in 26.6 by 2^16  */
  MUL[],*,*
  MUL[],*,*
  MUL[],*,*                /* This shifts us to 0xFFFF0000 */
  SUB[],*,*                /* Take neg number, and subtract 0xFFFF0000 */
#END
EIF[]

DUP[],*

/* Get MSD (4) */

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

/* 3RD DIGIT on top */

SWAP[],*,*
DUP[],*

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

/* Get MSD */

SWAP[],*,*
DUP[],*

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

SWAP[],*,*                 /* MSD left over */

/* LSD on top */

/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,0                                                          /* MSD (1ST Digit) absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,401                                                        /* 2ND Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,802                                                        /* 3RD Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,1203                                                       /* LSD (4TH Digit) absolute base point number */
SWAP[],*,*
CALL[],*,*
#END



/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* TT glyph 380, char 0xffff */
/* VTT 6.10 compiler Mon Aug  8 16:27:36 2016 */

/* This glyph is used to display the current variations axis value. AXIS 1.

The glyph requires 11 functions in the font program, with 10 being responsible
for each of the digits. 10 of the functions must be on function numbers that are a
multiple of 10.

Version 1.0        2009-09-18       GregH       Initial version for Segoe UI
Version 2.0        2013-02-24       GregH       Updated for better digits
Version 2.02       2016-05-04       GregH       Variations Axis Support
Version 2.10       2016-07-15       GregH       Added support for font variations CVAR
Version 3.0        2016-08-10       GregH       Moved to Selawik & 1024 UPEM

*/
/* X-coordinates for offsets are (new LSB) - (old LSB) */
/* Components for 1st Digit */ 

OFFSET[R], 232,  55, 0 /* 0 */ /* SP: 0 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for 2nd Digit */

OFFSET[R], 232,  55, 0 /* 660 */ /* SP: 402 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for 3rd Digit */

OFFSET[R], 232,  55, 0 /* 1320 */ /* SP: 804 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Components for LSD */

OFFSET[R], 232,  55, 0 /* 1980 */ /* SP: 1206 */
OFFSET[R], 233,  39, 0
OFFSET[R], 234,  53, 0
OFFSET[R], 235,  52, 0
OFFSET[R], 236,  18, 0
OFFSET[R], 237,  53, 0
OFFSET[R], 238,  62, 0
OFFSET[R], 239,  56, 0
OFFSET[R], 240,  57, 0
OFFSET[R], 241,  47, 0
OFFSET[R], 1,    -1, 0
OFFSET[R], 12,   47, 0
OFFSET[R], 13,   13, 0
OFFSET[R], 18,  -39, 0
OFFSET[R], 22,   97, 0
OFFSET[R], 31,  111, 0

/* Initialize Digit Code */
CALL[], 158

/* CALL[], 156 */
/*
For the second digit position, we'll get the CVT width, round it
and then pass it in to the shift function for that digit position.
*/
#PUSHOFF
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 401       /* Starting point number */
DUP[]            /* Number of points happens to be the same as starting point */
#PUSH, 157       /* Shift Function */
CALL[]

/*
For the third digit position, we'll get the CVT width, round it
and then duplicate the value and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
ADD[]
#PUSH, 802, 401, 157 /* Starting point, Point count, Shift Function */
CALL[]

/*
For the final digit position, we'll get the CVT width, round it
and then duplicate the value twice and add. This cummulation of rounding
keeps the distance between digits consistent. (e.g. the same
rounding error for each digit. We then pass it in to the shift
function for that digit position.
*/
#PUSH, 1, 26     /* touch boolean and storage for CVT */
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
DUP[]
DUP[]
ADD[]
ADD[]
DUP[]            /* Save a copy for moving the RSB later */
ROLL[]
ROLL[]
#PUSH, 1203, 401, 157  /* Starting point, Point count, Shift Function */
CALL[]
/*
Update the RSB point
*/
SVTCA[X]
#PUSH, 26
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
ADD[]
#PUSH, 1605      /* Right Side Bearing Point */
SWAP[]
SCFS[]

SVTCA[X]
#PUSH, 26
RS[]
RCVT[]           /* The CVT value will be updated for variations */
ROUND[Gr]
#PUSH, 256       /* Multiply by 4 for each digit slot */
MUL[]
#PUSH, 1605      /* Right Side Bearing Point */
SWAP[]
SCFS[]

#PUSHON
#BEGIN

/* Code to remove segments of the glyph */
CALL[], 2, 190             /* Get the axis value for index 2 */
/*#PUSH, 0x7FFF*/

/* Check for a negative number */
DUP[],*
#PUSH, 0
LT[],*,*
IF[],*
#BEGIN
  #PUSH, 0xFFFF
  #PUSH, 0x2000, 0x800, 0x400  /* Multiply in 26.6 by 2^16  */
  MUL[],*,*
  MUL[],*,*
  MUL[],*,*                /* This shifts us to 0xFFFF0000 */
  SUB[],*,*                /* Take neg number, and subtract 0xFFFF0000 */
#END
EIF[]

DUP[],*

/* Get MSD (4) */

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

/* 3RD DIGIT on top */

SWAP[],*,*
DUP[],*

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

/* Get MSD */

SWAP[],*,*
DUP[],*

#PUSH,1024
DIV[],*,*                  /* Shift right by one hex digit */
DUP[],*
#PUSH,1024
MUL[],*,*                  /* Shift left by one hex digit, zero for LSD */
ROLL[],*,*,*
SWAP[],*,*
SUB[],*,*                  /* Subtract the two to get the LSD digit */

SWAP[],*,*                 /* MSD left over */

/* LSD on top */

/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,0                                                          /* MSD (1ST Digit) absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,401                                                        /* 2ND Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,802                                                        /* 3RD Digit absolute base point number */
SWAP[],*,*
CALL[],*,*
/* Error check for negative */
#PUSH,25
RS[],*
ADD[],*,*
#PUSH,1203                                                       /* LSD (4TH Digit) absolute base point number */
SWAP[],*,*
CALL[],*,*
#END





/* auto-generated pre-program */
/* VTT 6.20 compiler Mon Mar 13 19:47:51 2017 */

/* Grey scaling? */
CALL[], 84

/* InstructionsOn */
#PUSHOFF
MPPEM[]
#PUSH, 2047
GT[]
MPPEM[]
#PUSH, 8
LT[]
OR[]
#PUSH, 1
GETINFO[]
#PUSH, 37
GTEQ[]
#PUSH, 1
GETINFO[]
#PUSH, 64
LTEQ[]
AND[]
#PUSH, 6
GETINFO[]
#PUSH, 0
NEQ[]
AND[]
OR[]
IF[]
    #PUSH, 1, 1
    INSTCTRL[]
EIF[]
#PUSHON

/* DropOutCtrlOff */
SCANCTRL[], 400

SCANTYPE[], 1
SCANTYPE[], 5

/* CvtCutIn */
SVTCA[Y]
SCVTCI[], 64
WS[], 3, 64
#PUSHOFF
MPPEM[]
#PUSH, 144
GTEQ[]
IF[]
#PUSH, 3, 0, 0
SCVTCI[]
WS[]
EIF[]
#PUSHON

/* ClearTypeCtrl */
#PUSHOFF
#PUSH, 2, 2
RS[]
LTEQ[]
IF[]
    #PUSH, 4, 3
    INSTCTRL[]
EIF[]
#PUSHON

/* LinearAdvanceWidths */
SVTCA[Y]
CALL[], 2, 89
SVTCA[Y]
CALL[], 8, 89
CALL[], 3, 40, 2, 85
CALL[], 9, 40, 8, 85
SVTCA[Y]
CALL[], 0, 89
SVTCA[Y]
CALL[], 6, 89
SVTCA[Y]
CALL[], 10, 89
SVTCA[Y]
CALL[], 14, 89
CALL[], 1, 57, 0, 85
CALL[], 7, 40, 6, 85
CALL[], 11, 40, 10, 85
CALL[], 15, 86, 14, 85
SVTCA[Y]
CALL[], 4, 89
SVTCA[Y]
CALL[], 12, 89
CALL[], 5, 43, 4, 85
CALL[], 13, 19, 12, 85
SVTCA[Y]
CALL[], 16, 89
SVTCA[Y]
CALL[], 18, 89
CALL[], 17, 103, 16, 85
CALL[], 19, 103, 18, 85
SVTCA[X]
CALL[], 21, 25, 62, 22, 250, 90
SVTCA[X]
CALL[], 23, 57, 22, 68, 91
SVTCA[X]
CALL[], 26, 56, 25, 56, 91
SVTCA[X]
CALL[], 24, 57, 22, 68, 91
SVTCA[X]
CALL[], 27, 56, 25, 56, 91
SVTCA[X]
CALL[], 28, 22, 255, 31
CALL[], 29, 28, 57, 31
SVTCA[Y]
CALL[], 30, 23, 255, 31
CALL[], 31, 30, 103, 31
CALL[], 32, 24, 26, 31
SVTCA[X]
CALL[], 33, 48, 24, 22, 92
CALL[], 34, 33, 52, 31
CALL[], 35, 34, 74, 31
CALL[], 36, 33, 103, 31
SVTCA[X]
CALL[], 37, 25, 255, 31
CALL[], 38, 86, 37, 85
SVTCA[Y]
CALL[], 39, 26, 32, 31
SVTCA[Y]
CALL[], 40, 35, 26, 25, 92
CALL[], 41, 27, 8, 31
SVTCA[X]
CALL[], 42, 28, 27, 25, 92
CALL[], 43, 42, 171, 31
CALL[], 44, 42, 128, 31
CALL[], 48, 47, 128, 31
CALL[], 50, 49, 74, 31
SVTCA[X]
CALL[], 53, 52, 171, 31
CALL[], 54, 53, 74, 31
SVTCA[Y]
CALL[], 57, 56, 52, 31
CALL[], 58, 56, 64, 31
CALL[], 62, 61, 171, 31
CALL[], 63, 61, 43, 31
SVTCA[X]
CALL[], 64, 28, 128, 31
CALL[], 65, 28, 255, 31
CALL[], 66, 28, 171, 31
CALL[], 67, 29, 255, 31
SVTCA[Y]
CALL[], 68, 30, 255, 31
CALL[], 69, 31, 255, 31
CALL[], 70, 31, 171, 31
CALL[], 71, 32, 255, 31
CALL[], 72, 35, 255, 31
CALL[], 73, 34, 255, 31
CALL[], 74, 33, 255, 31
CALL[], 75, 36, 171, 31
CALL[], 76, 36, 255, 31
CALL[], 77, 36, 103, 31
SVTCA[X]
CALL[], 78, 37, 103, 31
CALL[], 79, 37, 255, 31
CALL[], 80, 38, 255, 31
SVTCA[Y]
CALL[], 81, 39, 255, 31
CALL[], 82, 40, 128, 31
CALL[], 83, 40, 255, 31
CALL[], 84, 40, 128, 31
CALL[], 85, 41, 128, 31
CALL[], 86, 41, 128, 31
CALL[], 87, 43, 171, 31
CALL[], 88, 43, 255, 31
CALL[], 89, 42, 255, 31
CALL[], 90, 44, 255, 31
CALL[], 91, 44, 171, 31
CALL[], 92, 42, 43, 31
SVTCA[X]
CALL[], 93, 45, 255, 31
CALL[], 94, 46, 74, 31
CALL[], 95, 46, 171, 31
CALL[], 96, 46, 255, 31
CALL[], 97, 46, 171, 31
SVTCA[Y]
CALL[], 98, 48, 171, 31
CALL[], 99, 48, 255, 31
CALL[], 100, 47, 255, 31
CALL[], 101, 47, 103, 31
CALL[], 102, 50, 255, 31
CALL[], 103, 49, 255, 31
CALL[], 104, 51, 171, 31
CALL[], 105, 51, 255, 31
SVTCA[X]
CALL[], 106, 52, 16, 31
CALL[], 107, 53, 86, 31
CALL[], 108, 53, 255, 31
CALL[], 109, 54, 171, 31
CALL[], 110, 54, 255, 31
CALL[], 111, 54, 103, 31
CALL[], 112, 55, 255, 31
SVTCA[Y]
CALL[], 113, 57, 103, 31
CALL[], 114, 57, 255, 31
CALL[], 115, 56, 128, 31
CALL[], 116, 56, 255, 31
CALL[], 117, 58, 255, 31
CALL[], 118, 58, 86, 31
CALL[], 119, 59, 255, 31
CALL[], 120, 60, 255, 31
CALL[], 121, 62, 255, 31
CALL[], 122, 61, 255, 31
CALL[], 123, 61, 171, 31
CALL[], 124, 61, 86, 31
CALL[], 125, 63, 255, 31
RTG[]
/* Font-program */
/* ACT generated Tue Aug 16 11:35:10 2016 */

FDEF[], 9

/* Set fv to X
       pv perpendicular to italic angle

   CALL[], 9 */

#BEGIN
#PUSHOFF
SVTCA[X]
#PUSH, 11, 10
RS[]
SWAP[]
RS[]
NEG[]
SPVFS[]
#PUSHON
#END
ENDF[]

FDEF[], 10

/* Set fv to italic angle
       pv to Y

   CALL[], 10 */

#BEGIN
#PUSHOFF
SVTCA[Y]
#PUSH, 10, 11
RS[]
SWAP[]
RS[]
SFVFS[]
#PUSHON
#END
ENDF[]

FDEF[], 16

/* Set fv to X
       pv perpendicular to adjusted italic angle

   CALL[], 16 */

#BEGIN
#PUSHOFF
SVTCA[X]
#PUSH, 6
RS[]
#PUSH, 7
RS[]
NEG[]
SPVFS[]
#PUSHON
#END
ENDF[]

FDEF[], 31

/* fn 31 equalizes two cvts below a given ppem size

   CALL[], <child cvt>, <parent cvt>, <ppem size>, 31 */

#BEGIN
#PUSHOFF

/* STACK: <child cvt>, <parent cvt>, <ppem size> */

#PUSH, 79 /* #samples/pixel */
CALL[]
DUP[]
#PUSH, 64
LTEQ[]
IF[] /* #samples/pixel <= 1 */

    /* STACK: <child cvt>, <parent cvt>, <ppem size>, <#samples/pixel> */

    POP[] /* #samples/pixel not involved */
    MPPEM[]

    /* STACK: <child cvt>, <parent cvt>, <ppem size>, <act ppem size> */

    GT[]
    IF[]
        RCVT[]
        WCVTP[]
    ELSE[]
        POP[]
        POP[]
    EIF[]

ELSE[] /* #samples/pixel > 1 */

    /* STACK: <child cvt>, <parent cvt>, <ppem size>, <#samples/pixel> */

    SWAP[]
    POP[] /* ppem Size not involved */
    #PUSH, 64

    /* STACK: <child cvt>, <parent cvt>, <#samples/pixel>, <1> */

    #PUSH, 4 /* child cvt */
    CINDEX[]
    RCVT[]
    #PUSH, 4 /* parent cvt */
    CINDEX[]
    RCVT[]
    SUB[]
    ABS[]

    /* STACK: <child cvt>, <parent cvt>, <#samples/pixel>, <1>, <|[child cvt] - [parent cvt]|> */

    ROLL[]
    MUL[]
    GT[]
    IF[] /* 1 > #samples/pixel * delta cvt */
        RCVT[]
        WCVTP[]
    ELSE[]
        POP[]
        POP[]
    EIF[]

EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 40

/* Set fv to adjusted italic angle
       pv to Y

   CALL[], 40 */

#BEGIN
#PUSHOFF
SVTCA[Y]
#PUSH, 7
RS[]
#PUSH, 6
RS[]
SFVFS[]
#PUSHON
#END
ENDF[]

FDEF[], 70

/* fn changes <cvt> by <amount> (in ±1/64 pixel) at
   ppem sizes <low ppem> to <high ppem> (inclusive)

   CALL[], <amount>, <cvt>, <low ppem>, <high ppem>, 70 */

#BEGIN
#PUSHOFF
MPPEM[]
GTEQ[]
SWAP[]
MPPEM[]
LTEQ[]
AND[]
IF[]
    DUP[]
    RCVT[]
    ROLL[]
    ADD[]
    WCVTP[]
ELSE[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 71

/* fn changes <cvt> by <amount> (in ±1/64 pixel) at
   ppem size <ppem>

   CALL[], <amount>, <cvt>, <ppem>, 71 */

#BEGIN
#PUSHOFF
MPPEM[]
EQ[]
IF[]
    DUP[]
    RCVT[]
    ROLL[]
    ADD[]
    WCVTP[]
ELSE[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 72

/* fn moves <point> by <amount> (in ±1/64 pixel) at
   ppem sizes <low ppem> to <high ppem> (inclusive)

   CALL[], <point>, <amount>, <low ppem>, <high ppem>, 72 */

#BEGIN
#PUSHOFF
MPPEM[]
GTEQ[]
SWAP[]
MPPEM[]
LTEQ[]
AND[]
IF[]
    SHPIX[]
ELSE[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 73

/* fn moves <point> by <amount> (in ±1/64 pixel) at
   ppem size <ppem>

   CALL[], <point>, <amount>, <ppem>, 73 */

#BEGIN
#PUSHOFF
MPPEM[]
EQ[]
IF[]
    SHPIX[]
ELSE[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 74

/* if <flag> = anti-aliasing in s[2] (set by fn 84)
   fn changes <cvt> by <amount> (in ±1/64 pixel) at
   ppem sizes <low ppem> to <high ppem> (inclusive)

   CALL[], <amount>, <cvt>, <low ppem>, <high ppem>, <flag>, 74 */

#BEGIN
#PUSHOFF
#PUSH, 2
RS[]
EQ[]
IF[]           /* if <flag> = s[2] then fwd to fn 70 */
    #PUSH, 70
    CALL[]
ELSE[]         /* else cleanup stack and bail out */
    POP[]
    POP[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 75

/* if <flag> = anti-aliasing in s[2] (set by fn 84)
   fn changes <cvt> by <amount> (in ±1/64 pixel) at
   ppem size <ppem>

   CALL[], <amount>, <cvt>, <ppem>, <flag>, 75 */

#BEGIN
#PUSHOFF
#PUSH, 2
RS[]
EQ[]
IF[]           /* if <flag> = s[2] then fwd to fn 71 */
    #PUSH, 71
    CALL[]
ELSE[]         /* else cleanup stack and bail out */
    POP[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 76

/* if <flag> = anti-aliasing in s[2] (set by fn 84)
   fn moves <point> by <amount> (in ±1/64 pixel) at
   ppem sizes <low ppem> to <high ppem> (inclusive)

   CALL[], <point>, <amount>, <low ppem>, <high ppem>, <flag>, 76 */

#BEGIN
#PUSHOFF
#PUSH, 2
RS[]
EQ[]
IF[]           /* if <flag> = s[2] then fwd to fn 72 */
    #PUSH, 72
    CALL[]
ELSE[]         /* else cleanup stack and bail out */
    POP[]
    POP[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 77

/* if <flag> = anti-aliasing in s[2] (set by fn 84)
   fn moves <point> by <amount> (in ±1/64 pixel) at
   ppem size <ppem>

   CALL[], <point>, <amount>, <ppem>, <flag>, 77 */

#BEGIN
#PUSHOFF
#PUSH, 2
RS[]
EQ[]
IF[]           /* if <flag> = s[2] then fwd to fn 73 */
    #PUSH, 73
    CALL[]
ELSE[]         /* else cleanup stack and bail out */
    POP[]
    POP[]
    POP[]
EIF[]
#PUSHON
#END
ENDF[]

FDEF[], 78

/* apply minimum distance and round <dist> depending on s[2], <code>, and pv
   code = 0: position
   code = 1: distance
   code = 2: delta distance (for fractional inheritance)

   CALL[], <dist>, <code>, 78

   returns with rounded distance on stack */

#BEGIN
#PUSHOFF

/* STACK: <dist>, <code> */

SWAP[]
DUP[]
#PUSH, 0
LT[]
ROLL[]
ROLL[]
ABS[]

/* STACK: <negDist>, <code>, <|dist|> */

#PUSH, 0, 3 /* code */
CINDEX[]
EQ[]
IF[] /* position */

    /* STACK: <negDist>, <code>, <|dist|> */

    #PUSH, 64

    /* STACK: <negDist>, <code>, <|dist|>, <#samples/pixel> */

ELSE[]

    /* STACK: <negDist>, <code>, <|dist|> */

    #PUSH, 1, 3 /* code */
    CINDEX[]
    EQ[]
    IF[] /* distance */
        #PUSH, 5 /* minimum distance */
        RS[]
        MAX[]
    EIF[]

    #PUSH, 79 /* #samples/pixel */
    CALL[]

    /* STACK: <negDist>, <code>, <|dist|>, <#samples/pixel> */

EIF[]

SWAP[]
#PUSH, 98 /* round to virtual grid */
CALL[]

/* STACK: <negDist>, <code>, <[|dist|]> */

SWAP[]
POP[]

/* STACK: <negDist>, <[|dist|]> */

SWAP[]
IF[]
    NEG[]
EIF[]

/* STACK: <[dist]> */

#PUSHON
#END
ENDF[]

FDEF[], 79

/* depending on rendering environment and pv determine #samples/pixel for rounding etc.

   notice that for PVs other than X or Y, this method will default to X, reflecting the
   bias inherent in the asymmetrical nature of ClearType

   CALL[], 79

   returns the #samples/pixel in 26.6 */

#BEGIN
#PUSHOFF

#PUSH, 8, 0
GPV[]
POP[]
EQ[]
ADD[]
RS[]

#PUSHON
#END
ENDF[]

FDEF[], 80

/* depending on rendering environment and pv determine actual stroke optimization method

   CALL[], 80

   returns with method on stack (see fn 112 for definition of method) */

#BEGIN
#PUSHOFF

#PUSH, 12, 0
GPV[]
POP[]
EQ[]
ADD[]
RS[]

#PUSHON
#END
ENDF[]

FDEF[], 81

   /* adjust advance width to compensate for rasterizer's rounding errors 

   CALL[], <rsb>, 81 */

#BEGIN
#PUSHOFF

/* STACK: <rsb> */

SVTCA[X]
DUP[]
GC[O]

/* STACK: <rsb>, <rsb.x> */
#PUSH, 2
RS[]
DUP[]
#PUSH, 4096 /* fract AW value in 26.6 */
DIV[]
#PUSH, 4096 /* 64 in 26.6 */
MUL[]
EVEN[] /* fract AW bit not set */
SWAP[]
#PUSH, 256 /* comp AW value in 26.6 */
DIV[]
#PUSH, 4096 /* 64 in 26.6 */
MUL[]
EVEN[] /* comp AW bit not set */
AND[]
IF[]
    #PUSH, 32
    ADD[]
    FLOOR[]
EIF[]

SCFS[]

#PUSHON
#END
ENDF[]

FDEF[], 83

/* CALL[], <radicand>, 83

   returns with square root of radicand on stack */

#BEGIN
#PUSHOFF

/* STACK: <radicand> */

#PUSH, 0, 2
CINDEX[]

/* STACK: <radicand>, <low>, <high> */

#WBeginLoop83:

    #PUSH, 2 /* low */
    CINDEX[]
    #PUSH, 2 /* high */
    CINDEX[]
    GTEQ[]
    #PUSH, WOffset83a
    SWAP[]
    JROT[], (WOffset83a=#WEndLoop83) /* while low <= high */

    /* STACK: <radicand>, <low>, <high> */

    #PUSH, 2 /* low */
    CINDEX[]
    #PUSH, 2 /* high */
    CINDEX[]
    ADD[]
    #PUSH, 32
    MUL[]

    /* STACK: <radicand>, <low>, <high>, <mid> */

    DUP[]
    DUP[]
    #PUSH, 6 /* radicand */
    CINDEX[]
    SWAP[]
    DIV[]

    /* STACK: <radicand>, <low>, <high>, <mid>, <mid>, <radicand/mid> */

    LT[]
    IF[]

        /* STACK: <radicand>, <low>, <high>, <mid> */

        ROLL[]
        POP[]
        #PUSH, 1
        ADD[]
        SWAP[]

        /* STACK: <radicand>, <mid+1>, <high> */

    ELSE[]

        DUP[]
        DUP[]
        #PUSH, 6 /* radicand */
        CINDEX[]
        SWAP[]
        DIV[]

        GT[]
        IF[]

            /* STACK: <radicand>, <low>, <high>, <mid> */

            SWAP[]
            POP[]
            #PUSH, 1
            SUB[]

            /* STACK: <radicand>, <low>, <mid-1> */

        ELSE[]

            /* STACK: <radicand>, <low>, <high>, <mid> */

            ROLL[]
            POP[]
            SWAP[]
            POP[]
            DUP[]

            /* STACK: <radicand>, <mid>, <mid> */

        EIF[]

    EIF[]


    #PUSH, WOffset83b
    JMPR[], (WOffset83b=#WBeginLoop83)

#WEndLoop83:

/* STACK: <radicand>, <low>, <high> */

ADD[]
#PUSH, 32
MUL[]
SWAP[]
POP[]

/* STACK: <mid> */

#PUSHON
#END
ENDF[]

FDEF[], 84

/* fn determines current rasterizing environment and stores it in s[2] as follows:
     bit 0 (value   1) = Grey-Scaling
     bit 1 (value   2) = ClearType(tm)
     bit 2 (value   4) = Compatible Width ClearType
     bit 3 (value   8) = Vertical Direction (horizontally striped) ClearType
     bit 4 (value  16) = BGR as opposed to RGB Devices
     bit 5 (value  32) = ClearType on Rapier CE Devices
     bit 6 (value  64) = ClearType with fractional advance widths
     bit 7 (value 128) = ClearType with non-ClearType direction anti-aliasing
     bit 8 (value 256) = ClearType with gray full-pixel

   s[2] is used e.g. in fns 74 through 77

   To test against any combination of these flags, add up the respective values.

   specific to the current rasterizing environment fn stores the following parameters
     s[5] = minimum distance
     s[8] = #samples/pixel in x-direction
     s[9] = #samples/pixel in y-direction
     s[12] = stroke optimization method in x-direction
     s[13] = stroke optimization method in y-direction

   CALL[], 84 */
   /* Version 2.1 20120101 */

#BEGIN
#PUSHOFF
#PUSH,2,0
WS[]            /* s[2] = grey scaling: off (by default) */
#PUSH,35,1      /* 35 = MS Rasterizer version 1.7 */
GETINFO[]       /* 1 = tell GETINFO to give us the rasterizer version */
LTEQ[]          /* 35 <= version ? */
#PUSH,64,1      /* 64 = highest rasterizer version assigned to MS */
GETINFO[]       /* 1 = tell GETINFO to give us the rasterizer version */
GTEQ[]          /* 64 >= version ? */
AND[]           /* 35 <= version && version <= 64 ? */
IF[]            /* if so, we're running MS rasterizer version 1.7 or higher */
  #PUSH,4096,32 /* 4096 = flag returned by GETINFO if grey scaling bit is on */
  GETINFO[]     /* 32 = tell GETINFO to give us the grey scaling bit */
  EQ[]          /* 4096 == flag ? */
  IF[]          /* if so, we're running under grey scaling */
    #PUSH,2,1,2
    RS[]
    ADD[]
    WS[]        /* s[2] += grey scaling: on (by now) */
  EIF[]
  #PUSH,36,1      /* 36 = MS Rasterizer version 1.6+ (WinCE) or 1.8 (WinXP) */
  GETINFO[]       /* 1 = tell GETINFO to give us the rasterizer version */
  LTEQ[]          /* 36 <= version ? (already tested version <= 64) */
  IF[]            /* if so, we're running MS rasterizer version 1.6+ (WinCE) or 1.8 (WinXP) or higher */
    #PUSH,8192,64 /* 8192 = flag returned by GETINFO if ClearTypeTM bit is on */
    GETINFO[]     /* 64 = tell GETINFO to give us the ClearTypeTM bit */
    EQ[]          /* 8192 == flag ? */
    IF[]          /* if so, we're running under ClearTypeTM */
      #PUSH,2,2,2
      RS[]
      ADD[]
      WS[]        /* s[2] += ClearTypeTM: on (by now) */

      #PUSH,36,1    /* 36 = MS Rasterizer version 1.6+ (WinCE) */
      GETINFO[]
      EQ[]
      IF[] /***** we're running Rasterizer v1.6+ for WinCE with ClearType *****/

        #PUSH,2,32,2
        RS[]
        ADD[]
        WS[]        /* s[2] += Rapier CE: on (by now) */
        SVTCA[Y]
        MPPEM[]
        SVTCA[X]
        MPPEM[]
        GT[]
        IF[]
          #PUSH,2,8,2
          RS[]
          ADD[]
          WS[]
        EIF[]

      ELSE[] /***** we're running Rasterizer v1.8 (or higher) for WinXP with ClearType (or Win2k 2000 with ClearType patch) *****/

        #PUSH,16384,128 /* 16384 = flag returned by GETINFO if ClearTypeTM silly aw bit is on */
        GETINFO[]       /* 128 = tell GETINFO to give us the ClearTypeTM silly aw bit */
        EQ[]            /* 16384 == flag ? */
        IF[]            /* if so, we're running under ClearTypeTM silly aw */
          #PUSH,2,4,2
          RS[]
          ADD[]
          WS[]          /* s[2] += ClearTypeTM silly aw: on (by now) */
        EIF[]

        #PUSH,16384,128 /* 32768 = flag returned by GETINFO if ClearTypeTM in vertical direction bit is on */
        MUL[]           /* Assembler restriction: produce 32768 by multiplying 16384 by 2 (2 in F26.6 is 128) */
        #PUSH,256       /* 256 = tell GETINFO to give us the ClearTypeTM in vertical direction bit */
        GETINFO[]
        EQ[]            /* 32768 == flag ? */
        IF[]            /* if so, we're running ClearTypeTM in vertical direction */
        #PUSH,2,8,2
          RS[]
          ADD[]
          WS[]          /* s[2] += ClearTypeTM in vertical direction: on (by now) */
        EIF[]

        #PUSH,16384,256 /* 65536 = flag returned by GETINFO if ClearTypeTM in BGR order bit is on */
        MUL[]           /* Assembler restriction: produce 65536 by multiplying 16384 by 4 (4 in F26.6 is 256) */
        #PUSH,512       /* 512 = tell GETINFO to give us the ClearTypeTM in BGR order bit */
        GETINFO[]
        EQ[]            /* 65536 == flag ? */
        IF[]            /* if so, we're running under ClearTypeTM in BGR order */
          #PUSH,2,16,2
          RS[]
          ADD[]
          WS[]          /* s[2] += ClearTypeTM in BGR order: on (by now) */
        EIF[]

        #PUSH,38,1      /* 38 = MS Rasterizer version 1.9 */
        GETINFO[]       /* 1 = tell GETINFO to give us the rasterizer version */
        LTEQ[]          /* 38 <= version ? (already tested version <= 64) */
        IF[]            /* if so, we're running MS rasterizer version 1.9 (Windows Longhorn) or higher */

          #PUSH,16384,512  /* 131072 = flag returned by GETINFO if ClearTypeTM fractional advance widths bit is on */
          MUL[]            /* Assembler restriction: produce 131072 by multiplying 16384 by 8 (8 in F26.6 is 512) */
          #PUSH,1024       /* 1024 = tell GETINFO to give us the ClearTypeTM fractional advance widths bit */
          GETINFO[]
          EQ[]             /* 131072 == flag ? */
          IF[]             /* if so, we're running under ClearTypeTM fractional advance widths */
            #PUSH,2,64,2
            RS[]
            ADD[]
            WS[]           /* s[2] += ClearTypeTM fractional advance widths: on (by now) */
          EIF[]

          #PUSH,16384,1024 /* 262144 = flag returned by GETINFO if ClearTypeTM non-ClearType direction anti-aliasing bit is on */
          MUL[]            /* Assembler restriction: produce 262144 by multiplying 16384 by 16 (16 in F26.6 is 1024) */
          #PUSH,2048       /* 2048 = tell GETINFO to give us the ClearTypeTM non-ClearType direction anti-aliasing bit */
          GETINFO[]
          EQ[]             /* 262144 == flag ? */
          IF[]             /* if so, we're running under ClearTypeTM non-ClearType direction anti-aliasing */
            #PUSH,2,128,2
            RS[]
            ADD[]
            WS[]           /* s[2] += ClearTypeTM non-ClearType direction anti-aliasing: on (by now) */
          EIF[]

          #PUSH,40,1      /* 40 = Rasterizer v2.1 Windows 8, SubPixel */
          GETINFO[]       /* 1 = tell GETINFO to give us the rasterizer version */
          LTEQ[]          /* 40 <= version ? (already tested version <= 64) */
          IF[]            /* if so, we're running MS rasterizer version 2.1 (Windows 8) or higher */
            #PUSH,16384,2048 /* 524288 = flag returned by GETINFO if ClearTypeTM non-ClearType direction anti-aliasing bit is on */
            MUL[]            /* Assembler restriction: produce 524288 by multiplying 16384 by 32 (32 in F26.6 is 2048) */
            #PUSH,4096       /* 4096 = tell GETINFO to give us the ClearTypeTM gray full-pixel rendering bit */
            GETINFO[]
            EQ[]             /* 524288 == flag ? */
            IF[]             /* if so, we're running under ClearTypeTM gray full-pixel rendering */
            #PUSH,2,256,2
              RS[]
              ADD[]
              WS[]           /* s[2] += ClearTypeTM gray full-pixel rendering: on (by now) */
            EIF[]
          EIF[]

        EIF[] /* Vista or greater rasterizer */

      EIF[] /* Windows ClearType (Platt) */

    EIF[] /* ClearType Enabled */
  EIF[] /* ClearType enabled rasterizer */
EIF[] /* Microsoft Rasterizer */

/* store rasterizing environment specific parameters */

#PUSH, 0, 2
RS[]
EQ[]
IF[] /* for b&w */
  #PUSH, 5, 64, 8, 64, 9, 64, 12, 2, 13, 2
ELSE[]
  #PUSH, 1, 2
  RS[]
  EQ[]
  IF[] /* for grey-scaling */
    #PUSH, 5, 64, 8, 256, 9, 256, 12, 1, 13, 1
  ELSE[]
    #PUSH, 128, 2
    RS[]
    GT[]
    IF[] /* for ClearType */
      #PUSH, 5, 64, 8, 384, 9, 64
    ELSE[] /* for y-anti-aliased ClearType */
      #PUSH, 256, 2
      RS[]
      GT[]
      IF[] /* Gray ClearType */
        #PUSH, 5, 64, 8, 384, 9, 320
      ELSE[] /* Gray ClearType */
        #PUSH, 384, 2
        RS[]
        GT[]
        IF[] /* Gray ClearType */
          #PUSH, 5, 64, 8, 512, 9, 64
        ELSE[] /* Gray ClearType y-anti-aliased */
          #PUSH, 5, 64, 8, 256, 9, 256
        EIF[]
      EIF[]
    EIF[]

    #PUSH,16384,128 /* b&w aw? */
    GETINFO[]
    NEQ[]
    #PUSH,16384,512 /* fract aw? */
    MUL[]
    #PUSH,1024
    GETINFO[]
    NEQ[]
    AND[]
    IF[] /* natural widths */
      #PUSH, 12, 0, 13, 1
    ELSE[] /* compatible or fractional widths */
      #PUSH, 12, 0, 13, 1
    EIF[]

  EIF[]
EIF[]

WS[]
WS[]
WS[]
WS[]
WS[]

#PUSHON
#END
ENDF[]

FDEF[], 85

/* fn 85 equalizes double specified heights below a given ppem size

   CALL[], <rel cvt>, <ppem size>, <abs cvt>, 85 */
   /* Version 2.0 20141201 */

#BEGIN
#PUSHOFF

/* STACK: <rel cvt>, <ppem size>, <abs cvt> */

RCVT[] /* pick absolute (square) height */
#PUSH, 2, 78 /* 2 appears to work for heights and weights */
CALL[]
SWAP[]

/* STACK: <rel cvt>, <[abs cvt]>, <ppem size> */

#PUSH, 79 /* #samples/pixel */
CALL[]
DUP[]
#PUSH, 64
LTEQ[]
IF[] /* #samples/pixel = 1 (or less...) */

    /* STACK: <rel cvt>, <[abs cvt]>, <ppem size>, <#samples/pixel> */

    POP[]
    MPPEM[]
    LTEQ[] /* specified ppem size <= actual ppem size ? */
    IF[]

        /* STACK: <rel cvt>, <[abs cvt]> */

        #PUSH, 2
        CINDEX[]
        RCVT[] /* pick relative height (overshoot) */
        #PUSH, 1, 78
        CALL[]
        ADD[] /* add overshoot to square height */

        /* STACK: <rel cvt>, <[rel cvt] + [abs cvt]> */

    EIF[]

ELSE[] /* #samples/pixel > 1 */

    /* STACK: <rel cvt>, <[abs cvt]>, <ppem size>, <#samples/pixel> */

    SWAP[]
    MPPEM[]
    LTEQ[] /* specified ppem size <= actual ppem size */
    IF[]

      /* STACK: <rel cvt>, <[abs cvt]>, <#samples/pixel> */

      #PUSH, 3 /* rel cvt */
      CINDEX[]
      RCVT[]
      DUP[]
      ABS[]
      ROLL[]
      MUL[]
      #PUSH, 64

      /* STACK: <rel cvt>, <[abs cvt]>, <[rel cvt]>, <|[rel cvt]| * #samples/pixel>, <1> */

      GTEQ[] /* #samples/pixel greater than or equal to 1 pixel */
      IF[]

          /* STACK: <rel cvt>, <[abs cvt]>, <[rel cvt]> */

          #PUSH, 2, 78
          CALL[]
          ADD[] /* add overshoot to square height */

          /* STACK: <rel cvt>, <[rel cvt] + [abs cvt]> */

      ELSE[]

          /* STACK: <rel cvt>, <[abs cvt]>, <[rel cvt]> */

          POP[]

          /* STACK: <rel cvt>, <[abs cvt]> */

      EIF[]
    ELSE[]
          /* STACK: <rel cvt>,<abs cvt>,<#samples/pixel>*/
          POP[]
          /* STACK: <rel cvt>,<abs cvt>*/
    EIF[]

EIF[]

/* STACK: <rel cvt>, <[act cvt]> */

WCVTP[] /* make this the round height */
#PUSHON
#END
ENDF[]

FDEF[], 86

/* function to naturally space an accent above or below a base character

   CALL[], <child>, <parent>, <roundMethod>, <minDist?>, <distance>, 86

   convert distance (fUnits) to pixels, round, and space child from parent by result
   this essentially implements the functionality of an MDRP[m>RWh] instrunction for
   composites which lack a suitable implementation of "original" coordinates.
   roundMethod 0, 1, 2, and 3 round down to, to, up to, and to half virtual grid
   function assumes cvt #20 is reserved and can be used temporarily in here... */

#BEGIN
#PUSHOFF

/* extract the sign from distance */
/* STACK: <child>, <parent>, <roundMethod>, <minDist?>, <distance> */

DUP[]
#PUSH, 0
LT[]
DUP[]
IF[]
    SWAP[]
    NEG[]
ELSE[]
    SWAP[]
EIF[]

/* scale distance using reserved cvt */
/* STACK: <child>, <parent>, <roundMethod>, <minDist?>, <negDist?>, <|distance|> */

#PUSH, 20, 20 /* reserved cvt */
ROLL[]
WCVTF[]
RCVT[]

/* round per round method and #samples/pixel in current pv */
/* STACK: <child>, <parent>, <roundMethod>, <minDist?>, <negDist?>, <|distance|'> */

#PUSH, 79 /* #samples/pixel */
CALL[]
SWAP[]
#PUSH, 97, 6 /* round to virtual grid, roundMethod */
MINDEX[]
ADD[]
CALL[] /* round to virtual grid */

/* STACK: <child>, <parent>, <minDist?>, <negDist?>, <[|distance|']> */

/* apply minimum distance, if applicable */
ROLL[]
IF[]
    #PUSH, 5 /* minimum distance */
    RS[]
    MAX[]
EIF[]

/* fold the sign back into distance */
/* STACK: <child>, <parent>, <negDist?> <[|distance|']> */

SWAP[]
IF[]
    NEG[]
EIF[]

/* move child by [distance'] */
/* STACK: <child>, <parent>, <[distance']> */

SWAP[]
SRP0[]
MSIRP[m]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 87

/* fn places an accent <c0> <c1> on top of a base character <p0> <p1>
   fn uses the same constraint model as fn 111 (interpolate median),
   except that for composites there is no concept of original coordinates,
   hence the respective values are provided by the caller as <partialFactor>

   CALL[], <p0>, <c0>, <c1>, <p1>, <partialFactor>, 87 */

#BEGIN
#PUSHOFF

/* partialFactor: ((c0 + c1)/2 - p0)/(p1 - p0)
   target median: ((c0 + c1)/2 - p0)*(p1' - p0')/(p1 - p0)> + p0' = partialFactor*(p1' - p0')
   source median: (c0' + c1')/2
   primed coordinates are [N]ew, other coordinates are [O]riginal */

/* STACK: <c0>, <c1>, <p0>, <partialFactor>, <p1> */

#PUSH, 3 /* p0 */
CINDEX[]
MD[N]
MUL[]

/* STACK: <c0>, <c1>, <p0>, <((c0 + c1)/2 - p0)*(p1' - p0')/(p1 - p0)> */

SWAP[] /* p0 */
GC[N]
ADD[]

/* STACK: <c0>, <c1>, <targetMedian> */

#PUSH, 79 /* #samples/pixel */
CALL[]
SWAP[]

/* STACK: <c0>, <c1>, <#samples/pixel>, <targetMedian> */

#PUSH, 4 /* c0 */
CINDEX[]
#PUSH, 4 /* c1 */
CINDEX[]
MD[N]
#PUSH, 3 /* #samples/pixel */
CINDEX[]
MUL[]

/* STACK: <c0>, <c1>, <#samples/pixel>, <targetMedian>, <numVirtualPixels> */

ODD[]
DUP[]
ADD[]
#PUSH, 98
ADD[]
CALL[] /* round to (half) virtual grid */

/* STACK: <c0>, <c1>, <[targetMedian]> */

#PUSH, 3 /* c0 */
CINDEX[]
DUP[]
SRP0[]
GC[N]
ROLL[] /* c1 */
GC[N]
ADD[]
#PUSH, 32
MUL[]

/* STACK: <c0>, <targetMedian>, <sourceMedian> */

SUB[]

/* STACK: <c0>, <offset> */

MSIRP[m]

#PUSHON
#END
ENDF[]

FDEF[], 88

/* set up storage locations with the x and y components
   of the italic and adjusted italic angles as follows:

     s[ 6] = adjusted italic angle y
     s[ 7] = adjusted italic angle x
     s[10] = italic angle y
     s[11] = italic angle x

   while rendering in b&w, determines the optimal phase
   for positioning italic strokes

     s[ 4] = optimal phase

   CALL[], <riseCvt>, <runCvt>, 88 */

#BEGIN
#PUSHOFF

/* STACK: <riseCvt>, <runCvt> */

#PUSH, 0 /* Use twilight points to calculate stroke angles */
SZPS[]

#PUSH, 2, 3 /* riseCvt */
CINDEX[]
#PUSH, 1, 4 /* runCvt */
CINDEX[]

/* STACK: <riseCvt>, <runCvt>, <2>, <riseCvt>, <1>, <runCvt> */

SVTCA[X] /* Set twilight point 1 with italic run cvt in x */
MIAP[r]

SVTCA[Y] /* Set twilight point 2 with italic rise cvt in y */
MIAP[r]

#PUSH, 1, 2 /* and let the rasterizer do the math */
SPVTL[r]
GPV[]

#PUSH, 10 /* store the x and y components of the italic angle */
SWAP[]
NEG[]     /* notice that since we're essentially setting the pv to a line  */
WS[]      /* from (runCvt,0) to (0,riseCvt), the calculcated pv will be    */
#PUSH, 11 /* proportional to (runCvt,0) - (0,riseCvt) = (runCvt,-riseCvt). */
SWAP[]    /* Hence we have to mirror the result at the base line, which is */
WS[]      /* done by flipping (negating) the sign of the y component here. */

/* STACK: <riseCvt>, <runCvt> */

#PUSH, 2, 3 /* riseCvt */
CINDEX[]
#PUSH, 1, 4 /* runCvt */
CINDEX[]

SVTCA[X] /* same for the adjusted italic angle */
MIAP[R]  /* except to round the twilight point in x... */

SVTCA[Y]
MIAP[R]  /* ...and in y */

#PUSH, 1, 2
SPVTL[r]
GPV[]

#PUSH, 6
SWAP[]
NEG[]    /* same neg as above */
WS[]
#PUSH, 7
SWAP[]
WS[]

#PUSH, 1 /* restore graphics state */
SZPS[]

/* STACK: <riseCvt>, <runCvt> */

#PUSH, 0, 2
RS[]
EQ[]
IF[] /* running b&w? */

    /* STACK: <riseCvt>, <runCvt> */
    /* determine adjusted run' = run*[rise]/rise */

    RCVT[]
    SWAP[]
    RCVT[]
    DUP[]
    RTG[]
    ROUND[Bl]
    ROLL[]
    MUL[]
    SWAP[]
    DIV[]

    /* STACK: <run'> */
    /* determine phase = (run' - [run'])/2 = half the rounding error */

    DUP[]
    DUP[]
    #PUSH, 64
    LT[]
    IF[]
        CEILING[] /* optimize for "minimum italic angle" */
    ELSE[]
        FLOOR[] /* optimize for minimal number of jaggies */
    EIF[]
    SUB[]
    #PUSH, 32
    MUL[]

    /* STACK: <phase> */
    /* for its use on bottom italic edge, determine complement to full pixel */

    #PUSH, 64
    SWAP[]
    SUB[]

    /* and store in s[4] */

    #PUSH, 4
    SWAP[]
    WS[]

    /* STACK: */

ELSE[]

    /* STACK: <riseCvt>, <runCvt> */

    #PUSH, 4, 0
    WS[]
    POP[]
    POP[]

    /* STACK: */

EIF[]

RTG[]
SVTCA[X]

#PUSHON
#END
ENDF[]

FDEF[], 89

/* function rounds <cvt> depending on rendering environment and pv

   CALL[], <cvt>, 89 */

#BEGIN
#PUSHOFF

DUP[]
RCVT[]
#PUSH, 0, 78 /* roundDist */
CALL[]
WCVTP[]

#PUSHON
#END
ENDF[]

FDEF[], 90

/* below <ppem>: make both children the same as the (averaged) parent cvt
   at and above: calculate child cvt <ch0> as <fraction> of child cvt <ch1>

   CALL[], <p>, <ch0>, <fraction>, <ch1>, <ppem>, 90 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <ch0>, <fraction>, <ch1>, <ppem> */

MPPEM[]
LTEQ[]
#PUSH, 64, 79 /* #samples/pixel */
CALL[]
LT[]
OR[]
IF[] /* at or above ppem limit or rounding to less than a pixel */ 

    /* STACK: <p>, <ch0>, <fraction>, <ch1> */

    DUP[]
    RCVT[]
    #PUSH, 1, 78 /* roundDist */
    CALL[]
    DUP[]
    ROLL[]
    ROLL[]

    /* STACK: <p>, <ch0>, <fraction>, <[ch1]>, <ch1>, <[ch1]> */

    WCVTP[]

    /* STACK: <p>, <ch0>, <fraction>, <[ch1]> */

    DUP[]
    #PUSH, 64, 4
    MINDEX[]
    SUB[]
    MUL[]
    SUB[]
    #PUSH, 1, 78 /* roundDist */
    CALL[]

    /* STACK: <p>, <ch0>, <[ch1] - [ch1]*(1-fraction)> */

    WCVTP[]
    POP[] /* parent not involved */

    /* STACK: */

ELSE[]

    /* STACK: <p>, <ch0>, <fraction>, <ch1> */

    SWAP[]
    POP[] /* fraction not involved */

    /* STACK: <p>, <ch0>, <ch1> */

    ROLL[]
    RCVT[]
    #PUSH, 1, 78 /* roundDist */
    CALL[]

    /* STACK: <ch0>, <ch1>, <[p]> */

    DUP[]
    ROLL[]
    SWAP[]

    /* STACK: <ch0>, <[p]>, <ch1>, <[p]> */

    WCVTP[]
    WCVTP[]

    /* STACK: */

EIF[]

#PUSHON
#END
ENDF[]

FDEF[], 91

/* below <ppem>: make child cvt <ch> the same as parent cvt <p>
   at and above: calculate child cvt <ch> as <fraction> of parent cvt <p>

   CALL[], <ch>, <fraction>, <p>, <ppem>, 91 */

#BEGIN
#PUSHOFF

/* STACK: <ch>, <fraction>, <p>, <ppem> */

MPPEM[]
LTEQ[]
#PUSH, 64, 79 /* #samples/pixel */
CALL[]
LT[]
OR[]
IF[] /* at or above ppem limit or rounding to less than a pixel */ 

    /* STACK: <ch>, <fraction>, <p> */

    RCVT[]
    DUP[]
    ROLL[]

    /* STACK: <ch>, <[p]>, <[p]>, <fraction> */

    #PUSH, 64
    SUB[]
    MUL[]
    ADD[]

    /* STACK: <ch>, <[p] + [p]*(fraction - 1)> */

ELSE[]

    /* STACK: <ch>, <fraction>, <p> */

    SWAP[]
    POP[] /* fraction not involved */

    RCVT[]

    /* STACK: <ch>, [p] */

EIF[]

#PUSH, 1, 78 /* roundDist */
CALL[]
WCVTP[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 92

/* function to calculate a child cvt <ch>
   as a <blend> of two parent cvts <p0>, <p1>

   CALL[], <ch>, <blend>, <p0>, <p1>, 92 */

#BEGIN
#PUSHOFF

/* STACK: <ch>, <blend>, <p0>, <p1> */

SWAP[]
RCVT[]
DUP[]

/* STACK: <ch>, <blend>, <p1>, <[p0]>, <[p0]> */

ROLL[]
RCVT[]

SWAP[]
SUB[]

/* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]> */

DUP[]
ABS[]
#PUSH, 64
LTEQ[]

/* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]>, <contrast <= 1 pixel(s)?> */

#PUSH, 4
CINDEX[]
DUP[]
#PUSH, 0
GTEQ[]
SWAP[]
#PUSH, 64
LTEQ[]
AND[]

AND[]

/* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]>, <contrast <= 1 pixel(s) && blend >= 0 && blend <= 64?> */

#PUSH, 64, 79 /* #samples/pixel */
CALL[]
EQ[]

AND[]

/* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]>, <contrast <= 1 pixel(s) && blend >= 0 && blend <= 64 && rounding to full pixel?> */

IF[]

    /* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]> */

    ROLL[]
    GPV[]
    ABS[]
    SWAP[]
    ABS[]
    SWAP[]

    /* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend>, <|pv.x|>, <|pv.y|> */

    GTEQ[] /* pv closer to x? */
    IF[]

        /* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend> */
        /* bias towards p1: blend' := 1 - (1 - blend)² */

        #PUSH, 64, 64
        ROLL[]
        SUB[]
        DUP[]
        MUL[]
        SUB[]

        /* <ch>, <[p0]>, <[p1] - [p0]>, <1 - (1 - blend)²> */

    ELSE[]

        /* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend> */
        /* bias towards p0: blend' := blend² */

        DUP[]
        MUL[]

    /* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend²> */

    EIF[]

ELSE[]

    /* STACK: <ch>, <blend>, <[p0]>, <[p1] - [p0]> */
    /* use unbiased blend */

    ROLL[]

    /* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend> */

EIF[]

/* STACK: <ch>, <[p0]>, <[p1] - [p0]>, <blend> */

MUL[]
#PUSH, 2, 78 /* roundDist */
CALL[]
ADD[]

/* STACK: <ch>, <[ch]> */

WCVTP[]

#PUSHON
#END
ENDF[]

FDEF[], 93

/* fn sets vectors to X (used in calculated calls)

   CALL[], 93 */

#BEGIN
#PUSHOFF
SVTCA[X]
#PUSHON
#END
ENDF[]

FDEF[], 94

/* fn sets vectors to Y (used in calculated calls)

   CALL[], 94 */

#BEGIN
#PUSHOFF
SVTCA[Y]
#PUSHON
#END
ENDF[]

FDEF[], 95

/* Set fv to X, pv perpendicular to italic angle (used in calculated calls)

   CALL[], 95 */

#BEGIN
#PUSHOFF
SFVTCA[X]
#PUSH, 11, 10
RS[]
SWAP[]
RS[]
NEG[]
SPVFS[]
#PUSHON
#END
ENDF[]

FDEF[], 96

/* Set fv to italic angle, pv to Y (used in calculated calls)

   CALL[], 96 */

#BEGIN
#PUSHOFF
#PUSH, 10, 11
RS[]
SWAP[]
RS[]
SFVFS[]
SPVTCA[Y]
#PUSHON
#END
ENDF[]

FDEF[], 97

/* round down to virtual grid

   CALL[], <#samples/pixel>, <argument>, 97

   returns with rounded argument on stack */

#BEGIN
#PUSHOFF

/* STACK: <#samples/pixel>, <argument> */
/* upscale argument by #samples/pixel */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
MUL[]

/* do the rounding in upscaled domain */

FLOOR[] /* round down to super grid */

/* Downscaling uses a DIV[] operation, which is implemented as floor(numerator/denominator).
   For round(numerator/denominator) instead, add ½ denominator to numerator before dividing.
   But since the division in 26.6 has to multiply the numerator by 2^6 (64) before dividing,
   we have to divide said ½ denominator by 64 before adding, hence the 8192 (= 128 in 26.6). */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
#PUSH, 8192
DIV[]
ADD[]

/* downscale rounded and adjusted argument */

SWAP[] /* #samples/pixel */
DIV[]

/* STACK: <[argument]> */

#PUSHON
#END
ENDF[]

FDEF[], 98

/* round to virtual grid

   CALL[], <#samples/pixel>, <argument>, 98

   returns with rounded argument on stack */

#BEGIN
#PUSHOFF

/* STACK: <#samples/pixel>, <argument> */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
MUL[]

/* do the rounding in upscaled domain */

#PUSH, 32 /* round to super grid */
ADD[]
FLOOR[]

/* see above for adjustments below */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
#PUSH, 8192
DIV[]
ADD[]

/* downscale rounded and adjusted argument */

SWAP[] /* #samples/pixel */
DIV[]

/* STACK: <[argument]> */

#PUSHON
#END
ENDF[]

FDEF[], 99

/* round up to virtual grid

   CALL[], <#samples/pixel>, <argument>, 99

   returns with rounded argument on stack */

#BEGIN
#PUSHOFF

/* STACK: <#samples/pixel>, <argument> */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
MUL[]

/* do the rounding in upscaled domain */

CEILING[] /* round up to super grid */

/* see above for adjustments below */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
#PUSH, 8192
DIV[]
ADD[]

/* downscale rounded and adjusted argument */

SWAP[] /* #samples/pixel */
DIV[]

/* STACK: <[argument]> */

#PUSHON
#END
ENDF[]

FDEF[], 100

/* round to half virtual grid

   CALL[], <#samples/pixel>, <argument>, 100

   returns with rounded argument on stack */

#BEGIN
#PUSHOFF

/* STACK: <#samples/pixel>, <argument> */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
MUL[]

/* do the rounding in upscaled domain */

FLOOR[]
#PUSH, 32 /* round to half super grid */
ADD[]

/* see above for adjustments below */

#PUSH, 2 /* #samples/pixel */
CINDEX[]
#PUSH, 8192
DIV[]
ADD[]

/* downscale rounded and adjusted argument */

SWAP[] /* #samples/pixel */
DIV[]

/* STACK: <[argument]> */

#PUSHON
#END
ENDF[]

FDEF[], 101

/* determine actual distance to be used for emulating MDRP[<]
   instruction with rendering environment specific rounding

   CALL[], <p>, <c>, 101

   returns with rounded distance on stack */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c> */

SWAP[]
MD[O]

/* round without minDist */

#PUSH, 2, 78 /* roundDist */
CALL[]

/* STACK: <[w]> */

#PUSHON
#END
ENDF[]

FDEF[], 102

/* determine actual distance to be used for emulating MDRP[>]
   instruction with rendering environment specific rounding

   CALL[], <p>, <c>, 102

   returns with rounded distance on stack */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c> */

SWAP[]
MD[O]

/* round with minDist */

#PUSH, 1, 78 /* roundDist */
CALL[]

/* STACK: <[w]> */

#PUSHON
#END
ENDF[]

FDEF[], 103

/* determine actual distance to be used for emulating MIRP[<]
   instruction with rendering environment specific rounding

   CALL[], <p>, <c>, <cvt>, 103

   returns with rounded distance on stack */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <cvt> */

SWAP[] /* c */
ROLL[] /* p */
MD[O]
SWAP[] /* cvt */

/* STACK: <wNat>, <cvt> */
/* do cvt cut-in test */

RCVT[]
ABS[]
#PUSH, 2
CINDEX[]
ABS[]
#PUSH, 2
CINDEX[]
SUB[]
ABS[]
#PUSH, 3 /* cvt cut-in */
RS[]

/* STACK: <wNat>, <|wCvt|>, <||wNat| - |wCvt||>, <cvt cut-in> */

GT[]
IF[]

    /* STACK: <wNat>, <|wCvt|> */
    /* cvt cut-in test failed */

    POP[]
    DUP[]
    ABS[]

    /* else cvt cut-in test succeeded */

EIF[]

/* STACK: <wNat>, <|w|> */
/* round without minDist */

#PUSH, 2, 78 /* roundDist */
CALL[]

/* STACK: <wNat>, <[w]> */
/* inherit sign from wNat */

SWAP[]
#PUSH, 0
LT[]
IF[]
    NEG[]
EIF[]

/* STACK: <[w]> */

#PUSHON
#END
ENDF[]

FDEF[], 104

/* determine actual distance to be used for emulating MIRP[>]
   instruction with rendering environment specific rounding

   CALL[], <p>, <c>, <cvt>, 104

   returns with rounded distance on stack */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <cvt> */

SWAP[] /* c */
ROLL[] /* p */
MD[O]
SWAP[] /* cvt */

/* STACK: <wNat>, <cvt> */
/* do cvt cut-in test */

RCVT[]
ABS[]
#PUSH, 2
CINDEX[]
ABS[]
#PUSH, 2
CINDEX[]
SUB[]
ABS[]
#PUSH, 3 /* cvt cut-in */
RS[]

/* STACK: <wNat>, <|wCvt|>, <||wNat| - |wCvt||>, <cvt cut-in> */

GT[]
IF[]

    /* STACK: <wNat>, <|wCvt|> */
    /* cvt cut-in test failed */

    POP[]
    DUP[]
    ABS[]

    /* else cvt cut-in test succeeded */

EIF[]

/* STACK: <wNat>, <|w|> */
/* round with minDist */

#PUSH, 1, 78 /* roundDist */
CALL[]

/* STACK: <wNat>, <[w]> */
/* inherit sign from wNat */

SWAP[]
#PUSH, 0
LT[]
IF[]
    NEG[]
EIF[]

/* STACK: <[w]> */

#PUSHON
#END
ENDF[]

FDEF[], 105

/* emulate MDRP[<] instruction with rendering environment specific rounding

   CALL[], <p>, <c>, 105 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c> */

DUP[] /* c */
#PUSH, 3 /* p */
CINDEX[]
MD[O]
#PUSH, 2, 78 /* roundDist */
CALL[]

/* STACK: <p>, <c>, <[dist]> */

ROLL[]
SRP0[]
MSIRP[M]

#PUSHON
#END
ENDF[]

FDEF[], 106

/* emulate MDRP[>] instruction with rendering environment specific rounding

   CALL[], <p>, <c>, 106 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c> */

DUP[] /* c */
#PUSH, 3 /* p */
CINDEX[]
MD[O]
#PUSH, 1, 78 /* roundDist */
CALL[]

/* STACK: <p>, <c>, <[dist]> */

ROLL[]
SRP0[]
MSIRP[M]

#PUSHON
#END
ENDF[]

FDEF[], 107

/* emulate MIRP[<] instruction with rendering environment specific rounding

   CALL[], <p>, <c>, <cvt>, 107 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <cvt> */

#PUSH, 3 /* p */
CINDEX[]
#PUSH, 3 /* c */
CINDEX[]
ROLL[] /* cvt */
#PUSH, 103 /* resActDist, cvt, noMinDist */
CALL[]

/* STACK: <p>, <c>, <[dist]> */

ROLL[]
SRP0[]
MSIRP[M]

#PUSHON
#END
ENDF[]

FDEF[], 108

/* emulate MIRP[>] instruction with rendering environment specific rounding

   CALL[], <p>, <c>, <cvt>, 108 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <cvt> */

#PUSH, 3 /* p */
CINDEX[]
#PUSH, 3 /* c */
CINDEX[]
ROLL[] /* cvt */
#PUSH, 104 /* resActDist, cvt, minDist */
CALL[]

/* STACK: <p>, <c>, <[dist]> */

ROLL[]
SRP0[]
MSIRP[M]

#PUSHON
#END
ENDF[]

FDEF[], 109

/* fn symmetrically constrains a stroke <p>, <c> with <cvt>

   CALL[], <p>, <c>, <cvt>, 109 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <cvt> */
/* determine old median */

#PUSH, 3 /* <p> */
CINDEX[]
GC[N]
#PUSH, 3 /* <c> */
CINDEX[]
GC[N]
ADD[]

/* STACK: <p>, <c>, <cvt>, <2*median> */
/* lock parent */

#PUSH, 4 /* p */
CINDEX[]
MDAP[r]

/* STACK: <p>, <c>, <cvt>, <2*median> */
/* link child */

#PUSH, 4 /* p */
CINDEX[]
#PUSH, 4 /* c */
CINDEX[]
#PUSH, 4 /* cvt */
MINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 106 /* resMIRP, noCvt, minDist */
ELSE[]
    #PUSH, 108 /* resMIRP, cvt, minDist */
EIF[]
CALL[]

/* STACK: <p>, <c>, <2*median> */
/* determine new median */

#PUSH, 3 /* <p> */
CINDEX[]
GC[N]
#PUSH, 3 /* <c> */
CINDEX[]
GC[N]
ADD[]

/* STACK: <p>, <c>, <2*median>, <2*median'> */

SUB[]
#PUSH, 128
DIV[] /* floor to 1/64 for now */

/* STACK: <p>, <c>, <deltaMedian> */

DUP[]
ROLL[]
DUP[]
SRP0[]
SWAP[]
MSIRP[m]
SWAP[]
DUP[]
SRP0[]
SWAP[]
MSIRP[m]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 110

/* calculate offset for emulation of interpolation of median of
   <c0> and <c1> between parents <p0> and <p1> using current pv and fv

   CALL[], <p0>, <c0>, <c1>, <p1>, 110

   returns with offset on stack */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <c1>, <p1> */

#PUSH, 3 /* c0 */
CINDEX[]
GC[O]
#PUSH, 3 /* c1 */
CINDEX[]
GC[O]
ADD[]

/* STACK: <p0>, <c0>, <c1>, <p1>, <c0 + c1> */

#PUSH, 5 /* p0 */
CINDEX[]
GC[O]
#PUSH, 128
MUL[]
SUB[]

/* STACK: <p0>, <c0>, <c1>, <p1>, <c0 + c1 - 2*p0> */

#PUSH, 2 /* p1 */
CINDEX[]
#PUSH, 6 /* p0 */
CINDEX[]
MD[N]
MUL[]

/* STACK: <p0>, <c0>, <c1>, <p1>, <(c0 + c1 - 2*p0)*(p1' - p0')> */

SWAP[] /* p1 */
#PUSH, 5 /* p0 */
CINDEX[]
MD[O]
#PUSH, 128
MUL[]

/* prevent inadvertent divide-by-zero e.g. on non-spacing glyphs */
DUP[]
IF[]
    DIV[]
ELSE[]
    POP[]
EIF[]

/* STACK: <p0>, <c0>, <c1>, <(c0 + c1 - 2*p0)*(p1' - p0')/(2*(p1 - p0))> */

#PUSH, 4 /* p0 */
MINDEX[]
GC[N]
ADD[]

/* STACK: <c0>, <c1>, <(c0'' + c1'')/2> */

ROLL[] /* c0 */
GC[N]
ROLL[] /* c1 */
GC[N]
ADD[]
#PUSH, 32
MUL[]

/* STACK: <(c0'' + c1'')/2>, <(c0' + c1')/2> */

SUB[]

/* STACK: <offset> */

#PUSHON
#END
ENDF[]

FDEF[], 111

/* emulate interpolation of median of <c0> and <c1>
   between parents <p0> and <p1> using current pv and fv

   CALL[], <p0>, <c0>, <c1>, <p1>, 111 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <c1>, <p1> */

#PUSH, 4 /* p0 */
MINDEX[]
#PUSH, 4 /* c0 */
CINDEX[]
#PUSH, 4 /* c1 */
CINDEX[]
#PUSH, 4 /* p1 */
MINDEX[]
#PUSH, 110 /* calc offset for interpolation of median */
CALL[]

/* STACK: <c0>, <c1>, <offset> */

DUP[]

/* STACK: <c0>, <c1>, <offset>, <offset> */

ROLL[]
DUP[]
SRP0[]
SWAP[]

/* STACK: <c0>, <offset>, <c1>, <offset> */

MSIRP[m]

SWAP[]
DUP[]
SRP0[]
SWAP[]

/* STACK: <c0>, <offset> */

MSIRP[m]

#PUSHON
#END
ENDF[]

FDEF[], 112


/* adjust (unrounded) stroke phase to target phase according to <method>

   method 0: round to nearest virtual pixel
   method 1: apply method 2 below 2 pixel wide strokes else method 0
   method 2: optimize for max #black pixels
   method 3: optimize for one edge aligned

   right?: boolean indicating a left (false) or right (true) stroke)

   CALL[], <phase>, <weight>, <method>, <right?>, 112

   returns with (rounded) adjusted phase on stack */

#BEGIN
#PUSHOFF

/* STACK: <phase>, <weight>, <method>, <right?> */

SWAP[]

DUP[]
#PUSH, 1
EQ[]
IF[]

    /* STACK: <phase>, <weight>, <right?>, <method> */
    /* replace method depending on stroke weight */

    POP[]
    #PUSH, 2 /* weight */
    CINDEX[]
    #PUSH, 2, 78 /* roundDist */
    CALL[]
    #PUSH, 128
    LT[]
    DUP[]
    ADD[]
EIF[]

DUP[]
ADD[]
ADD[]

/* STACK: <phase>, <weight>, <method' = 2*method + right> */

DUP[]
#PUSH, 1
LTEQ[]
IF[] /* just round to nearest virtual pixel */

    POP[]
    POP[]

    /* STACK: <phase> */

ELSE[]
    DUP[]
    #PUSH, 5
    LTEQ[]
    IF[] /* optimize for max #black pixels */

        POP[]

        /* STACK: <phase>, <weight> */

        DUP[]
        FLOOR[]
        SUB[]

        /* STACK: <phase>, <fractWeight> */

        #PUSH, 64
        SWAP[]
        SUB[]

        /* STACK: <phase>, <1-fractWeight> */

        #PUSH, 0, 3 /* phase */
        CINDEX[]
        LT[]
        #PUSH, 3 /* phase */
        CINDEX[]
        #PUSH, 3 /* 1-fractWeight */
        CINDEX[]
        LT[]
        AND[]
        IF[] /* if 0 < phase < 1-fractWeight then need to adjust phase */

            /* STACK: <phase>, <1-fractWeight> */

            DUP[]
            #PUSH, 3
            CINDEX[]
            SUB[]

            /* STACK: <phase>, <1-fractWeight>, <1-fractWeight-phase> */

            ROLL[]
            GTEQ[]
            IF[] /* error from phase to 1-fractWeight >= error from 0 to phase */
                POP[]
                #PUSH, 0 /* target 0 as phase */
            EIF[]
            /* else target 1-fractWeight as phase, which is what's left on stack */

        ELSE[]

            /* STACK: <phase>, <1-fractWeight> */

            POP[]

        EIF[]

    ELSE[] /* optimize for one edge aligned */

        /* STACK: <phase>, <weight>, <method'> */

        #PUSH, 7
        EQ[]
        IF[] /* right flush */

            /* STACK: <phase>, <weight> */

            DUP[]
            FLOOR[]
            SUB[]

            /* STACK: <phase>, <fractWeight> */

            NEG[]
            SWAP[]
            POP[]

        ELSE[] /* left flush (and default) */

            /* STACK: <phase>, <weight> */

            POP[]
            POP[]
            #PUSH, 0

        EIF[]

    EIF[]

EIF[]

#PUSH, 2, 78 /* roundDist */
CALL[]

/* STACK: phase */

#PUSHON
#END
ENDF[]

FDEF[], 113

/* fn calculates delta phase for optimal position of
   stroke bordered by <p> and <c> according to <method>
   (see fn 112 for definition of method)

   CALL[], <p>, <c>, <method>, 113

   returns with delta phase in interval ]-½,+½] on stack */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <method> */

    /* use sequence of parameters <p> and <c> to determine if this is
       a "left" stroke (in which case we may add grey to the right), or
       a "right" stroke (in which case we may add grey to the left) */

#PUSH, 2 /* c */
CINDEX[]
#PUSH, 4 /* p */
CINDEX[]
MD[O]
#PUSH, 0
GTEQ[]
IF[]
    #PUSH, 0 /* "left" stroke */
ELSE[]
    ROLL[]
    ROLL[]
    SWAP[]
    ROLL[]
    #PUSH, 1 /* "right" stroke */
EIF[]

/* STACK: <p>, <c>, <method>, <right?> */

#PUSH, 4 /* p */
CINDEX[]
GC[N]
DUP[]
FLOOR[]
SUB[]
DUP[]

/* STACK: <p>, <c>, <method>, <right?>, <source phase>, <source phase> */

#PUSH, 5 /* c */
MINDEX[]
#PUSH, 6 /* p */
MINDEX[]
MD[N]

/* STACK: <method>, <right?>, <source phase>, <source phase>, <weight> */

#PUSH, 5 /* method */
MINDEX[]
#PUSH, 5 /* right? */
MINDEX[]
#PUSH, 112 /* adjust to target stroke phase */
CALL[]

/* STACK: <source phase>, <target phase> */

SWAP[]
SUB[]

/* STACK: <delta phase> */
/* minimze phase into interval ]-½,+½] */

NEG[]
#PUSH, 32
ADD[]
DUP[]
FLOOR[]
SUB[]
#PUSH, 32
SUB[]
NEG[]

#PUSHON
#END
ENDF[]

FDEF[], 114

/* emulate MIAP instruction with rendering environment specific rounding

   CALL[], <c>, <cvt>, 114 */

#BEGIN
#PUSHOFF

/* STACK: <c>, <cvt> */

#PUSH, 2 /* c */
CINDEX[]
GC[N]
DUP[]

/* STACK: <c>, <cvt>, <wNat>, <wNat> */

ROLL[]
DUP[]
#PUSH, 0
LT[]
IF[]

    /* STACK: <c>, <wNat>, <wNat>, <cvt> */

    POP[]

    /* cvt < 0 (no cvt used) => w = wNat */
    /* STACK: <c>, <wNat>, <w> */

    #PUSH, 2, 78 /* roundDist */
    CALL[]

ELSE[]

    RCVT[]

    /* STACK: <c>, <wNat>, <wNat>, <wCvt> */
    /* no cvt cut-in test (for eventual support of automatic small caps, superiors, and inferiors), pop wNat to use wCvt */

    SWAP[]
    POP[]

    /* leave value as rounded by cpgm */
    /* STACK: <c>, <wNat>, <w> */

EIF[]

SUB[]
NEG[]

/* STACK: <c>, <wDelta> */

#PUSH, 2
CINDEX[]
SRP0[]

MSIRP[M]

#PUSHON
#END
ENDF[]

FDEF[], 115

/* interpolates a point <p> in <dirFlag> between points <lsb> and <rsb>
   dirFlag: postRoundFlag*8 + dir
   dir: X = 0, Y = 1, X/ = 2, Y/ = 3, ...

   depending on rendering environment and pv may optimise point position

   CALL[], <dirFlag>, <p0>, <c>, <p1>, 115 */

#BEGIN
#PUSHOFF

/* STACK: <dirFlag>, <p0>, <p>, <p1> */
/* separate postRoundFlag from dir */

#PUSH, 4 /* dirFlag */
MINDEX[]
DUP[]
#PUSH, 512
DIV[]
DUP[]
#PUSH, 512
MUL[]
ROLL[]
SWAP[]
SUB[]

/* STACK:, <p0>, <p>, <p1>, <postRoundFlag>, <dir> */

DUP[]
#PUSH, 93 /* setV */
ADD[]
CALL[]

/* STACK: <p0>, <p>, <p1>, <postRoundFlag>, <dir> */

#PUSH, 5 /* p0 */
CINDEX[]
SRP1[]
ROLL[] /* p1 */
SRP2[]
ROLL[] /* p */
DUP[]
IP[]

/* STACK: <p0>, <postRoundFlag>, <dir>, <p> */

ROLL[] /* postRoundFlag */
IF[]

    /* STACK: <p0>, <dir>, <p> */

    #PUSH, 93, 4096, 4 /* setV, 64, dir */
    MINDEX[]
    MUL[]
    ODD[]
    ADD[]
    CALL[]

    /* STACK: <p0>, <p> */

    SWAP[]
    POP[]
    DUP[] /* p */
    SRP0[]
    DUP[]
    GC[N]
    DUP[]
    #PUSH, 2, 78 /* roundDist */
    CALL[]
    SWAP[]
    SUB[]

    /* STACK: <p>, <[p.c]-p.c> */

ELSE[]

    /* STACK: <p0>, <dir>, <p> */

    SWAP[]
    POP[]

    /* STACK: <p0>, <p> */

    DUP[]
    ROLL[]
    DUP[] /* p0 */
    SRP0[]
    MD[N]

    #PUSH, 2, 78 /* roundDist */
    CALL[]

    /* STACK: <p>, <[p.dist]> */

EIF[]

MSIRP[M]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 116

/* constrains a stroke in <dir>, defined by parent <p> and child <c>,
   and by cvt <cvt>, and interpolates it between points <gp0> and <gp1>
   dir: X = 0, Y = 1, X/ = 2
   sof: (stroke optimization flags ||, |<, and >| ) don't = 0, do = 1, leftBias = 2, rightBias = 3

   CALL[], <dir>, <gp0>, <p>, <c>, <cvt>, <gp1>, <sof>, 116 */

#BEGIN
#PUSHOFF

/* STACK: <dir>, <gp0>, <p>, <c>, <cvt>, <gp1>, <sof> */

#PUSH, 93, 4096, 9 /* setV, 64, dir */
CINDEX[]
MUL[]
ODD[]
ADD[]
CALL[]

/* constrain stroke */

#PUSH, 5 /* p */
CINDEX[]
#PUSH, 5 /* c */
CINDEX[]
#PUSH, 5 /* cvt */
MINDEX[]
#PUSH, 109 /* symDist */
CALL[]

/* STACK: <dir>, <gp0>, <p>, <c>, <gp1>, <sof> */

#PUSH, 93, 7 /* setV, dir */
CINDEX[]
ADD[]
CALL[]

#PUSH, 5 /* gp0 */
CINDEX[]
#PUSH, 5 /* p */
CINDEX[]
#PUSH, 5 /* c */
CINDEX[]
#PUSH, 5 /* gp1 */
CINDEX[]
#PUSH, 111 /* interpolate median */
CALL[]

/* STACK: <dir>, <gp0>, <p>, <c>, <gp1>, <sof> */

#PUSH, 93, 4096, 8 /* setV, 64, dir */
MINDEX[]
MUL[]
ODD[]
ADD[]
CALL[]

/* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */

DUP[]
#PUSH, 0
GT[]
IF[] /* optimize stroke position */

    #PUSH, 80
    CALL[]

    /* STACK: <gp0>, <p>, <c>, <gp1>, <sof>, <som> */

    #PUSH, 5 /* p */
    CINDEX[]
    #PUSH, 5 /* c */
    CINDEX[]
    #PUSH, 7 /* p */
    CINDEX[]
    #PUSH, 7 /* c */
    CINDEX[]
    #PUSH, 5 /* som */
    CINDEX[]
    #PUSH, 113 /* get delta phase for optimal stroke position */
    CALL[]
    #PUSH, 2
    SLOOP[]
    SHPIX[]

    /* STACK: <gp0>, <p>, <c>, <gp1>, <sof>, <som> */

    #PUSH, 0
    GT[]
    #PUSH, 2 /* sof */
    CINDEX[]
    #PUSH, 1
    GT[]
    AND[]
    IF[]

        /* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */
        /* determine total side-bearing space to see if we need to bias the black body */

        #PUSH, 4 /* p */
        CINDEX[]
        #PUSH, 6 /* gp0 */
        CINDEX[]
        MD[N]
        #PUSH, 3 /* gp1 */
        CINDEX[]
        #PUSH, 5 /* c */
        CINDEX[]
        MD[N]
        ADD[]
        DUP[]
        #PUSH, 64
        GT[]
        IF[]

            /* STACK: <gp0>, <p>, <c>, <gp1>, <sof>, <totSBS> */
            /* enough total side-bearing space left, leave it alone */
            POP[]

        ELSE[]

            /* STACK: <gp0>, <p>, <c>, <gp1>, <sof>, <totSBS> */
            /* 1 pixel or less total side-bearing space left */

            #PUSH, 0
            GT[]
            IF[]

                /* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */
                /* any total side-bearing space left at all */

                DUP[]
                #PUSH, 2
                EQ[]
                IF[]

                    /* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */
                    /* move stroke flush left */

                    #PUSH, 4 /* p */
                    CINDEX[]
                    #PUSH, 4 /* c */
                    CINDEX[]
                    #PUSH, 7 /* gp0 */
                    CINDEX[]
                    #PUSH, 7 /* p */
                    CINDEX[]
                    MD[N]
                    #PUSH, 2
                    SLOOP[]
                    SHPIX[]

                ELSE[]

                    /* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */
                    /* move stroke flush left */

                    #PUSH, 4 /* p */
                    CINDEX[]
                    #PUSH, 4 /* c */
                    CINDEX[]
                    #PUSH, 4 /* gp1 */
                    CINDEX[]
                    #PUSH, 6 /* c */
                    CINDEX[]
                    MD[N]
                    #PUSH, 2
                    SLOOP[]
                    SHPIX[]

                EIF[]

            EIF[]

        EIF[]

    EIF[]

EIF[]

/* STACK: <gp0>, <p>, <c>, <gp1>, <sof> */

POP[]
POP[]
POP[]
POP[]
POP[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 117

/* fn tries to place and constrain two strokes <p0,c0,cvt0> and <p1,c1,cvt1>
   between grandparents <gp0> and <gp1> in direction <dir>
   dir: X = 0, Y = 1, X/ = 2
   X/ (italic) is not yet implemented; to do so properly will need to factor
   the italic phase optimization part out of fn 131 and make it available to
   this fn.   

   CALL[], <dir>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, 117 */

#BEGIN
#PUSHOFF

/* STACK: <dir>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1> */

#PUSH, 93, 4096, 11 /* setV, dir */
CINDEX[]
MUL[]
ODD[]
ADD[]
CALL[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1> */
/* interpolate black body */

#PUSH, 7 /* p0 */
CINDEX[]
#PUSH, 7 /* c0 */
CINDEX[]
#PUSH, 6 /* p1 */
CINDEX[]
#PUSH, 6 /* c1 */
CINDEX[]
#PUSH, 12 /* gp0 */
CINDEX[]
#PUSH, 12 /* p0 */
CINDEX[]
#PUSH, 9 /* c1 */
CINDEX[]
#PUSH, 8 /* gp1 */
CINDEX[]
#PUSH, 110 /* calc offset for interpolation of median */
CALL[]
#PUSH, 4
SLOOP[]
SHPIX[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1> */
/* constrain stroke0 */

#PUSH, 7 /* p0 */
CINDEX[]
#PUSH, 7 /* c0 */
CINDEX[]
#PUSH, 7 /* cvt0 */
MINDEX[]
#PUSH, 109 /* symDist */
CALL[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <cvt1>, <gp1> */
/* constrain stroke1 */

#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 4 /* c1 */
CINDEX[]
#PUSH, 4 /* cvt1 */
MINDEX[]
#PUSH, 109 /* symDist */
CALL[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1> */

#PUSH, 80
CALL[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
/* determine phase0 for optimal position of stroke0 */

#PUSH, 6 /* p0 */
CINDEX[]
#PUSH, 6 /* c0 */
CINDEX[]
#PUSH, 3 /* som */
CINDEX[]
#PUSH, 113 /* get delta phase for optimal stroke position */
CALL[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0> */
/* forward to stroke1 position */

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 5 /* c1 */
CINDEX[]
#PUSH, 3 /* phase0 */
CINDEX[]
#PUSH, 2
SLOOP[]
SHPIX[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0> */
/* determine phase1 for optimal position of stroke1 */

DUP[]
#PUSH, 6 /* p1 */
CINDEX[]
#PUSH, 6 /* c1 */
CINDEX[]
#PUSH, 5 /* som */
CINDEX[]
#PUSH, 113 /* get delta phase for optimal stroke position */
CALL[]
ADD[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1> */
/* undo forwarding to stroke1 position */

#PUSH, 6 /* p1 */
CINDEX[]
#PUSH, 6 /* c1 */
CINDEX[]
#PUSH, 4 /* phase0 */
CINDEX[]
NEG[]
#PUSH, 2
SLOOP[]
SHPIX[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1> */
/* determine double average phase error */

#PUSH, 2 /* phase0 */
CINDEX[]
#PUSH, 2 /* phase1 */
CINDEX[]
ADD[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1>, <2*phaseError> */

DUP[]
#PUSH, 64
GTEQ[]
IF[]

    /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1>, <2*phaseError> */
    /* double average phase error >= 1 pixel, correct to the left */

    POP[]
    #PUSH, 64
    SUB[]
    SWAP[]
    #PUSH, 64
    SUB[]
    SWAP[]

ELSE[]

    /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1>, <2*phaseError> */

    #PUSH, -64
    LT[]
    IF[]

        /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1>, <2*phaseError> */
        /* double average phase error < -1 pixel, correct to the right */

        #PUSH, 64
        ADD[]
        SWAP[]
        #PUSH, 64
        ADD[]
        SWAP[]

    EIF[]

EIF[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase0>, <phase1> */
/* apply corrected optimal phase0 to stroke0 */

#PUSH, 8 /* p0 */
CINDEX[]
#PUSH, 8 /* c0 */
CINDEX[]
#PUSH, 4 /* phase0 */
MINDEX[]
#PUSH, 2
SLOOP[]
SHPIX[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som>, <phase1> */
/* apply corrected optimal phase1 to stroke1 */

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 5 /* c1 */
CINDEX[]
ROLL[] /* phase1 */
#PUSH, 2
SLOOP[]
SHPIX[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */

DUP[]
#PUSH, 0
GT[]
IF[]

    /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
    /* determine total side-bearing space to see if we need to bias the black body */

    #PUSH, 6 /* p0 */
    CINDEX[]
    #PUSH, 8 /* gp0 */
    CINDEX[]
    MD[N]
    #PUSH, 3 /* gp1 */
    CINDEX[]
    #PUSH, 5 /* c1 */
    CINDEX[]
    MD[N]
    ADD[]
    DUP[]
    #PUSH, 64
    GT[]
    IF[]

        /* enough total side-bearing space left, leave it alone */
        POP[]

    ELSE[]

        /* 1 pixel or less total side-bearing space left */
        #PUSH, 0
        GT[]
        IF[]

            /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
            /* any total side-bearing space left at all, move black-body flush left and start over */

            #PUSH, 6 /* p0 */
            CINDEX[]
            #PUSH, 6 /* c0 */
            CINDEX[]
            #PUSH, 6 /* p1 */
            CINDEX[]
            #PUSH, 6 /* c1 */
            CINDEX[]
            #PUSH, 11 /* gp0 */
            CINDEX[]
            #PUSH, 11 /* p0 */
            CINDEX[]
            MD[N]
            #PUSH, 4
            SLOOP[]
            SHPIX[]

            /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
            /* optimize position of stroke0 forwarding phase0 to stroke1 */

            #PUSH, 6 /* p0 */
            CINDEX[]
            #PUSH, 6 /* c0 */
            CINDEX[]
            #PUSH, 6 /* p1 */
            CINDEX[]
            #PUSH, 6 /* c1 */
            CINDEX[]
            #PUSH, 10 /* p0 */
            CINDEX[]
            #PUSH, 10 /* c0 */
            CINDEX[]
            #PUSH, 7 /* som */
            CINDEX[]
            #PUSH, 113 /* get delta phase for optimal stroke position */
            CALL[]
            #PUSH, 4 /* apply to both strokes */
            SLOOP[]
            SHPIX[]

            /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
            /* optimize position of stroke1 */

            #PUSH, 4 /* p1 */
            CINDEX[]
            #PUSH, 4 /* c1 */
            CINDEX[]
            #PUSH, 5 /* c1 */
            CINDEX[]
            #PUSH, 7 /* p1 */
            CINDEX[]
            #PUSH, 5 /* som */
            CINDEX[]
            #PUSH, 113 /* get delta phase for optimal stroke position */
            CALL[]
            #PUSH, 2 /* apply to second stroke only */
            SLOOP[]
            SHPIX[]

        ELSE[]

            /* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */
            /* no total side-bearing space left, move stroke1 left by 1 pixel */

            #PUSH, 4 /* p1 */
            CINDEX[]
            #PUSH, 4 /* c1 */
            CINDEX[]
            #PUSH, -64, 2
            SLOOP[]
            SHPIX[]

        EIF[]

    EIF[]

EIF[]

/* STACK: <dir>, <gp0>, <p0>, <c0>, <p1>, <c1>, <gp1>, <som> */

POP[]
POP[]
POP[]
POP[]
POP[]
POP[]
POP[]
POP[]

#PUSHON
#END
ENDF[]

FDEF[], 118

/* fn to set pv perpendicular to p1 and c0' such that distance
   c0'<---p0 measures cvt or natural distance if cvt = -1.
   used as support to ResX|YDDist and ResX|YDLink

   CALL[], <p1>, <p0>, <c0>, <cvt>, 118 */

#BEGIN
#PUSHOFF

/* STACK: <p1>, <p0>, <c0>, <cvt> */

#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 3 /* c0 */
CINDEX[]
SDPVTL[R]
#PUSH, 3 /* p0 */
CINDEX[]
#PUSH, 3 /* c0 */
CINDEX[]
ROLL[] /* cvt */
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 101 /* resActDist, noCvt, noMinDist */
ELSE[]
    #PUSH, 104 /* resActDist, cvt, minDist */
EIF[]
CALL[]
ABS[]

/* STACK: <p1>, <p0>, <c0>, <w> */

#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 4 /* p0 */
CINDEX[]
SPVTL[r]
#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 4 /* p0 */
CINDEX[]
MD[N]

/* STACK: <p1>, <p0>, <c0>, <w>, <d> */
/* test if solution exists at all */

DUP[]
DUP[]
MUL[]
#PUSH, 3 /* w */
CINDEX[]
DUP[]
MUL[]
LTEQ[]
#PUSH, 0, 3 /* d */
CINDEX[]
EQ[]
OR[]

/* STACK: <p1>, <p0>, <c0>, <w>, <d>, <d² <= w² or d = 0?> */

IF[]

    /* STACK: <p1>, <p0>, <c0>, <w>, <d> */
    /* solution doesn't exist, hence prepare to bail out */

    POP[]
    POP[]
    SWAP[]
    POP[]
    SPVTL[R]

ELSE[]

    /* STACK: <p1>, <p0>, <c0>, <w>, <d> */
    /* solution exists, hence continue computation */

    DUP[]
    MUL[]
    #PUSH, 2 /* w */
    CINDEX[]
    DUP[]
    MUL[]
    SUB[]
    DUP[]

    /* STACK: <p1>, <p0>, <c0>, <w>, <d² - w²>, <d² - w²> */

    #PUSH, 83 /* sqrt */
    CALL[]

    /* STACK: <p1>, <p0>, <c0>, <w>, <d² - w²>, <sqrt(d² - w²)> */

    ROLL[] /* w */
    MUL[]

    /* STACK: <p1>, <p0>, <c0>, <d² - w² =: dx>, <w·sqrt(d² - w²) =: dy> */

    #PUSH, 5 /* p1 */
    CINDEX[]
    #PUSH, 5 /* p0 */
    CINDEX[]
    SDPVTL[R]
    #PUSH, 4 /* p0 */
    CINDEX[]
    #PUSH, 4 /* c0 */
    MINDEX[]
    MD[O]

    #PUSH, 0
    LT[]
    IF[]
        NEG[] /* dy */
    EIF[]

    /* STACK: <p1>, <p0>, <dx>, <dy> */

    #PUSH, 4 /* p1 */
    MINDEX[]
    DUP[]
    SVTCA[X]
    GC[N]
    SWAP[]
    SVTCA[Y]
    GC[N]

    /* STACK: <p0>, <dx>, <dy>, <p1.x>, <p1.y> */

    #PUSH, 5 /* p0 */
    MINDEX[]
    DUP[]
    SVTCA[X]
    GC[N]
    SWAP[]
    SVTCA[Y]
    GC[N]

    /* STACK: <dx>, <dy>, <p1.x>, <p1.y>, <p0.x>, <p0.y> */

    #PUSH, 0 /* enter twilight zone */
    SZPS[]

    SVTCA[Y]
    #PUSH, 0
    SWAP[]
    SCFS[]
    SVTCA[X]
    #PUSH, 0
    SWAP[]
    SCFS[]

    /* STACK: <dx>, <dy>, <p1.x>, <p1.y> */

    SVTCA[Y]
    DUP[]
    #PUSH, 1
    SWAP[]
    SCFS[]
    #PUSH, 2
    SWAP[]
    SCFS[]
    SVTCA[X]
    DUP[]
    #PUSH, 1
    SWAP[]
    SCFS[]
    #PUSH, 2
    SWAP[]
    SCFS[]

    /* STACK: <dx>, <dy> */

    SWAP[]

    /* STACK: <dy>, <dx> */

    #PUSH, 2, 0, 1
    SFVTL[r]
    SWAP[]
    SHPIX[]

    /* STACK: <dy> */

    #PUSH, 2, 0, 1
    SFVTL[R]
    SWAP[]
    SHPIX[]

    /* STACK: */

    #PUSH, 2, 1
    SPVTL[R]

    #PUSH, 1 /* leave twilight zone */
    SZPS[]

EIF[]

#PUSHON
#END
ENDF[]

FDEF[], 119

/* align c with p unless fv is perpendicular to pv
   fv and pv assumed to be set prior to calling fn 119
   used as support to ResX|YDDist and ResX|YDLink

   CALL[], <p>, <c>, 119 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c> */

SWAP[]
SRP0[]

/* STACK: <c> */

GFV[]
GPV[]

/* STACK: <c>, <fv.x>, <fv.y>, <pv.x>, <pv.y> */

ROLL[]
MUL[]
SWAP[]
ROLL[]
MUL[]
ADD[]
ABS[]

/* STACK: <c>, <|pv.y*fv.y + pv.x*fv.x|> */

#PUSH, 16384, 1024
MUL[]

/* the above dot product multiplies two 2.14 numbers in 26.6 arithmetic yielding a 2.22 number (2^14 * 2^14 / 2^6 = 2^22)
   like the rasterizer, we're comparing this number to 1/16: |fv1·pv| < 1/16 means fv1 is within ±arcsin(1/16) or ±3.5833° perpendicular to pv
   in 2.22 format 1/16 is 2^18, but since the assembler won't allow us to push 2^18 = 262144, we make up this number as a multiplication
   the multiplication, in turn, is again done in 26.6 format, hence we multiply 16384 with 1024 (2^14 * 2^10 / 2^6 = 2^18) */

LT[]
IF[]

    /* fv is approximately perpendicular to pv which by itself is perpendicular
       to a line from p to c' (with c' the twilight point 2 computed in fn 118),
       i.e. fv is approximately parallel to line from p to c'. Given the usage
       of fn 119 this means that fv is approximately coincident with said line,
       or c is approximately aligned already, hence simply touch the point, but
       without involving the pv */

    /* STACK: <c> */

    #PUSH, 0
    SHPIX[]

ELSE[]

    /* STACK: <c> */

    ALIGNRP[]

EIF[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 120

/* support to ResX|YDDist and ResX|YDLink where fv0 and fv1 are x or y

   CALL[], <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0>, <fv1>, 120 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0>, <fv1> */

#PUSH, 6 /* p1 */
CINDEX[]
#PUSH, 9 /* p0 */
CINDEX[]
#PUSH, 9 /* c0 */
CINDEX[]
#PUSH, 7 /* cvt0 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv0>, <fv1> */

SWAP[]
#PUSH, 0 /* x? */
EQ[]
IF[]
  SFVTCA[X]
ELSE[]
  SFVTCA[Y]
EIF[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv1> */

#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 6 /* c0 */
MINDEX[]
#PUSH, 119
CALL[]

/* STACK: <p0>, <p1>, <c1>, <cvt1>, <fv1> */

#PUSH, 5 /* p0 */
CINDEX[]
#PUSH, 5 /* p1 */
MINDEX[]
#PUSH, 5 /* c1 */
CINDEX[]
#PUSH, 5 /* cvt1 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c1>, <fv1> */

#PUSH, 0 /* x? */
EQ[]
IF[]
  SFVTCA[X]
ELSE[]
  SFVTCA[Y]
EIF[]

/* STACK: <p0>, <c1> */

#PUSH, 119
CALL[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 121

/* support to ResX|YDDist and ResX|YDLink where fv0 is x or y while fv1 is to-line

   CALL[], <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0>, <fv1.p0>, <fv1.p1>, 121 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0>, <fv1.p0>, <fv1.p1> */

#PUSH, 7 /* p1 */
CINDEX[]
#PUSH, 10 /* p0 */
CINDEX[]
#PUSH, 10 /* c0 */
CINDEX[]
#PUSH, 8 /* cvt0 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv0>, <fv1.p0>, <fv1.p1> */

ROLL[]
#PUSH, 0 /* x? */
EQ[]
IF[]
  SFVTCA[X]
ELSE[]
  SFVTCA[Y]
EIF[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv1.p0>, <fv1.p1> */

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 7 /* c0 */
MINDEX[]
#PUSH, 119
CALL[]

/* STACK: <p0>, <p1>, <c1>, <cvt1>, <fv1.p0>, <fv1.p1> */

#PUSH, 6 /* p0 */
CINDEX[]
#PUSH, 6 /* p1 */
MINDEX[]
#PUSH, 6 /* c1 */
CINDEX[]
#PUSH, 6 /* cvt1 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c1>, <fv1.p0>, <fv1.p1> */

SFVTL[r]

/* STACK: <p0>, <c1> */

#PUSH, 119
CALL[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 122

/* support to ResX|YDDist and ResX|YDLink where fv0 is to-line while fv1 is x or y

   CALL[], <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1>, 122 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1> */

#PUSH, 7 /* p1 */
CINDEX[]
#PUSH, 10 /* p0 */
CINDEX[]
#PUSH, 10 /* c0 */
CINDEX[]
#PUSH, 8 /* cvt0 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1> */

ROLL[]
ROLL[]
SFVTL[r]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv1> */

#PUSH, 4 /* p1 */
CINDEX[]
#PUSH, 6 /* c0 */
MINDEX[]
#PUSH, 119
CALL[]

/* STACK: <p0>, <p1>, <c1>, <cvt1>, <fv1> */

#PUSH, 5 /* p0 */
CINDEX[]
#PUSH, 5 /* p1 */
MINDEX[]
#PUSH, 5 /* c1 */
CINDEX[]
#PUSH, 5 /* cvt1 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c1>, <fv1> */

#PUSH, 0 /* x? */
EQ[]
IF[]
  SFVTCA[X]
ELSE[]
  SFVTCA[Y]
EIF[]

/* STACK: <p0>, <c1> */

#PUSH, 119
CALL[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 123

/* support to ResX|YDDist and ResX|YDLink where both fv0 and fv1 are to-line

   CALL[], <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1.p0>, <fv1.p1>, 123 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt0>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1.p0>, <fv1.p1> */

#PUSH, 8 /* p1 */
CINDEX[]
#PUSH, 11 /* p0 */
CINDEX[]
#PUSH, 11 /* c0 */
CINDEX[]
#PUSH, 9 /* cvt0 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv0.p0>, <fv0.p1>, <fv1.p0>, <fv1.p1> */

#PUSH, 4 /* fv0.p0 */
MINDEX[]
#PUSH, 4 /* fv0.p1 */
MINDEX[]
SFVTL[r]

/* STACK: <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv1.p0>, <fv1.p1> */

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 7 /* c0 */
MINDEX[]
#PUSH, 119
CALL[]

/* STACK: <p0>, <p1>, <c1>, <cvt1>, <fv1.p0>, <fv1.p1> */

#PUSH, 6 /* p0 */
CINDEX[]
#PUSH, 6 /* p1 */
MINDEX[]
#PUSH, 6 /* c1 */
CINDEX[]
#PUSH, 6 /* cvt1 */
MINDEX[]
#PUSH, 118
CALL[]

/* STACK: <p0>, <c1>, <fv1.p0>, <fv1.p1> */

SFVTL[r]

/* STACK: <p0>, <c1> */

#PUSH, 119
CALL[]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 124

/* determine on which side of edge p0->p1 is c
   by calculating vector product (c - p0) ^ (p1 - p0)

   CALL[], <p0>, <c>, <p1>, 124

   returns with vector product on stack
   if vector product < 0 then c is on the left of p0->p1
   if vector product > 0 then c is on the right of p0->p1
   else c is exactly on p0->p1 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <c>, <p1> */

SPVTCA[X]
#PUSH, 3 /* p0 */
CINDEX[]
#PUSH, 3 /* c */
CINDEX[]
MD[O]
#PUSH, 4 /* p0 */
CINDEX[]
#PUSH, 3 /* p1 */
CINDEX[]
MD[O]

/* STACK: <p0>, <c>, <p1>, <a.x>, <b.x> */

SPVTCA[Y]
#PUSH, 5 /* p0 */
CINDEX[]
#PUSH, 5 /* c */
MINDEX[]
MD[O]
#PUSH, 5 /* p0 */
MINDEX[]
#PUSH, 5 /* p1 */
MINDEX[]
MD[O]

/* STACK: <a.x>, <b.x>, <a.y>, <b.y> */

#PUSH, 4 /* a.x */
MINDEX[]
MUL[]

ROLL[] /* b.x */
ROLL[] /* a.y */
MUL[]

SUB[]

/* STACK: <b.y*a.x - b.x*a.y> */

#PUSHON
#END
ENDF[]

FDEF[], 125

/* fn interpolates a pair of diagonal links between grand-parents gp0 and gp1 along pv
   pv: X = 0, Y = 1, X/ = 2; fv0 and fv1: x and y components in 2.14

   CALL[], <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y>, 125 */

#BEGIN
#PUSHOFF

/* interpolate parents between grand-parents along pv */
/* STACK: <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

#PUSH, 93, 14 /* pv */
CINDEX[]
ADD[]
CALL[]

#PUSH, 12 /* gp0 */
MINDEX[]
SRP1[]
#PUSH, 5 /* gp1 */
MINDEX[]
SRP2[]

#PUSH, 10 /* p0 */
CINDEX[]
IP[]
#PUSH, 7 /* p1 */
CINDEX[]
IP[]

/* determine if this is a crisscrossed stroke */
/* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

#PUSH, 10 /* p0 */
CINDEX[]
#PUSH, 10 /* c0 */
CINDEX[]
#PUSH, 9 /* p1 */
CINDEX[]
#PUSH, 124 /* c0 on which side of edge p0->p1? */
CALL[]
#PUSH, 0
LT[]

#PUSH, 11 /* p0 */
CINDEX[]
#PUSH, 8 /* c1 */
CINDEX[]
#PUSH, 10 /* p1 */
CINDEX[]
#PUSH, 124 /* c1 on which side of edge p0->p1? */
CALL[]
#PUSH, 0
LT[]

EQ[]
IF[]

    /* both childern on same side of parent edge p0>->p1
       hence re-align children with parents perp to dpv. */
    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 7 /* p1 */
    CINDEX[]
    #PUSH, 11 /* p0 */
    CINDEX[]
    SDPVTL[R]

    #PUSH, 4 /* fv0.x */
    CINDEX[]
    #PUSH, 4 /* fv0.y */
    CINDEX[]
    SFVFS[]

    #PUSH, 10 /* p0 */
    CINDEX[]
    SRP0[]
    #PUSH, 9 /* c0 */
    CINDEX[]
    MDRP[m<rBl]

    #PUSH, 2 /* fv1.x */
    CINDEX[]
    #PUSH, 2 /* fv1.y */
    CINDEX[]
    SFVFS[]

    #PUSH, 7 /* p1 */
    CINDEX[]
    SRP0[]
    #PUSH, 6 /* c1 */
    CINDEX[]
    MDRP[m<rBl]

ELSE[]

    /* childern on opposite sides of "parent edge" p0>->p1
       hence re-align children with parents per method for crisscrossed strokes */
    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 7 /* p1 */
    CINDEX[]
    #PUSH, 11 /* p0 */
    CINDEX[]
    #PUSH, 11 /* c0 */
    CINDEX[]
    #PUSH, -1, 118 /* no cvt0, no minDist */
    CALL[]

    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 4 /* fv0.x */
    CINDEX[]
    #PUSH, 4 /* fv0.y */
    CINDEX[]
    SFVFS[]

    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 7 /* p1 */
    CINDEX[]
    #PUSH, 10 /* c0 */
    CINDEX[]
    #PUSH, 119
    CALL[]

    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 10 /* p0 */
    CINDEX[]
    #PUSH, 8 /* p1 */
    CINDEX[]
    #PUSH, 8 /* c1 */
    CINDEX[]
    #PUSH, -1, 118 /* no cvt1, no minDist */
    CALL[]

    /* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

    #PUSH, 2 /* fv1.x */
    CINDEX[]
    #PUSH, 2 /* fv1.y */
    CINDEX[]
    SFVFS[]

    /* STACK: <p0>, <c1> */

    #PUSH, 10 /* p0 */
    CINDEX[]
    #PUSH, 7 /* c1 */
    CINDEX[]
    #PUSH, 119
    CALL[]

EIF[]

/* determine pre-link medians, measuring perpendicularly to p0->p1 */
/* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y> */

#PUSH, 10 /* p0 */
CINDEX[]
GC[N]
#PUSH, 10 /* c0 */
CINDEX[]
GC[N]
ADD[]

#PUSH, 8 /* p1 */
CINDEX[]
GC[N]
#PUSH, 8 /* c1 */
CINDEX[]
GC[N]
ADD[]

/* links */
/* STACK: <pv>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y>, <median0>, <median1> */

#PUSH, 6 /* fv0.x */
CINDEX[]
#PUSH, 6 /* fv0.y */
CINDEX[]
SFVFS[]

#PUSH, 12 /* p0 */
CINDEX[]
#PUSH, 12 /* c0 */
CINDEX[]
#PUSH, 12 /* cvt0 */
MINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 106 /* resMIRP, noCvt, minDist */
ELSE[]
    #PUSH, 108 /* resMIRP, cvt, minDist */
EIF[]
CALL[]

/* STACK: <pv>, <p0>, <c0>, <p1>, <c1>, <cvt1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y>, <median0>, <median1> */

#PUSH, 4 /* fv1.x */
CINDEX[]
#PUSH, 4 /* fv1.y */
CINDEX[]
SFVFS[]

#PUSH, 9 /* p1 */
CINDEX[]
#PUSH, 9 /* c1 */
CINDEX[]
#PUSH, 9 /* cvt1 */
MINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 106 /* resMIRP, noCvt, minDist */
ELSE[]
    #PUSH, 108 /* resMIRP, cvt, minDist */
EIF[]
CALL[]

/* subtract post-link medians from pre-link ones */
/* STACK: <pv>, <p0>, <c0>, <p1>, <c1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y>, <median0>, <median1> */

SWAP[]

#PUSH, 10 /* p0 */
CINDEX[]
GC[N]
#PUSH, 10 /* c0 */
CINDEX[]
GC[N]
ADD[]

SUB[]
#PUSH, 32
MUL[]

SWAP[]

#PUSH, 8 /* p1 */
CINDEX[]
GC[N]
#PUSH, 8 /* c1 */
CINDEX[]
GC[N]
ADD[]

SUB[]
#PUSH, 32
MUL[]

/* finally move points by respective deltas */
/* STACK: <pv>, <p0>, <c0>, <p1>, <c1>, <fv0.x>, <fv0.y>, <fv1.x>, fv1.y>, <delta0>, <delta1> */

#PUSH, 1, 12 /* pv */
CINDEX[]
EQ[]
IF[]
    SFVTCA[Y]
ELSE[]
    SFVTCA[X]
EIF[]

#PUSH, 10 /* p0 */
MINDEX[]
DUP[]
SRP0[]
#PUSH, 3 /* delta0 */
CINDEX[]
MSIRP[m]

#PUSH, 6 /* fv0.x */
MINDEX[]
#PUSH, 6 /* fv0.y */
MINDEX[]
SFVFS[]

#PUSH, 7 /* c0 */
MINDEX[]
DUP[]
SRP0[]
ROLL[] /* delta0 */
MSIRP[m]

/* STACK: <pv>, <p1>, <c1>, <fv1.x>, fv1.y>, <delta1> */

#PUSH, 1, 7 /* pv */
MINDEX[]
EQ[]
IF[]
    SFVTCA[Y]
ELSE[]
    SFVTCA[X]
EIF[]

#PUSH, 5 /* p1 */
MINDEX[]
DUP[]
SRP0[]
#PUSH, 2 /* delta1 */
CINDEX[]
MSIRP[m]

ROLL[] /* fv0.x */
ROLL[] /* fv0.y */
SFVFS[]

SWAP[] /* c1 */
DUP[]
SRP0[]
SWAP[] /* delta1 */
MSIRP[m]

/* STACK: */

#PUSHON
#END
ENDF[]

FDEF[], 126

/* glue code to fn 125 where both fv0 and fv1 are x or y

   CALL[], <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0>, <fv1>, 126 */

#BEGIN
#PUSHOFF

/* STACK: <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0>, <fv1> */

SWAP[] /* fv0 */
#PUSH, 1
EQ[]
IF[]
    #PUSH, 0, 16384
ELSE[]
    #PUSH, 16384, 0
EIF[]

ROLL[] /* fv1 */
#PUSH, 1
EQ[]
IF[]
    #PUSH, 0, 16384
ELSE[]
    #PUSH, 16384, 0
EIF[]

#PUSH, 125 /* resIPDDLink */
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 127

/* glue code to fn 125 where fv0 is to line and fv1 is x or y

   CALL[], <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.0>, <fv0.1>, <fv1>, 127 */

#BEGIN
#PUSHOFF

/* STACK: <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.0>, <fv0.1>, <fv1> */

ROLL[] /* fv0.0 */
ROLL[] /* fv0.1 */
SFVTL[r]
GFV[]

ROLL[] /* fv1 */
#PUSH, 1
EQ[]
IF[]
    #PUSH, 0, 16384
ELSE[]
    #PUSH, 16384, 0
EIF[]

#PUSH, 125 /* resIPDDLink */
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 128

/* glue code to fn 125 where fv0 is x or y and fv1 is to line

   CALL[], <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0>, <fv1.0>, <fv1.1>, 128 */

#BEGIN
#PUSHOFF

/* STACK: <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0>, <fv1.0>, <fv1.1> */

SFVTL[r]

#PUSH, 1
EQ[]
IF[]
    #PUSH, 0, 16384
ELSE[]
    #PUSH, 16384, 0
EIF[]

GFV[]

#PUSH, 125 /* resIPDDLink */
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 129

/* glue code to fn 125 where both fv0 and fv1 are to line

   CALL[], <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.0>, <fv0.1>, <fv1.0>, <fv1.1>, 129 */

#BEGIN
#PUSHOFF

/* STACK: <pv>, <gp0>, <p0>, <c0>, <cvt0>, <p1>, <c1>, <cvt1>, <gp1>, <fv0.0>, <fv0.1>, <fv1.0>, <fv1.1> */

#PUSH, 4 /* fv0.0 */
MINDEX[]
#PUSH, 4 /* fv0.1 */
MINDEX[]
SFVTL[r]
GFV[]
#PUSH, 4 /* fv1.0 */
MINDEX[]
#PUSH, 4 /* fv1.1 */
MINDEX[]
SFVTL[r]
GFV[]
#PUSH, 125 /* resIPDDLink */
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 130

/* extrapolate x-coordinate of <p> to base line along italic angle
   returns with extrapolated x-coordinate on stack

   CALL[], <p>, 130 */

#BEGIN
#PUSHOFF

DUP[]
SVTCA[X]
GC[N]
SWAP[]
SVTCA[Y]
GC[N]

/* STACK: <p.x>, <p.y> */

#PUSH, 10 /* rise */
RS[]
#PUSH, 11 /* run */
RS[]

/* STACK: <p.x>, <p.y>, <rise>, <run> */

ROLL[]
MUL[]
SWAP[]
DIV[]
SUB[]

/* STACK: <p.x - p.y*run/rise> */

#PUSHON
#END
ENDF[]

FDEF[], 131

/* constrains an italic stroke, defined by parents <p0> and <p1>, by
   children <c0> and <c1>, and by cvts <cvt0> and <cvt1>, and inter-
   polates it between points <lsb> and <rsb>

   for b&w stroke additionally optimizes the resulting pixel pattern

   CALL[], <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <cvt0>, <cvt1>, 131 */

#BEGIN
#PUSHOFF

/* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <cvt0>, <cvt1> */

#PUSH, 9 /* pv perp italic, fv X */
CALL[]

/* lock parent edge */

#PUSH, 6 /* p0 */
CINDEX[]
MDAP[r]

#PUSH, 5 /* p1 */
CINDEX[]
RDTG[]
MDRP[m<RBl]

/* link child edge */

#PUSH, 6 /* p0 */
CINDEX[]
#PUSH, 5 /* c0 */
CINDEX[]
#PUSH, 4 /* cvt0 */
CINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 106 /* resMIRP, noCvt, minDist */
ELSE[]
    #PUSH, 108 /* resMIRP, cvt, minDist */
EIF[]
CALL[]

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 4 /* c1 */
CINDEX[]
#PUSH, 3 /* cvt1 */
CINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 106 /* resMIRP, noCvt, minDist */
ELSE[]
    #PUSH, 108 /* resMIRP, cvt, minDist */
EIF[]
CALL[]

RTG[]

/* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <cvt0>, <cvt1> */
/* interpolate median of p0 and c0 between lsb and rsb */

#PUSH, 8 /* lsb */
CINDEX[]
#PUSH, 7 /* p0 */
CINDEX[]
#PUSH, 6 /* c0 */
CINDEX[]
#PUSH, 10 /* rsb */
CINDEX[]
#PUSH, 111 /* interpolate median */
CALL[]

/* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <cvt0>, <cvt1> */
/* if the two actual parent->child distances round to the same stroke weight */

#PUSH, 6 /* p0 */
CINDEX[]
#PUSH, 5 /* c0 */
CINDEX[]
#PUSH, 4 /* cvt0 */
MINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 102 /* resActDist, noCvt, minDist */
ELSE[]
    #PUSH, 104 /* resActDist, cvt, minDist */
EIF[]
CALL[]

/* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <cvt1>, <[dist0]> */

#PUSH, 5 /* p1 */
CINDEX[]
#PUSH, 4 /* c1 */
CINDEX[]
#PUSH, 4 /* cvt1 */
MINDEX[]
DUP[]
#PUSH, 0
LT[]
IF[]
    POP[]
    #PUSH, 102 /* resActDist, noCvt, minDist */
ELSE[]
    #PUSH, 104 /* resActDist, cvt, minDist */
EIF[]
CALL[]

/* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1>, <[dist0]>, <[dist1]> */

EQ[]
IF[]

    /* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1> */
    /* adjust median of p1 and c1 in parallel */

    RDTG[]
    #PUSH, 4 /* p0 */
    CINDEX[]
    SRP0[]
    #PUSH, 3 /* p1 */
    CINDEX[]
    MDRP[m<RBl]

    #PUSH, 2 /* c0 */
    CINDEX[]
    SRP0[]
    #PUSH, 1 /* c1 */
    CINDEX[]
    MDRP[m<RBl]

    #PUSH, 5 /* rsb */
    MINDEX[]
    POP[]
    #PUSH, 5 /* lsb */
    MINDEX[]
    POP[]

    /* STACK: <p0>, <p1>, <c0>, <c1> */

ELSE[]

    /* STACK: <lsb>, <rsb>, <p0>, <p1>, <c0>, <c1> */
    /* interpolate median of p1 and c1 between lsb and rsb independently */

    #PUSH, 6 /* lsb */
    MINDEX[]
    #PUSH, 4 /* p1 */
    CINDEX[]
    #PUSH, 3 /* c1 */
    CINDEX[]
    #PUSH, 8 /* rsb */
    MINDEX[]
    #PUSH, 111 /* interpolate median */
    CALL[]

    /* STACK: <p0>, <p1>, <c0>, <c1> */

EIF[]

/* STACK: <p0>, <p1>, <c0>, <c1> */
/* for b&w only optimize pixel pattern */

#PUSH, 0, 2
RS[]
EQ[]
IF[]

    /* STACK: <p0>, <p1>, <c0>, <c1> */
    /* extrapolate c0 to base line */

    RDTG[]
    #PUSH, 2 /* c0 */
    CINDEX[]
    #PUSH, 130
    CALL[]

    /* extrapolate p0 to base line */

    #PUSH, 5 /* p0 */
    CINDEX[]
    #PUSH, 130
    CALL[]

    /* get parentPhase from extrapolated x-coordinate */

    DUP[]
    DUP[]
    ROUND[Bl]
    SUB[]

    #PUSH, 4 /* targetPhase */
    RS[]

    /* STACK: <p0>, <p1>, <c0>, <c1>, <c0.x'>, <p0.x'>, <parentPhase>, <targetPhase> */
    /* shifting parent edge by deltaPhase optimizes stepping pattern on parent edge */

    SVTCA[X]
    SWAP[]
    SUB[]

    /* STACK: <p0>, <p1>, <c0>, <c1>, <c0.x'>, <p0.x'>, <deltaPhase> */
    /* minimize the positioning error by mapping deltaPhase from [-63,63] to [-32,31] */

    #PUSH, 96
    ADD[]
    DUP[]
    ROUND[Bl]
    SUB[]
    #PUSH, 32
    SUB[]

    /* STACK: <p0>, <p1>, <c0>, <c1>, <c0.x'>, <p0.x'>, <deltaPhase> */
    /* save minimized deltaPhase for child edge and shift parent edge */

    DUP[]
    #PUSH, 8 /* p0 */
    MINDEX[]
    #PUSH, 8 /* p1 */
    MINDEX[]
    ROLL[]
    #PUSH, 2
    SLOOP[]
    SHPIX[]

    /* STACK: <c0>, <c1>, <c0.x'>, <p0.x'>, <deltaPhase> */
    /* since child edge is linked perpendicular to italic angle,
       the resulting stroke would include unnecessary pixels,
       hence determine phase of distance between extrapolated
       x-coordinates (deltaDeltaPhase) */

    ROLL[]
    ROLL[]
    SUB[]
    DUP[]
    ROUND[Bl]
    SUB[]

    /* STACK: <c0>, <c1>, <deltaPhase>, <deltaDeltaPhase> */
    /* subtract from deltaPhase (don't shift quite as far...) */

    SUB[]

    /* STACK: <c0>, <c1>, <deltaPhase'> */
    /* shift parent edge */

    #PUSH, 2
    SLOOP[]
    SHPIX[]

    /* STACK: */

ELSE[]

    /* STACK: <p0>, <p1>, <c0>, <c1> */

    POP[]
    POP[]
    POP[]
    POP[]

    /* STACK: */

EIF[]

RTG[]

#PUSHON
#END
ENDF[]

FDEF[], 132

/* for monochrome only: stack points <p> through <c> on top of <p> below <ppem>

   CALL[], <p>, <c>, <ppem>, 132 */

#BEGIN
#PUSHOFF

/* STACK: <p>, <c>, <ppem> */

MPPEM[]
GT[]
#PUSH, 1, 2
RS[]
GTEQ[]
AND[]
IF[]

    /* STACK: <p>, <c> */

    SWAP[]
    SRP0[]
    DUP[]
    SVTCA[X]
    ALIGNRP[]
    SVTCA[Y]
    ALIGNRP[]

ELSE[]

    /* STACK: <p>, <c> */

    POP[]
    POP[]
EIF[]

#PUSHON
#END
ENDF[]

FDEF[], 133

/* support fn for fns 134 and 135

   CALL[], <align?>, <from>, <to>, 133 */

#BEGIN
#PUSHOFF

SWAP[]

/* STACK: <align?>, <to>, <from> */

#WBeginLoop133:

#PUSH, 2 /* to */
CINDEX[]
#PUSH, 2 /* from */
CINDEX[]
GTEQ[]
IF[]

    /* STACK: <align?>, <to>, <from> */

    DUP[]
    #PUSH, 4 /* align? */
    CINDEX[]
    IF[]
        ALIGNRP[]
    ELSE[]
        IP[]
    EIF[]

    #PUSH, 1
    ADD[]

    #PUSH, WOffset133
    JMPR[], (WOffset133=#WBeginLoop133)

EIF[]

/* STACK: <align?>, <to>, <from> */

POP[]
POP[]
POP[]

#PUSHON
#END
ENDF[]

FDEF[], 134

/* support fn for italic IUP[?]
   assume pv and fv are set externally

   CALL[], <p0>, <p1>, 134 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <p1> */

#PUSH, 2 /* p0 */
CINDEX[]
GC[O]
#PUSH, 2 /* p1 */
CINDEX[]
GC[O]
EQ[]

/* STACK: <p0>, <p1>, <eq?> */

ROLL[] /* p0 */
DUP[]
DUP[]
SRP0[]
SRP1[]
#PUSH, 1
ADD[]
ROLL[] /* p1 */
DUP[]
SRP2[]
#PUSH, 1
SUB[]

/* STACK: <eq?>, <from>, <to> */

#PUSH, 133
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 135

/* support fn for italic IUP[?]
   assume pv and fv are set externally

   CALL[], <p0>, <end>, <start>, <p1>, 135 */

#BEGIN
#PUSHOFF

/* STACK: <p0>, <end>, <start>, <p1> */

#PUSH, 4 /* p0 */
CINDEX[]
GC[O]
#PUSH, 2 /* p1 */
CINDEX[]
GC[O]
EQ[]

/* STACK: <p0>, <end>, <start>, <p1>, <eq?> */

SWAP[]
DUP[]
SRP2[]
#PUSH, 1
SUB[]
SWAP[]
DUP[]

#PUSH, 6 /* p0 */
MINDEX[]
DUP[]
DUP[]
SRP0[]
SRP1[]
#PUSH, 1
ADD[]
#PUSH, 6 /* end */
MINDEX[]

/* STACK: <start>, <to>, <eq?>, <eq?>, <from>, <end> */

#PUSH, 133
CALL[]

ROLL[]
ROLL[]
#PUSH, 133
CALL[]

#PUSHON
#END
ENDF[]

FDEF[], 150
/* Function 150 takes 5 arguments */
/* VERSION 1.0 20120420 */

/* This function moves a point between a PPEM range */
/* for the given rasterizer mode (in Store 2) ClearType */
/* CALL[],<point>,<amount>,<low PPEM>,<high PPEM>, <rasterizer mode>, 150 */
/* <low ppem> Lowest PPEM range to be modified (inclusive) */
/* <high ppem> Highest PPEM range to be modified (inclusive) */
/* <Point> point to be modified */
/* <amount> Amount to move point, in ± 64ths */
/* <rasterizer mode> value in store 2 */
/* 150 Function number */
#BEGIN
#PUSHOFF
#PUSH, 2
RS[] /* read store 2 */
EQ[] /* is it = to the last arg? */
IF[] /* if so . . . */
    GPV[] /* Save current PV on stack to restore */
    SPVTCA[Y] /* We should only MPPEM with Y PV */
    ROLL[]
    MPPEM[] /* check cur. size against high ppem */
    GTEQ[]
    #PUSH, 4
    MINDEX[]
    MPPEM[] /* and low ppem */
    LTEQ[]
    AND[]
    IF[] /* if it's between, then */
        SPVFS[] /* Restore orig PV */
        SHPIX[] /* move the point by the amount */
    ELSE[]
       SPVFS[] /* Restore orig PV */
       POP[] /* otherwise remove the remaining arguments */
       POP[]
    EIF[]

ELSE[]
    POP[] /* remove the remaining arguments if the first test fails */
    POP[]
    POP[]
    POP[]
EIF[]
#END
#PUSHON
ENDF[]

FDEF[], 151
/* Function 151 takes 5 arguments */
/* VERSION 1.0 20120420 */

/* This function moves a point between a PPEM range */
/* for the given set of rasterizer flags (in Store 2) */
/* CALL[],<point>,<amount>,<low PPEM>,<high PPEM>, <rasterizer mode>, 151 */
/* <low ppem> Lowest PPEM range to be modified (inclusive) */
/* <high ppem> Highest PPEM range to be modified (inclusive) */
/* <Point> point to be modified */
/* <amount> Amount to move point, in ± 64ths */
/* <rasterizer flag> bit of a value in store 2 */
/* Function 151 differs from Function 150 in that instead of requiring an */
/* exact match with the value in store 2, a given set of flags (or bit values) */
/* can be referenced. For example, if the function should execute */
/* in any situation where ClearType with fractional AWs is enabled, */
/* (c.f. Function 84) irrespective of other flags (e.g. BGR as opposed */
/* to RGB Devices or non-ClearType direction anti-aliasing) then one */
/* would use a <rasterizer flag> value of 64. (c.f. Function 84.) */
/* The rasterizer values for <rasterizer mode> are defined in the function */
/* 84 header. */
/* EXAMPLE: */
/* If one wanted the move to occur if either subpixel positioned or full gray pixel */
/* then one would take the 64 (from subpixel positioned) and the 256 (from */
/* gray full-pixel) and add them to get 320. With a value of 320, the point will */
/* get moved if either subpixel positioned or full gray pixel is enabled. */
/* If one wanted to move to occur always if ClearType was on, independent of */
/* any subtype or spacing flag, one would set the rasterizer mode to 2. */

/* 151 Function number */
#BEGIN
#PUSHOFF
#PUSH, 152 /* Call function 152 with the rasterizer mode on the top of stack */
CALL[]
IF[] /* if so . . . */
    GPV[] /* Save current PV on stack to restore */
    SPVTCA[Y] /* We should only MPPEM with Y PV */
    ROLL[]
    MPPEM[] /* check cur. size against high ppem */
    GTEQ[]
    #PUSH, 4
    MINDEX[]
    MPPEM[] /* and low ppem */
    LTEQ[]
    AND[]
    IF[] /* if it's between, then */
        SPVFS[] /* Restore orig PV */
        SHPIX[] /* move the point by the amount */
    ELSE[]
        SPVFS[] /* Restore orig PV */
        POP[] /* otherwise remove the remaining arguments */
        POP[]
    EIF[]

ELSE[]
    POP[] /* remove the remaining arguments if the first test fails */
    POP[]
    POP[]
    POP[]
EIF[]
#END
#PUSHON
ENDF[]

FDEF[], 152
/* Function 152 takes 1 argument, a "bitfield" flag. */
/* VERSION 1.0 20111117 */
/*
Function 152 is intended to take a set of one or more bits as input and do an AND (e.g. mask) of those
bits with the set of flags returned by Function 84. Then determine if there is at least one
of these resultant bits that are set.

Function 152 returns TRUE if the match is successful, and FALSE if it is not successful.

If the parameter is zero, indicating no flags, then the function returns FALSE.

This function takes a maxiumum of 32 bit flags.

USES: Storage 2 (FN 84)
RETURNS: 0 or 1
*/

#BEGIN
#PUSHOFF
/* Input parameter is a set of one or more flags */

DUP[]
#PUSH, 2     /* Read FN 84 flags */
RS[]
EQ[]         /* If a simple match, return TRUE */
#PUSH, 1
SWAP[]

#PUSH, BEcln
SWAP[]
JROT[], (BEcln=#LEndClear)  /* Jump to end and clean up stack. */
POP[]
#PUSH, 0, 2
RS[]         /* Read FN 84 flags */
#PUSH, BEclr /* If no FN 84 flags, return FALSE */
SWAP[]

JROF[], (BEclr=#LEndClear)

POP[]
#PUSH, 2
RS[]
SWAP[]
#PUSH, 32   /* Maximum number of bits to loop through */
/* TopLoop: */
#LTopLoop:
   /* STACK
   Loop Iteration Count
   Updated (shifted) Input Value
   Updated (shifted) FN 84 Flag
   */
  DUP[]
  NOT[]
  IF[]    /* Exit the loop when done */
    POP[]
    POP[]
    POP[]
    #PUSH, 0, BDEnd /* 73  End */

    JMPR[], (BDEnd=#LEndFn)

  EIF[]
  ROLL[]
  ROLL[]
  DUP[]
  ROLL[]
  DUP[]
  ROLL[]
  SWAP[]
  /* STACK
  Updated (shifted) FN 84 Flag
  Updated (shifted) Input Value
  Updated (shifted) FN 84 Flag
  Updated (Shifted) Input Value
  Loop Interation Count
  */

  /* Check to see if the lower-order bit is set in the FN 84 Flag */
  #PUSH, 4096 /* Convert to 26.6 by multiply by 64 x 64 */
  MUL[]
  ODD[]
  IF[]
    /* Check to see if the lower-order bit is set in the Input Value */
    #PUSH, 4096
    MUL[]
    ODD[]
    IF[]
      /* We can early out here once we find our first match */
      POP[]
      POP[]
      POP[]
      #PUSH, 1, BTEnd  /* 1 is the TRUE return code */
      JMPR[], (BTEnd=#LEndFn)
    EIF[]
  ELSE[]
    POP[]
  EIF[]
  /* STACK
  Updated (shifted) FN 84 Flag
  Updated (shifted) Input Value
  Loop Interation Count
  */
  /* Shift both the Input Value and the FN 84 Flag each one bit right */
  #PUSH, 128  /* 2 in 26.6 */
  DIV[]
  DUP[]
  NOT[]
  IF[]
    POP[]
    POP[]
    POP[]
    #PUSH, 0, BPEnd /* 0 is end condition of FALSE */

    JMPR[], (BPEnd=#LEndFn)

  EIF[]
  SWAP[]
  #PUSH, 128  /* 2 in 26.6 */
  DIV[]
  DUP[]
  NOT[]
  IF[]
    POP[]
    POP[]
    POP[]
    #PUSH, 0, BZEnd /* End */

    JMPR[], (BZEnd=#LEndFn) 

  EIF[]
  ROLL[]
  #PUSH, 1
  SUB[]
  #PUSH, WReLoop  /* -77 TopLoop */

JMPR[], (WReLoop=#LTopLoop)

/* EndClear: */
#LEndClear:
SWAP[]
POP[]
#LEndFn:
/* End: */
#END
#PUSHON
ENDF[]

FDEF[], 153
/* Function 153 takes 1 argument, a "bitfield" flag. */
/* VERSION 1.0 20111117 */
/*
Function 153 is intended to take a set of one or more bits as input and do an AND (e.g. mask) of those
bits with the set of flags returned by Function 84. Then determine if ALL
of these resultant bits from the mask are set.

Function 153 returns TRUE if the match is successful, and FALSE if it is not successful.

If the parameter is zero, indicating no flags, then the function returns FALSE.

This function takes a maxiumum of 32 flags.

USES: Storage 2 (FN 84)
RETURNS: 0 or 1
*/

#BEGIN
#PUSHOFF
/* Input parameter is a set of one or more flags */

DUP[]
#PUSH, 2     /* Read FN 84 flags */
RS[]
EQ[]         /* If a simple match, return TRUE */
#PUSH, 1
SWAP[]

#PUSH, BEcln
SWAP[]
JROT[], (BEcln=#LEndClear)  /* Jump to end and clean up stack. */
POP[]
#PUSH, 0, 2
RS[]         /* Read FN 84 flags */
#PUSH, BEclr /* If no FN 84 flags, return FALSE */
SWAP[]

JROF[], (BEclr=#LEndClear)

POP[]
#PUSH, 0, 2   /* 0 is the boolean tracking success, start off with FALSE */
RS[]
ROLL[]
#PUSH, 32   /* Maximum number of bits to loop through */
/* TopLoop: */
#LTopLoop:
   /* STACK
   Loop Iteration Count
   Updated (shifted) Input Value
   Updated (shifted) FN 84 Flag
   Conditional boolean tracking success
   */
  DUP[]
  NOT[]
  IF[]    /* Exit the loop when done */
    POP[]
    POP[]
    POP[]
    #PUSH, BDEnd /* 73  End */

    JMPR[], (BDEnd=#LEndFn)

  EIF[]
  ROLL[]
  ROLL[]
  DUP[]
  ROLL[]
  DUP[]
  ROLL[]
  SWAP[]
  /* STACK
  Updated (shifted) FN 84 Flag
  Updated (shifted) Input Value
  Updated (shifted) FN 84 Flag
  Updated (Shifted) Input Value
  Loop Interation Count
  Conditional boolean tracking success
  */

  /* Check to see if the lower-order bit is set in the FN 84 Flag */
  #PUSH, 4096 /* Convert to 26.6 by multiply by 64 x 64 */
  MUL[]
  ODD[]
  IF[]
    /* Check to see if the lower-order bit is set in the Input Value */
    #PUSH, 4096
    MUL[]
    ODD[]
    IF[]
      #PUSH, 4
      MINDEX[]
      #PUSH, 1  /* Set TRUE return code */
      OR[]      /* We OR this because we will immediately exit if we fail this test */
      #PUSH, 4
      MINDEX[]
      #PUSH, 4
      MINDEX[]
      #PUSH, 4
      MINDEX[]
    ELSE[]
      POP[]
      POP[]
      POP[]
      POP[]
      #PUSH, BTEnd , 0  /* 0 is the FALSE return code */
      SWAP[]
      JMPR[], (BTEnd=#LEndFn)

    EIF[]
  ELSE[]
    POP[]
  EIF[]
  #PUSH, 4 /* Can this be cleaned up and integrated with the code below? */
  MINDEX[]
  SWAP[]
  /* STACK
  Updated (shifted) FN 84 Flag
  Conditional boolean tracking success
  Updated (shifted) Input Value
  Loop Interation Count
  */
  /* Shift both the Input Value and the FN 84 Flag each one bit right */
  #PUSH, 128  /* 2 in 26.6 */
  DIV[]
  DUP[]
  NOT[]
  IF[]
    ROLL[]
    NOT[]
    ROLL[]
    AND[]
    SWAP[]
    POP[]
    SWAP[]
    POP[]
    #PUSH, BPEnd /* 29  End */

    JMPR[], (BPEnd=#LEndFn)

  EIF[]
  ROLL[]
  #PUSH, 128  /* 2 in 26.6 */
  DIV[]
  DUP[]
  NOT[]
  IF[]
    POP[]
    POP[]
    SWAP[]
    POP[]
    #PUSH, BZEnd /* End */

    JMPR[], (BZEnd=#LEndFn)

  EIF[]
  #PUSH, 4
  MINDEX[]
  #PUSH, 1
  SUB[]
  #PUSH, WReLoop  /* -77 TopLoop */

JMPR[], (WReLoop=#LTopLoop)

/* EndClear: */
#LEndClear:
SWAP[]
POP[]
#LEndFn:
/* End: */
#END
#PUSHON
ENDF[]

/* End VTT Standard Font Program */

FDEF[], 157
/* Params: 
Number of Points
First Point Number
Shift Amount (Pixels F26.6)
Untouch Point Flag
*/
#BEGIN
#PUSHOFF

DUP[]                                 /* Make sure we have more than 1 point */
#PUSH,1
LTEQ[]
#PUSH,38                              /* Jump forward to exit point if no points (38 == bytes to cleanup for exit) */
SWAP[]
#PUSHON
JROT[],*,*
#PUSHOFF


SVTCA[X]

/* Add the count to the start point and save the orig start */

SWAP[]
DUP[]
ROLL[]
ADD[]

/* Return Jump Point */

#PUSH,1
SUB[]                                 /* Make number of Points zero based */

DUP[]
GC[N]
#PUSH, 4
CINDEX[]
ADD[]
SWAP[]
DUP[]
ROLL[]
SCFS[]

/* Check for untouch point */

#PUSH, 4
CINDEX[]
IF[]
   DUP[]
   UTP[]
EIF[]
 
/* Set up for end of loop check */

SWAP[]
DUP[]
ROLL[]
DUP[]
ROLL[]
SWAP[]
EQ[]

#PUSH,-31                             /* Loop back to jump point if more points (-31 == bytes to point) */
SWAP[]
#PUSHON
JROF[],*,*
#PUSHOFF
POP[]                                 /* Clear off current point */
POP[]                                 /* Clear off starting point */
POP[]                                 /* Clear off shift amount */
POP[]                                 /* Clear off touch flag */
#PUSHON
#END
ENDF[]

FDEF[], 158
#BEGIN
#PUSHOFF
/* Initialize Storage for Digit Manipulation */
#PUSH, 20                                       /* <== Replace with storage for collapse glyph function */
#PUSH, 159                                     /* <== Replace with function to collapse glyph */
WS[]
#PUSH, 21                                       /* <== Replace with storage for zero glyph function */
#PUSH, 160                                     /* <== Replace with function to display zero, must be multiple of 10, */
WS[]                                                   /*          and have the next nine functions free. */
#PUSH, 22                                       /* <== Replace with storage for digit shift cvt number */
#PUSH, 210                                      /* <== Replace with CVT number for digit shift amount. Note: init to zero in CVT Program  */
WS[]
#PUSH, 23                                       /* <== Replace with storage for +/- shift cvt number */
#PUSH, 211                                      /* <== Replace with CVT number for +/- shift amount. Note: init to zero in CVT Program  */
WS[]
#PUSH, 24                                       /* <== Replace with storage for decimal point shift cvt number */
#PUSH, 212                                      /* <== Replace with CVT number for decimal point shift amount. Note: init to zero in CVT Program  */
WS[]
#PUSH, 25                                       /* <== Replace with storage for zero glyph hex function */
#PUSH, 170                                      /* <== Replace with function to display zero hex, must be multiple of 10, */
WS[]                                            /*          and have the next fifteen functions free. */
#PUSH, 26                                       /* <== Replace with storage for hex digit shift cvt number */
#PUSH, 213                                      /* <== Replace with CVT number for hex digit shift amount. Note: init to zero in CVT Program  */
WS[]
#PUSH, 29                                       /* <== Replace with storage for total number of digit points */
#PUSH, 402                                      /* <== Replace with total number of digit points */
WS[]
#PUSHON
#END
ENDF[]

FDEF[], 159
/* 
This function collapses a consecutive run of points (defined by Number of Points) 
starting at a given point number (defined by First Point Number) to the coordinates 
defined by the first point (defined by First Point Number) in both the x and y axes.
The end result is each point defined in the run is coincident to the first point in 
the run. Typically for this function, the runs would start and end on contour boundaries.
No changes are made to either the oncurve/offcurve flags nor the touched flags in x or y.

ALGORITHM:
Check that we have at least 2 points.
Save the coordinates of the fist point in x and y.
loop through each point from the second point, decrementing the point count.
Until the point count is zero
Clean off the stack

PARAMS:
<TOS>
Number of Points
First Point Number
*/
#BEGIN
#PUSHOFF

DUP[]                                   /* Make sure we have more than 1 point */
#PUSH,1
LTEQ[]
#PUSH,50                                /* Exit if <= 1 point number (50 == bytes to exit) */
SWAP[]
#PUSHON
JROT[],*,*
#PUSHOFF

#PUSH, 1
SUB[]                                   /* Make zero based counter */

SWAP[]
DUP[]
SVTCA[X]
GC[N]                                   /* Get the x coordinate for the first point */
ROLL[]
ROLL[]
DUP[]
SVTCA[Y]
GC[N]                                   /* Get the y coordinate for the first point */
ROLL[]
ROLL[]
#PUSH, 1
ADD[]                                   /* Start the loop with the second point */

/* Worker Loop */
/* STACK:
   Current Point Num
   Current Decremented Count Index
   Y coordinate
   X Coordinate
*/

DUP[]
#PUSH, 5
CINDEX[]                                /* Copy the x coordinate value */
#PUSH,5
CINDEX[]                                /* Copy the y coordinate value */
ROLL[]
DUP[]
ROLL[]
SVTCA[Y]
SCFS[]                                  /* Set the y coordinate of current point to y coordinate value */
SWAP[]
SVTCA[X]
SCFS[]                                  /* Set the x coordinate of current point ot x coordinate value */
#PUSH, 1
ADD[]                                   /* Increment the current point number */
SWAP[]
#PUSH, 1
SUB[]                                   /* Decrement the Count Index */
DUP[]                                   /* Check the Count Index for zero */
ROLL[]
ROLL[]
#PUSH, -29                              /* -29 is bytes to start of loop */
SWAP[]
#PUSHON
JROT[],*,*                              /* Restart loop unless the Count Index is zero */
#PUSHOFF
POP[]                                   /* Last Point Number + 1 */
POP[]                                   /* Count of Points */
POP[]                                   /* Y-coordinate of first point */
POP[]                                   /* X-coordinate of first point */
#PUSHON
#END
ENDF[]

FDEF[],160
/* DRAW ZERO */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for zero and remove 1-9 */
#BEGIN
#PUSHOFF
#PUSH,25                             /* 25 relative base point for one */
ADD[]
#PUSH,259,20                         /* 259 points between 1-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],161
/* DRAW ONE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for one and remove 0 & 2-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,25,20                          /* 25 points for 0 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,32                             /* 32 relative base point for two */
ADD[]
#PUSH,252,20                         /* 252 points between 2-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],162
/* DRAW TWO */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for two and remove 0-1 & 3-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,32,20                          /* 32 points for 0-1 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,62                             /* 62 relative base point for three */
ADD[]
#PUSH,222,20                         /* 222 points between 3-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],163
/* DRAW THREE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for three and remove 0-2 & 4-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,62,20                          /* 62 points for 0-2 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,103                            /* 103 relative base point for four */
ADD[]
#PUSH,181,20                         /* 181 points between 4-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],164
/* DRAW FOUR */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for four and remove 0-3 & 5-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,103,20                         /* 103 points for 0-3 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,117                            /* 117 relative base point for five */
ADD[]
#PUSH,167,20                         /* 167 points between 5-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],165
/* DRAW FIVE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for five and remove 0-4 & 6-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,117,20                         /* 117 points for 0-4 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,148                            /* 148 relative base point for six */
ADD[]
#PUSH,136,20                         /* 136 points between 6-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],166
/* DRAW SIX */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for six and remove 0-5 & 7-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,148,20                         /* 148 points for 0-5 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,192                            /* 192 relative base point for seven */
ADD[]
#PUSH,92,20                          /* 92 points between 7-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],167
/* DRAW SEVEN */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for seven and remove 0-6 & 8-9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,192,20                         /* 192 points for 0-6 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,199                            /* 199 relative base point for eight */
ADD[]
#PUSH,85,20                          /* 85 points between 8-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],168
/* DRAW EIGHT */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for eight and remove 0-7 & 9 */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,199,20                         /* 199 points for 0-7 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,247                            /* 247 relative base point for nine */
ADD[]
#PUSH,37,20                          /* 37 points for 9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],169
/* DRAW NINE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Remove points for 0-8 and keep the points for nine */
#BEGIN
#PUSHOFF
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,247,20                         /* 247 points between 0-8 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],170
/* DRAW ZERO */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for zero and remove 1-F */
#BEGIN
#PUSHOFF
#PUSH,25                             /* 25 relative base point for one */
ADD[]
#PUSH,376,20                         /* 376 points between 1-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],171
/* DRAW ONE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for one and remove 0 & 2-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,25,20                          /* 25 points for 0 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,32                             /* 32 relative base point for two */
ADD[]
#PUSH,369,20                         /* 369 points between 2-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],172
/* DRAW TWO */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for two and remove 0-1 & 3-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,32,20                          /* 32 points for 0-1 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,62                             /* 62 relative base point for three */
ADD[]
#PUSH,339,20                         /* 339 points between 3-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],173
/* DRAW THREE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for three and remove 0-2 & 4-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,62,20                          /* 62 points for 0-2 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,103                            /* 103 relative base point for four */
ADD[]
#PUSH,298,20                         /* 298 points between 4-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],174
/* DRAW FOUR */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for four and remove 0-3 & 5-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,103,20                         /* 103 points for 0-3 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,117                            /* 117 relative base point for five */
ADD[]
#PUSH,284,20                         /* 284 points between 5-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],175
/* DRAW FIVE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for five and remove 0-4 & 6-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,117,20                         /* 117 points for 0-4 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,148                            /* 148 relative base point for six */
ADD[]
#PUSH,253,20                         /* 253 points between 6-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],176
/* DRAW SIX */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for six and remove 0-5 & 7-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,148,20                         /* 148 points for 0-5 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,192                            /* 192 relative base point for seven */
ADD[]
#PUSH,209,20                         /* 209 points between 7-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],177
/* DRAW SEVEN */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for seven and remove 0-6 & 8-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,192,20                         /* 192 points for 0-6 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,199                            /* 199 relative base point for eight */
ADD[]
#PUSH,202,20                         /* 202 points between 8-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],178
/* DRAW EIGHT */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for eight and remove 0-7 & 9-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,199,20                         /* 199 points for 0-7 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,247                            /* 247 relative base point for nine */
ADD[]
#PUSH,154,20                         /* 154 points between 9-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],179
/* DRAW NINE */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for nine and remove 0-8 & A-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,247,20                         /* 247 points for 0-8 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,284                            /* 284 relative base point for "A" */
ADD[]
#PUSH,117,20                         /* 117 points between A-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],180
/* DRAW "A" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "A" and remove 0-9 & B-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,284,20                         /* 284 points for 0-9 */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,302                            /* 302 relative base point for "B" */
ADD[]
#PUSH,99,20                          /* 99 points between B-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],181
/* DRAW "B" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "B" and remove 0-A & C-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,302,20                         /* 302 points for 0-A */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,335                            /* 335 relative base point for "C" */
ADD[]
#PUSH,66,20                          /* 66 points between C-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],182
/* DRAW "C" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "C" and remove 0-B & D-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,335,20                         /* 335 points for 0-B */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,361                            /* 361 relative base point for "D" */
ADD[]
#PUSH,40,20                          /* 40 points between D-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],183
/* DRAW "D" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "D" and remove 0-C & E-F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,361,20                         /* 361 points for 0-C */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,379                            /* 379 relative base point for "E" */
ADD[]
#PUSH,22,20                          /* 22 points between E-F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],184
/* DRAW "E" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "E" and remove 0-D & F */
#BEGIN
#PUSHOFF
DUP[]
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,379,20                         /* 379 points for 0-D */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSH,391                            /* 391 relative base point for "F" */
ADD[]
#PUSH,10,20                          /* 10 points for F */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[],185
/* DRAW "F" */
/* ABSOLUTE BASE OFFSET ON STACK */
/* Keep the points for "F" and remove 0-E */
#BEGIN
#PUSHOFF
#PUSH,0                              /* 0 relative base point for zero */
ADD[]
#PUSH,391,20                         /* 391 points between 0-E */
RS[]                                 /* Get function number for collapse */
CALL[]
#PUSHON
#END
ENDF[]

FDEF[], 190
/* INPUT: Index of axis number  */
/* OUTPUT: Axis value for given index */
/* ERROR: For index greater than number of axes, return value of zero */

/* NOTES: This function queries the axes supported in the font, determines */
/* the number of axes, and then returns the axis value based on the order */
/* in the fvar table. */

#BEGIN
#PUSHOFF

#PUSH, 1024, 4096
MUL[]

/* Push a sentinal on the stack that is greater than the largest axis value */

USER91[]
/*GETVARIATION[]*/

/* Stack now contains all the axes values, with the highest axis number */
/* on the top of the stack. Tthe axes values are followed by the sentinal. */

#PUSH, 1      /* This is the counter to track the number of axes. */

/* Start loop */
    DUP[]
    #PUSH, 1     /* CINDEX Adjust */
    ADD[]
    CINDEX[]     /* Copy the highest axis */
    #PUSH, 1024, 4096
    MUL[]           /* Create a sentinal to check */
    ROLL[]
    #PUSH, 1   /* Add one for the counter */
    ADD[]
    ROLL[]
    ROLL[]
    EQ[]             /* Check to see if we match the sentinal */
    #PUSH, -22
    SWAP[]
#PUSHON
JROF[],*,*       /* If we don't match the sentinal, loop again */
#PUSHOFF

#PUSH, 2
SUB[]     /* Remove overhead in count */

/* Top of stack now contains the number of axes in the font */
/* The axis values still remain on the stack */

DUP[]
#PUSH, 3 /* Add different overhead back to get the function input */
ADD[]
MINDEX[] /* The requested axis index is now on top of the stack */

/* Check for error on requested axis index */

DUP[]
ROLL[]
DUP[]
ROLL[]
LT[]           /* Compare the requested axis to the number of axes */
IF[]            /* If the request is greater than the number, handle error */
DUP[]
ROLL[]
POP[]     /* Get rid of bad index, and replace with highest index */
ROLL[] /* Bring axis of highest index to top and replace with zero */
POP[]
#PUSH, 0
ROLL[]
ROLL[]
EIF[]

/* Grab the requsted axis value, and place on top of stack */

DUP[]
ROLL[]
SUB[]
#PUSH, 2
ADD[]
MINDEX[]    /* The requested axis is now on top of stack (and removed from below) */
SWAP[]

/* Remove the non-pertinate axes and sentinal from the stack */

/* Start loop */

    #PUSH, 3
    MINDEX[]
    POP[]
    #PUSH, 1
    SUB[]
    DUP[]

    #PUSH, -12
    SWAP[]

#PUSHON
JROT[],*,*
#PUSHOFF

/* Remove the counter from the stack */

POP[]

#PUSHON
#END
ENDF[]

FDEF[], 191
/* Determine the number of variation axes in a font */
/* Uses the GETVARIATION instruction to list the axes */
/* The routine stores a sentinal, which is a value greater than */
/*    the largest possible axis value, and counts how many */
/*    items are on the stack before the sentinal. */
/* */
/* Input: No input to this function */
/* Output: Number of axes */
#BEGIN
#PUSHOFF
#PUSH, 1024, 4096
MUL[]

/*USER91[]*/
GETVARIATION[]
#PUSH, 1      /* Track count */
#PUSH, 2     /* MINDEX Adjust */
MINDEX[]
#PUSH, 1024, 4096
MUL[]
ROLL[]
#PUSH, 1
ADD[]
ROLL[]
ROLL[]
EQ[]
#PUSH, -20
SWAP[]
#PUSHON
JROF[],*,*
#PUSHOFF
#PUSH, 2
SUB[]
#PUSHON
#END
ENDF[]

IDEF[], 145
#BEGIN
#PUSHOFF
/* #PUSH, -2022, 3641, -4921, 7080, -8274, 10922, -115, 14562 */
#PUSH, 0 /* Only one axis in this font */
#PUSHON
#END
ENDF[]

/* Control Program */
/* ACT generated Mon Aug  8 12:54:09 2016 */

CATEGORY Stroke
CATEGORY StrokeInheritance

InstructionsOn @8..2047

DropOutCtrlOff @144

CvtCutIn = 1, 0@144 /* 1 pixel cut-in for over- and undershoots */

ClearTypeCtrl = 1

LinearAdvanceWidths = 0

/***** Height CVTs *****/
UpperCase
  Grey
  Y
  SquareHeight
      2:   717 /* cap height */
ASM("SVTCA[Y]")
ASM("CALL[], 2, 89")
      8:     0 /* base line */
ASM("SVTCA[Y]")
ASM("CALL[], 8, 89")
  RoundHeight
      3:    13 ~   2 @ 40 /* cap height overshoot */
      9:   -13 ~   8 @ 40 /* base line undershoot */

LowerCase
  SquareHeight
      0:   758 /* lc ascender */
ASM("SVTCA[Y]")
ASM("CALL[], 0, 89")
      6:   487 /* x height */
ASM("SVTCA[Y]")
ASM("CALL[], 6, 89")
     10:     0 /* base line */
ASM("SVTCA[Y]")
ASM("CALL[], 10, 89")
     14:  -235 /* lc descender */
ASM("SVTCA[Y]")
ASM("CALL[], 14, 89")
  RoundHeight
      1:     9 ~   0 @ 57 /* lc ascender overshoot */
      7:    13 ~   6 @ 40 /* x height overshoot */
     11:   -13 ~  10 @ 40 /* base line undershoot */
     15:    -6 ~  14 @ 86 /* lc descender undershoot */

Figure
  SquareHeight
      4:   717 /* figure height */
ASM("SVTCA[Y]")
ASM("CALL[], 4, 89")
     12:     0 /* base line */
ASM("SVTCA[Y]")
ASM("CALL[], 12, 89")
  RoundHeight
      5:    12 ~   4 @ 43 /* figure height overshoot */
     13:   654 ~  12 @ 19 /* base line undershoot */

Other
  SquareHeight
     16:   719 /* other height */
ASM("SVTCA[Y]")
ASM("CALL[], 16, 89")
     18:     0 /* base line */
ASM("SVTCA[Y]")
ASM("CALL[], 18, 89")
  RoundHeight
     17:     5 ~  16 @103 /* other height overshoot */
     19:    -5 ~  18 @103 /* base line undershoot */

/***** Reserved CVTs *****/
AnyGroup
  AnyColor
  AnyDirection
  AnyCategory
     20:     0 /* DO NOT USE!!! */

/***** Grand-Parent CVT *****/
AnyGroup
  Black
  X
  StrokeInheritance
     21:    83 /* 39x */

/***** Parent CVTs *****/
UpperCase
  Black
  X
  StrokeInheritance
     22:    84 /* 21x */
LowerCase
  Black
  X
  StrokeInheritance
     25:    82 /* 18x */
ASM("SVTCA[X]")
ASM("CALL[], 21, 25, 62, 22, 250, 90")

UpperCase
  Black
  Y
  StrokeInheritance
     23:    76 /* 21x */
ASM("SVTCA[X]")
ASM("CALL[], 23, 57, 22, 68, 91")
LowerCase
  Black
  Y
  StrokeInheritance
     26:    73 /* 6x */
ASM("SVTCA[X]")
ASM("CALL[], 26, 56, 25, 56, 91")

UpperCase
  Black
  Diag
  StrokeInheritance
     24:    76 /* 21x */
ASM("SVTCA[X]")
ASM("CALL[], 24, 57, 22, 68, 91")
LowerCase
  Black
  Diag
  StrokeInheritance
     27:    73 /* 6x */
ASM("SVTCA[X]")
ASM("CALL[], 27, 56, 25, 56, 91")

/***** StrokeInheritance CVTs *****/
UpperCase
  Black
  X
  StrokeInheritance
     28:    84 =  22 @255 /* 34x */
     29:    93 =  28 @ 57 /* 5x */
  Y
  StrokeInheritance
     30:    76 =  23 @255 /* 32x */
     31:    81 =  30 @103 /* 8x */
  Diag
  StrokeInheritance
     32:    56 =  24 @ 26 /* 1x */
     33:    82 /* 37x */
ASM("SVTCA[X]")
ASM("CALL[], 33, 48, 24, 22, 92")
     34:    72 =  33 @ 52 /* 12x */
     35:    65 =  34 @ 74 /* 3x */
     36:    86 =  33 @103 /* 14x */

LowerCase
  Black
  X
  StrokeInheritance
     37:    82 =  25 @255 /* 29x */
     38:     6 ~  37 @ 86 /* 9x */
  Y
  StrokeInheritance
     39:    57 =  26 @ 32 /* 1x */
     40:    78 /* 33x */
ASM("SVTCA[Y]")
ASM("CALL[], 40, 35, 26, 25, 92")
  Diag
  StrokeInheritance
     41:     9 =  27 @  8 /* 2x */
     42:    77 /* 22x */
ASM("SVTCA[X]")
ASM("CALL[], 42, 28, 27, 25, 92")
     43:    73 =  42 @171 /* 5x */
     44:    80 =  42 @128 /* 6x */

Figure
  Black
  X
  StrokeInheritance
     45:    53 /* 1x */
     46:    88 /* 16x */
  Y
  StrokeInheritance
     47:    79 /* 20x */
     48:    75 =  47 @128 /* 8x */
  Diag
  StrokeInheritance
     49:    80 /* 8x */
     50:    73 =  49 @ 74 /* 3x */
     51:    88 /* 4x */

Other
  Black
  X
  StrokeInheritance
     52:    77 /* 26x */
     53:    74 =  52 @171 /* 25x */
     54:    81 =  53 @ 74 /* 12x */
     55:   152 /* 1x */
  Y
  StrokeInheritance
     56:    69 /* 23x */
     57:    59 =  56 @ 52 /* 4x */
     58:    77 =  56 @ 64 /* 4x */
     59:   159 /* 1x */
  Diag
  StrokeInheritance
     60:    43 /* 4x */
     61:    65 /* 20x */
     62:    63 =  61 @171 /* 5x */
     63:    77 =  61 @ 43 /* 3x */

/***** Stroke CVTs *****/
UpperCase
  Black
  X
  Stroke
     64:    80 =  28 @128 /* 1x */
     65:    84 =  28 @255 /* 21x */
     66:    87 =  28 @171 /* 7x */
     67:    93 =  29 @255 /* 5x */
  Y
  Stroke
     68:    76 =  30 @255 /* 25x */
     69:    81 =  31 @255 /* 5x */
     70:    84 =  31 @171 /* 2x */
  Diag
  Stroke
     71:    56 =  32 @255 /* 1x */
     72:    66 =  35 @255 /* 3x */
     73:    72 =  34 @255 /* 9x */
     74:    79 =  33 @255 /* 11x */
     75:    83 =  36 @171 /* 5x */
     76:    86 =  36 @255 /* 7x */
     77:    91 =  36 @103 /* 2x */

LowerCase
  Black
  X
  Stroke
     78:    77 =  37 @103 /* 3x */
     79:    82 =  37 @255 /* 17x */
     80:    88 =  38 @255 /* 9x */
  Y
  Stroke
     81:    57 =  39 @255 /* 1x */
     82:    74 =  40 @128 /* 9x */
     83:    78 =  40 @255 /* 17x */
     84:    82 =  40 @128 /* 7x */
  Diag
  Stroke
     85:     5 =  41 @128 /* 1x */
     86:    13 =  41 @128 /* 1x */
     87:    70 =  43 @171 /* 1x */
     88:    73 =  43 @255 /* 4x */
     89:    75 =  42 @255 /* 9x */
     90:    80 =  44 @255 /* 4x */
     91:    83 =  44 @171 /* 2x */
     92:    89 =  42 @ 43 /* 2x */

Figure
  Black
  X
  Stroke
     93:    53 =  45 @255 /* 1x */
     94:    81 =  46 @ 74 /* 1x */
     95:    86 =  46 @171 /* 4x */
     96:    89 =  46 @255 /* 9x */
     97:    92 =  46 @171 /* 2x */
  Y
  Stroke
     98:    72 =  48 @171 /* 3x */
     99:    75 =  48 @255 /* 5x */
    100:    80 =  47 @255 /* 8x */
    101:    84 =  47 @103 /* 4x */
  Diag
  Stroke
    102:    74 =  50 @255 /* 3x */
    103:    81 =  49 @255 /* 5x */
    104:    85 =  51 @171 /* 1x */
    105:    89 =  51 @255 /* 3x */

Other
  Black
  X
  Stroke
    106:    43 =  52 @ 16 /* 1x */
    107:    67 =  53 @ 86 /* 2x */
    108:    73 =  53 @255 /* 11x */
    109:    78 =  54 @171 /* 4x */
    110:    82 =  54 @255 /* 6x */
    111:    86 =  54 @103 /* 2x */
    112:   152 =  55 @255 /* 1x */
  Y
  Stroke
    113:    54 =  57 @103 /* 2x */
    114:    59 =  57 @255 /* 2x */
    115:    66 =  56 @128 /* 6x */
    116:    70 =  56 @255 /* 9x */
    117:    77 =  58 @255 /* 3x */
    118:    83 =  58 @ 86 /* 1x */
    119:   159 =  59 @255 /* 1x */
  Diag
  Stroke
    120:    43 =  60 @255 /* 4x */
    121:    62 =  62 @255 /* 5x */
    122:    67 =  61 @255 /* 8x */
    123:    69 =  61 @171 /* 2x */
    124:    72 =  61 @ 86 /* 2x */
    125:    78 =  63 @255 /* 3x */


200:    78 /* Varies to 110 in bold; 44 in light */
201:    74 /* Varies to 100 in bold; 44 in light */

210: 552  /* RESERVED FOR DIGIT CODE */
211: 410  /* +/- DIGIT WIDTH, UPDATE WITH FONT VARIATIONS */
212: 222  /* . (DECIMAL POINT) WIDTH, UPDATE WITH FONT VARIATIONS */
213: 660  /* WIDE HEX-DIGIT WIDTH */




:	&
&&$
 









L>>>>>>>>> RD!"#$%&\'()*+,-./V0J1$2$3456789: >; >< >= >>"?"@#A#B#C#D#E#F#G%H&%I
'"J),K +
LP-*M/zN/zO/zP/zQ0XR0XS0XT0XU0XV2W2X2Y2Z2[3\3]3^3_3`3a3b3c3d5re7Lf7Lg7Lh7Li7Lj9k:l:m:n:o:p<q<r<s<t?8u?8v?8w?8x?8y?8zB?8{@z|@z}@z~\BD`FXFXFXFX6FX@HJJjJM8M8M8M8M8M8M88M8NprOTQQQQSSZTUUUUUUUUUrVX,Z^Z[|[|[|[|[|]&_bbbRbdbdbf\f\f\f\f\f\f\hxhx^hxrjZmHoqZqZqZqZststststst<uwwww4wzzzzzz4z{4{4|~~~~~<<<<<2222$BltZXrr"d$$n"LTL@@	
F
n:n:r     !j "`#$%~n&'Jp(bĺ)*D+,-&j.ː/4ː01BΦ263456,7B8(9:V;zh<=>?@lAzBCfDfEfFfGfHfIJKLMNOPQRSTUDVDWDXYZ:[\]n^n_n`abczddef>ghi\jklBNmn*oppq4Hr4|st	ju	jv	jw
lxnynzn{n|n}n~nn4nnnn/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/*Auto-Hinting Light is not applied: Empty glyph or glyph with one point*/
/* VTTTalk Unicode 0x41 (A) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(1,14,9 ,0)
YAnchor(14)
ResYDist(14,16) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(0,4 )

Smooth()






/* VTTTalk glyph 8, char 0x104 */
/* GUI generated Wed Aug 10 09:02:58 2016 */

/* Y direction */
/*YAnchor(2)
ResYDist(2,13)*/

YAnchor(0)
ResYDist(0,11)


ResYAnchor(17,8)
YShift(17,21)
ResYAnchor(18,2)
YIPAnchor(18,31,17)
YInterpolate(18,26,31)
ResYDist(31,32)

ResYAnchor(5,8)


/* X direction */

Smooth()



/* VTTTalk Unicode 0xc6 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YShift(1,11) /*stroke, CVT of another stroke*/
ResYDist(1,14)
YShift(14,4)

/* YDir: Stroke #1 */
YInterpolate(1,18,0)
YAnchor(18)
ResYDist(18,15) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
YInterpolate(1,6,0)
YAnchor(6)
ResYDist(6,7) /*perpendicular to the stroke*/

/* YDir: Stroke #3 */
YShift(0,10) /*stroke, CVT of another stroke*/
ResYDist(10,19) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk glyph 12, char 0x42 (B) */
/* GUI generated Wed Aug 10 09:08:59 2016 */

/* Y direction */
ResYAnchor(1,8)
ResYDist(1,15)
ResYAnchor(2,2)
ResYDist(2,32)
YIPAnchor(2,23,1)
ResYDist(23,24)
YInterpolate(24,8,9,23)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x43 (C) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 9 */
/* CVT 9 3 */
/* Min and Max */
ResYAnchor(0,9)	/* min, CVT */
ResYAnchor(6,3)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(6,13) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,19) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x44 (D) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,17) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,9) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0x45 (E) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,4) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(1,8,0)
YAnchor(8)
ResYDist(8,5) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYDist(0,9) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x46 (F) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,4) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(1,8,0)
YAnchor(8)
ResYDist(8,5) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0x47 (G) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 2 9 */
/* CVT 8 3 */
/* Min and Max */
ResYAnchor(0,9)	/* min, CVT */
ResYAnchor(6,3)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(6,13) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(6,23,0)
YAnchor(23)
ResYDist(23,24) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYDist(0,19) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x48 (H) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(1,10,0)
YAnchor(10)
ResYDist(10,3) /*perpendicular to the stroke*/

/* Extreme Max */
YShift(1,6)

/* Extreme Min */
YShift(0,8)

Smooth()




/* VTTTalk Unicode 0x49 (I) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


Smooth()



/* VTTTalk Unicode 0x4a (J) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 14 2 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(11,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */

ResYDist(0,1)

Smooth()





/* VTTTalk Unicode 0x4b (K) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 3 */
/* CVT 8 8 */
/* CVT 9 2 */
/* Min and Max */
ResYAnchor(7,8)	/* min, CVT */


/* CVTs - beginning */
ResYAnchor(8,2)  /*knot, CVT*/ 
YShift(8,6)
/* CVTs - end */


/* Contour #2 */
YShift(7,11) /* min */

YInterpolate(7,0,12,8)
ResYDist(0,1)
ResYDist(12,13)

Smooth()






/* VTTTalk Unicode 0x4c (L) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(0,3) /*perpendicular to the stroke*/

Smooth()


/* VTTTalk Unicode 0x141 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 5 8 */
/* CVT 6 2 */
/* Min and Max */
ResYAnchor(4,8)	/* min, CVT */
ResYAnchor(5,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(4,8) /*perpendicular to the stroke*/

/* Contour #0 */
YShift(5,3) /* max */
YShift(4,1) /* min */

Smooth()



/* VTTTalk Unicode 0x4d (M) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,12)

/* Extreme Min */
YShift(0,24)

/* Extreme Min */
YShift(0,14)

YInterpolate(0,7,28,1)
YShift(28,19)

Smooth()





/* VTTTalk Unicode 0x4e (N) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 13 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(12,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(12,2)

/* Extreme Min */
YShift(0,14)

YInterpolate(0,7,19,12)

Smooth()






/* VTTTalk Unicode 0x14a */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 12 2 */
/* Min and Max */
ResYAnchor(24)	/* min */
ResYAnchor(11,2)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(0,8)  /*knot, CVT*/ 
/* CVTs - end */


/* Extreme Max */
YShift(11,2)
YShift(0,14)
YInterpolate(0,7,19,11)
ResYDist(24,25)

Smooth()



/* VTTTalk Unicode 0x4f (O) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 9 */
/* CVT 9 3 */
/* Min and Max */
ResYAnchor(0,9)	/* min, CVT */
ResYAnchor(6,3)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(6,18) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,12) /*perpendicular to the stroke*/

Smooth()



/* VTTTalk Unicode 0xd8 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 9 */
/* CVT 13 3 */
/* Min and Max */
ResYAnchor(4,9)	/* min, CVT */
ResYAnchor(10,3)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(10,22) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(4,16) /*perpendicular to the stroke*/


YShift(10,2,3) 
YShift(4,0,1) 


Smooth()






/* VTTTalk glyph 72, char 0x152 */
/* GUI generated Wed Aug 10 09:42:21 2016 */

/* Y direction */
ResYAnchor(0,9)
ResYDist(0,18)
ResYAnchor(6,3)
ResYDist(6,12)
ResYAnchor(24,8)
ResYDist(24,33)
ResYAnchor(25,2)
ResYDist(25,28)
YIPAnchor(24,32,25)
ResYDist(32,29)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x50 (P) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,19) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(1,9,0)
YAnchor(9)
ResYDist(9,11) /*perpendicular to the stroke*/

Smooth()






/* VTTTalk Unicode 0xde */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 22 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(21,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(21,1,9,0)
YAnchor(9)
YAnchor(1)
ResYDist(9,11) /*perpendicular to the stroke*/
ResYDist(1,19)

Smooth()





/* VTTTalk Unicode 0x51 (Q) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 11 9 */
/* CVT 17 3 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(14,3)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(8,9)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(14,26) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(8,20) /*perpendicular to the stroke*/

YShift(8,3)
ResYDist(0,7)

Smooth()






/* VTTTalk Unicode 0x52 (R) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,23) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(1,9,0)
YAnchor(9)
ResYDist(9,15) /*perpendicular to the stroke*/
YShift(9,12)
ResYDist(12,13)

/* Contour #1 */
YShift(0,11) /* min */

Smooth()






/* VTTTalk glyph 80, char 0x53 (S) */
/* GUI generated Wed Aug 10 09:44:31 2016 */

/* Y direction */
ResYAnchor(0,8)
ResYDist(0,7)
ResYAnchor(19,3)
ResYDist(19,26)
YInterpolate(0,10,29,19)

/* X direction */

Smooth()



/* VTTTalk Unicode 0x54 (T) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 8 */
/* CVT 4 2 */
/* Min and Max */
ResYAnchor(7,8)	/* min, CVT */
ResYAnchor(3,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(3,2) /*perpendicular to the stroke*/
YShift(2,6) /*along bottom edge*/

Smooth()




/* VTTTalk Unicode 0x55 (U) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 9 */
/* CVT 7 2 */
/* Min and Max */
ResYAnchor(0,9)	/* min, CVT */
ResYAnchor(4,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(0,9) /*perpendicular to the stroke*/

/* Extreme Max */
YShift(4,14)

Smooth()




/* VTTTalk Unicode 0x56 (V) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,12)

YInterpolate(0,7,1)

Smooth()










/* VTTTalk Unicode 0x57 (W) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 2 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(1,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,22)

/* Extreme Max */
YShift(1,12)

/* Extreme Min */
YShift(0,24)

YInterpolate(0,7,17,28,1)
Smooth()



/* VTTTalk Unicode 0x58 (X) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 14 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(13,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(13,3)

/* Extreme Min */
YShift(0,16)

YInterpolate(0,21,1,8,14,13)
YShift(1,14)

Smooth()








/* VTTTalk Unicode 0x59 (Y) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 3 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(2,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(2,13)

YInterpolate(0,1,8,2)

Smooth()






/* VTTTalk Unicode 0x5a (Z) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 8 */
/* CVT 5 2 */
/* Min and Max */
ResYAnchor(0,8)	/* min, CVT */
ResYAnchor(4,2)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(4,3) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,7) /*perpendicular to the stroke*/


Smooth()




/* VTTTalk Unicode 0x61 (a) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 15 7 */
/* CVT 24 11 */
/* Min and Max */
ResYAnchor(21,11)	/* min, CVT */
ResYAnchor(14,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(14,7,200,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(14,27,21)
YAnchor(27)
ResYLink(27,32,200,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYLink(21,38,200,>=) /*perpendicular to the stroke*/

/* Extreme Max */
YShift(14,11)
YShift(21,0)


Smooth()






/* VTTTalk glyph 122, char 0x105 */
/* GUI generated Thu Aug 11 01:47:20 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,9)
ResYAnchor(29,7)
ResYLink(29,22,200,>=)
YShift(29,26)
ResYAnchor(36,11)
YShift(36,5)
YShift(36,35 )
ResYLink(36,53,200,>=)
YIPAnchor(29,42,36)
ResYLink(42,47,200,>=)

/* X direction */

Smooth()


 /* VTTTalk glyph 125, char 0xe6 */
/* GUI generated Thu Aug 11 01:48:47 2016 */

/* Y direction */
ResYAnchor(0,11)
ResYLink(0,17,200,>=)
YShift(0,39)
ResYLink(39,61,200,>=)

ResYAnchor(35,7)
ResYLink(35,28,200)
YShift(35,32)
YIPAnchor(35,6,0)

ResYLink(6,11,200,>=)

YShift(35,45)

YAnchor(45)
ResYLink(45,55,200,>=)

YInterpolate(39,50,45)

YAnchor(50)
ResYLink(50,51,201,>=)


Smooth()




/* VTTTalk Unicode 0x62 (b) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 26 7 */
/* CVT 30 10 */
/* CVT 31 0 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(30,0)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(23,7)  /*knot, CVT*/ 
ResYAnchor(29,10)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(23,16,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,10,83,>=) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0x63 (c) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 9 7 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(6,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,13,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,19,83,>=) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x64 (d) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 9 7 */
/* CVT 36 0 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(35,0)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(6,7)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,12,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYLink(0,18,83,>=) /*perpendicular to the stroke*/

YShift(0,25)

Smooth()





/* VTTTalk Unicode 0xf0 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 21 0 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(18,0)	/* max, CVT */

/* CVTs - beginning */
YAnchor(6)
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,35,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,30,83,>=) /*perpendicular to the stroke*/


YShift(6,9)



YInterpolate(18,17,14,13,12,11,24,23,22,21,6)

Smooth()





/* VTTTalk Unicode 0x65 (e) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 9 7 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(6,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,16,200,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(6,11,0)
YAnchor(11)
ResYLink(11,12,201,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYLink(0,22,200,>=) /*perpendicular to the stroke*/

Smooth()






/* VTTTalk glyph 144, char 0x119 */
/* GUI generated Thu Aug 11 01:57:26 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,9)
ResYAnchor(14,11)
YShift(14,5)
YShift(14,39)
ResYLink(14,36,200,>=)
ResYAnchor(20,7)
ResYLink(20,30,200,>=)



YIPAnchor(20,25,14)
ResYLink(25,26,201,>=)


/* X direction */

Smooth()



 /* VTTTalk glyph 145, char 0x66 (f) */
/* GUI generated Thu Aug 11 02:00:51 2016 */

/* Y direction */
ResYAnchor(0,10)
ResYAnchor(4,1)
ResYLink(4,11,83,>=)
ResYAnchor(17,6)
ResYLink(17,16,82,>=)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x67 (g) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 15 */
/* CVT 14 6 */
/* CVT 19 11 */
/* CVT 25 7 */
/* Min and Max */
ResYAnchor(0,15)	/* min, CVT */
ResYAnchor(22,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(11,6)  /*knot, CVT*/ 
ResYAnchor(16,11)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(22,29,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(16,35,83,>=) /*perpendicular to the stroke*/

ResYLink(0,1,83,>=)
Smooth()





/* VTTTalk Unicode 0x68 (h) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 11 7 */
/* CVT 16 10 */
/* CVT 17 0 */
/* Min and Max */
ResYAnchor(15,10)	/* min, CVT */
ResYAnchor(16,0)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(10,7)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(10,4,83,>=) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(15,0)

Smooth()





/* VTTTalk glyph 152, char 0x69 (i) */
/* GUI generated Thu Aug 11 02:02:59 2016 */

/* Y direction */
ResYAnchor(12,10)
ResYAnchor(13,6)
YDist(13,0)
ResYDist(0,6)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x131 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 2 6 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(1,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


Smooth()


/* VTTTalk glyph 162, char 0x6a (j) */
/* GUI generated Thu Aug 11 02:04:50 2016 */

/* Y direction */
ResYAnchor(12,15)
ResYLink(12,13,83,>=)
ResYAnchor(22,6)
YDist(22,0)
ResYDist(0,6)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x237 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 15 */
/* CVT 13 6 */
/* Min and Max */
ResYAnchor(0,15)	/* min, CVT */
ResYAnchor(10,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */

ResYLink(0,1,83,>=)

Smooth()




/* VTTTalk Unicode 0x6b (k) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 6 */
/* CVT 10 10 */
/* CVT 11 0 */
/* Min and Max */
ResYAnchor(9,10)	/* min, CVT */
ResYAnchor(10,0)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(8,6)  /*knot, CVT*/ 
/* CVTs - end */


/* Contour #2 */
YShift(9,13) /* min */

YInterpolate(9,0,14,10)
ResYDist(0,2)
ResYDist(14,15)

Smooth()






/* VTTTalk Unicode 0x6c (l) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 2 0 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(1,0)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


Smooth()



/* VTTTalk Unicode 0x142 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 5 10 */
/* CVT 6 0 */
/* Min and Max */
ResYAnchor(4,10)	/* min, CVT */
ResYAnchor(5,0)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Contour #0 */
YShift(5,3) /* max */
YShift(4,1) /* min */

Smooth()


/* VTTTalk Unicode 0x6d (m) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 17 10 */
/* CVT 18 6 */
/* CVT 33 7 */
/* Min and Max */
ResYAnchor(16,10)	/* min, CVT */
ResYAnchor(32,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(17,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(32,25,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YShift(32,11) /*stroke, CVT of another stroke*/
ResYLink(11,4,83,>=) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(16,0)

/* Extreme Min */
YShift(16,21)

YInterpolate(16,28,7,32)
ResYDist(28,29)
ResYDist(7,8)

Smooth()





/* VTTTalk Unicode 0x6e (n) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 11 7 */
/* CVT 16 10 */
/* CVT 17 6 */
/* Min and Max */
ResYAnchor(15,10)	/* min, CVT */
ResYAnchor(10,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(16,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(10,4,83,>=) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(15,0)

YInterpolate(15,7,10)
ResYDist(7,8)

Smooth()






/* VTTTalk Unicode 0x14b */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 15 */
/* CVT 23 7 */
/* CVT 28 10 */
/* CVT 29 6 */
/* Min and Max */
ResYAnchor(0,15)	/* min, CVT */
ResYAnchor(22,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(27,10)  /*knot, CVT*/ 
ResYAnchor(28,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(22,16,83,>=) /*perpendicular to the stroke*/

YInterpolate(27,19,22)
YShift(27,12)
ResYDist(0,1)
ResYDist(19,20)

Smooth()





/* VTTTalk Unicode 0x6f (o) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 9 7 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(6,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,18,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,12,83,>=) /*perpendicular to the stroke*/

Smooth()







/* VTTTalk Unicode 0xf8 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 11 */
/* CVT 13 7 */
/* Min and Max */
ResYAnchor(4,11)	/* min, CVT */
ResYAnchor(10,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(10,22,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(4,16,83,>=) /*perpendicular to the stroke*/


YShift(10,2,3) 
YShift(4,0,1) 



Smooth()







/* VTTTalk Unicode 0x70 (p) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 25 7 */
/* CVT 29 14 */
/* CVT 30 6 */
/* Min and Max */ 
ResYAnchor(28,14)	/* min, CVT */
ResYAnchor(22,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(0,11)  /*knot, CVT*/ 
ResYAnchor(29,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(22,16,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,10,83,>=) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0xfe */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 11 */
/* CVT 29 7 */
/* CVT 33 14 */
/* CVT 34 6 */
/* Min and Max */
ResYAnchor(32,14)	/* min, CVT */
YAnchor(1)	/* max */

/* CVTs - beginning */
ResYAnchor(4,11)  /*knot, CVT*/ 
ResYAnchor(26,7)  /*knot, CVT*/ 
ResYAnchor(33,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(26,20,83,>= ) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(4,14,83,>=) /*perpendicular to the stroke*/

Smooth()


 



/* VTTTalk Unicode 0x71 (q) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 9 7 */
/* CVT 24 14 */
/* CVT 27 6 */
/* Min and Max */
ResYAnchor(24,14)	/* min, CVT */
ResYAnchor(6,7)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(0,11)  /*knot, CVT*/ 
ResYAnchor(26,6)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(6,11,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,17,83,>=) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x72 (r) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 2 6 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(1,6)	/* max, CVT */
ResYAnchor(8,7)

/* CVTs - beginning */
/* CVTs - end */


/* Contour #1 */
ResYLink(8,9,83,>=)
YInterpolate(0,5,1)
ResYDist(5,6)


Smooth()




/* VTTTalk Unicode 0x73 (s) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 18 7 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(15,7)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(15,20,82,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,5,82,>=) /*perpendicular to the stroke*/

YInterpolate(0,7,27,22,12,15)

Smooth()






/* VTTTalk Unicode 0xdf */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 13 11 */
/* CVT 40 10 */
/* CVT 44 1 */
/* Min and Max */
ResYAnchor(8,11)	/* min, CVT */
ResYAnchor(39,1)	/* max, CVT */

/* CVTs - beginning */
ResYAnchor(35,10)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(39,30) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(8,15) /*perpendicular to the stroke*/

Smooth()



/* VTTTalk Unicode 0x74 (t) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 23 6  DISABLED for off-curve point */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
YAnchor(4)	/* max */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */

YAnchor(22,6)
ResYLink(22,23,82,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,9,83,>=) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(0,12)

Smooth()





/* VTTTalk Unicode 0x75 (u) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 11 */
/* CVT 7 6 */
/* Min and Max */
ResYAnchor(0,11)	/* min, CVT */
ResYAnchor(4,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(0,9,83,>=) /*perpendicular to the stroke*/

/* Contour #1 */
YShift(0,16) /* min */

/* Contour #2 */
YShift(4,27) /* max */

YInterpolate(0,13,4)
ResYDist(13,12)
YShift(12,25 ) 

Smooth()






/* VTTTalk glyph 214, char 0x173 */
/* GUI generated Thu Aug 11 02:15:37 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,10)
ResYAnchor(16,11)
YShift(16,6)
ResYLink(16,25,83,>=)
YShift(16,39)
ResYAnchor(20,6)
YShift(20,42)
YInterpolate(16,29,20)
ResYDist(29,28)
YShift(28,41)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x76 (v) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 2 6 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(1,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,12)

YInterpolate(0,7,1)

Smooth()






/* VTTTalk Unicode 0x77 (w) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 2 6 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(1,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,12)

/* Extreme Max */
YShift(1,22)

/* Extreme Min */
YShift(0,24)

YInterpolate(0,7,29,1)
YShift(7,17)

Smooth()






 /* VTTTalk glyph 222, char 0x78 (x) */
/* GUI generated Thu Aug 11 02:17:20 2016 */

/* Y direction */
ResYAnchor(0,10)
YShift(0,10)
ResYAnchor(2,6)
YShift(2,7)
YInterpolate(10,11,1,8,4,2)

/* X direction */

Smooth()



/* VTTTalk Unicode 0x79 (y) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 4 15 */
/* CVT 10 6 */
/* Min and Max */
ResYAnchor(0,15)	/* min, CVT */
ResYAnchor(6,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(6,13)

ResYLink(0,1,69,>=)
YInterpolate(0,5,10,6)

Smooth()






/* VTTTalk Unicode 0x7a (z) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 10 */
/* CVT 5 6 */
/* Min and Max */
ResYAnchor(0,10)	/* min, CVT */
ResYAnchor(4,6)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(4,3,83,>=) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYLink(0,7,83,>=) /*perpendicular to the stroke*/

Smooth()





/* VTTTalk Unicode 0x30 (0) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 9 5 */
/* Min and Max */
ResYAnchor(0,11)	/* min */
ResYAnchor(7,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(7,19) /*perpendicular to the stroke*/
ResYDist(0,13)

Smooth()






/* VTTTalk glyph 233, char 0x31 (1) */
/* GUI generated Wed Aug 10 10:09:16 2016 */

/* Y direction */
YAnchor(0)
ResYAnchor(4,5)
YIPAnchor(0,3,4)
ResYDist(3,2)
YInterpolate(2,1,3)

/* X direction */

Smooth()


/* VTTTalk glyph 234, char 0x32 (2) */
/* GUI generated Wed Aug 10 10:10:43 2016 */

/* Y direction */
ResYAnchor(0,12)
ResYDist(0,27)
ResYAnchor(17,5)
ResYDist(17,10)
YInterpolate(0,7,21,17)

/* X direction */

Smooth()

/* VTTTalk glyph 235, char 0x33 (3) */
/* GUI generated Wed Aug 10 10:11:19 2016 */

/* Y direction */
ResYAnchor(38,12)
YShift(38,0)
ResYDist(38,4)
ResYAnchor(24,5)
ResYDist(24,17)
YShift(24,21)
YInterpolate(38,10,24)
ResYDist(10,11)
YInterpolate(10,30,31,11)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x34 (4) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 12 */
/* CVT 5 4 */
/* Min and Max */
ResYAnchor(0,12)	/* min, CVT */
ResYAnchor(4,4)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(4,9,0)
YAnchor(9)
ResYDist(9,6) /*perpendicular to the stroke*/
YShift(9,2) /*along bottom edge*/
YShift(6,11) /*along top edge*/

YInterpolate(6,13,4)

Smooth()





/* VTTTalk Unicode 0x35 (5) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 17 4 */
/* Min and Max */
YAnchor(28)	/* min */
ResYAnchor(14,4)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(14,17) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(14,21,28)
YAnchor(21)
ResYDist(21,10) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYDist(28,4) /*perpendicular to the stroke*/


Smooth()






/* VTTTalk Unicode 0x36 (6) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 10 5 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(7,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(7,12) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(7,38,33,0)
YAnchor(38)
ResYDist(38,29) /*perpendicular to the stroke*/
ResYDist(33,34)

/* YDir: Stroke #2 */
ResYDist(0,23)/*perpendicular to the stroke*/

/* Extreme Max */
YShift(7,9)

Smooth()





/* VTTTalk Unicode 0x37 (7) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 12 */
/* CVT 4 4 */
/* Min and Max */
ResYAnchor(0,12)	/* min, CVT */
ResYAnchor(3,4)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(3,2) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0x38 (8) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 15 5 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(12,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(12,42) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(12,30,0)
YAnchor(30)
ResYDist(30,36) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYDist(0,24) /*perpendicular to the stroke*/

YInterpolate(30,6,18,36)


Smooth()






/* VTTTalk Unicode 0x39 (9) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 30 5 */
/* Min and Max */
YAnchor(34) 		/* min */
ResYAnchor(27,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(27,9) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(27,17,21,34)
YAnchor(21)
ResYDist(21,15) /*perpendicular to the stroke*/
ResYDist(17,18)

/* YDir: Stroke #2 */
ResYDist(34,3) /*perpendicular to the stroke*/



Smooth()







/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 18  DISABLED for a NON-LATIN glyph */
/* Min and Max */
YAnchor(0)	/* min */
YAnchor(4)	/* max */

/* YDir: Stroke #0 */
YInterpolate(4,9,0)
YAnchor(9)
ResYDist(9,6) /*perpendicular to the stroke*/
YShift(9,2) /*along bottom edge*/
YShift(6,11) /*along top edge*/

YInterpolate(6,13,4)

Smooth()


/* VTTTalk Unicode 0xb9 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(5)	/* max */

Smooth()

/* VTTTalk Unicode 0xb2 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(13)	/* max */

/* YDir: Stroke #0 */
ResYDist(0,21) /*perpendicular to the stroke*/
ResYDist(13,8) /*perpendicular to the stroke*/

Smooth()

/* VTTTalk Unicode 0xb3 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(22)	/* max */

/* YDir: Stroke #0 */
ResYDist(22,17) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,5) /*perpendicular to the stroke*/

YInterpolate(0,11,22)
YAnchor(11)
ResYDist(11,12)
YInterpolate(11,28,12)


Smooth()

/* VTTTalk Unicode 0x2a (*) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 16 16 */
/* Min and Max */
YAnchor(12)	/* min */
ResYAnchor(15,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Contour #0 */
YShift(15,3) /* max */
YShift(12,0) /* min */

/* Contour #1 */
YShift(15,9) /* max */
YShift(12,6) /* min */

Smooth()




/* VTTTalk Unicode 0x5c (\) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 2 16 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(1,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Max */
YShift(1,2)

Smooth()


/* VTTTalk Unicode 0x2022 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(6)	/* max */

Smooth()

/* VTTTalk Unicode 0x3a (:) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 15 19 */
/* Min and Max */
ResYAnchor(12,19)	/* min, CVT */
ResYAnchor(6,7)	/* max */

/* CVTs - beginning */
/* CVTs - end */

ResYDist(6,0)
ResYDist(12,18)

Smooth()






/* VTTTalk Unicode 0x2c (,) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */

YDist(0,4)

Smooth()




/* VTTTalk glyph 256, char 0x21 (!) */
/* GUI generated Thu Aug 11 02:34:08 2016 */

/* Y direction */
ResYAnchor(1,16)
ResYAnchor(4,19)
YDist(4,10)
YDist(10,0,>=)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x23 (#) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 16 */
/* Min and Max */
ResYAnchor(8)	/* min */
ResYAnchor(2,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(2,13,8)
YAnchor(13)
ResYDist(13,12) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(2,4,8)
YAnchor(4)
ResYDist(4,5) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(8,0)

/* Extreme Max */
YShift(2,10)

Smooth()



/* VTTTalk Unicode 0x2e (.) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 19 */
/* Min and Max */
ResYAnchor(0,19)	/* min, CVT */
ResYDist(0,6)


/* CVTs - beginning */
/* CVTs - end */


Smooth()



/* VTTTalk glyph 260, char 0x3f (?) */
/* GUI generated Thu Aug 11 02:35:01 2016 */

/* Y direction */
ResYAnchor(13,17)
ResYDist(13,8)
YShift(13,11)
ResYAnchor(23,19)
YDist(23,29)
YDist(29,0,>=)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x22 (") */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(2)	/* max */

/* Contour #1 */
YShift(2,6) /* max */
YShift(0,4) /* min */

Smooth()



/* VTTTalk Unicode 0x27 (') */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(2)	/* max */

Smooth()

/* VTTTalk glyph 264, char 0x3b (;) */
/* GUI generated Thu Aug 11 02:35:48 2016 */

/* Y direction */
ResYAnchor(6,7)
ResYDist(6,0)
YAnchor(12)
YDist(12,17)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x7b ({) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 14 16 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(13,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


Smooth()

/* VTTTalk Unicode 0x5b ([) */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 2 16 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(1,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(1,4) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,5) /*perpendicular to the stroke*/

Smooth()

/* VTTTalk Unicode 0x28 (() */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(6)	/* max */

Smooth()

/* VTTTalk glyph 275, char 0x2d (-) */
/* GUI generated Thu Aug 11 02:37:03 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2)

/* X direction */

Smooth()


/* VTTTalk Unicode 0xab */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(3)	/* max */

/* Contour #1 */
YShift(3,9) /* max */
YShift(0,6) /* min */

Smooth()

/* VTTTalk Unicode 0xbb */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(1)	/* min */
YAnchor(4)	/* max */

/* Contour #1 */
YShift(4,10) /* max */
YShift(1,7) /* min */

Smooth()
/* VTTTalk Unicode 0x2039 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(3)	/* max */

Smooth()

/* VTTTalk glyph 282, char 0x201c */
/* GUI generated Thu Aug 11 02:38:27 2016 */

/* Y direction */
YAnchor(5)
YShift(5,13)
YDist(5,0)
YShift(0,8)
YInterpolate(5,9,1,0)

/* X direction */

Smooth()



/* VTTTalk glyph 283, char 0x201d */
/* GUI generated Thu Aug 11 02:38:53 2016 */

/* Y direction */
YAnchor(0)
YShift(0,8)
YDist(0,4)
YShift(4,12)
YInterpolate(0,1,9,4)

/* X direction */

Smooth()

/* VTTTalk glyph 284, char 0x2018 */
/* GUI generated Thu Aug 11 02:39:29 2016 */

/* Y direction */
YAnchor(5)
YDist(5,0)
YInterpolate(0,1,5)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x20 */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/*Auto-Hinting Light is not applied: Empty glyph or glyph with one point*/
/* VTTTalk Unicode 0xd */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/*Auto-Hinting Light is not applied: Empty glyph or glyph with one point*/

/* VTTTalk Unicode 0xa2 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(4,11)	/* min */
ResYAnchor(10,7)	/* max */

/* Contour #1 */
YDist(10,2) /* max */
YDist(4,0) /* min */


ResYDist(4,23)
ResYDist(10,17)

Smooth()





/* VTTTalk Unicode 0xa4 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(25)	/* min */
ResYAnchor(11)	/* max */

YShift(11,8)
YShift(11,14)
YShift(25,0)
YShift(25,22)

ResYDist(11,34)
ResYDist(25,28)

Smooth()





/* VTTTalk Unicode 0x24 ($) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 12 */
/* CVT 26 5 */
/* Min and Max */
ResYAnchor(4,11)	/* min */
ResYAnchor(23,5)	/* max */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(4,11) /*perpendicular to the stroke*/
ResYDist(23,30)

YShift(23,2)
YShift(4,0)

Smooth()





/* VTTTalk Unicode 0x20ac */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 3 12 */
/* CVT 9 5 */
/* Min and Max */
ResYAnchor(0,12)	/* min, CVT */
ResYAnchor(6,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(6,13) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(6,30,0)
YAnchor(30)
ResYDist(30,31) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
YInterpolate(6,26,0)
YAnchor(26)
ResYDist(26,27) /*perpendicular to the stroke*/

/* YDir: Stroke #3 */
ResYDist(0,19) /*perpendicular to the stroke*/

Smooth()







/* VTTTalk Unicode 0x192 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(15)	/* max */

/* YDir: Stroke #0 */
ResYDist(15,20) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(15,10,0)
YAnchor(10)
ResYDist(10,9) /*perpendicular to the stroke*/
YShift(9,26) /*along bottom edge*/
YShift(10,23) /*along top edge*/

/* YDir: Stroke #2 */
ResYDist(0,5) /*perpendicular to the stroke*/

/* Extreme Max */
YShift(15,17)

/* Extreme Min */
YShift(0,2)

Smooth()



/* VTTTalk Unicode 0xa3 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 11 5 */
/* CVT 23 12 */
/* Min and Max */
ResYAnchor(22,12)	/* min, CVT */
ResYAnchor(8,5)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(8,15) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(8,26,22)
YAnchor(26)
ResYDist(26,27) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
ResYDist(22,23) /*perpendicular to the stroke*/
ResYDist(22,1)

/* Extreme Max */
YShift(8,11)

Smooth()





/* VTTTalk Unicode 0xa5 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 0 12 */
/* CVT 3 4 */
/* Min and Max */
ResYAnchor(0,12)	/* min, CVT */
ResYAnchor(2,4)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(2,20,0)
YAnchor(20)
ResYDist(20,21) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(2,16,0)
YAnchor(16)
ResYDist(16,17) /*perpendicular to the stroke*/

/* Extreme Max */
YShift(2,13)

Smooth()



/* VTTTalk Unicode 0xffff */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(11)	/* min */
ResYAnchor(25)	/* max */

YShift(11,14)
YShift(11,8)
YShift(25,0)
YShift(25,22)

ResYDist(11,34)
ResYDist(25,28)

Smooth()





/* VTTTalk Unicode 0x2b (+) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(6)	/* max */

/* YDir: Stroke #0 */
YInterpolate(6,2,0)
YAnchor(2)

ResYDist(2,3) /*perpendicular to the stroke*/
YShift(2,10) /*along bottom edge*/
YShift(3,7) /*along top edge*/

Smooth()




/* VTTTalk Unicode 0xd7 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(4)	/* max */

/* Extreme Max */
YShift(4,6)

/* Extreme Min */
YShift(0,10)


Smooth()



/* VTTTalk Unicode 0xf7 */
/* ACT generated Mon Aug  8 12:54:09 2016 */



YAnchor(0)
ResYDist(0,2) /*perpendicular to the stroke*/

YDist(0,10)
ResYDist(10,4)
YDist(2,16)
ResYDist(16,22)

Smooth()




/* VTTTalk Unicode 0x3d (=) */
/* ACT generated Mon Aug  8 12:54:09 2016 */


YAnchor(5)	
YAnchor(0)	
ResYDist(5,4)
ResYDist(0,1)

Smooth()




/* VTTTalk Unicode 0x3e (>) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(5)	/* max */

ResYDist(5,4)
ResYDist(0,1)

Smooth()




/* VTTTalk Unicode 0xb1 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 18 */
/* Min and Max */
ResYAnchor(0,18)	/* min, CVT */
ResYAnchor(10)	/* max */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(10,6,0)
YAnchor(6)
ResYDist(6,7) /*perpendicular to the stroke*/
YShift(6,14) /*along bottom edge*/
YShift(7,11) /*along top edge*/

/* YDir: Stroke #1 */
ResYDist(0,2) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk glyph 304, char 0x7e (~) */
/* GUI generated Thu Aug 11 03:21:28 2016 */

/* Y direction */
YAnchor(14,17)
YShift(14,20)
ResYDist(14,7)
YDist(14,3,>=2)
YShift(3,10)
ResYDist(3,18,>=)

/* X direction */

Smooth()



/* VTTTalk Unicode 0xac */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(3)	/* max */

/* YDir: Stroke #0 */
ResYDist(3,2) /*perpendicular to the stroke*/

Smooth()


/* VTTTalk Unicode 0xb5 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 19 */
/* Min and Max */
ResYAnchor(3)	/* min */
ResYAnchor(8,6)	/* max */

/* CVTs - beginning */
ResYAnchor(4,19)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYLink(4,13,69,>=) /*perpendicular to the stroke*/

/* Contour #2 */
YShift(4,18) /* min */

/* Contour #3 */
YShift(8,30 ) /* max */

YInterpolate(4,17,8)
ResYDist(17,29)
YShift(29,23) 

Smooth()





/* VTTTalk Unicode 0x40 (@) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 54 19 */
/* Min and Max */
YAnchor(21)	/* min */
YAnchor(27)	/* max */

/* CVTs - beginning */ 
ResYAnchor(51,19)  /*knot, CVT*/ 
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(27,10) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(27,44,21)
YAnchor(44)
ResYDist(44,37 ) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
YInterpolate(27,62,21)
YAnchor(62)
ResYDist(62,57) /*perpendicular to the stroke*/

/* YDir: Stroke #3 */
ResYDist(51,68) /*perpendicular to the stroke*/

/* YDir: Stroke #4 */
ResYDist(21,16) /*perpendicular to the stroke*/

Smooth()






/* VTTTalk Unicode 0x26 (&) */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 9 19 */
/* CVT 36 17 */
/* Min and Max */
ResYAnchor(4,19)	/* min, CVT */
ResYAnchor(32,17)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(32,17) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(5,44) /*perpendicular to the stroke*/

YShift(5,25)

YInterpolate(5,1,32)

Smooth()






/* VTTTalk Unicode 0xb6 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 1 18 */
/* CVT 8 16 */
/* Min and Max */
ResYAnchor(0,18)	/* min, CVT */
ResYAnchor(7,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(7,14) /*perpendicular to the stroke*/
YShift(14,10) /*along bottom edge*/

/* Extreme Min */
YShift(0,12)

Smooth()



/* VTTTalk Unicode 0xa7 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
YAnchor(0)	/* min */
YAnchor(40)	/* max */

/* YDir: Stroke #0 */
ResYDist(40,45) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,5) /*perpendicular to the stroke*/

YInterpolate(0,28,17,40)

Smooth()




/* VTTTalk Unicode 0xa9 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 12 17 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(8,17)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(8,24) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
/*YInterpolate(8,38,0)
YAnchor(38)*/
ResYDist(8,38)
ResYDist(38,45) 

/* YDir: Stroke #2 */
/*YInterpolate(8,31,0)
YAnchor(31)*/
ResYDist(0,32)
ResYDist(32,51) 

/* YDir: Stroke #3 */
ResYDist(0,16) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0xae */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 12 17 */
/* Min and Max */
ResYAnchor(0,11)	/* min */
ResYAnchor(8,17)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(8,24) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
/*YInterpolate(8,37,0)
YAnchor(37)*/
ResYDist(8,37)
ResYDist(37,53) /*perpendicular to the stroke*/

/* YDir: Stroke #2 */
YInterpolate(8,45,0)
YAnchor(45)
ResYDist(45,47) /*perpendicular to the stroke*/

/* YDir: Stroke #3 */
ResYDist(0,16) /*perpendicular to the stroke*/

/* Contour #2 */
 YShift(45,33)

/*YInterpolate(8,36,0)*/
ResYDist(0,36)
YShift(36,32)

Smooth()





/* VTTTalk Unicode 0x2122 */
/* ACT generated Fri Aug  5 12:40:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 20 16 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(19,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(19,18) /*perpendicular to the stroke*/
YShift(18,22) /*along bottom edge*/

/* Extreme Max */
YShift(19,6)

/* Extreme Max */
YShift(19,2)

/* Extreme Min */
YShift(0,12)

/* Extreme Min */
YShift(0,8)

/* Extreme Min */
YShift(0,16)

YInterpolate(0,4,14,19)
YShift(14,10)

Smooth()






/* VTTTalk Unicode 0xb0 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 9 17 */
/* Min and Max */
YAnchor(0)	/* min */
YAnchor(6,17)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(6,18) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,12) /*perpendicular to the stroke*/

Smooth()




/* VTTTalk Unicode 0x7c (|) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(2)	/* max */

Smooth()



/* VTTTalk Unicode 0xa6 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(6)	/* max */

Smooth()



/* VTTTalk Unicode 0x2020 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(9)	/* min */
ResYAnchor(3)	/* max */

/* YDir: Stroke #0 */
YInterpolate(3,0,9)
/* YAnchor(0) */
ResYDist(0,11) /*perpendicular to the stroke*/
YShift(0,5) /*along bottom edge*/
YShift(11,6) /*along top edge*/

Smooth()


/* VTTTalk Unicode 0x2021 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 4 16 */
/* Min and Max */
ResYAnchor(22)	/* min */
ResYAnchor(3,16)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
YInterpolate(3,0,22)
/* YAnchor(0) */
ResYDist(0,11) /*perpendicular to the stroke*/
YShift(0,5) /*along bottom edge*/
YShift(11,6) /*along top edge*/

/* YDir: Stroke #1 */
YInterpolate(3,13,22)
/*Y Anchor(13) */
ResYDist(13,12) /*perpendicular to the stroke*/
YShift(13,18) /*along bottom edge*/
YShift(12,19) /*along top edge*/

Smooth()



/* VTTTalk Unicode 0x5e (^) */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 2 17 */
/* Min and Max */
YAnchor(0)	/* min */
ResYAnchor(1,17)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* Extreme Min */
YShift(0,4)

YInterpolate(0,6,1)

Smooth()



/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(16)	/* min */
ResYAnchor(18)	/* max */

/* YDir: Stroke #0 */
YInterpolate(18,8,16)
YAnchor(8)
ResYDist(8,28) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
YInterpolate(18,0,16)
YAnchor(0)
ResYDist(0,20) /*perpendicular to the stroke*/

Smooth()



/* VTTTalk glyph 328, char 0xffff */
/* GUI generated Wed Aug 10 09:36:43 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=2)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x312 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(5)	/* max */

Smooth()


/* VTTTalk glyph 339, char 0x335 */
/* GUI generated Wed Aug 10 09:21:24 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,2,>=)

/* X direction */

Smooth()

/* VTTTalk glyph 340, char 0x336 */
/* GUI generated Wed Aug 10 09:29:28 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,2,>=)

/* X direction */

Smooth()

/* VTTTalk glyph 343, char 0xffff */
/* GUI generated Tue Aug  9 02:54:08 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=2)

/* X direction */

Smooth()


/* VTTTalk glyph 344, char 0xffff */
/* GUI generated Tue Aug  9 02:49:23 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=2)

/* X direction */

Smooth()


/* VTTTalk glyph 345, char 0xffff */
/* GUI generated Tue Aug  9 04:56:50 2016 */

/* Y direction */
YAnchor(4,16)
YShift(4,0)
YDist(4,5,>=2)
YShift(5,1)

/* X direction */

Smooth()



/* VTTTalk glyph 346, char 0xffff */
/* GUI generated Tue Aug  9 02:51:22 2016 */

/* Y direction */
YAnchor(4)
YShift(4,0)
YDist(4,1,>=2)
YInterpolate(1,5,4)

/* X direction */

Smooth()


/* VTTTalk glyph 347, char 0xffff */
/* GUI generated Tue Aug  9 03:01:23 2016 */

/* Y direction */
YAnchor(0)
YDist(0,4,>=2)
YShift(4,1)
YInterpolate(1,3,0)

/* X direction */

Smooth()


/* VTTTalk glyph 348, char 0xffff */
/* GUI generated Tue Aug  9 02:50:14 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,5)
YDist(0,3,>=2)
YShift(3,7)

/* X direction */

Smooth()


/* VTTTalk glyph 351, char 0xffff */
/* GUI generated Wed Aug 10 09:01:06 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,2,>=)

/* X direction */

Smooth()


/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(4)	/* min */
ResYAnchor(0)	/* max */

Smooth()



/* VTTTalk glyph 354, char 0xffff */
/* GUI generated Wed Aug 10 09:17:43 2016 */

/* Y direction */
YAnchor(14)
YDist(14,0,>=)
ResYDist(0,6,>=)
YIPAnchor(0,10,14)
ResYDist(10,16,>=)

/* X direction */

Smooth()


/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 8 18  DISABLED for a NON-LATIN glyph */
/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(5)	/* max */

/* YDir: Stroke #0 */
ResYDist(0,11) /*perpendicular to the stroke*/

Smooth()


/* VTTTalk glyph 356, char 0xb4 */
/* GUI generated Wed Aug 10 10:08:03 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=2)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x2d8 */
/* ACT generated Mon Aug  8 12:54:09 2016 */


/* Y direction */
YAnchor(0)
ResYDist(0,6)
YDist(0,4,>=2)
YShift(4,10)

/* X direction */

Smooth()



/* VTTTalk Unicode 0x2c7 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(1)	/* max */

/* YDir: Stroke #0 */

YShift(1,4)
YInterpolate(1,3,0)

Smooth()




/* VTTTalk Unicode 0xb8 */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(14)	/* max */

/* YDir: Stroke #0 */
ResYDist(14,10) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,6) /*perpendicular to the stroke*/

/* Extreme Min */
YShift(0,3)

Smooth()



/* VTTTalk glyph 360, char 0x2c6 */
/* GUI generated Thu Aug 11 01:41:45 2016 */

/* Y direction */
YAnchor(0)
YShift(0,4)
YDist(0,2,>=2)
YInterpolate(0,5,2)

/* X direction */

Smooth()

/* VTTTalk glyph 361, char 0xa8 */
/* GUI generated Wed Aug 10 08:56:24 2016 */

/* Y direction */
YAnchor(0)
YShift(0,12)
ResYDist(0,6)
YShift(6,18)

/* X direction */

Smooth()

/* VTTTalk glyph 362, char 0x2d9 */
/* GUI generated Wed Aug 10 09:19:20 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,6,>=)

/* X direction */

Smooth()

/* VTTTalk glyph 363, char 0x60 (`) */
/* GUI generated Thu Aug 11 01:44:32 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=2)

/* X direction */

Smooth()


/* VTTTalk Unicode 0x2dd */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(2)	/* max */

/* Contour #1 */
YShift(2,6) /* max */
YShift(0,4) /* min */

Smooth()


/* VTTTalk glyph 365, char 0xaf */
/* GUI generated Thu Aug 11 01:46:53 2016 */

/* Y direction */
YAnchor(0)
YDist(0,2,>=)

/* X direction */

Smooth()

/* VTTTalk Unicode 0x2db */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 8 18 */
/* Min and Max */
ResYAnchor(0)	/* min */
ResYAnchor(5,18)	/* max, CVT */

/* CVTs - beginning */
/* CVTs - end */


/* YDir: Stroke #0 */
ResYDist(0,11) /*perpendicular to the stroke*/

Smooth()



/* VTTTalk glyph 367, char 0x2da */
/* GUI generated Wed Aug 10 09:04:56 2016 */

/* Y direction */
YAnchor(0)
ResYDist(0,12)
YDist(0,6,>=2)
ResYDist(6,18)

/* X direction */

Smooth()

/* VTTTalk glyph 368, char 0x2dc */
/* GUI generated Tue Aug  9 02:56:30 2016 */

/* Y direction */
YAnchor(0)
YShift(0,7)
ResYDist(0,14)
YDist(0,10,>=2)
ResYDist(10,4)
YShift(10,16)

/* X direction */

Smooth()




/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 7 17  DISABLED for a NON-LATIN glyph */
/* Min and Max */
ResYAnchor(4)	/* min */
ResYAnchor(0)	/* max */

Smooth()


/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 2 18  DISABLED for a NON-LATIN glyph */
/* Min and Max */
ResYAnchor(1)	/* min */
ResYAnchor(3)	/* max */

Smooth()


/* VTTTalk Unicode 0xffff */
/* ACT generated Mon Aug  8 12:54:09 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/* CVT 9 17  DISABLED for a NON-LATIN glyph */
/* Min and Max */
YAnchor(0)	/* min */
YAnchor(6)	/* max */

/* YDir: Stroke #0 */
ResYDist(6,18) /*perpendicular to the stroke*/

/* YDir: Stroke #1 */
ResYDist(0,12) /*perpendicular to the stroke*/

Smooth()


/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/*Auto-Hinting Light is not applied: Empty glyph or glyph with one point*/
/* VTTTalk Unicode 0xffff */
/* ACT generated Tue Aug 16 11:35:10 2016 */

/* Auto-Hinting Light */

/* ***Settings*** */
/* ModeHinting = LightLatin */
/* ToAnchorBottom = true */


/*Auto-Hinting Light is not applied: Empty glyph or glyph with one point*/
*)@@\@
/9~#'+37HM[gk~7(6    " & 0 : !"	
 0:
&*.69JP^jn7
&5      & 0 9 !"l=*x!t!2!gZv*2DFdhjt|~#36)	.,-5
 $&/0289?IKLPUZcdijo
A
ks~=0!&"'>8i91:m</d27g
	,()*>C@AGB*F^[\]kJxtv|w{}+yuz!#"%-.+'135467:<;=EDHMONQSRXWV`b_aflmprqTYhfejonplEFIMNKDCLGJhegn?@@	(*u	88 %8%	(*u	wght,,^X

@i	rr++99/+30133#&&'#75!W]3F$$LL&XaV+4&\MV+4&ZyQV+4&Uz
HV+44&WxQV+4f&_SV+48"%@r jrrj/++2+9/9++01"54673327%3#&&'#75!:hA]::1	W]P'G
C*;3F$$LL&]
)V+44&^VV+4B	3@
j
jjirr++2+29/+9/+3+0133#75!!!3#!ZFAiNl(K~LLLLL^ #@	j jrjr++++9/+9901!#32'32654&##532654&##/RnrJVrFV`N`V=ME;`VN(_I_oMABF9K?@://N@j
jr	r++++01"&54632&&'&3267m/Q"^|p1a(,z

	P	
L/N&
X
EV+4/N&
[6V+4/(N&
b(-V+4/N&
V3V+4^@	jjrr++++01332#'32654&##^ƺծjkp̪J/&S:V+4^&[pDV+4/^@	jjjrr+++9/++013!!3#!^l(LLL^&XRV+4^&[4CV+4^&Z@BV+4^}&UA
9V+44^&V@V+4^&W?BV+4^W&_[DV+4^8&cV+4^	@jjrr+++9/+013!!3#^lLK0w@jj
jr	r+++9/++01"&54632&&#"3275#5!±3l&i3~U=jJ!L=0wu& \1V+40w& a V+40w& V 3V+4^y@
j

rr++9/+330133!3#!^TsTTD3=&$TjV+4^rr++0133^T3^'&&/^9&&X.RV+4;&&Z
BV+4%}&&U
9V+44M&&V!@V+4&&WBV+4&W&&_DV+478&&c	V+4#jr/++01'6650<13-
GZRK4[jj)c^N
@
jjrr++2399++017'6673!7!]T7Cx*>&3D1^N&0aV+4^@	jrr+++0133!^T L]}&2X-	MV+4^&2HF^&2a
V+4^&2BV+4	@
jrr+++330175%3!ET LMVL^9 @rr++233993013336673#467##&'#^oiR
);83"V#$g=^@rr++239901333&&53#&&'#^mgSf)E3=
"I^&9X$QV+4^&9[CV+4^&9a"V+4^ "@jrrr+++3299+01333&&53#&&'#'6657^mgSQ{`AS)E3=
"IP
V[8k^&9^GV+4.@jjr	r++++01"&54632'26'4&#"x~}xx
Ӟ֟Q.&?X'FV+4.&?Z6V+4.}&?U
-V+44.&?W6V+4.x&?Y
7V+44.W&?_8V+4.!@
j
j
r	r++++333301'"&54632'26'4&#"V'i'žx~}xx! )Ӟ֟Q.&?^;V+4.#/@ j  ir!irjrj	r++++++++9/+01"&546323&#"327"7!!3#!wª1S"8nzsD(f[l(
Ӟg"b

LLL_
@	j		jrr+++9/+01332##32654&##_pq^XRaXPcmil|[KMLB_
@i	j		rr++99//++01332##532654&##3_pq^XRaXPcTTPmil|KMLBzC.K@jjj	rr/++++3+01&&'7%"&54632'26'4&#"L*I!sHx~}xxeG<A[YӞ֟Q_Q
%@
j	j		jrr+++9/+3+301332##!732654&##_n~o^2AbXO_VMcc_et<<~DEA9_Q}&LXMV+4_Q&L[A>V+4_Q&LaV+4(%@
jrjr++++9901"&'732654.56632&&#"7`<!;Q&SCCdcCc2R% >19ZDedD}KG27:&-OHbVN	*6.5*4VJ[j(&PX&KV+4(&P[2&<V+4((&Pb4)V+4(&Pa*V+4@
jrr+++2013#5!#LL&USD:V+4&U[/CV+4(&Ub#V+4&UaV+4Uk@	jr	r+++301"&5332653Z}TXb`TTOhuscUUk&ZXRV+4Uk&ZZBV+4Uk}&ZU
9V+44Uk&ZW
BV+4Ukx&ZY

CV+44UkW&Z_DV+4U8k&ZcV+4Uk&Z]
V+44r
@	rr++2901336673\	
X"!:2
 @rr++223901333667336673#&'#[
PZb	)
*("(*3&#'
&dX!RV+4
&dZ'BV+4
}&dU
!9V+44
&dW!BV+4O@
rr++23930133366773#&&'#f_f
jd	 


1@

rr++299013336673^X

F<
1&jXRV+4
1&jZI
BV+4
1}&jUJ
9V+44
1&jWH
BV+4(	@jjrr++++0135!5!!}iLL(&oX
RV+4(&o[F
CV+4(&oV
@V+4.,*@&l llrr+++9/++3301&&554&#"'6632"&54632&#"3265:5N$5KGfhWTJ9[5A;/:Hh,[1>5R(L#ELHR5K2&! )=1H/D.&sF-mV+4.&sKi-hV+4.&sIJ3mV+4.&sC4
-TV+44.&sE7-mV+4.&sN0-_V+4.8#;.@*/l**$5l#$rlr	j/+++3+22+9/+01"5473327'&&554&#"'6632"&54632&#"3265c]<U,	#:5N$5KGfhWTJ9[5A;/:HhU?BC'-@,[1>5R(L#ELHR5K2&! )=1H/D.&sLu
-IV+44.&sMS-bV+4.6&BA@)23l22'-7l--#l #l#r'=l'lr++3+++39/+3/+9/+01"&54632&#"3265754&#"'6632"&54632!7!6&'&327GfhWTJ9[5A;/APqS:5N$5LqrY`z12JTD\[EM#nELHR5F2)# )=1H/D>>5RE{}a?H1chKZ\FT+"@
SlSl
rrrr++++++01"&&5732654&"76632%3>TE
7J;TIE6F3#]9nmxRGc)KA;?ZeF]$5--ny~(L0@Sl
Slrr++++01"&5466&&#"3267!rw*O@)VIXP%9#(Zwt
S
XS[U
L0&FnV+40&JXnV+40(&Q(/V+40&D\V+424 $@SlSlr#rr+++++301&&54632&&#"3265&&57''3
cxp[N	$WLXFQILd{R,RRpwKB)bV<sTL/^b,[1(L#\0(+@
		Sl#Slrr++/++3901"&546327&''7&&'77'2654#"o}n>+,7%7(RQjFQIVTyz'P5L1B
+
 H/ALuxDlZl^Zj2&H	%pV+42L&S%\V+40"@lllrr+++9/++01"&54632!7!6&'&327(qrY`z14ITD\[FL#n{}a?H1chKZ\F0&FkV+40&JLkV+40&IQ"kV+40&C;
RV+440&DYV+40&E>kV+40&N7]V+408
),@llr$l'r	j/++22+++9/+01"5473327'"&54632!7!6&'&327mk;b6	qrY`z14ITD\[FL#nUCHJ*-:{}a?H1chKZ\FV@RlrSlr
r+++++0174632&&#"5!0*r9V**!:WV:5SvP;8GG2)$@Sl#SlSlrrrr+++++++01'665<64173'&&54632&&#"3265
u=Gcxp-T(	$WLXFQILdM[^OmlHUppw&%B)bV<sTL/^b2&K*hV+425&O/ZV+42&D*[V+4S@
Sl
rr
r++++301!4&#"5632!30A9\=vb`WR7U3(L]oT	&SV+4F@
j
r
r+++01"&546323~    BR    Sr
r++0133SRG&FzV+4	&I
zV+4&C
aV+44@&DhV+4&EzV+4F&7&NlV+4 8&&DR@VhV+4+4@jr
Slr++++01"&54632'6650<13~!!!!
`AR!!!!P
V[]]#p@
Sl
rr+++01'6650<13D
`ARP
V[]]#pS#@ji

	r
r	
r+++399++017'5>773'7	
SxR8%.!


:S&P	V+4Sr
r++0133SR
H&F.V+4SL&HV+4&PV+4SD&2,V+4	@	r
r++23017573RNNj
T*$1@jj Sl Slr r
r++++3+3399++01!&&#"'6632!33&&#"56632->4V
[=[X*<->4UV:[X7U.#L#0oTC\7U3(L/.oTT"@j

Slr
r
r++++39+01!4&#"5632!30A9\=vb`X<7U4)N]oTC\T&F
zV+4T&Jb
zV+4T&PV+4T(@jjSlr
rrr+++++92++01'665041374&#"5632!3
`AR50A9\=vb`X<P
V[&Ck7U4)N]oTC\T&MpoV+40(@SlSlrr++++01"&54632'267&&#"/ssqpGXXGL\\
sttsP_PPbbPP_0(&FnV+40(&IqnV+40(&C[
UV+440(&E^nV+40(&G
nV+440(&NW`V+40.#@
Sl
Sl
rr++++333301'"&54632'267&&#"\''ssqpGXXGL\\%&sttsP_PPbbPP_0(&MzcV+41&T+!@
SlSlrrrr++++++01"&&5732654&"76323>TE
8J;TKC+\(Grhsx=Gc)KA;?ZeNU 5ZuyL'T+%!@SlSl!rrr r+/+++++0173"&&5732654&"76323UQTE
8J;TKC+\(Grhsx=Gc)KA;?ZeNU 5ZuyL'2@SlSlrrrr++++++01&&54632&#"326573
cxv[N	;_NVFQILdF>p~KBC`X<sTLqw~U-TP	
 @j	Slrr
r++++9+013356&T>C{UnNLoN
TP&FMzV+4%P&JzV+4P	&PV+4+ @RlRlrr++++901&'7654.56632&#QTQ9hJ_JTUO8</YJ`J[
&I$C*";CGEK?$@GHI+&FulV+4+&JlV+4+(&Qf,0V+4+&P_"V+4S
.@j'j#
r'rr+++++01#&&'7654.54>54&#"#4632:?R?OI,J.1C"E?R?1?12*=JRyeKZ/=0/ =LLTWO/":E64*,(/L>-^rVGEA@@	SlRlr+/?++301"&5332750:10*HHM*.)<ZY<<YZ<Y<
;JIIA&SV+4&H8V+4(A&QD+/V+4A&P=!V+4H"@
j
	Slrr+++339+201"&533265&&57''3pSR/T1QTzR,RR{H/7Z1CVO	,[1(L#\:CH&FzV+4H&IgzV+4H&CQ
aV+44H&ETzV+4H&G
 zV+44H&NMlV+4H8'+(@)j*r'Slr
j/++2+3+29+201"&547327'"&533265&&57''3*4\<T'
	pSR/T1QTzR,RR)"DLD&-@{H/7Z1CVO	,[1(L#\:CH&L
VV+44
@	r
r++2901336673X
Z6
4P!@r
r++2239930133667334673#&&'#TjtKlhTUj	p!#Z#"\J""&F
"yV+4&I(yV+4&C
"`V+44&E"yV+4
@
r

r+2+290137'3373#'#^x]^{~@
El
rr++2+9901'667733737?G	`

_DJLAA'&^IC&FzV+4&I<zV+4&C'
aV+44&E*zV+4	@SlSlr
r++++0135!5!!IzJ&F
zV+4&J(
zV+4&D
hV+4+@
jjrr++++01"&54632'2654&#"
lvskwjDKICGMKLkj@jr/+9/+901'7392GI"5@
jrjr++++9901354>54&#"'6632!5BaaBY8.W
d97iD>[\>OaxM?N?I2OTOTgC;M?TF(%@
j
&jr&j&r+2+++39+99017732654&#'2654&#"'6632#"&FO+>d}bZnX4$C	N.2dAqDFOu:4V
R3JO>E<HI/KJH'f=W\"

@
	j		rr++9/+329015!533#%3XKW\\G
KxA@j
jjr/++9/++017732654&#"!!2632#"&AY2;ddOOL
,}tOv;:]Q:VJGlT{[^d&8+'@	j!"j&j&!&jr/++99/+++301"&&54632&#"32654&#"'>32db 4?3(WY	;JL9>N/< 'E5r`
kER	IR
-rTZ::d ?&Pv{1@	jrr+++013!5!~O.a.#/%@$j$j*jr/++9/++9901"&5467&&54632'2654&#"2654&#"ttV/-8fbE8-/UxoKC\2JDV9&I865A;RJ`Q2GqX`2QaITK\4HH]3LDh<:+JD1)M+$#@"jjj"	jr"/++99/+++0173265&&#"327#"&54632#"&v
5$yG>MO7O8n!VGO}}jze/{q0Up[6RPCG&%srfsq2r

@
	j		//9/+329015#533#'35ƵW44yYLAY5i//01'73rT&B?Q1Ln
jj
//++0154>54&'6631:K:DR
U`D1@10E8:$-K9E0E3(NBHm @jjj//++9/+901"'732654&#'2654#"'632D.
4:">3/7*80
/I4>GVQI!M&-D7-UV7B5|i&'0Hr5Ti&&rBrm&&r,i@		r/+232301'77''77'3N"""D

;Nd;OcdN;dNwr/+2017DCNxE8kRN//0172654&#"5HH54KKI45JK44I.@jjrr++++01"&54632"&54632p&&&&&&&&s$$$$%%%%|r/01'6653XD!Z+#=X>>Ef&
'	Z
rr++0173"&54632o	V
 !߷  Y)#<I.@
j
j

rr++9/+9/+3301%3%7!37!$@R=w>o66o558fjr++01"&54632p  >"@r
j
r++3+01754>5&'"'632"&546320?/s,OGM[c/?/#QNM*01_LWPLI)57T  ;R@//320153#53HHR//0153RH|jr++/01"&54632'6653q$$$$2D!Z+$##$#=X>>G@lm.]

r/+01&&554'5655467MMNNMM((KK$,NLf:fNN@11ii8/!]	G7@d]@
jjr/+++013#3doop;;]G
5@Jg
//01&&5467PHFM0=8:AW̉\(Wtr[)gG<@%'%&HY%/0175!HAAHY%.L	//3201%'73!'73mҖmL$L
//33017#7'3#7'3lm,lmL.L1//017'73ĖmL.L1G_@|Ir'+X	
/329901#467#46{D!Z+E!Z+#=X>>2#=X>>/\	/229901'6653'6653E!Z+D!Z+#>X==1#>X==+
/901#46{D!Z+#=X>>-g|r]_@
ii
rr++++013'"&5466&&#"326709rw*O@(VIXP%9#)Yi8]wt
S
XS[U
L2>'%@j"jrr++2233++017'7&547'76327'#"'72654&#"`.E&&E.E7AA6E.D''D.D3EE3x5KM36IJ>0C8>@7D0E''E0D9>=9C0E&&&K44LL44K2*)@ijrr++++33013'"&'732654.56632&&#"577`<!;Q&SCCdcCc2R% >19ZDedD}imcKG27:&-OHbVN	*6.5*4VJ[j3!+@jjj
jrr+++9/+9/++01"&54632&&#"3267%5!%5!m}&?F^gbX!B Zs

	KGFFFF*u1@j
	j

jrr+++9/+23+3301"'7327#5376632&#"3#\L.4>	WC IS^-WA>EnAO	DPhEih(!'@jjijrr+++9/+++3017'6654632&&#"5!5!0*b:??Ox$O1H~>`~`-%S/
^?PM8`SDDA==#	'@
jjrr++9/+9/+3013336673%5!%5!YS[%

-ZuFFFF2>'%@j"jrr++3322++017'7&547'76327'#"'72654&#"`.E&&E.E7AA6E.D''D.D3EE3x5KM36IJ>0C8>@7D0E''E0D9>=9C0E&&&K44LL44Kt@J!@	
jrr++9/+3201%5#53533#>B@CCR7
rr++23017'7'77'////R////t8J@j
j
j/+++015!"&54632"&54632t	CC!ztJjj//++015!5!t*tBBBB@6&jjrr++++0175%5%5B@JK@6&G-@tJU"@jj
rr++9/+32+0135!%5#53533#tBCCCCiU^@
j
j?3+2+017663232673#"&&#"iK?'LF$CJ?+JBFHS,-1(JQ,,XtJj//+01%5!5!lCR:')@i
Elrrr++++339+2013#7"&533265&&57''3SQQpSR/T1QTzR,RR{H/7Z1CVO	,[1(L#\:C(!&r'ss(&3s<VC~2J/@j3Dj>9j>>,%j,,
j3r//++9/+9/+++01#72654&#"327#"&54632&&554&#"'6632"&54632&#"3265~q}NF{pθ:5N$5KGfhWTJ9[5A;/:Hh@iu?=Gʻ
,[1>5R(L#ELHR5K2&! )=1H/D;&/@ ,j j rr++++3901#"&54>54&#"&$&546323266;)U\{QwwQ<+-<mQLfOuuOWA@y&qhiNCS83C6/@E4W<E=cRmjP?W@8@,.=_*@
jrr+++23013"&54633###@VK5@56L9;I3ff+7@(j(-j(//++9901&'76654.5663''6674.56632&#QTP:26J_J\R.4H\H];ADKJ_JYPP7</*1H_HO!&D#-+%=BEL8.**!>HEL.3..'CJCIF*/$CNDLQ?9#@j 3j i&-j&ijr/+++++++01"&&546632'26654&&#"7"&5466&&#"3267heehheehVOOUVOOcbnog%D8#J?KF 1#MehgeegheFQWWQQWWQUvfezH	LHNJBQ?#.53@ $i!-j-/j--%5j%ijrr+++++9/++3+201"&&546632'26654&&#"7'7!32##53254##heehheehVOOVVOOw?r?ISA"QK%ehgeegheFQWWQQWWQy#<:=E6A&'@
jr/++233333993013373#5##'#!#5!#WOacNE^\]^KJJ6K@	jj/?++01"&54632'2654&#";PO;;PO<"--!"--P;:OO:;P:/""--""/Vrr++013VJVrr++0133VJJJVWWli	r	r++9+32017#'73lZ2(

N
9
Al*@
i
irr++9+329+32017#'7375'#'73'lZZ<

N

N

N
s8Kr/+39013##s!K8_6V}#)@jjrr++9/+9/+01"&&546632326654&&#"/]ZZ]]ZZJ;a99a;;a99a@Z]]ZZ]]Z#<d==c<<c==d<4Hmi,Oj3ak0ad aDld
/0173T6d.aHh3aLf\%e)=oVRpSmGN5rr++01#46;P)5#9R9:~OA(#g'$8n/:Z
j/+015!/+:II?
j/+015!LL4HmC,OD3Q
/01'3yceQrr0a
/01730olacc Rl?320173#73^\q]ZnRhhhh.Q/390173#'.C`MNQuu==3R/2901'373XRRYRuCCuM9	j/+201"'33273P=;QMj**j)LVRMST
j/+015!;SFFGN5Orr++01'6653N:P#);)+aA(#@
j

j/+9/+01""'53254#"532b
GA
,5=<#$|C.(b$8jrr+++01"54673327hA>+*1	P'G
C*;:a
/0173:oba\%
j/+201"&'332673:KF>%GN\H;C$;H3aLrr++2901'373l:RR;karr(#j
jrr++++301""'53254#"532:	<6
2.67W($X.aH/290173#'.lBlGHHaii4Hmj/2+201"&546323"&54632q$"$$#"##H$!"#"!"#,O
j/+01"&54632h$#""O##"#3a
/01'3ycea aDrr++230173#73hC{gAxaS/015!wSFF$8jrr+++01"54673327h3> !1	P'<0*;)L@
jj/++01"&54632'2654&#"+:<-,9<+L6)+87)*83VR@
j
j/2++301"&&#"#463232530-"90++(%;0V/6@05B-rr++01'6653g:P #>X==rr++01'(HH(zujj//++01"&54632'2654&#"E]bJE\aE%0/$%20zaHKe_GMfF=.*8;++<&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+CEh +CEh `8+CEh  `` T+CEh`q#HK b b c#a bca b c#aC`T#+C`8#+C`#+C`#+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&w+CEh +CEh ` 8+CEh`U#HC cbcca b c#a b c#aC`8#+C`#+C`#+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+CEh +CEh `8+CEh  `` T+CEh`q#HL b b c#a bca b c#aC`T#+C`8#+C`#+C`#+k&'('.&&&&&&&&&&&&&&&&&&&H+CEh +CEh `9#H bca b c#aC`#+C`#+Q')&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8+CEh # +#CEh`0+CEhCEh`CEh`<+CEh `CEh`CEh`X+CEh  ``CEh`CEh`t+CEh   ```CEh`CEh` +CEh`#H+  PX!c C+C+Y@aX)C+C+Ycc@cb 'TX!Y b b c#a bca b c#aC`#+C`t#+C`X#+C`<#+Q')&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8+CEh # +#CEh`0+CEhCEh`CEh`<+CEh `CEh`CEh`X+CEh  ``CEh`CEh`t+CEh   ```CEh`CEh` +CEh`#H+  PX!c C+C+Y@aX)C+C+Ycc@cb 'TX!Y b b c#a bca b c#aC`#+C`t#+C`X#+C`<#+(&&P' '8's0'9'
''c'sC'L''s''''\'' l'!'#%&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&ao+CEh +CEh `"+CEh  `` +CEh`E#HCEhcE#H+ PX cccaY b c#a# b c#a# b c#a#C`#+C`#+C`"#+C`#+&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&a&o&7&'&5&4&&5&>&8&9&/&&/&

&&ao+CEh +CEh `"+CEh  `` +CEh`E#HCEhcE#H+ PX cccaY b c#a# b c#a# b c#a#C`#+C`#+C`"#+C`#+	5EVgx
B-;O]
7p.AUix
+JZn
!h|6	L	`	t							

/
C
W
k




)=Qey
2Oat


'
7
H


g	*w4EVgx9"2CTev>N^q*;L\$5F1n.?P&6o.?cIZk|'htEq
1Bm0[f  . E }    !!!=!L!X!f!|!!!!!!"""Y"y"""""#S##$G$$%+%S%{%%&&&C&}&&&''((8();))*0*G*g***+r+++++++++,
,,%,E,V,f,s,,,,,,--$->-a-r-----...F.p.../%/M/e///0	0A0a0|000000111!1.1d1s1@  $ ' 

S?D4444;  #;  ;  ;  ;"   ;  ;(E L 
$
?BAAA>4:A.S?D4444;	
  	!;@7  	;/ / ೳſſ䁂K\)>44))[[rr[[rr[[M226 ; ۆ⁎"AAPdddAAJUUUI<- -<<-'$-<F&&&ك+ 3 !$'&ކ$;;;$»DDD<?  	  
 
 /  1 + 	܆䁈   B8///9B=BB=%:::ˁ 	 䁅%  䁀% 	 䁄%  

&&==&&==&&22        1  1  


  7 
 
  聂''==''==!ۄ2 4 큉"!!!#(#(7HHH+'' <<<7))  큀*
 
 큄+  큀1  
ށ
<<FF<<:!!  ށ:	 
 ف??4 
 4@  ف

 4  ف

4  ف
41  ف
41  ف
4
  ف
47 
 ف4
 ! ށ

	ggg-ZFFFGG<-#  ʴʁ>C<22L==LQG3=:;  ʁG+  ==++*FF  

 *  *
 
 *+  *9  ++==++*؂FFD D "Į

|   !KKG+2111111<n]WGGS]n؁݄2 : ؁







:77555555555+G  ؁

+  ؁

+
 
 ؁++D S "ԁӃ







	":77:::::::::777$+GGyxyyyyyyA<  ؁
+$5 5 					+++

$$$݃(CCC(

777  
  	  1  

    	7A A 					+++

$$$݁(CCC(

777  $F F %
			


0$$$م$(GGG),,,,


<<</22* , 
ADIIIHE<<;E#!E;7Ѓ7 7 UUADIIIE@<<;@ @;;;7%%%F H 
					+++


$$$݂!-(
(CCC(#,(

7772 1 οԁGCHGGBG==_[<##<8


؃  ԁ'8  ԁ8
 
 ԁ8+O V ݁ 


73+++'	)-4KKKF>7222'%AAAAA'  ݁  ݁  ݁#  ݁+  	

	DDDD?ˁ˄  !?  ?
 
 5?
 
 ?+  ! ؁
>>>)000"%"AAA!  ؁%  ؁%  ؁%1  ؁
%
  ؁%  ؁%7 
 ؁%
  ؁%@F%  
K6G/BBCCCCCCD D "
؁"MU65666676LZ(((((((;HKKKKKKLKKKKKKKLKɄ  ؁/H  ؁H  ؁H1  
؁
,H
9 5 偁	JGVN######""KC#####"%(݄& & 



T>??8A@977:?A  "8  8  81  
8
  	Aā88x..&FF	  &  
&  
&1Z Q %	
((('%

###
----(#---###


        "  
0  (w q 4	
((('%

###
'#...!"$!----(#---	
###



    ~ | ?		

5?#	
-((('%###?-,,,,+(((###


"2222B < $䁁##"$(4=>?;:::;%!%,,,*;;:;!#-:9---8 1 ),('&$1<<<(
222,(  F  1
 
   "E H &぀
9<<<&0/4400--- 
<
9\ \ *
(
	*'000%AAA&#(		 		444  
.  ぀-5 2 (큇###	"
#777"2222  큃#  큃  큃
  	큃"  큃"  큅4  
큃(P Q +


(큁###"
#777
"2222
2 2 ځ%%%%%#######GFFGCDEFFFFFDDD5"
HӁӃS B *぀
000
"<<<%
97---  ぃ  ぃ	  ぃ"! " 
###*27875222<<%؎  3% & ځ!222!<<+Ӆ
 
 ځ<<+  ځ&+  ځ
+  ځ+"  ځ+"  ځ7+  @p  ځ+(  ځ+"
4 5 ځ"222"<<<)+A<  ځ<<<)+A<# " Ѻʁ
̮
2155:GQ
U<<KK@HRޅ
 
 ʁ@
 
 ځ<<+  ځ'+  @I<쁅
 
 ځ+  ʁЃKy@  		((<<)? = &؁
###(((!&
$=<-67<AFFF<<< A<<M@A@?@@8Ӌ" # 
###*27875222<<<(ڏ  $(  (
 
 (8 9 !
###!222*27875222<<<(A<ڏ 	 (, 3 灋$$$݃		''' 989 222  灃  灃  灃"  	灅.  灃  灃
(8 ? $$$݁
!		''' 989 222	  灃  @ 9 #䁁##"#(4=>?;;; :;%),,,*::;;!#-:9---ؑD = '䁅##"';;(4=>?;;; :;%),,,*::;;!#-:9---ؑ9 4 ぀
<<<&00
---   
":<<KK5KKK4  C4  .4  4A B ہ
)  "
((5771*$$$2221	

  ہ  ہ
  ہ
  ہa _ 0	###
"-+0eeb_\\\QHN@;G/&$$$$%%%% &7770\\\_bfV
+120
6 8 Ձނ8GGG7888888	+7777+4<>AAAAՆՃ  Ձ%3Ã
  @m&J
 
 Ձ(4
 
 Ձ44 2 	???087;=88((((=-<
  $(  (  ("  5(  (  ((S U 	-&


=;;;44770#???087;=88(
(((=-<

  (  偂ӆK%$####$#CP@I I #с؃  """"!!#I&&&&&&'&V98888855OV!!$$$$''DM%%%%؂  с7M  сM  с
M"  сHM" " فI55gSl00I`
--
؄* " "
Һނ
F####>>='7A;7777  ,7  7  7"  =7  A  Ӂ$$Z##͂))  #    "- - 


职###݃
.JJJ.%>>>  聀!(<<%; ; 	


聁ք	


/FUU

$	22E E 聀

*





%-.333((ӗ " 		聀""""TDD00DDa%: > 聀** 



=FC42'
%-.333Ӂ




O U -聉()))-
 !,7:::::97&	% 
$777뿿»  "聀$$
55F%e e 1	



聁1.$1@@@'@@@-%------I I "	




聀###<<&,AAA)   %<>>>777d+   Feelleeb@&:>>LL>>L
  遀22,8 6 	ʻځ
	 !	݂
###?^m_22'Ӂ		$)--= ? "ځ	!
'!!!!݆  @@r,$#  !@@U
/#
  @@&#% % 
%&%'  
HH;  = 8C" " 


		
: 8 



--!!-(666'(666'8*888)  	

	(
7728  :s@/$ & 44

!000!,77
#///#
  ,,  " 	


 !    

  +:::+8
#///#
/E G $


"  !
	
փ
#///#
    	Ł	**ZZ>>g  66@2 2 




*:::)<KKF8̼
 
 聂A7  (? ? 쁀

::::::::88::::<:E  EL  	쁂			;;BB;;E))  EG" & 
쁀
A@AAA=7E		

 
 쁄AE
  	    	 	   
⳾ց
$$QCR)*W  
·ց
$$3Q#2$Q`M  )*    ՁG
w9 * @qjlfJ~\UXR{|ՁDD94Nzzql??Dw8 * GJlspvMFL^Bb[aՁ_22<Anmi(
772w  		DD:5
> 
 > 
 >    D = ),('&	GG!'4???+%222,(Z Y '





	%[ X + 


73++++'+2IIID<5000%%%AAAAA'A D #聉 !!!#
#-BBB/% FFF?A

D F 


	#+83/,;<@<<:98%,+++< G 
#Y" 
"&0660'"7EEEIZ""66""" %#2,#2#225 7 聀с	22J9<<++++%<;4224:<݃Z Y '





	%" " 
݁




----" " 
݁

/00
Ӂ(B B ݁

$$$###'  	݁	´L  	݁
	1
 
 ݁* * ݁----AA

JJ==JJ

=4 4 ݁



++ ,,,"݁#  ݁ˁ5? 6 	߁!;;<<<-548:55%(((=-<
  @܁݁2#  0#  ?

$



((('%

###
?	2222-(

222
?
	
   ` b ļ'ɹͿ
# 
($&)&Լ1&WR7%-DDD1'4%	


%ACCC@=9666	#2/-#


222+! % 

BBWW22775w z 7	

	


	݃5
9
	(001"s1#-,$$;<<:5333V&7!! 

~ } ;9

	+.++)
-'''97772,v u 7		5	!!!
)			"



52 3 ʃ????####ف: : 

		
	

  LLY  		LLLLY!  







#(()(# 

݁݃- 1 







%%#((2(###(2(( ((((  	݁'''$$'	'&+  A1^թH^1I1~~~1b@b@Ax.҈B\\\.x@B4DyFFFy4ABoooI>>BBIWWYY@̀@AXX(qBq(΄@XBH>D>AH	 	 1"	 	 遂5"    
	 	 T
  恇-2	 	 
	 	 
	 	 ,	 	 
	 	 쁂0  (  	

	&%
  
 
   S
  

'''  ΃		HH
%%
%	 	 1"	 	 遂5"  ԃ& -  $  	ײ	%"RT !7  !+	  )"	  53,	  

	r	 	 쁂0  (((	 	   	
	2
AA;#؁+4 4 






' + (&$$$!$S	
  ݁$ $ 54(,  
-!
2 4 




	***!!!

	  %/
: : ,-<EEE<1"""""""! " 

);;;)5""""   S9/  		36ol.*T  (((' + (%$$$!$S	

: : 		

2 2 




#"$,&&,,%0  	

	3=<9=  C41@1
##: : &&&݁	   ځ
	 777 2,,,  @  o  @䁃    @
  %]@@  ЁJ  @  @. 1 ʤOf@xR9@f0[yO"b1\v@: 	 @ 	 @m_<	E
Yr&(&r7&qK^z/z/z/z/z/^/^/^^^^^^^^^^0000^^^^M7n#R^R^^]^^^^^^^^^^..........>_>_.e_e_e_e_ ( ( ( ( (UUUUUUUUU|




\6
6
6
6
6
HHHH	.	.	.	.	.	.	.	.	.	.T.ZT00000[2=02[2000000000A[2[2[2[2DSDFSG@F SSSHSCSrTDTDTDTDTDTDTX0X0X0X0X0X0X0X0X01ZTZT[2dTdTd%d+++++-S[[[[DHDHDHDHDHDHDHDHDH(+(k(5(F((A(8(1(.(+2h5w1wB55B,8R.E#Z#Y]8>;RR5.5!5d35J5)HH.$D.D.+/+-d(]92(2(3(*(((#92ttttitORF((V4;*+QQ&6VVsV4,30L |.|37)YGA$/4,30t .3K)YmGA$!:7|3|.4,3L $)Y-F(x,,VkP
@Q
@Q&(
P2EXkZ
EXks1R0CWj}1=Qe';(;{;~	8	K	^	q						

(
;
O
b
v



1DXk?Rex


+
=


O`,>Pcv#q%7I\n@Tfy#Vi{,>Qcw-yTfx!4GYl
t	0Ci(;l;y=-<JX<F  8 C L {        !!$!C!W!b!n!!!!!!!" "o"##N##$%$J$o$$$$%%I%_%%%&C&&'''("(Q(g((())V)^)f)n)v)~)))))))))))*** *(*:*L*g********+&+N+`++++,,+,=,\,m,,,-
-"-P..../x//12F234KD`2@>	#	^'	.		d	.	%	:?	vy	*			F-	F-	
s	L	W	
c	m			WeightLightSemilightRegularSemiboldBold 2015 Microsoft Corporation (www.microsoft.com), with Reserved Font Name Selawik. Selawik is a trademark of Microsoft Corporation in the United States and/or other countries.Selawik Variations testRegularVersion 1.020;MS  ;Selawik Variations test RegularVersion 1.020SelawikVariationstest-RegularSelawik is a trademark of the Microsoft group of companies.Microsoft CorporationAaron Bellhttp://www.microsoft.com/typographyThis Font Software is licensed under the SIL Open Font License, Version 1.1.http://opensource.org/licenses/OFL-1.1WeightLightSemilightSemiboldBold3$bc%&d'(e	
)*
+,-./01f2g3456 7"#8h&'()9:*+,-;<./=01Di2klj34nmEFo5G6Hp7rs8q9:IJ<K=Ltvwu@ABMNOEFHPQIJLxRy{|zMN}STUOPVRWTUX~XYZ[YZ\]^_[\`a]bcd
?"
B^`>@hj !a#	_Aloprw}~CAbreveAmacronAogonek
CdotaccentDcaronDcroatEcaron
EdotaccentEmacronEogonekGcommaaccent
GdotaccentHbarIJImacronIogonekKcommaaccentLacuteLcaronLcommaaccentLdotNacuteNcaronNcommaaccentEng
OhungarumlautOmacronRacuteRcaronRcommaaccentSacuteScommaaccentTbarTcaronTcedillaTcommaaccent
UhungarumlautUmacronUogonekUringWacuteWcircumflex	WdieresisWgraveYcircumflexYgraveZacute
Zdotaccentabreveamacronaogonek
cdotaccentdcaronecaron
edotaccentemacroneogonekgcommaaccent
gdotaccenthbaridotless
idotaccentijimacroniogonekjdotlesskcommaaccentlacutelcaronlcommaaccentldotnacutencaronncommaaccenteng
ohungarumlautomacronracutercaronrcommaaccentsacutescommaaccenttbartcarontcedillatcommaaccent
uhungarumlautumacronuogonekuringwacutewcircumflex	wdieresiswgraveycircumflexygravezacute
zdotaccentfour.sup
softhyphen
guillemetleftguillemetrightuni000Deurocurrency.001microbar.ss01dieresiscomb
dotaccentcomb	gravecomb	acutecombhungarumlautcomb
caroncomb.altcircumflexcomb	caroncomb	brevecombringcomb	tildecomb
macroncombcommaturnedabovecombcommaaccentcombcedillacomb
ogonekcombstrokeshortoverlaycombstrokelongoverlaycombdieresiscomb.casedotaccentcomb.casegravecomb.caseacutecomb.casehungarumlautcomb.casecircumflexcomb.casecaroncomb.casebrevecomb.case
ringcomb.casetildecomb.casemacroncomb.casecommaturnedabovecomb.casecommaaccentcomb.casecedillacomb.caseogonekcomb.case	caron.alt
fractslashpercentZerodbg_ppem
dbg_ttmodedbg_testglyph1dbg_testglyph2
dbg_pointsizedbg_version
dbg_ttversion	dbg_axis1	dbg_axis2
dbg_familydbg_axis1hexdbg_axis2hexuni0122uni0136uni013Buni0145uni0156uni0218uni0162uni021Auni0123	i.loclTRKuni0237uni0137uni013Cuni0146uni0157uni0219uni0163uni021Buni00B9uni00B2uni00B3uni00ADEurouni00B5uni0308uni0307uni030Buni0302uni030Cuni0306uni030Auni0304uni0312uni0326uni0327uni0328	

STLLRIIT]LQ8RHAVR9N	MIP5XOKPIXMJQE;M+A?MPTW]LQT8BHOSV[MRX9JNR
FIKPSY5QVY\HKPTJQUY+CINRV6;BFMS+>CEHNNJ(@j~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSQPONMLKJIHGF(
	,
C#Ce
-,
C#C-,CCe
-,O+ @QX!KRXED!!Y#!@%E%EadcRXED!!YY-,CC-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-,# Pd%TX@%TXCYO+Y#b+#!#XeY-,!T`C-,!T`C-, GC bcW#bcWZX `fYH-,%%%S5#x%%` c  %#bPX!`#  %#bRX#!a!#! YY` c#!-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY&QX@cTX@C`BY@cTXC`BY(QX@cTXC`BYYYYYYYCTX@
@@	@
CTX@	
CRX@	@CRX@	@CRX@	@@	YYY@U@cUZX

YYYBBBBB-,EN+#O+ @QX!KQX%EN+`Y#KQX%E dc@SXN+`!Y!YYD-, P X#e#YpEO+#a&`+XCY#XeY#:-,%Ic#F`O+#%%I%cV `b`+% FF` ca:-,%%>>
#eB#B%%??#eB#BCTXE#E ic#b  @PXgfYa c@#a#BB!!Y-, EN+D-,KQ@O+P[X EN+ D @&acaN+D!#!EN+ #DDY-,KQ@O+P[XE @ac`#!EYN+D-,#E E#a d@Q% S#@QZZ@O+TZXd#d#SX@@a ca cYYcN+`D-,-,-,
C#Ce
-,
C#C-,%cf% b`#b-,%c `f% b`#b-,%cg% b`#b-,%cf `% b`#b-,#JN+-,#JN+-,#J#Ed%d%adCRX! dYN+#PXeY-,#J#Ed%d%adCRX! dYN+#PXeY-, %JN+;-, %JN+;-,%%g+;-,%%h+;-,%F%F`%.%%& PX!jlY+%F%F`ab  #:# #:-,%G%G`%Gca%%Ic#%Jc Xb!Y&F`FF` ca-,&%%&n+  #:# #:-,# TX!%N+P `Y `` QX!! QX! fa@#a%P%%PZX %aSX!Y!YTX fae#!!!YYYN+-,%%JSX#Y%F fa &&I&&p+#ae ` fa ae-,%F  PX!N+E#!Yae%;-,& b c#a ]`+% 9X]&cV`+#!  F N+#a#!  IN+Y;-,]	%cV`+%%&m+]%`+%%%%o+]&cV`+ RXP+%%%%%q+8R%RZX%%I%%I` @RX!RX TX%%%%I8%%%%I8YYYYY!!!!!-,]%cV`+%%%%%%	%%n+8%%&m+%%&m+P+%%%q+%%%8 %%%q+`%%%e8%%` @SX!@a#@a#PX@`#@`#YY%%&8%%8 RX%%I%%I` @RX!RX%%%%%%I8%%%%
%
%%q+8%%%%%q+8%%8YYY!!!!!!!!-,%%%% PX!ehY+d%%%%I  c% cQ%T[X!!#! c% ca S+c%%%&JPXeY& F#F& F#F#H#H #H#H #H#H##8	#8Y-,#
c#c`d@cPX8<Y-,%	%	%&v+#TXY%&w+%&%&v+TXYw+-,%
%
%&v+TXY%&w+%&%&v+w+-,%
%
%&v+%&w+%&%&v+TXYw+-,%%%	&v+&&%&w+%&%&v+w+-,%%J%%J%&J&&J&cca-,]%`+&&
%9%9
%
%	%|+P%%
%|+PTX%%%%
%	%%%%%%%%v+%%%
%w+
%%%v+%%
%%w+Y
%F
%F`%F%F`%%%%& PX!jlY+%%	%	%	& PX!jlY+#
%F
%F`a c#%F%F`a c%TXY
& %:&&& :&TXY& %:# #:-,#TX@@YTX@@Y}+-,
TX@@Y}+-,TX@@Y
}+-,&&
&&
}+-, F#F
CCc#ba-,	+%.%}Ű%%% PX!jlY+%%% PX!jlY+%%%
%o+%%& PX!fhY+%%& PX!fhY+TX}%%Ű%%Ű&!&!&%%&o+YCTX}%+%+  iaC#a`` ia a &&8a iaa8!!!!Y-,KRCSZX# <<!!Y-,#%%SX %X<9Y`Y!!!-,%G%GT  ` a+-,%G%GT# a# &  `&++-,CTXKS&KQZX
8
!!Y!!!!Y-,+XKS&KQZX
8
!!Y!!!!Y-, CT#_#x!CV#y!C#  \X!!!GY  #cVXcVX!!!,Y!Yb \X!!!Y#b \X!!!Ya#!-, CT#{#x!Cr#y!C  \X!!!cY  #cVXcVX&[&&&!!!!6#Y!Y&#b \X\Z#!#!Yb \X!!#!Y&a#!-, Q&#x# `a F%`# H%X )Y#  #T#y!!!!-,BBBBBBBB-, Q2#xa# F F` %% H#H`#a #x!!!!-,`C+-, `C+ `C+-, ` C+>`C+-, `>C+g`C+-, `gC+u`C+-, `uC+`C+-, `C+`\C+-, `C+`UC+-, `C+`%C+-,`C+-,`xC+-, `C+ `qC+-, ` C+>`SC+-, `>C+g`*C+-, `gC+u`C+-, `uC+`C+-, `C+`C+-, `C+`C+-, `C+`C+-, `C+`uC+-, `C+.`cC+-, `.C+O`BC+-, `OC+i`(C+-, `iC+{`C+-, `{C+`
C+-,`C+-,c `%c`T#ya `&  PX !!Y a`&#&!a #x!-,c&c`T#ya--@}?|=V{=z=y>x<w;v:Vu:t8s8r9q9gp7o6gn6m6l5k5Vj4i3h3g1f2e/gd/c0b0a.`._.^.J]-\*+[,Z,Y*X+W+V)U)T(S(R(Q'P&O%N%gM$gL$K$J!I"H#G FEDCBA@?=+>=@:8@98465J5421J0/,*+**\)(#\' &V%U%$!g#"J"!4!0\ g988[9D[88[9D[>ZgUgUYY
U+UYYVU(
U(U9UY
YYY	(U(UYY@@T+KRKP[%S@QZUZ[XYBKSXBYCQXY++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++