[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

For: Carl DiStefano _re_: encode/decode procs



1) Well, lemme explain the conventions first; that in turn
explains the rationale behind {<}" and "{>}" for open and close
guillemets. Theory is pretty simple. There are three ways in
which every character is encoded in Ascii 32-127.:

Result eNCODE
====== ====== normal display = ASCII 32-127
{###}      = 1-byte ASCII 0-31|128-255
[[###+]###+###] = 2- and 3-byte ASCII sequences
         (funcs|chars|codes)

Now, forgetting about functions for the nonce, every character
has to fall finally into one of those three categories. AFTER
converting to these conventions, you can then run selected
strings through a Customization Table, to change {174} and {175}
or whatever, *to* whatever you prefer. When decoding, you first
run the text through the same Customization Table, to reverse the
process and restore the three standardized categories above, and
then you decode using numbers only. If at the end of the day you
don't convert numbers, i.e. try to deal with strings, it would be
a nightmare.

ABCDEFGabcdefg
{0}{1}...{254}{255}
[13+10][255+0+1][254+129+243] etc

So a 1-byte Ascii-174 (open guillemet) would normally
(before running through the Customization Table) be "{174}".
I customized that as "{<}" simply because it seemed consistent
with the notation; but it could be changed by the user to --
anything. The only (big) *caveat* is that the
Customization Table itself creates reserved strings which did not
previously exist. Outta da box, the only reserved strings are
brackets and curly braces enclosing numbers, and brackets
enclosing functions. In other words, if you changed {174} to,
say "<", let's hope you don't have any other "<" characters in
your program, 'cause they're going to *decode* into guillemets,
even though they *aren't* guillemets! Bad news. The bottom line
is, Customization represents a concession that enhances
legibility but compromises the universality of the program. I
went for "{<}" because it minimized the impact.

2) For functions, yeah, I agree, I also prefer BC_ to [BC].
Let me make that change in form [BC_] so that it's unambiguous
(more for the benefit of the decode module than the user). In
the beginning I just left functions in three- digit form, e.g.
BC=[255+129+31]. But, well, that's pretty dure. So, I ran every
3-byter through a table of valid functions in XyWin v4.12 (even though this is
4.017B PM); and if there was a match, ran it through @CNV unary
operator. The problem with @CNV is that it's about as fastidious
as case sensitivity in XS parses, i.e. NOT. Real junk. There
are literally dozens of 3-byte strings that will convert into a
given func, the most obvious ones being the string-next-door,
e.g. for BC the _real_ func is
[255+129+31] but [255+129+30] also displays identically, as
BC, even though it doesn't work!... Although, ha ha, funny
thing! Now they both work! That's new. Oh well. No matter,
you have to assume that the author put the 3-byter up there in a
particular form, deliberately, whether to parse it apart or just
perform a function, who cares why.
The point is precision. So, again, [BC_] is in brackets because
it's a 3-byte code, for notational consistency.

3) Getting extended charset into [brackets] representing their
original numbers is, hmmm, I was thinking it would be hard, but
actually it's easy, so -- OK.

4) Yeah, encode<==>decode, of course. Maybe not very pointful,
but . . . fun. And proof that the encoding was accurate.

Later. Enjoy the weekend. Ooooh, I had center-court
Knicks-Orlando tickets in the bag, too . . . blast it.

Here it is. Getting close:


XXencode version 1.51 (MSDOS) begin 644 xplcode.u2
hfYRAEOwB0bhvEoVZP5+oNKtXPqFZ92VZP5+oS5-gPaBjN4JxTG-6NKlk64Nj
hQW-MI2lZHYBDF2IiI2oB0et4H8yiH2omF2ajfZ7BBnV2GOwB0ZVEH4JCEox2
hFGtEHG-qAGsm64NjQW-MSHEU636iGWt6PqlhNr7ZPW+UBGwmB0wtBEo8Er7d
hR4ZXMKkUNIt1HoF3T2FZEox2FG+cR4VdQm-dQm-oO4IU8aJiMqxYNGcUPKxY
hRKlZ8Eo8Faxm61QhMaZo623HEoZ765VaNL6UMKtY65-mOKtoOKtb60VoPm-a
hOKlZT4BjPbBjP4JwQ57dPbFZQWYB0Uo8Hr-ZQa3oNLAURL-jPW-XRL7mNKto
h64NdP4IUNb7jPG-XRL7mNKto6Dx-FIBEzo3465Fj62JDFUo8F5JhQ5AUQaJn
hRKloQm-VR0-3PaEUPqMUErJmQaJiR0-4OKlZ1Ed3PbFZQW-JQqJm62BpQrFj
hPKZuMLFdPqsUOKsUIq3qNGx5NLEUA12B0ZFcNG-1RLBoPqpdSa3oOKxi63FV
hMalZ60VHMLNZ9oRZR0+kAGYUQqVjRKlY647Z64ZYNKtoOKBVP0-oPm-oO43o
h1EcU64xa65FcNG-MI2l2Eox2FG-hPqFpP4IV1EcB0Z7ZQrJgR0-ZHYBDF2IB
h0XoxDHoxDG+xDHoxDHoB0atjQapVP0-YOLBkP43t60+x623HEoZ761Am9H2m
hBko8SmAX6roU60+U60+U60+U61oUAGpWSLFZ623HEoZ761+hAn3wAH6s9H6p
hBEo8KpgX6mAfLGAX6mgX6mBR61oUAWoUMKtY61AhMbZoNG--IoB7GG-nNL3p
hNKtXNLAU84NpPaBnT4BcML7nT4BjN4Jn8Eo81Ed9PaxrPW-AOKpdR43oOKxi
hQko8DHoxDHoUDHoxDHoxDHoxDHoB0YZi9KpZPKxmSG-ZPaBjN4ZiNm-VPaEU
hN5JhQ4ZiNm-oMKhZQm-oOKpZ60VEIaxBI3EU6YJqMKlpMLFdPaQi9WsW6+o8
h60-dQm-YOLBkP43tNKEURqVdP4IUAX+kA0-WSLFZ647gPqBfQm-VQaIUQ57j
hMqJnQqJY8Eo8IaJnNL7qNKEUIrFmOKtbQncB0W+UMrJmP5YUMb7VMqJn64Ji
hMqljQqZiNm-vPbJhMaJmTEo860+U64IiNmsUSn2mC5oUDG+l9K7tR4IUMqJY
hOKlgMG0+1EcU647mMKBfNLFn64JiMqljQqZiNm-PPbJhMaJmLG+x61AhMbZo
hNG-ZS5FZPaFZN0-XO43mMKBoNL6B0W+U60-Z9aQi63gtA1ZR60VqMKldN0-m
hMKtbNHomBHMhCHYt8Eo860-WQa3XOqJoQm-ZPaBgPrBdPaQUKphiRKpWNL6f
hLKtpPK7ZQWhiRKpWNL7R61oUAWoUPr6UAmpWSLFZ60FoQaZiNko860+U64Ii
hNmsUKn6pBGgpA0gqC3oUDG+n9K7tR4IURKtWQaJVOq3WP4IUO5ZkO4Ji1EcU
h647mMKBfNLFn64JiMqljQqZiNm-PAaBcML7VMrFZQbBTLG-mNL-mNLBZPbFd
hPaQURa3gOKEUNbJiMrFdPqsB0W+U60-Z9aQi63h0K3xR61oUAmpWSLFZ64Np
hPaAB0W+UMKtt60EUN4JaOKtZN0-WSG-XRLBoPqpdSa3oOKxi64Zi63BVRaIj
hFqJo61+l1EcU60+UHWt09W+UKKxp64BVPatjR0-MI2l2Eox2FG-oO4IUQ57Z
hQqJiR0-aOKlZ90-jQW-VPbYUNaZgNEo860+U60+U60+U64BjPbFVOKtdPaQU
hMG-1RLBoPqpdSa3oOKxi63FVMalZ90-YRKIUR4wUNaJZN47VMqgB0Uo8ErJn
hR4xhOLdVR4ZjPW-4Pr7hMLEB0XoxDHoxDHoxDHoxDHoUDHoxDHox1EdMSJRm
hOLFZ706x6aJCEox2FG-iMLFdRaIY6jkWSKxpQW-XRLBoPqpdSa3oOKxi707X
hML7mOK3bNG-mNLFpQasW1EcU609w6Xp-IoB7GG+mBH6B0W+UNGtb9Uo80Hpv
hCLrwSrFVMboB0jz+q1pPAXIp8n2tAWgmAHNRz3hrK3oB0YsiEWsUHaJsR0-Z
hS43hQ4lZ643kQ4JVQbAUPqsUR4VmNKIUP4ZiNLAg643iN0-XPqtnOLBoQm-j
hNUo8Mq3mQaZVNqIUQaJoRL7i6XoWKn2n8n2kLG9w6ZhXQblgNZp-IoB7GGol
hAm7XML7mOK3bNG-mNLFpQasW1EcB0XpPAHAfAH-Rz3hXQblgNZoB1EdIO4IU
hNKNaNKBo64xa65FcNG-VMaxqNG-XRLBoPqpdSa3oOKxi64Zn65Fj657ZQ4lV
hMqIUKn2n8n2kLG-rOLFc1EcU65FcNG-nR57dPaQUKqBmT4laLG-aPqlgPrRZ
hN0-WSG-VPW-ZPaEhPqMhP4ZiNG-mNLFpQasB0Uo8fYN1fko8Faxm63JnNG-W
hSG-GFItJHI73IWtEHHcB0Z7ZPbJhMaJm63VEH2t1HoF39Z-B64Zi63--EogU
hPKxYNEo8F4JaMLJgR0-HMLNZ9oRZR0-GMKtbNHol9H6q1EdDI3F7HotnCW-i
hPqtZ1EeiFYmj1EfzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLz
hAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYLzAYIB0bhvPLpx1EcB0bhv
hBKJiMqxYNLpx63VEH2t1HoF39Z-B65Ml9X6U6378G0+UBGwmB0wtBEo8+etA
hEY4jCmcv1Ecv8XgUFKtoNL6UJLBZQW-1RLBoPqpdSa3oOKxi64Zi63BVRaIj
hFqJo61+l1EeiIpMkAGkB0UYxSnZxz5hoMK7x1EcB0XpPAHAfAH-Rz3hXQblg
hNZoB1EeiDLglBnFxz5gwTEo8fnpvAHQpTTlvDboB0jz-9XpPAXIp8n2tAmgo
hBZrwKrQwLEo8zw2jDJgmBHIfAHYn8nErLTlPRntR1Efzk7YxKn6pBGglCH6f
hAHInLTlPRlZR1Efzk7gxKn6pBGglCH6fAHIpLTlPRoBR1Efzk8oxKn6pBGgl
hCH6fAHQnLTlPRmpR1Efzk8sxKn6pBGglCH6fAHQoLTlPRmtR1Efzk9+xKn6p
hBGglCH6fAHQqLTlPRn-R1Efzk92xKn6pBGglCH6fAHQrLTlPRn3R1Efzk96x
hKn6pBGglCH6fAHQsLTlPRn7R1Efzk9AxKn6pBGglCH6fAHQtLTlPRnBR1Efz
hk9ExKn6pBGglCH6fAHUkLTlPRnFR1Efzk9IxKn6pBGglCH6fAHUlLTlPRnJR
h1Efzk9MxKn6pBGglCH6fAHUmLTlPRnNR1Efzk9QxKn6pBGglCH6fAHUnLTlP
hRnRR1Efzk9UxKn6pBGglCH6fAHUoLTlPRnVR1Efzk9YxKn6pBGglCH6fAHUp
hLTlPRnZR1EfzkA2xKn6pBGglCH6fAHYnLTlPRo3R1EfzkAkxKn6pBGglCH6f
hAX+oLTlPRolR1EfzkAsxKn6pBGglCH6fAX+qLTlPRotR1EfzkAwxKn6pBGgl
hCH6fAX+rLTlPRoxR1EfzkBAxKn6pBGglCH6fAX2lLTlPRpBR1EfzkBQxKn6p
hBGglCH6fAX2pLTlPRpRR1EfzkBUxKn6pBGglCH6fAX2qLTlPRpVR1EejCmcv
h1EeiIpMkAWkB0jy-Mzy-NTy-Nzy-OTy-Ozy-PTy-Pzy-QTy-Qzy-eTy-RTy-
hRzy-STy-Szy-TTy-Tzy-UTy-Uzy-VTy-zTy0+Ty0+zy0-Ty0-zy00Ty00zy0
h1Ty01zy02Ty02zy03Ty03zy04Ty04zy05Ty05zy06Ty06zy07Ty07zy08Ty0
h8zy09Ty09zy-gzy-hTy-hzy-iTy-izy-jTy-jzy-kTy-kzy-lTy-lzy-mTy-
hmzy-nTy-nzy-oTy-ozy-pTy-pzy-qTy-qzy-rTy-rzy-sTy-szy-tTy-tzy-
huTy-uzy-vTy-vzy-wTy-wzy-xTy-xzy-yTy0pzy0LTy0Lzy++Ty++zy+-Ty+
h-zy+0Ty+0zy+1Ty+1zy+2Ty+2zy+3Ty+3zy+4Ty+4zy+5Ty+5zy+6Ty+6zy+
h7Ty+7zy+8Ty+8zy+9Ty+9zy+ATy+Azy+BTy+Bzy+CTy+Czy+DTy+Dzy+ETy+
hEzy+FTy+Fzy0QTy+GTy0jzy0YTy+Gzy0Yzy0xzy0lTy-5zy-8zy+HTy+Hzy0
hqTy+ITy0tTy0ezy-Wzy-XTy-Xzy-YTy-Yzy-ZTy-Zzy-aTy-azy-bTy0fzy+
hIzy+JTy0rTy+Jzy+KTy+Kzy+LTy+Lzy-dzy+MTy+Mzy+NTy+Nzy0ZTy+OTy0
hGTy0Zzy+Ozy0Czy+Pzy0Gzy0uTy-Dzy+QTy-Vzy+Qzy-1Ty+RTy-ETy0Fzy0
hszy-Lzy-KTy-Kzy-bzy+Rzy-WTy+STy0nzy0JTy+Szy0Ozy-Hzy-Czy0Nzy-
hITy0OTy0Qzy0eTy0wTy+PTy+TTy0Ezy0Azy-LTy0aTy0mTy0uzy-yzy+Tzy-
hcTy0Xzy0MTy0jTy0FTy0czy0tzy0izy-6Ty-ATy-6zy-Azy-BTy-ezy0HTy-
hBzy+UTy+Uzy+VTy+Vzy+WTy+Wzy+XTy+Xzy+YTy0gTy-MTy+Yzy0Pzy0Rzy-
hEzy0fTy-9Ty0Izy+ZTy+Zzy0Bzy0xTy0gzy0Szy+aTy-7Ty-dTy+bTy+azy-
h9zy0ITy-czy+bzy+cTy+czy+dTy0kzy+dzy-Gzy-Fzy0bTy+eTy+ezy-7zy+
hfTy+fzy+gTy+gzy+hTy+hzy+iTy0TTy0Tzy0UTy0Uzy0VTy0Vzy0WTy0Wzy0
hCTy0lzy+izy+jTy+jzy+kTy+kzy+lTy+lzy+mTy+mzy+nTy0oTy+nzy+oTy+
hozy0Hzy+pTy0STy+pzy+qTy0qzy+qzy+rTy0hzy-1zy-2Ty-2zy-3Ty-3zy-
h4Ty-4zy0pTy0ozy0azy0Dzy+rzy0NTy0dTy+sTy+szy+tTy0Mzy+tzy+uTy-
hFTy-5Ty0DTy+uzy0iTy+vTy+vzy-HTy0PTy0KTy0cTy0bzy-Jzy+wTy0ETy+
hwzy-Izy0kTy+xTy0XTy-8Ty-JTy+xzy0Kzy0RTy+yTy0rzy0wzy-CTy0mzy0
hBTy+yzy+zTy-fzy0vTy-+Ty-+zy--zy--Ty-GTy-0Ty-0zy0nTy0dzy-gTy0
hvzy-fTy0sTy0ATy-DTy0Jzy0hTy-zm+Uzs1zfngeCko8zs8bzs2xzs29zs4h
hzs-xzs1Xzs9N84Jn612dfZBKA1Agzs5xfutHJX+o964jfZVHA1AgA1EgA1Ig
h91+qfngeCm0iIpMkBGkmBHKjCm0iIpMkBWkmBHCj1EeiIpMkAmnyUE0jfZVH
hA1AgA1EgA1Qg91+sfngeCm0iIpMkBmkmBHGjCm0iIpMkC0kkfko8fZBKA1Ag
hzs2-futMIn+n91+o91+p90kkCOwv8XgUfZBKA1YgA14j1EeiIpMkAmnzUE8j
hfZVHA1AgA1EgA1Ig912kfngeCm0iIpMlA0kkAewB0etHJX+n9DsO+OyiK3Ak
hAmkkCGklAGkgAH8jfZBMA1AgfYZHA1Kj8m8+6WiiGJAlAOyjfZBKAH2g4pWj
hfZVHA1AgAH2g912m912nfngeCm0iIpMlAmkmBewB0etHJX2m9Dy-0eyiK3Al
hAWkkB0kkBGkgA1CjCmcv68tHJX+n912kfko8fZBMA1AgfYZHA1Wj8ut7In+t
hfmiiGJAlA8wf6UA2-EM50+YW8ut7In+nfmgW0kkB1UwE2F6H3-IK3lUN6Wii
hGJAlAuwf6VgQ5FsT602W8m6W6W6f6WAY7GMb80Ye8mkh9WwkAH6nB1IqBnUt
hCXgwDHszE230EoF3FYR6GId9H2pCHp-FIZBIJJNLK3ZOKplRLZxUMK7XN4Ja
hNqVdOahgPKtjQ53mQrFpRbRsSLdvT5pyTs0-UcC2VMO5W6a8WsmBXcyEYN8H
hZ7KKZtWNadiQbNuTc84WcuGZdeSceOeff8qifv0lgfCohPOri9auivmxjfz+
hkQ91lAL4lwX7mgjAnQvDoB5GoxHJphTMqRfPrBrSry1VsiDYtSPbuCbeuynh
hvizkwT9nxDLqxzXtyjjw6WiiGJAkBewffYZHA1Sj8ut7In+pfuyiIpMlAWm+
hfutHJX2o98wv8XgB0etHK12p98tKHWF4GOyjfZBMAHMg6Uo8K3-ANIt1HoF3
h65Ml9X6B0a7ZNqZi606ffYZHAHKj8m6B0W8jfZBMAHIgfYBEfuzzU2qiIpUl
hBmmiEp0jfzy0qKdhQ00iI3MlBOzzUbyiIpUlBGkkfutHJX2s9+o8fngeCko8
hCmcv1EeiH270fut7FetKHbklB8wyAX+rAuyiIpUlCGmiEp0jfut5H2CjfYJ7
hfzy+Ozy+Mzy+OutHJX+ofzy-0ut7FetKHbkkB8wwAG4iEp0jDetEJX2rfuyi
hIpUlBGklfutAEYCjfZBKA1Eg1EcPK1qjfZBKAX+gz8yiI373Ra3gRK3oOKtb
h9WsifutHK16l98t7In+lfuyiGIOiJYtwAX4jDX8jfYl0F8yiK3AmAGkkB0kg
hAX6gAXCjfZVHAXAgAX+gAX6g916ofutMIn6o912s916n90kmBOyiIpUmAGkW
h1EcW8ut7In6pfuyiIpMmBGmjfYl0FOyiGIOiGJAlB8zkfYZHAX8jfutHJX6q
h98yiK3AlB0kmAWkmBGkgAXOjfZBMAHEgfYZHAXKj8ut7In6nfmiiGJAmBeyj
hfYRAFOyiFIajfYZ4fZNCT16lfnsmfut5H2GjfYJ7fut3GOyiIpMmAWkPK-hM
h4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUP
hK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM
h4pUPK-hM4pUPK-hM4pUPK-hM4pUPK-hM4pUPK8yiH274fut7FetKHbklB8wy
hBX2a806B6iuiGJAlB8wwA02W1G9ifYZHAHGjDXMl6G6B0W9ifYZHAHGjD1+V
h6Uo86iuiGJAlB8wyBX2dfutMIn2o916m90kmA0kmBOyiIpUlBWmiGJAlBewf
hfYZHAX0j8m6B0W8jfZBMAHEgfYZHAXKjfut5H2OjfYJ7futHK16k98tKHWF4
hGOyjfZBMAHMgfYZHAHOj8ut7In2ofuyiGIOiI3MlBOwyA8yiIpUlBWmiGJAl
hBewf6Uo8NKtY1EdMI2lZHYBDF2IB0W8jfYJ7fzy+HOt5J12qfut7FetEJX2p
hfnklfutHJX2o98yiIpMlBWmj1EeiI36UfutAEYSjzs9NOapk68tEJX2tfzy0
hTut7Fet1I8wwDetEJX2tfuyiFol5fut3GOyiFol0fut3GOyiH275FuzzUhZe
hPL+UfZ-KAHSjzs7zfYZ4fYBEfnkyfZ-KAHSjfut5H2R5fut3GOyiI372PqtZ
hfut3K8yiFIajfYZ4fZNCT1+ofnkmfut7Fet7In+ofnsW5m6afYZHA1GjD08+
h6WOiGJAkB8zi6bhP6XkkfutAEYWjfZBMAHEgfYZHAHGj8ut7In+ofuyiFol0
hfut3GOyiGIOiGJAkB8zi6bhP6XkkfutHK16q98t7In+ofyuiGJAkAuyjfZBM
hAHEgfYZHAHGj8m7v6WiiGJAmBewf6boWfut5H28jfYJ7fzy+Ozy+Mzy+OutH
hJX6mfzy-0ut7FetKHVImAewyA8yiIpUlB0miGJAlB8wffYZHA1Gj8m7aS06f
hfYZHAX8jfut5H28jfYJ7fzy+Kut5H2WjfYJ7fut7FetKHbkkB8wwAuyiIpUl
hB0miGJAlB8wf6ZglAmglA3oWfut5H28jfYJ7fut7FetKHbkkB8wyAuyiI37J
hPa3iR4ZXOL-VR4JY64JmQaxmCW-ZRa3gRK3oNLAUR4VdQm-XO43mMKBoNL6U
hMLAUB0gUMbZoNG-XPqFZfut3K8yiFIajCmcv1EeiGIOiGJAkAezkfYZHA1Gj
hfutHK1+o92-1HZMcfYZHA1Gj8OyiIpUlB0miGJAlB8wf6ZgW8ut7In+ofmgW
hLpoWfut5H28jfYJ7fut7Fet7In+rfyuiGJAkB8wxDH0jfZBMA1EgfYZHA1Kj
h8m8+6WiiGJAkB8yjfZVHA1EgAH2g916m916nfutHK16n98t7In+pfmgWU06f
hfYZHAXCjfutMIn6n912l90kmBWkmB8yiK3AmBWklAWkgAXIgAX8jfZBMAXEg
hAXIq8WWiGJAmB8zifYZHA1Cj8n2d8ut7In6mfyuiGJAkAuyjfYZ4fZ-KAXGj
hD12kA10jfZBMAHEgfYZHAHGj8m7P6WiiGJAmB8wf6ZoWfut5H28jfYJ7fut3
hGOyiIpUmBWmiGJAkBOwf6c+W8ut7In+ofuyiK3AmBWklAGkgAX2gAX8jfZVH
hAX2gAH6gA1Ig916nfutHK16n98t7In6nfyuiGJAkAuyjfYZ4fYZHAXCjD10j
hfZBKAXAgAXIpfut3GOwv8XgUAHQxMbZoNH2U1EeiIpUmBWmiGJAkBOwf6c+W
h8ut7In6mfuyiK3AmBWklAGkgAX2gAXGjfZVHAX2gAH6gA1Ig916pfutHK16p
h98t7In6pfyuiGJAkAuyjfYZ4fYZHAXKjD10jfZBKAXIgAXIpfut3GOyiIpUm
hB0miGJAmB8zifYZHA1Cjfut7Fet7In6ofnkkfutHJX6o916pBOyiFIajCmcv
h612tDK7tR4Im90+lC1pWSLFZAko8fZBMAHEgfYZHAHGj8m7P6WiiGJAmAuwf
h6WgW8ut7In6pfmgW8m6ffYZHAXGj8m7R6eyiFol0fk6B0Uo83VMK3VMK3VMK
h3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3Uo81EeiFol-fko8Srh1
hG4JgQ1FYNKBjN4IgG4JgQ1FsQ4lYMqxYNLpx62VZP5+UNaxm63VEH2FZEox2
hFGtEHEo8fYNAfutAHH72GOyiIYorC2F7fko8K3-AF4J1HoF39Z-B65Ml9X6U
hNaxm63VtB0+UIWt89YVjP4pbQaJi60+p9n6o9nYp1Ed1QaZoOKBVP0-ZHYBD
hF2JwF4J1HoF360VoO4Zn64Zn65FcNG+eN4JXPqFZ8W-hPqFpP4Id1Ed4Pr6U
hBmpWOLEUEJB1GIYUS4NZQW-VPaEUQ57dPbFdPaQU85Fj64NdP4JwMqxiQqxg
hNLlkQaZiR4Jm8Eo81Ed2NKBjN4Jn64JiMqxYNKEUNaZgNG-aQaxh64BpQb7Z
hPbEUzo33Ep1zEIMUR4wUFIx41Ed3PbFZQW-JQqJm62BpQrFjPKZuMLFdPqsU
hOKsUIq3qNGx5NLEUA12B0ZFcNG-1RLBoPqpdSa3oOKxi63FVMalZ60VHMLNZ
h9oRZR0+kAGYUQqVjRKlY647Z64ZYNKtoOKBVP0-oPm-oO43o1EcU64xa65Fc
hNG-MI2lCEox2FG-hPqFpP4IV1EcU62siEWsU63ZjRG-XMKtiPrEUK3-AF2BD
hF2IUR4VZ65-mNLBZPbEUNaZgNGkUPr6UMKtt64NdP4IB0W+U60+U60+UMqxi
hR43dPaZiNm-V62BpQrFjPKZuMLFdPqsUJ43WP4Ig64FpNG-oPm-aNKJYMa3X
hOko81Ed4Pr6UPKxmNG-YNLFVOKlZN0-cNKlk90-nNKIUG2JAI0-MI2lCEox2
hFG-jQW-6FIlE62JCEox2FEo81Ed1RLBoPqpdSa3oOKxi62NjQapVR+o8DHox
hDHoxDHoxDHoxDG+xDHoxDHoB0ZVtJr7dR4IY6XoWNIt1HoF364tVR4ZqNGEW
hz07tPrJm64BpQrFjPKZuMLFdPqsY6aBVQb7dMKRZ657ZR5JmPW6B0W+U6jkW
hDI3HEoZ7616pAUo81EeiFYCj1Ed4Pr6UJLBZ647t6373HZJBEYJG9Z-BCUo8
hIaJiRKpWNL6UK3-AF2BDF2IiI2oUOKsUI231Gm-hPqFZ1Ed2NKNVRKlo63BV
hRaIjFqJo637VPaRZDH2hAHIB0YxEJ2ZDHbAu64tjPaIB0et4H8wB0jwmFTwm
hFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwm
hFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwm
hFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwmFTwm
hFTwmFTwmFTwmFTwmFTwmFEo8SrhhTLoB0Uo8SrgpN4JXPqFZTLoUK3-AF2BD
hF2IiI2oURX2iAW+UIYd660+p9n6o9nYp1Ec0fYl0EOwv8XgB0XgeCm-3PbFZ
hQW-JQqJm62BpQrFjPKZuMLFdPqsUOKsUIq3qNGx5NLEUA12B0etHJX+l9+o8
h0HpvCLrwSrFVMboB0Uo8DJglAmglA3rwKqBmT4laLEoB0esxSn2rB5rwSnlx
h1EejDLglBnJxz5gyTEo8zw2iDJgmBHIfAHYn8nEqLTlPRnlR1EfzkGwxKn6p
hBGglCHAfB1RRz3hrDZoB0jz+aHpPAXIp8n2tAWglBHBRz3hr4JoB0jz+anpP
hAXIp8n2tAWglBHJRz3hrEpoB0jz+fHpPAXIp8n2tAWglBnBRz3hr9JoB0jz+
hfXpPAXIp8n2tAWglBnFRz3hr9ZoB0jz+g1pPAXIp8n2tAWglBnNRz3hrA3oB
h0jz+gHpPAXIp8n2tAWglBnRRz3hrAJoB0jz+gXpPAXIp8n2tAWglBnVRz3hr
hAZoB0jz+gnpPAXIp8n2tAWglBnZRz3hrApoB0jz+h1pPAXIp8n2tAWglC1-R
hz3hrB3oB0jz+hHpPAXIp8n2tAWglC13Rz3hrBJoB0jz+hXpPAXIp8n2tAWgl
hC17Rz3hrBZoB0jz+hnpPAXIp8n2tAWglC1BRz3hrBpoB0jz+i1pPAXIp8n2t
hAWglC1FRz3hrC3oB0jz+iHpPAXIp8n2tAWglC1JRz3hrCJoB0jz+kHpPAXIp
h8n2tAWglCHBRz3hrEJoB0jz+n1pPAXIp8n2tAWgmA1FRz3hrH3oB0jz+nXpP
hAXIp8n2tAWgmA1NRz3hrHZoB0jz+nnpPAXIp8n2tAWgmA1RRz3hrHpoB0jz+
honpPAXIp8n2tAWgmAH3Rz3hrIpoB0jz+pnpPAXIp8n2tAWgmAHJRz3hrJpoB
h0jz+q1pPAXIp8n2tAWgmAHNRz3hrK3oB0ewv8XgB0XgeCko8zs8bzs2xzs29
hzs4hzs-xzs1Xzs9N84Jn612dfZBMA16gfYBEfuzzUhZXOK2UziQ0K3-ANIt1
hHoF365Ml9X6B0a7ZNqZizw1L1Efytk9ytk9zUbzzUhZXOK2UziQ01EdZPaEB
h0ZVEH4JCEox2FEo8ziQ0ziQ0zs7zzs9NMqZV6Dvb+Uo8ziQ0ziQ0zs7zfZBK
hA1AgSuzzUhZXOK2UziQ0fZ-KA1CjSzvb+bjzBo9ytk9zUbyiIpIkB0miH270
hfzy0qKdhQ00iI3MkAezzUbyiGIOiEp0jD1uiI3MkAeyjfYRAEeyiFIajfut5
hJ1+ofutHJX+n9+o8futHJX+p98yiK3AkAGkkAmkgA1MgA1KjfZBMA12gfYZH
hA1KjfutHJX+p91qjfZBKA1Mg4pUB0eyiIpMkBmnwfut7FW6B0W9ifYZHA14j
hDX0jfYl0EuyiIpMkC0mjfZBKA1YgfutHJX2k98yiIpMlAGmjfZVHA12gA1Mg
hA1UgA1YgAH0jfZVHA1YgA1AgAH2g912mfutHK12m98t7In+sfmiiGJAlAOyj
hfZVHAH6gA1IgA1Ug91+tfutMIn+t91+r91+s90klAezzUhZXOK2UziQ0fZ-K
hAH8jziQ0fZ-KA1WjziQ0zs7zfZBMAHAgfYZHAH8j8m7w6WiiGJAkC8yjfYZ4
hfZNCT12kfnslfutHK1+l98t7In2kfuyiFol1fut3GOyiFIajzs9NMqZV6Dvb
h+bglBnJxziQ0zw2jziQ0zs7zzs9NMqZV6Dvb+bglBnFxziQ0zw2iziQ0zs7z
hCmcv1Ecv8XgB0etHJX+l95XzA11zA15zA19zA1DzA1HzA1LzA1PzA1TzA1Xz
hA1bzA25zA29zA2DzA2HzA2LzA2PzAH1zAH5zAH9zAHDzAHHzAHLzAHPzAHTz
hAHXzAHbzAI5zAI9zAIDzAIHzAILzAIPzAX1zAX5zAX9zAXDzAXHzAXLzAXPz
hAXTzAXXzAXbzAY5zAY9zAYDzAYHzAYLzAYPzAn1zAn5zAn9zAnDzAnHzAnLz
hAnPzAnTzAnXzAnbzAo5zAo9zAoDzAoHzAoLzAoPzB11zB15zB19zB1DzB1Hz
hB1LzB1PzB1TzB1XzB1bzB25zB29zB2DzB2HzB2LzB2PzBH1zBH5zBH9zBHDz
hBHHzBHLzBHPzBHTzBHXzBHbzBI5zBI9zBIDzBIHzBILzBIPzBX1zBX5zBX9z
hBXDzBXHzBXLzBXPzBXTzBXXzBXbzBY5zBY9zBYDzBYHzBYLzBYPzBn1zBn5z
hBn9zBnDzBnHzBnLzBnPzBnTzBnXzBnbzBo5zBo9zBoDzBoHzBoLzBoPzC11z
hC15zC19zC1DzC1HzC1LzC1PzC1TzC1XzC1bzC25zC29zC2DzC2HzC2LzC2Pz
hCH1zCH5zCH9zCHDzCHHzCHLzCHPzCHTzCHXzCHbzCI5zCI9zCIDzCIHzCILz
hCIPzEH1zEH5zEH9zEHDzEHHzEHLzEHPzEHTzEHXzEHbzEI5zEI9zEIDzEIHz
hEILzEIPzEX1zEX5zEX9zEXDzEXHzEXLzEXPzEXTzEXXzEXbzEY5zEY9zEYDz
hEYHzEYLzEYPzEn1zEn5zEn9zEnDzEnHzEnLzEnPzEnTzEnXzEnbzEo5zEo9z
hEoDzEoHzEoLzEoPzF11zF15zF19zF1DzF1HzF1LzF1PzF1TzF1XzF1bzF25z
hF29zF2DzF2HzF2LzF2PzFH1zFH5zFH9zFHDzFHHzFHLzFHPzFHTzFHXzFHbz
hFI5zFI9zFIDzFIHzFILzFIPzFX1zFX5zFX9zFXDzFXHzFXLzFXPzFXTzFXXz
hFXbzFY5zFY9zFYDzFYHzFYLzFYNsfngeCko8fZBKA1Ag4pWjfZBKA1Ig8uyi
hIpMlB0nzA25zA2GjfZBJA1MgfZBMA1Qg9H4jfZBKA1UgfutAEYGjfYZ4fZ-K
hA1SjD8tEJX+tfuyiIpUkBmmiI3MkBuwfAOyiIpUkC0miGJAkC8wf6VhM6eyi
hFol2fut3GOyjfYl0FOzzUhZnNG+USzz+njz+npjzkAvzUbyiGIN+HYxI88t3
hIewdfzy+Kzy+Ozy0qLBZ601zkAtxzw1Dzw1CLTy0Tzy+Kzy+OutHJX+tfzy+
hoTy+nzy-8utHJX2k98yiH274futHJX2l98yiGIOiGJAkCOzk6WgWfutMIn+t
h91+p912m90klAOyiIpUkCGmiGJAlAeyjfYRAFuyiFIajfYZ4fZ-KA1ajDX6p
hBGOiI3MkCOwwAH+kA8yiIpUkC0l+GItI88tEJX+tfmwmBHMd9H4jfZBMAHAg
hfZ-KA1aj9H6pBWccfZ-KA1Wj8n2dfutHK1+t907PAXIo8m6ffYZHAHCj8m6f
h6WiiGJAkC8wf6ZoWfutHJX2k98yiFol4fut3GOyiH275fut7FetEJX+tfnox
hAXIpfutHJX+s9Dx4FeyiFol6fut3GOyiFpEkBeyiK3AkAGkkC0kgAHAgAHKj
hfZVHAHIgA1Ag91+s912nfutAEYWjfZBMAH+gfYZHAH0j8ut7In+sfuyiGIOi
hJYtwAH4jDX0jfZBMA1YgfYZHAH4jfut5H2OjfYJ7fut7Fet7In2kfyuiGJAl
hB8wwA8yiI3MlA8yiFol3fut3GOyiGIOiGJAlA8zifYZHAHGjD14jfZBKAH+g
h0eyiFpElA8yiFol3fut3GOyiIpMlA0kBfut5J12kfut5H2KjfYJ7fut5J1+o
hfutAEYajzs9NQqIU63jzkBXzkBVTLTy0Tut7FY-CHpEcfYJGfmajzs-Pzs-P
hzs-fzs-Pzs-Pzs-ffZBKA14jzs1FfYZ4E3JEIWWiGJAkAOwdD1sWJ3AWfzy0
hqL-aRKsUfZ-KA14jzs7zfYZ4fYJGfuyiFpEkAOyiFol7fut3GOzzUAzzUAzz
hU3jzUGiiFol7fut3GOyiIpMkAGnzUDSjfYRIA14jzs1Dzs-Pzs2ffYRAGOyi
hFIajfYRIA1GjfZBKA12gSuzzUhZXOK2UziQ0SzwrEjvb+etEJX+lfrjytk9z
hUbzzUhZXOK2UziQ0KqNszw1CziQ0Kzz+njvb+jy0Tzy0qKBdMG1ytk7vNbXz
hkAvytk7vzw1CziQ0zs7zfZ-GF4xiNOyiFJWj+Uo81EcK3VMK3VMK3VMK3VMK
U3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK3VMK1EcB0Vc+
+ end
10877 bytes encoded into 1 file(s)