Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Pygments / examplefiles / output / example.pas
Size: Mime:
€]q(cpygments.token
_TokenType
qXCommentqXSingleq†q…qq}q(Xsubtypesqcbuiltins
set
q	]q
…qRqXparentq
hh…q…qq}q(hh	]q(hhXPreprocq†q…qq}q(hh	]q…qRqh
hubhhXMultiq†q…qq}q(hh	]q …q!Rq"h
hubhhXHashbangq#†q$…q%q&}q'(hh	]q(…q)Rq*h
hubhhhX
SingleLineq+†q,…q-q.}q/(hh	]q0…q1Rq2h
hubhhXDocq3†q4…q5q6}q7(hh	]q8…q9Rq:h
hubhhX	Directiveq;†q<…q=q>}q?(hh	]q@…qARqBh
hubhhX	MultilineqC†qD…qEqF}qG(hh	]qH…qIRqJh
hubhhX
SinglelineqK†qL…qMqN}qO(hh	]qP…qQRqRh
hubhhXPreprocFileqS†qT…qUqV}qW(hh	]qX…qYRqZh
hubhhXSpecialq[†q\…q]q^}q_(hh	]q`…qaRqbh
hube…qcRqdh
h)…qeqf}qg(hh	]qh(hXEscapeqi…qj…qkql}qm(hh	]qn…qoRqph
hfubhXOperatorqq…qr…qsqt}qu(hh	]qv(hhqXDBSqw†qx…qyqz}q{(hh	]q|…q}Rq~h
htubhhqXWordq†q€…qq‚}qƒ(hh	]q„…q…Rq†h
htube…q‡Rqˆh
hfhh‚hwhzubhXNameq‰…qŠ…q‹qŒ}q(hh	]qŽ(hh‰XTagq†q…q‘q’}q“(hh	]q”…q•Rq–h
hŒubhh‰XEntityq—†q˜…q™qš}q›(hh	]qœhh‰h—hw‡q…qžqŸ}q (hh	]q¡…q¢Rq£h
hšuba…q¤Rq¥h
hŒhwhŸubhh‰X	Exceptionq¦†q§…q¨q©}qª(hh	]q«…q¬Rq­h
hŒubhh‰X	Decoratorq®†q¯…q°q±}q²(hh	]q³…q´Rqµh
hŒubhh‰XClassq¶†q·…q¸q¹}qº(hh	]q»(hh‰h¶hw‡q¼…q½q¾}q¿(hh	]qqÁRqÂh
h¹ubhh‰h¶XStartqÇqąqŁqÆ}qÇ(hh	]qȅqÉRqÊh
h¹ube…qËRqÌh
hŒhÃhÆhwh¾ubhh‰XVariableq͆q΅qρqÐ}qÑ(hh	]qÒ(hh‰hÍX	AnonymousqӇqԅqՁqÖ}q×(hh	]q؅qÙRqÚh
hÐubhh‰hÍh¶‡qۅq܁qÝ}qÞ(hh	]q߅qàRqáh
hÐubhh‰hÍXMagicqâ‡qã…qäqå}qæ(hh	]qç…qèRqéh
hÐubhh‰hÍXGlobalqê‡që…qìqí}qî(hh	]qï…qðRqñh
hÐubhh‰hÍXInstanceqò‡qó…qôqõ}qö(hh	]q÷…qøRqùh
hÐube…qúRqûh
hŒh¶hÝhêhíhòhõhâhåhÓhÖubhh‰X	Attributeqü†qý…qþqÿ}r(hh	]rhh‰hüh͇r…rr}r(hh	]r…rRrh
hÿuba…r	Rr
h
hŒhÍjubhh‰X	Namespacer†r…r
r}r(hh	]r…rRrh
hŒubhh‰XPropertyr†r…rr}r(hh	]r…rRrh
hŒubhh‰XSymbolr†r…rr}r(hh	]r …r!Rr"h
hŒubhh‰XClassesr#†r$…r%r&}r'(hh	]r(…r)Rr*h
hŒubhh‰XPseudor+†r,…r-r.}r/(hh	]r0…r1Rr2h
hŒubhh‰XLabelr3†r4…r5r6}r7(hh	]r8…r9Rr:h
hŒubhh‰hq†r;…r<r=}r>(hh	]r?…r@RrAh
hŒubhh‰XBuiltinrB†rC…rDrE}rF(hh	]rG(hh‰jBj+‡rH…rIrJ}rK(hh	]rL…rMRrNh
jEubhh‰jBXTyperO‡rP…rQrR}rS(hh	]rT…rURrVh
jEube…rWRrXh
hŒj+jJjOjRubhh‰XFieldrY†rZ…r[r\}r](hh	]r^…r_Rr`h
hŒubhh‰XOtherra†rb…rcrd}re(hh	]rfhh‰jaXMemberrg‡rh…rirj}rk(hh	]rl…rmRrnh
jduba…roRrph
hŒjgjjubhh‰XFunctionrq†rr…rsrt}ru(hh	]rvhh‰jqhâ‡rw…rxry}rz(hh	]r{…r|Rr}h
jtuba…r~Rrh
hŒhâjyubhh‰jO†r€…rr‚}rƒ(hh	]r„…r…Rr†h
hŒubhh‰XConstantr‡†rˆ…r‰rŠ}r‹(hh	]rŒ…rRrŽh
hŒube…rRrh
hfhühÿjBjEh¶h¹j‡jŠh®h±h—hšh¦h©jqjtjjj3j6jjjajdhh’hÍhÐjYj\jjj+j.hqj=j#j&jOj‚ubhXLiteralr‘…r’…r“r”}r•(hh	]r–(hj‘ja†r—…r˜r™}rš(hh	]r›…rœRrh
j”ubhj‘XCharrž†rŸ…r r¡}r¢(hh	]r£…r¤Rr¥h
j”ubhj‘XDater¦†r§…r¨r©}rª(hh	]r«…r¬Rr­h
j”ubhj‘XScalarr®†r¯…r°r±}r²(hh	]r³hj‘j®XPlainr´‡rµ…r¶r·}r¸(hh	]r¹…rºRr»h
j±uba…r¼Rr½h
j”j´j·ubhj‘XStringr¾†r¿…rÀrÁ}rÂ(hh	]rÃ(hj‘j¾XInterpolrćrÅ…rƁrÇ}rÈ(hh	]rÉ…rÊRrËh
jÁubhj‘j¾X	DelimeterṙrÍ…r΁rÏ}rÐ(hh	]rÑ…rÒRrÓh
jÁubhj‘j¾jž‡rÔ…rՁrÖ}r×(hh	]rØ…rÙRrÚh
jÁubhj‘j¾j‡rÛ…r܁rÝ}rÞ(hh	]rß…ràRráh
jÁubhj‘j¾h‡râ…rãrä}rå(hh	]ræ…rçRrèh
jÁubhj‘j¾ja‡ré…rêrë}rì(hh	]rí…rîRrïh
jÁubhj‘j¾XBacktickrð‡rñ…ròró}rô(hh	]rõ…röRr÷h
jÁubhj‘j¾hi‡rø…rùrú}rû(hh	]rü…rýRrþh
jÁubhj‘j¾XRegexrÿ‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾XMomentr‡r…r	r
}r(hh	]r…r
Rrh
jÁubhj‘j¾XBooleanr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Characterr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Delimiterr‡r …r!r"}r#(hh	]r$…r%Rr&h
jÁubhj‘j¾h3‡r'…r(r)}r*(hh	]r+…r,Rr-h
jÁubhj‘j¾h‰‡r.…r/r0}r1(hh	]r2…r3Rr4h
jÁubhj‘j¾XAffixr5‡r6…r7r8}r9(hh	]r:…r;Rr<h
jÁubhj‘j¾XHeredocr=‡r>…r?r@}rA(hh	]rB…rCRrDh
jÁubhj‘j¾XDoublerE‡rF…rGrH}rI(hh	]rJ…rKRrLh
jÁubhj‘j¾XInterprM‡rN…rOrP}rQ(hh	]rR…rSRrTh
jÁubhj‘j¾XAtomrU‡rV…rWrX}rY(hh	]rZ…r[Rr\h
jÁube…r]Rr^h
j”j5j8jðjójžjÖjj"h3j)jEjHhijúj=j@jÄjÇjajëjÿjhjäjjÝjjjj
jMjPjjjÌjÏjUjXh‰j0ubhj‘XNumberr_†r`…rarb}rc(hh	]rd(hj‘j_XFloatre‡rf…rgrh}ri(hh	]rj…rkRrlh
jbubhj‘j_XDecrm‡rn…rorp}rq(hh	]rr…rsRrth
jbubhj‘j_XRadixru‡rv…rwrx}ry(hh	]rz…r{Rr|h
jbubhj‘j_XOctr}‡r~…rr€}r(hh	]r‚…rƒRr„h
jbubhj‘j_XBinr…‡r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jbubhj‘j_hü‡r…rށr}r(hh	]r‘…r’Rr“h
jbubhj‘j_XHexr”‡r•…r–r—}r˜(hh	]r™…ršRr›h
jbubhj‘j_XIntegerrœ‡r…ržrŸ}r (hh	]r¡h(j‘j_jœXLongr¢tr£…r¤r¥}r¦(hh	]r§…r¨Rr©h
jŸuba…rªRr«h
jbj¢j¥ubhj‘j_XDecimalr¬‡r­…r®r¯}r°(hh	]r±…r²Rr³h
jbube…r´Rrµh
j”j…jˆjejhj”j—jœjŸj}j€jujxhüjj¬j¯jmjpube…r¶Rr·h
hfj¾jÁj_jbj¦j©j®j±jaj™jžj¡ubhXGenericr¸…r¹…rºr»}r¼(hh	]r½(hj¸XErrorr¾†r¿…rÀrÁ}rÂ(hh	]rÃ…rÄRrÅh
j»ubhj¸X
SubheadingrƆrÇ…rȁrÉ}rÊ(hh	]rË…rÌRrÍh
j»ubhj¸X	TracebackrΆrÏ…rЁrÑ}rÒ(hh	]rÓ…rÔRrÕh
j»ubhj¸XOutputrÖ†r×…r؁rÙ}rÚ(hh	]rÛ…rÜRrÝh
j»ubhj¸XPromptrÞ†rß…ràrá}râ(hh	]rã…räRråh
j»ubhj¸XDeletedræ†rç…rèré}rê(hh	]rë…rìRríh
j»ubhj¸XInsertedrî†rï…rðrñ}rò(hh	]ró…rôRrõh
j»ubhj¸XHeadingrö†r÷…rørù}rú(hh	]rû…rüRrýh
j»ubhj¸XStrongrþ†rÿ…rr}r(hh	]r…rRrh
j»ubhj¸XEmphr†r…rr	}r
(hh	]r…rRr
h
j»ube…rRrh
hfjæjéjj	j¾jÁjöjùjîjñjÖjÙjÞjájþjjÆjÉjÎjÑubhj¾…r…rr}r(hh	]r…rRrh
hfubhXKeywordr…r…rr}r(hh	]r(hjh†r…rr}r (hh	]r!…r"Rr#h
jubhjj†r$…r%r&}r'(hh	]r(…r)Rr*h
jubhjjO†r+…r,r-}r.(hh	]r/…r0Rr1h
jubhjXPreProcr2†r3…r4r5}r6(hh	]r7…r8Rr9h
jubhjXControlr:†r;…r<r=}r>(hh	]r?…r@RrAh
jubhjj‡†rB…rCrD}rE(hh	]rF…rGRrHh
jubhjj†rI…rJrK}rL(hh	]rM…rNRrOh
jubhjj+†rP…rQrR}rS(hh	]rT…rURrVh
jubhjXDeclarationrW†rX…rYrZ}r[(hh	]r\…r]Rr^h
jubhjXReservedr_†r`…rarb}rc(hh	]rd…reRrfh
jube…rgRrhh
hfj‡jDjWjZjjKj+jRj_jbjOj-j:j=jj&j2j5hjubhja…ri…rjrk}rl(hh	]rm…rnRroh
hfubhXTextrp…rq…rrrs}rt(hh	]ru(hjpXRootrv†rw…rxry}rz(hh	]r{…r|Rr}h
jsubhjpj†r~…rr€}r(hh	]r‚…rƒRr„h
jsubhjpXRagr…†r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jsubhjpX
Whitespacer†rŽ…rr}r‘(hh	]r’…r“Rr”h
jsubhjpXBeerr•†r–…r—r˜}r™(hh	]rš…r›Rrœh
jsubhjpXPunctuationr†rž…rŸr }r¡(hh	]r¢…r£Rr¤h
jsube…r¥Rr¦h
hfjjjj€jj jvjyj•j˜j…jˆubhhj…r§…r¨r©}rª(hh	]r«hjX	Indicatorr¬†r­…r®r¯}r°(hh	]r±…r²Rr³h
j©uba…r´Rrµh
hfj¬j¯ube…r¶Rr·jpjshihlj¾jjajkjjh‰hŒj‘j”jj©hqhthhj¸j»XTokenr¸hfj¾jÁj_jbubh#h&hChFhhhShVhhh[h^h;h>h+h.h3h6hhhKhNububX// vim:ft=pascalr¹†rºjsX

r»†r¼jXunitr½†r¾jsX r¿†rÀhŒXYToolsrÁ†rÂhtX;rÆrÄjsX

rņrÆhFX¡{===============================================================================

   cYcnus.YTools 1.0.3 Beta for Delphi 4+
   by licenser and Murphy

   ©2000-2003 by cYcnus
   visit www.cYcnus.de

   licenser@cYcnus.de (Heinz N. Gies)
   murphy@cYcnus.de (Kornelius Kalnbach)
   
   this unit is published under the terms of the GPL

===============================================================================}rdžrÈjsX

rɆrÊjX	interfacerˆrÌjsX

r͆rÎjXusesrφrÐjsX
  rцrÒhŒXWindowsrÓ†rÔhtX,rÕ†rÖjsj¿†r×hŒXSysUtilsr؆rÙhtjÕ†rÚjsj¿†rÛhŒXClassesr܆rÝhtjÕ†rÞjsj¿†rßhŒXYTypesrà†ráhtjÆrâjsX

rã†räjXconstrå†ræjsX
  rç†rèhŒX	BackSpaceré†rêjsj¿†rëhtX=rì†ríjsj¿†rîjÖX#8rï†rðhtjÆrñjsX
  rò†róhŒXTabrô†rõjsj¿†röhtjì†r÷jsj¿†røjÖX#9rù†rúhtjÆrûjsX
  rü†rýhŒXLFrþ†rÿjsj¿†rhtjì†rjsj¿†rjÖX#10r†rhtjÆrjsj¿†rhX//Line Feedr†rjsX
  r	†r
hŒXCRr†rjsj¿†r
htjì†rjsj¿†rjÖX#13r†rhtjÆrjsj¿†rhX//Carriage Returnr†rjsX
  r†rhŒXSpacer†rjsj¿†rhtjì†rjsj¿†rjÖX#32r†rhtjÆrjsX
  r †r!hŒXEOLCharsr"†r#jsj¿†r$htjì†r%jsj¿†r&j©X[r'†r(hŒXCRr)†r*htjÕ†r+jsj¿†r,hŒXLFr-†r.j©X]r/†r0htjÆr1jsX
r2†r3hFX{$IFNDEF VER140}r4†r5jsX
  r6†r7hŒX
sLineBreakr8†r9jsj¿†r:htjì†r;jsj¿†r<jÖX#13r=†r>jÖX#10r?†r@htjÆrAjsX
  rB†rChŒXSwitchCharsrD†rEjsj¿†rFhtjì†rGjsj¿†rHj©j'†rIjÁX'rJ†rKjÁX/rL†rMjÁjJ†rNhtjÕ†rOjsj¿†rPjÁjJ†rQjÁX-rR†rSjÁjJ†rTj©j/†rUhtjÆrVjsj2†rWhFX{$ENDIF}rX†rYjsX
  rZ†r[hŒXEOLr\†r]jsj¿†r^htjì†r_jsj¿†r`hŒX
sLineBreakra†rbhtjÆrcjsX
  rd†rehŒXMaxCardrf†rgjsj¿†rhhtjì†rijsj¿†rjjEXHighrk†rlj©X(rm†rnj-XCardinalro†rpj©X)rq†rrhtjÆrsjsX
  rt†ruhŒXAllCharsrv†rwjsj¿†rxhtjì†ryjsj¿†rzj©j'†r{jÖX#0r|†r}htX.r~†rhtj~†r€jÖX#255r†r‚j©j/†rƒhtjÆr„jsX
  r…†r†hŒXAlphabeticalr‡†rˆjsj¿†r‰htjì†rŠjsj¿†r‹j©j'†rŒjÁjJ†rjÁXArކrjÁjJ†rhtj~†r‘htj~†r’jÁjJ†r“jÁXZr”†r•jÁjJ†r–htjÕ†r—jsj¿†r˜jÁjJ†r™jÁXarš†r›jÁjJ†rœhtj~†rhtj~†ržjÁjJ†rŸjÁXzr †r¡jÁjJ†r¢j©j/†r£htjÆr¤jsX
  r¥†r¦hŒXDecimalCharsr§†r¨jsj¿†r©htjì†rªjsj¿†r«j©j'†r¬jÁjJ†r­jÁX0r®†r¯jÁjJ†r°htj~†r±htj~†r²jÁjJ†r³jÁX9r´†rµjÁjJ†r¶j©j/†r·htjÆr¸jsX
  r¹†rºhŒXAlphaNumericalr»†r¼jsj¿†r½htjì†r¾jsj¿†r¿hŒXAlphabeticalrÀ†rÁjsj¿†rÂhtX+rÆrÄjsj¿†rÅhŒXDecimalCharsrƆrÇhtjÆrÈjsX
  rɆrÊhŒXStrangeCharsrˆrÌjsj¿†rÍhtjì†rÎjsj¿†rÏj©j'†rÐjÖX#0rцrÒhtj~†rÓhtj~†rÔjÖX#31rÕ†rÖhtjÕ†r×jsj¿†rØjÖX#127rÙ†rÚhtjÕ†rÛjsj¿†rÜjÖX#129r݆rÞhtjÕ†rßjsj¿†ràjÖX#141rá†râhtj~†rãhtj~†räjÖX#144rå†ræhtjÕ†rçjsj¿†rèjÖX#157ré†rêhtjÕ†rëjsj¿†rìjÖX#158rí†rîj©j/†rïhtjÆrðjsX

  rñ†ròhŒXHexadecimalCharsró†rôjsj¿†rõhtjì†röjsj¿†r÷hŒXDecimalCharsrø†rùjsj¿†rúhtjÆrûjsj¿†rüj©j'†rýjÁjJ†rþjÁjކrÿjÁjJ†rhtj~†rhtj~†rjÁjJ†rjÁXFr†rjÁjJ†rhtjÕ†rjsj¿†rjÁjJ†r	jÁjš†r
jÁjJ†rhtj~†rhtj~†r
jÁjJ†rjÁXfr†rjÁjJ†rj©j/†rhtjÆrjsX
  r†rhŒX
OctalCharsr†rjsj¿†rhtjì†rjsj¿†rj©j'†rjÁjJ†rjÁj®†rjÁjJ†rhtj~†rhtj~†r jÁjJ†r!jÁX7r"†r#jÁjJ†r$j©j/†r%htjÆr&jsX
  r'†r(hŒXBinaryCharsr)†r*jsj¿†r+htjì†r,jsj¿†r-j©j'†r.jÁjJ†r/jÁj®†r0jÁjJ†r1htjÕ†r2jsj¿†r3jÁjJ†r4jÁX1r5†r6jÁjJ†r7j©j/†r8htjÆr9jsX

  r:†r;hŒX
QuoteCharsr<†r=jsj¿†r>htjì†r?jsj¿†r@j©j'†rAjÁjJ†rBjúX''rC†rDjÁjJ†rEhtjÕ†rFjsj¿†rGjÁjJ†rHjÁX"rI†rJjÁjJ†rKj©j/†rLhtjÆrMjsX
  rN†rOhŒX	WildCardsrP†rQjsj¿†rRhtjì†rSjsj¿†rTj©j'†rUjÁjJ†rVjÁX*rW†rXjÁjJ†rYhtjÕ†rZjsj¿†r[jÁjJ†r\jÁX?r]†r^jÁjJ†r_j©j/†r`htjÆrajsX
  rb†rchŒXFileNameEnemiesrd†rejsj¿†rfhtjì†rgjsj¿†rhhŒX	WildCardsri†rjjsj¿†rkhtjÆrljsj¿†rmj©j'†rnjÁjJ†rojÁX\rp†rqjÁjJ†rrhtjÕ†rsjsj¿†rtjÁjJ†rujÁjL†rvjÁjJ†rwhtjÕ†rxjsj¿†ryjÁjJ†rzjÁX:r{†r|jÁjJ†r}htjÕ†r~jsj¿†rjÁjJ†r€jÁX<r†r‚jÁjJ†rƒhtjÕ†r„jsj¿†r…jÁjJ†r†jÁX>r‡†rˆjÁjJ†r‰htjÕ†rŠjsj¿†r‹jÁjJ†rŒjÁX|r†rŽjÁjJ†rj©j/†rhtjÆr‘jsX

  r’†r“hŒXHexCharr”†r•htj{†r–jsj¿†r—jXarrayr˜†r™j©j'†ršhŒXTHexr›†rœj©j/†rjsj¿†ržjXofrŸ†r jsj¿†r¡j-XCharr¢†r£jsj¿†r¤htjì†r¥jsj¿†r¦j©jm†r§jsX
    r¨†r©jÁjJ†rªjÁj®†r«jÁjJ†r¬htjÕ†r­jÁjJ†r®jÁj5†r¯jÁjJ†r°htjÕ†r±jÁjJ†r²jÁX2r³†r´jÁjJ†rµhtjÕ†r¶jÁjJ†r·jÁX3r¸†r¹jÁjJ†rºhtjÕ†r»jÁjJ†r¼jÁX4r½†r¾jÁjJ†r¿htjÕ†rÀjÁjJ†rÁjÁX5r†rÃjÁjJ†rÄhtjÕ†rÅjÁjJ†rÆjÁX6rdžrÈjÁjJ†rÉhtjÕ†rÊjÁjJ†rËjÁj"†rÌjÁjJ†rÍhtjÕ†rÎjÁjJ†rÏjÁX8rІrÑjÁjJ†rÒhtjÕ†rÓjÁjJ†rÔjÁj´†rÕjÁjJ†rÖhtjÕ†r×jÁjJ†rØjÁjކrÙjÁjJ†rÚhtjÕ†rÛjÁjJ†rÜjÁXBr݆rÞjÁjJ†rßhtjÕ†ràjÁjJ†rájÁXCrâ†rãjÁjJ†rähtjÕ†råjÁjJ†ræjÁXDrç†rèjÁjJ†réhtjÕ†rêjÁjJ†rëjÁXErì†ríjÁjJ†rîhtjÕ†rïjÁjJ†rðjÁj†rñjÁjJ†ròj©jq†róhtjÆrôjsX
  rõ†röhŒXLowerHexCharr÷†røhtj{†rùjsj¿†rújXarrayrû†rüj©j'†rýhŒXTHexrþ†rÿj©j/†rjsj¿†rjXofr†rjsj¿†rj-XCharr†rjsj¿†rhtjì†rjsj¿†r	j©jm†r
jsX
    r†rjÁjJ†r
jÁj®†rjÁjJ†rhtjÕ†rjÁjJ†rjÁj5†rjÁjJ†rhtjÕ†rjÁjJ†rjÁj³†rjÁjJ†rhtjÕ†rjÁjJ†rjÁj¸†rjÁjJ†rhtjÕ†rjÁjJ†rjÁj½†rjÁjJ†rhtjÕ†r jÁjJ†r!jÁj†r"jÁjJ†r#htjÕ†r$jÁjJ†r%jÁjdžr&jÁjJ†r'htjÕ†r(jÁjJ†r)jÁj"†r*jÁjJ†r+htjÕ†r,jÁjJ†r-jÁjІr.jÁjJ†r/htjÕ†r0jÁjJ†r1jÁj´†r2jÁjJ†r3htjÕ†r4jÁjJ†r5jÁjš†r6jÁjJ†r7htjÕ†r8jÁjJ†r9jÁXbr:†r;jÁjJ†r<htjÕ†r=jÁjJ†r>jÁXcr?†r@jÁjJ†rAhtjÕ†rBjÁjJ†rCjÁXdrD†rEjÁjJ†rFhtjÕ†rGjÁjJ†rHjÁXerI†rJjÁjJ†rKhtjÕ†rLjÁjJ†rMjÁj†rNjÁjJ†rOj©jq†rPhtjÆrQjsX
  rR†rShŒX	BaseNCharrT†rUhtj{†rVjsj¿†rWjXarrayrX†rYj©j'†rZhŒXTBaseNr[†r\j©j/†r]jsj¿†r^jXofr_†r`jsj¿†raj-XCharrb†rcjsj¿†rdhtjì†rejsj¿†rfj©jm†rgjsX
    rh†rijÁjJ†rjjÁj®†rkjÁjJ†rlhtjÕ†rmjÁjJ†rnjÁj5†rojÁjJ†rphtjÕ†rqjÁjJ†rrjÁj³†rsjÁjJ†rthtjÕ†rujÁjJ†rvjÁj¸†rwjÁjJ†rxhtjÕ†ryjÁjJ†rzjÁj½†r{jÁjJ†r|htjÕ†r}jÁjJ†r~jÁj†rjÁjJ†r€htjÕ†rjÁjJ†r‚jÁjdžrƒjÁjJ†r„htjÕ†r…jÁjJ†r†jÁj"†r‡jÁjJ†rˆhtjÕ†r‰jÁjJ†rŠjÁjІr‹jÁjJ†rŒhtjÕ†rjÁjJ†rŽjÁj´†rjÁjJ†rhtjÕ†r‘jÁjJ†r’jÁjކr“jÁjJ†r”htjÕ†r•jÁjJ†r–jÁj݆r—jÁjJ†r˜htjÕ†r™jÁjJ†ršjÁjâ†r›jÁjJ†rœhtjÕ†rjÁjJ†ržjÁjç†rŸjÁjJ†r htjÕ†r¡jÁjJ†r¢jÁjì†r£jÁjJ†r¤htjÕ†r¥jÁjJ†r¦jÁj†r§jÁjJ†r¨htjÕ†r©jÁjJ†rªjÁXGr«†r¬jÁjJ†r­htjÕ†r®jÁjJ†r¯jÁXHr°†r±jÁjJ†r²htjÕ†r³jsX
    r´†rµjÁjJ†r¶jÁXIr·†r¸jÁjJ†r¹htjÕ†rºjÁjJ†r»jÁXJr¼†r½jÁjJ†r¾htjÕ†r¿jÁjJ†rÀjÁXKrÁ†rÂjÁjJ†rÃhtjÕ†rÄjÁjJ†rÅjÁXLrƆrÇjÁjJ†rÈhtjÕ†rÉjÁjJ†rÊjÁXMrˆrÌjÁjJ†rÍhtjÕ†rÎjÁjJ†rÏjÁXNrІrÑjÁjJ†rÒhtjÕ†rÓjÁjJ†rÔjÁXOrÕ†rÖjÁjJ†r×htjÕ†rØjÁjJ†rÙjÁXPrÚ†rÛjÁjJ†rÜhtjÕ†rÝjÁjJ†rÞjÁXQr߆ràjÁjJ†ráhtjÕ†râjÁjJ†rãjÁXRrä†råjÁjJ†ræhtjÕ†rçjÁjJ†rèjÁXSré†rêjÁjJ†rëhtjÕ†rìjÁjJ†ríjÁXTrî†rïjÁjJ†rðhtjÕ†rñjÁjJ†ròjÁXUró†rôjÁjJ†rõhtjÕ†röjÁjJ†r÷jÁXVrø†rùjÁjJ†rúhtjÕ†rûjÁjJ†rüjÁXWrý†rþjÁjJ†rÿhtjÕ†rjÁjJ†rjÁXXr†rjÁjJ†rhtjÕ†rjÁjJ†rjÁXYr†rjÁjJ†r	htjÕ†r
jÁjJ†rjÁj”†rjÁjJ†r
j©jq†rhtjÆrjsX

  r†rhŒXcYcnusOverlayColorr†rjsj¿†rhtjì†rjsj¿†rj—X$050001r†rhtjÆrjsX

  r†rhŒXfaFindEveryFiler†rjsj¿†rhtjì†rjsj¿†r hŒX
faReadOnlyr!†r"jsj¿†r#htjÆr$jsj¿†r%hŒXfaHiddenr&†r'jsj¿†r(htjÆr)jsj¿†r*hŒX	faSysFiler+†r,jsj¿†r-htjÆr.jsj¿†r/hŒX	faArchiver0†r1htjÆr2jsX

  r3†r4hŒX	platWin9xr5†r6jsj¿†r7htjì†r8jsj¿†r9j©j'†r:hŒXVER_PLATFORM_WIN32sr;†r<htjÕ†r=jsj¿†r>hŒXVER_PLATFORM_WIN32_WINDOWSr?†r@j©j/†rAhtjÆrBjsX


rC†rDhFX
{ Debugging }rE†rFjsj2†rGjX	procedurerH†rIjsj¿†rJjtXClearReportrK†rLj©jm†rMjXconstrN†rOjsj¿†rPhŒX
ReportNamerQ†rRhtj{†rSjsj¿†rTjXstringrU†rVj©jq†rWhtjÆrXjsj2†rYjX	procedurerZ†r[jsj¿†r\jtXReportr]†r^j©jm†r_jXconstr`†rajsj¿†rbhŒX
ReportNamerc†rdhtjÕ†rejsj¿†rfhŒXTextrg†rhhtj{†rijsj¿†rjjXstringrk†rlj©jq†rmhtjÆrnjsj2†rojX	procedurerp†rqjsj¿†rrjtX	ReportFmtrs†rtj©jm†rujXconstrv†rwjsj¿†rxhŒX
ReportNamery†rzhtjÕ†r{jsj¿†r|hŒXFmtr}†r~htj{†rjsj¿†r€jXstringr†r‚htjÆrƒjsj¿†r„jXconstr…†r†jsj¿†r‡hŒXArgsrˆ†r‰htj{†rŠjsj¿†r‹jXarrayrŒ†rjsj¿†rŽjXofr†rjsj¿†r‘jXconstr’†r“j©jq†r”htjÆr•jsX

r–†r—hFX
{ Params }r˜†r™jsj2†ršjX	procedurer›†rœjsj¿†rjtX	GetParamsrž†rŸj©jm†r hŒXStringsr¡†r¢htj{†r£jsj¿†r¤hŒXTStringsr¥†r¦j©jq†r§htjÆr¨jsj¿†r©hŒXoverloadrª†r«htjÆr¬jsj2†r­jXfunctionr®†r¯jsj¿†r°jtX	GetParamsr±†r²j©jm†r³jXconstr´†rµjsj¿†r¶hŒX	Separatorr·†r¸htj{†r¹jsj¿†rºjXstringr»†r¼jsj¿†r½htjì†r¾jsj¿†r¿jÁjJ†rÀjÁj¿†rÁjÁjJ†rÂj©jq†rÃhtj{†rÄjsj¿†rÅjXstringrƆrÇhtjÆrÈjsj¿†rÉhŒXoverloadrʆrËhtjÆrÌjsX

r͆rÎjXfunctionrφrÐjsj¿†rÑjtXParamNumrÒ†rÓj©jm†rÔjXconstrÕ†rÖjsj¿†r×hŒjé†rØhtj{†rÙjsj¿†rÚjXstringrÛ†rÜj©jq†rÝhtj{†rÞjsj¿†rßj-XIntegerrà†ráhtjÆrâjsj2†rãjXfunctionrä†råjsj¿†ræjtXParamPrefixNumrç†rèj©jm†réjXconstrê†rëjsj¿†rìhŒXPrefixrí†rîhtj{†rïjsj¿†rðjXstringrñ†ròj©jq†róhtj{†rôjsj¿†rõj-XIntegerrö†r÷htjÆrøjsj2†rùjXfunctionrú†rûjsj¿†rüjtXParamrý†rþj©jm†rÿjXconstr†rjsj¿†rhŒjé†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†r	jsj¿†r
j-XBooleanr†rhtjÆr
jsj2†rjXfunctionr†rjsj¿†rjtXParamPrefixr†rj©jm†rjXconstr†rjsj¿†rhŒXPrefixr†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†r j-XBooleanr!†r"htjÆr#jsX

r$†r%jXfunctionr&†r'jsj¿†r(jtXSwitchr)†r*j©jm†r+jXconstr,†r-jsj¿†r.hŒXSwitchr/†r0htj{†r1jsj¿†r2jXstringr3†r4htjÆr5jsj¿†r6jXconstr7†r8jsj¿†r9hŒXPrefixCharsr:†r;htj{†r<jsj¿†r=hŒXTCharSetr>†r?jsj¿†r@htjì†rAjsj¿†rBhŒXSwitchCharsrC†rDhtjÆrEjsX
  rF†rGhŒX
IgnoreCaserH†rIhtj{†rJjsj¿†rKj-XBooleanrL†rMjsj¿†rNhtjì†rOjsj¿†rPjXTruerQ†rRj©jq†rShtj{†rTjsj¿†rUj-XBooleanrV†rWhtjÆrXjsj2†rYjXfunctionrZ†r[jsj¿†r\jtXGetParamr]†r^j©jm†r_jXconstr`†rajsj¿†rbhŒXPrefixrc†rdhtj{†rejsj¿†rfjXstringrg†rhjsj¿†rihtjì†rjjsj¿†rkjÁjJ†rljÁjJ†rmhtjÆrnjsj¿†rojXconstrp†rqjsj¿†rrjRXDefaultrs†rthtj{†rujsj¿†rvjXstringrw†rxjsj¿†ryhtjì†rzjsj¿†r{jÁjJ†r|jÁjJ†r}j©jq†r~htj{†rjsj¿†r€jXstringr†r‚htjÆrƒjsX

r„†r…hFX{ Dirs & UserName}r††r‡jsj2†rˆjXfunctionr‰†rŠjsj¿†r‹jtXGetMyDirrŒ†rj©jm†rŽhŒXFullPathr†rhtj{†r‘jsj¿†r’j-XBooleanr“†r”jsj¿†r•htjì†r–jsj¿†r—jXFalser˜†r™j©jq†ršhtj{†r›jsj¿†rœjXstringr†ržhtjÆrŸjsj2†r jXfunctionr¡†r¢jsj¿†r£jtXWinDirr¤†r¥htj{†r¦jsj¿†r§jXstringr¨†r©htjÆrªjsj2†r«jXfunctionr¬†r­jsj¿†r®jtXSysDirr¯†r°htj{†r±jsj¿†r²jXstringr³†r´htjÆrµjsj2†r¶jXfunctionr·†r¸jsj¿†r¹jtXUserNamerº†r»htj{†r¼jsj¿†r½jXstringr¾†r¿htjÆrÀjsX

rÁ†rÂhFX{ Strings & Chars}rÆrÄjsj2†rÅjXfunctionrƆrÇe(jsj¿†rÈjtX	FirstCharrɆrÊj©jm†rËjXconstr̆rÍjsj¿†rÎhŒjé†rÏhtj{†rÐjsj¿†rÑjXstringrÒ†rÓj©jq†rÔhtj{†rÕjsj¿†rÖj-XCharr׆rØhtjÆrÙjsj2†rÚjXfunctionrÛ†rÜjsj¿†rÝjtXLastCharrÞ†rßj©jm†ràjXconstrá†râjsj¿†rãhŒjé†rähtj{†råjsj¿†ræjXstringrç†rèj©jq†réhtj{†rêjsj¿†rëj-XCharrì†ríhtjÆrîjsX

rï†rðjXfunctionrñ†ròjsj¿†rójtXCharPosrô†rõj©jm†röhŒjâ†r÷htj{†røjsj¿†rùj-XCharrú†rûhtjÆrüjsj¿†rýjXconstrþ†rÿjsj¿†r	hŒjé†r	htj{†r	jsj¿†r	jXstringr	†r	htjÆr	jsj¿†r	hŒXOffsetr	†r		htj{†r
	jsj¿†r	j-XIntegerr	†r
	jsj¿†r	htjì†r	jsj¿†r	jŸj5†r	j©jq†r	htj{†r	jsj¿†r	j-XIntegerr	†r	htjÆr	jsj¿†r	hŒXoverloadr	†r	htjÆr	jsj2†r	jXfunctionr	†r	jsj¿†r	jtXCharPosr 	†r!	j©jm†r"	hŒjâ†r#	htj{†r$	jsj¿†r%	hŒXTCharSetr&	†r'	htjÆr(	jsj¿†r)	jXconstr*	†r+	jsj¿†r,	hŒjé†r-	htj{†r.	jsj¿†r/	jXstringr0	†r1	htjÆr2	jsj¿†r3	hŒXOffsetr4	†r5	htj{†r6	jsj¿†r7	j-XIntegerr8	†r9	jsj¿†r:	htjì†r;	jsj¿†r<	jŸj5†r=	j©jq†r>	htj{†r?	jsj¿†r@	j-XIntegerrA	†rB	htjÆrC	jsj¿†rD	hŒXoverloadrE	†rF	htjÆrG	jsj2†rH	jXfunctionrI	†rJ	jsj¿†rK	jtXCharPosRrL	†rM	j©jm†rN	hŒjâ†rO	htj{†rP	jsj¿†rQ	j-XCharrR	†rS	htjÆrT	jsj¿†rU	jXconstrV	†rW	jsj¿†rX	hŒjé†rY	htj{†rZ	jsj¿†r[	jXstringr\	†r]	htjÆr^	jsj¿†r_	hŒXOffsetr`	†ra	htj{†rb	jsj¿†rc	j-XIntegerrd	†re	jsj¿†rf	htjì†rg	jsj¿†rh	htjR†ri	jŸj5†rj	j©jq†rk	htj{†rl	jsj¿†rm	j-XIntegerrn	†ro	htjÆrp	jsj2†rq	jXfunctionrr	†rs	jsj¿†rt	jtXPosExru	†rv	j©jm†rw	jXconstrx	†ry	jsj¿†rz	hŒXSubStrr{	†r|	htjÕ†r}	jsj¿†r~	hŒjé†r	htj{†r€	jsj¿†r	jXstringr‚	†rƒ	htjÆr„	jsj¿†r…	hŒXOffsetr†	†r‡	htj{†rˆ	jsj¿†r‰	j-XIntegerrŠ	†r‹	jsj¿†rŒ	htjì†r	jsj¿†rŽ	jŸj5†r	j©jq†r	htj{†r‘	jsj¿†r’	j-XIntegerr“	†r”	htjÆr•	jsj2†r–	jXfunctionr—	†r˜	jsj¿†r™	jtX	PosExTextrš	†r›	j©jm†rœ	jXconstr	†rž	jsj¿†rŸ	hŒXSubStrr 	†r¡	htjÕ†r¢	jsj¿†r£	hŒjé†r¤	htj{†r¥	jsj¿†r¦	jXstringr§	†r¨	htjÆr©	jsj¿†rª	hŒXOffsetr«	†r¬	htj{†r­	jsj¿†r®	j-XIntegerr¯	†r°	jsj¿†r±	htjì†r²	jsj¿†r³	jŸj5†r´	j©jq†rµ	htj{†r¶	jsj¿†r·	j-XIntegerr¸	†r¹	htjÆrº	jsj2†r»	jXfunctionr¼	†r½	jsj¿†r¾	jtX
PosExAnsiTextr¿	†rÀ	j©jm†rÁ	jXconstrÂ	†rÃ	jsj¿†rÄ	hŒXSubStrrÅ	†rÆ	htjÕ†rÇ	jsj¿†rÈ	hŒjé†rÉ	htj{†rÊ	jsj¿†rË	jXstringrÌ	†rÍ	htjÆrÎ	jsj¿†rÏ	hŒXOffsetrÐ	†rÑ	htj{†rÒ	jsj¿†rÓ	j-XIntegerrÔ	†rÕ	jsj¿†rÖ	htjì†r×	jsj¿†rØ	jŸj5†rÙ	j©jq†rÚ	htj{†rÛ	jsj¿†rÜ	j-XIntegerrÝ	†rÞ	htjÆrß	jsX

rà	†rá	jXfunctionrâ	†rã	jsj¿†rä	jtX	UntilCharrå	†ræ	j©jm†rç	jXconstrè	†ré	jsj¿†rê	hŒjé†rë	htj{†rì	jsj¿†rí	jXstringrî	†rï	htjÆrð	jsj¿†rñ	hŒXBrakerò	†ró	htj{†rô	jsj¿†rõ	j-XCharrö	†r÷	j©jq†rø	htj{†rù	jsj¿†rú	jXstringrû	†rü	htjÆrý	jsj¿†rþ	hŒXoverloadrÿ	†r
htjÆr
jsj2†r
jXfunctionr
†r
jsj¿†r
jtX	UntilCharr
†r
j©jm†r
jXconstr	
†r

jsj¿†r
hŒjé†r
htj{†r
jsj¿†r
jXstringr
†r
htjÆr
jsj¿†r
hŒXBraker
†r
htj{†r
jsj¿†r
hŒXTCharSetr
†r
j©jq†r
htj{†r
jsj¿†r
jXstringr
†r
htjÆr
jsj¿†r
hŒXoverloadr 
†r!
htjÆr"
jsj2†r#
jXfunctionr$
†r%
jsj¿†r&
jtX
UntilLastCharr'
†r(
j©jm†r)
jXconstr*
†r+
jsj¿†r,
hŒjé†r-
htj{†r.
jsj¿†r/
jXstringr0
†r1
htjÆr2
jsj¿†r3
hŒXBraker4
†r5
htj{†r6
jsj¿†r7
j-XCharr8
†r9
htjÆr:
jsX
  r;
†r<
hŒX
IgnoreNoBraker=
†r>
htj{†r?
jsj¿†r@
j-XBooleanrA
†rB
jsj¿†rC
htjì†rD
jsj¿†rE
jXTruerF
†rG
j©jq†rH
htj{†rI
jsj¿†rJ
jXstringrK
†rL
htjÆrM
jsX

rN
†rO
jXfunctionrP
†rQ
jsj¿†rR
jtXFromCharrS
†rT
j©jm†rU
jXconstrV
†rW
jsj¿†rX
hŒjé†rY
htj{†rZ
jsj¿†r[
jXstringr\
†r]
htjÆr^
jsj¿†r_
hŒXBraker`
†ra
htj{†rb
jsj¿†rc
j-XCharrd
†re
j©jq†rf
htj{†rg
jsj¿†rh
jXstringri
†rj
htjÆrk
jsj¿†rl
hŒXoverloadrm
†rn
htjÆro
jsj2†rp
jXfunctionrq
†rr
jsj¿†rs
jtXFromCharrt
†ru
j©jm†rv
jXconstrw
†rx
jsj¿†ry
hŒjé†rz
htj{†r{
jsj¿†r|
jXstringr}
†r~
htjÆr
jsj¿†r€
hŒXBraker
†r‚
htj{†rƒ
jsj¿†r„
hŒXTCharSetr…
†r†
j©jq†r‡
htj{†rˆ
jsj¿†r‰
jXstringrŠ
†r‹
htjÆrŒ
jsj¿†r
hŒXoverloadrŽ
†r
htjÆr
jsj2†r‘
jXfunctionr’
†r“
jsj¿†r”
jtXFromLastCharr•
†r–
j©jm†r—
jXconstr˜
†r™
jsj¿†rš
hŒjé†r›
htj{†rœ
jsj¿†r
jXstringrž
†rŸ
htjÆr 
jsj¿†r¡
hŒXBraker¢
†r£
htj{†r¤
jsj¿†r¥
j-XCharr¦
†r§
htjÆr¨
jsX
  r©
†rª
hŒX
IgnoreNoBraker«
†r¬
htj{†r­
jsj¿†r®
j-XBooleanr¯
†r°
jsj¿†r±
htjì†r²
jsj¿†r³
jXFalser´
†rµ
j©jq†r¶
htj{†r·
jsj¿†r¸
jXstringr¹
†rº
htjÆr»
jsX

r¼
†r½
jXfunctionr¾
†r¿
jsj¿†rÀ
jtXBetweenCharsrÁ
†rÂ
j©jm†rÃ
jXconstrÄ
†rÅ
jsj¿†rÆ
hŒjé†rÇ
htj{†rÈ
jsj¿†rÉ
jXstringrÊ
†rË
htjÆrÌ
jsj¿†rÍ
hŒXStartrÎ
†rÏ
htjÕ†rÐ
jsj¿†rÑ
hŒXFinishrÒ
†rÓ
htj{†rÔ
jsj¿†rÕ
j-XCharrÖ
†r×
htjÆrØ
jsX
  rÙ
†rÚ
hŒX	InclusiverÛ
†rÜ
htj{†rÝ
jsj¿†rÞ
j-XBooleanrß
†rà
jsj¿†rá
htjì†râ
jsj¿†rã
jXFalserä
†rå
j©jq†ræ
htj{†rç
jsj¿†rè
jXstringré
†rê
htjÆrë
jsX

rì
†rí
jXfunctionrî
†rï
jsj¿†rð
jtXUntilStrrñ
†rò
j©jm†ró
jXconstrô
†rõ
jsj¿†rö
hŒjé†r÷
htj{†rø
jsj¿†rù
jXstringrú
†rû
htjÆrü
jsj¿†rý
hŒXBrakerþ
†rÿ
htj{†rjsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†rjXstringr†rhtjÆr	jsj2†r
jXfunctionr†rjsj¿†r
jtXFromStrr†rj©jm†rjXconstr†rjsj¿†rhŒjé†rhtj{†rjsj¿†rjXstringr†rhtjÆrjsj¿†rhŒXBraker†rhtj{†rjsj¿†rjXstringr†r j©jq†r!htj{†r"jsj¿†r#jXstringr$†r%htjÆr&jsX

r'†r(jXfunctionr)†r*jsj¿†r+jtX
StringWrapr,†r-j©jm†r.jXconstr/†r0jsj¿†r1hŒjé†r2htj{†r3jsj¿†r4jXstringr5†r6htjÆr7jsj¿†r8hŒXWidthr9†r:htj{†r;jsj¿†r<j-XIntegerr=†r>htjÆr?jsj¿†r@jXconstrA†rBjsj¿†rChŒXLineEndrD†rEhtj{†rFjsj¿†rGjXstringrH†rIjsj¿†rJhtjì†rKjsj¿†rLhŒXEOLrM†rNj©jq†rOhtj{†rPjsj¿†rQjXstringrR†rShtjÆrTjsX

rU†rVhFX{ Splitting & Combining }rW†rXjsj2†rYjXfunctionrZ†r[jsj¿†r\jtXSplitr]†r^j©jm†r_jXconstr`†rajsj¿†rbhŒjé†rchtjÕ†rdjsj¿†rehŒX	Separatorrf†rghtj{†rhjsj¿†rijXstringrj†rkhtjÆrljsj¿†rmhŒXIgnoreMultiSeprn†rohtj{†rpjsj¿†rqj-XBooleanrr†rsjsj¿†rthtjì†rujsj¿†rvjXTruerw†rxhtjÆryjsX
  rz†r{hŒXMinCountr|†r}htj{†r~jsj¿†rj-XIntegerr€†rjsj¿†r‚htjì†rƒjsj¿†r„jŸj®†r…j©jq†r†htj{†r‡jsj¿†rˆhŒXTStrAr‰†rŠhtjÆr‹jsj¿†rŒhŒXoverloadr†rŽhtjÆrjsj2†rjX	procedurer‘†r’jsj¿†r“jtXSplitr”†r•j©jm†r–jXconstr—†r˜jsj¿†r™hŒjé†ršhtjÕ†r›jsj¿†rœhŒX	Separatorr†ržhtj{†rŸjsj¿†r jXstringr¡†r¢htjÆr£jsj¿†r¤hŒXStringsr¥†r¦htj{†r§jsj¿†r¨hŒXTStringsr©†rªhtjÆr«jsX
  r¬†r­hŒXIgnoreMultiSepr®†r¯htj{†r°jsj¿†r±j-XBooleanr²†r³jsj¿†r´htjì†rµjsj¿†r¶jXTruer·†r¸j©jq†r¹htjÆrºjsj¿†r»hŒXoverloadr¼†r½htjÆr¾jsj2†r¿jXfunctionrÀ†rÁjsj¿†rÂjtXSplitrÆrÄj©jm†rÅjXconstrƆrÇjsj¿†rÈhŒjé†rÉhtj{†rÊjsj¿†rËjXstringr̆rÍhtjÆrÎjsj¿†rÏhŒX
SeparatorsrІrÑhtj{†rÒjsj¿†rÓhŒXTCharSetrÔ†rÕhtjÆrÖjsX
  r׆rØhŒXIgnoreMultiSeprÙ†rÚhtj{†rÛjsj¿†rÜj-XBooleanr݆rÞjsj¿†rßhtjì†ràjsj¿†rájXTruerâ†rãhtjÆräjsj¿†råhŒXMinCountræ†rçhtj{†rèjsj¿†réj-XIntegerrê†rëjsj¿†rìhtjì†ríjsj¿†rîjŸj®†rïj©jq†rðhtj{†rñjsj¿†ròhŒXTStrAró†rôhtjÆrõjsj¿†röhŒXoverloadr÷†røhtjÆrùjsX

rú†rûjX	procedurerü†rýjsj¿†rþjtXTileStrrÿ†rj©jm†rjXconstr†rjsj¿†rhŒjé†rhtj{†rjsj¿†rjXstringr†r	htjÆr
jsj¿†rhŒX
BrakeStartr†r
htj{†rjsj¿†rj-XIntegerr†rhtjÆrjsj¿†rhŒXBrakeEndr†rhtj{†rjsj¿†rj-XIntegerr†rhtjÆrjsX
  r†rhŒXoutr†rjsj¿†rhŒXLeftr †r!htjÕ†r"jsj¿†r#hŒXRightr$†r%htj{†r&jsj¿†r'jXstringr(†r)j©jq†r*htjÆr+jsX

r,†r-jXfunctionr.†r/jsj¿†r0jtXJoinr1†r2j©jm†r3hŒXStringsr4†r5htj{†r6jsj¿†r7hŒXTStringsr8†r9htjÆr:jsj¿†r;hŒX	Separatorr<†r=htj{†r>jsj¿†r?jXstringr@†rAjsj¿†rBhtjì†rCjsj¿†rDjÁjJ†rEjÁj¿†rFjÁjJ†rGj©jq†rHhtj{†rIjsj¿†rJjXstringrK†rLhtjÆrMjsj¿†rNhŒXoverloadrO†rPhtjÆrQjsj2†rRjXfunctionrS†rTjsj¿†rUjtXJoinrV†rWj©jm†rXhŒXStrArY†rZhtj{†r[jsj¿†r\hŒXTStrAr]†r^htjÆr_jsj¿†r`hŒX	Separatorra†rbhtj{†rcjsj¿†rdjXstringre†rfjsj¿†rghtjì†rhjsj¿†rijÁjJ†rjjÁj¿†rkjÁjJ†rlj©jq†rmhtj{†rnjsj¿†rojXstringrp†rqhtjÆrrjsj¿†rshŒXoverloadrt†ruhtjÆrvjsX

rw†rxjXfunctionry†rzjsj¿†r{jtXMulStrr|†r}j©jm†r~jXconstr†r€jsj¿†rhŒjé†r‚htj{†rƒjsj¿†r„jXstringr…†r†htjÆr‡jsj¿†rˆhŒXCountr‰†rŠhtj{†r‹jsj¿†rŒj-XIntegerr†rŽj©jq†rhtj{†rjsj¿†r‘jXstringr’†r“htjÆr”jsX

r•†r–hFX{ Strings ausrichten }r—†r˜jsj2†r™jXfunctionrš†r›jsj¿†rœjtXAlignRr†ržj©jm†rŸjXconstr †r¡jsj¿†r¢hŒjé†r£htj{†r¤jsj¿†r¥jXstringr¦†r§htjÆr¨jsj¿†r©hŒXWidthrª†r«htj{†r¬jsj¿†r­j-XIntegerr®†r¯htjÆr°jsj¿†r±hŒXFillerr²†r³htj{†r´jsj¿†rµj-XCharr¶†r·jsj¿†r¸htjì†r¹jsj¿†rºjÁjJ†r»jÁj¿†r¼jÁjJ†r½j©jq†r¾htj{†r¿jsj¿†rÀjXstringrÁ†rÂhtjÆrÃjsj2†rÄjXfunctionrÅ†rÆjsj¿†rÇjtXMaxStrrÈ†rÉj©jm†rÊjXconstrË†rÌjsj¿†rÍhŒjé†rÎhtj{†rÏjsj¿†rÐjXstringrÑ†rÒhtjÆrÓjsj¿†rÔhŒXMaxLenrÕ†rÖhtj{†r×jsj¿†rØj-XIntegerrÙ†rÚj©jq†rÛhtj{†rÜjsj¿†rÝjXstringrÞ†rßhtjÆràjsX

rá†râhFX
{ Stringing }rã†räjsj2†råjXfunctionræ†rçjsj¿†rèjtXTrimAllré†rêj©jm†rëjXconstrì†ríjsj¿†rîhŒjé†rïhtj{†rðjsj¿†rñjXstringrò†rój©jq†rôhtj{†rõjsj¿†röjXstringr÷†røhtjÆrùjsX

rú†rûjXfunctionrü†rýjsj¿†rþjtXControlCharrÿ†r
j©jm†r
hŒjâ†r
htj{†r
jsj¿†r
j-XCharr
†r
j©jq†r
htj{†r
jsj¿†r	
j-XBooleanr

†r
htjÆr
jsj2†r

jXfunctionr
†r
jsj¿†r
jtXFriendlyCharr
†r
j©jm†r
hŒjâ†r
htj{†r
jsj¿†r
j-XCharr
†r
j©jq†r
htj{†r
jsj¿†r
j-XCharr
†r
htjÆr
jsX

r
†r 
jXfunctionr!
†r"
jsj¿†r#
jtXFriendlyStrr$
†r%
j©jm†r&
jXconstr'
†r(
jsj¿†r)
hŒjé†r*
htj{†r+
jsj¿†r,
jXstringr-
†r.
j©jq†r/
htj{†r0
jsj¿†r1
jXstringr2
†r3
htjÆr4
jsj¿†r5
hŒXoverloadr6
†r7
htjÆr8
jsj2†r9
jXfunctionr:
†r;
jsj¿†r<
jtXFriendlyStrr=
†r>
j©jm†r?
hŒjš†r@
htj{†rA
jsj¿†rB
hŒXTByteArC
†rD
j©jq†rE
htj{†rF
jsj¿†rG
jXstringrH
†rI
htjÆrJ
jsj¿†rK
hŒXoverloadrL
†rM
htjÆrN
jsX

rO
†rP
jXfunctionrQ
†rR
jsj¿†rS
jtXQuoterT
†rU
j©jm†rV
jXconstrW
†rX
jsj¿†rY
hŒjé†rZ
htj{†r[
jsj¿†r\
jXstringr]
†r^
htjÆr_
jsj¿†r`
hŒXQuoterra
†rb
htj{†rc
jsj¿†rd
j-XCharre
†rf
jsj¿†rg
htjì†rh
jsj¿†ri
jÁjJ†rj
jÁjI†rk
jÁjJ†rl
j©jq†rm
htj{†rn
jsj¿†ro
jXstringrp
†rq
htjÆrr
jsj2†rs
jXfunctionrt
†ru
jsj¿†rv
jtXUnQuoterw
†rx
j©jm†ry
jXconstrz
†r{
jsj¿†r|
hŒjé†r}
htj{†r~
jsj¿†r
jXstringr€
†r
j©jq†r‚
htj{†rƒ
jsj¿†r„
jXstringr…
†r†
htjÆr‡
jsj2†rˆ
jXfunctionr‰
†rŠ
jsj¿†r‹
jtXDeQuoterŒ
†r
j©jm†rŽ
jXconstr
†r
jsj¿†r‘
hŒjé†r’
htj{†r“
jsj¿†r”
jXstringr•
†r–
j©jq†r—
htj{†r˜
jsj¿†r™
jXstringrš
†r›
htjÆrœ
jsX

r
†rž
jXfunctionrŸ
†r 
jsj¿†r¡
jtX
StrNumerusr¢
†r£
j©jm†r¤
jXconstr¥
†r¦
jsj¿†r§
hŒXValuer¨
†r©
htj{†rª
jsj¿†r«
j-XIntegerr¬
†r­
htjÆr®
jsj¿†r¯
jXconstr°
†r±
jsj¿†r²
hŒXSingularr³
†r´
htjÕ†rµ
jsj¿†r¶
hŒXPluralr·
†r¸
htj{†r¹
jsj¿†rº
jXstringr»
†r¼
htjÆr½
jsX
  r¾
†r¿
jXconstrÀ
†rÁ
jsj¿†rÂ
hŒXZerorÃ
†rÄ
htj{†rÅ
jsj¿†rÆ
jXstringrÇ
†rÈ
jsj¿†rÉ
htjì†rÊ
jsj¿†rË
jÁjJ†rÌ
jÁj®†rÍ
jÁjJ†rÎ
j©jq†rÏ
htj{†rÐ
jsj¿†rÑ
jXstringrÒ
†rÓ
htjÆrÔ
jsX

rÕ
†rÖ
jXfunctionr×
†rØ
jsj¿†rÙ
jtXMakeStrrÚ
†rÛ
j©jm†rÜ
jXconstrÝ
†rÞ
jsj¿†rß
hŒXItemsrà
†rá
htj{†râ
jsj¿†rã
jXarrayrä
†rå
jsj¿†ræ
jXofrç
†rè
jsj¿†ré
jXconstrê
†rë
htjÆrì
jsj¿†rí
hŒX	Separatorrî
†rï
htj{†rð
jsj¿†rñ
jXstringrò
†ró
jsj¿†rô
e(htjì†rõ
jsj¿†rö
jÁjJ†r÷
jÁjJ†rø
j©jq†rù
htj{†rú
jsj¿†rû
jXstringrü
†rý
htjÆrþ
jsj2†rÿ
jX	procedurer†rjsj¿†rjtXShowTextr†rj©jm†rjXconstr†rjsj¿†rhŒXItemsr	†r
htj{†rjsj¿†rjXarrayr
†rjsj¿†rjXofr†rjsj¿†rjXconstr†rhtjÆrjsj¿†rhŒX	Separatorr†rhtj{†rjsj¿†rjXstringr†rjsj¿†rhtjì†rjsj¿†rjÁjJ†r jÁjJ†r!j©jq†r"htjÆr#jsX

r$†r%hFX
{ Delete }r&†r'jsj2†r(jXfunctionr)†r*jsj¿†r+jtXDeleteCharsr,†r-j©jm†r.jXconstr/†r0jsj¿†r1hŒjé†r2htj{†r3jsj¿†r4jXstringr5†r6htjÆr7jsj¿†r8hŒjâ†r9htj{†r:jsj¿†r;j-XCharr<†r=j©jq†r>htj{†r?jsj¿†r@jXstringrA†rBhtjÆrCjsj¿†rDhŒXoverloadrE†rFhtjÆrGjsj2†rHjXfunctionrI†rJjsj¿†rKjtXDeleteCharsrL†rMj©jm†rNjXconstrO†rPjsj¿†rQhŒjé†rRhtj{†rSjsj¿†rTjXstringrU†rVhtjÆrWjsj¿†rXhŒjâ†rYhtj{†rZjsj¿†r[hŒXTCharSetr\†r]j©jq†r^htj{†r_jsj¿†r`jXstringra†rbhtjÆrcjsj¿†rdhŒXoverloadre†rfhtjÆrgjsj2†rhjXfunctionri†rjjsj¿†rkjtXExtractCharsrl†rmj©jm†rnjXconstro†rpjsj¿†rqhŒjé†rrhtj{†rsjsj¿†rtjXstringru†rvhtjÆrwjsj¿†rxhŒjâ†ryhtj{†rzjsj¿†r{hŒXTCharSetr|†r}j©jq†r~htj{†rjsj¿†r€jXstringr†r‚htjÆrƒjsX

r„†r…hFX{ Find }r††r‡jsj2†rˆjXfunctionr‰†rŠjsj¿†r‹jtX	CharCountrŒ†rj©jm†rŽjXconstr†rjsj¿†r‘hŒjé†r’htj{†r“jsj¿†r”jXstringr•†r–htjÆr—jsj¿†r˜hŒjâ†r™htj{†ršjsj¿†r›j-XCharrœ†rj©jq†ržhtj{†rŸjsj¿†r j-XIntegerr¡†r¢htjÆr£jsX

r¤†r¥jXfunctionr¦†r§jsj¿†r¨jtXCharInr©†rªj©jm†r«jXconstr¬†r­jsj¿†r®hŒjé†r¯htj{†r°jsj¿†r±jXstringr²†r³htjÆr´jsj¿†rµhŒjâ†r¶htj{†r·jsj¿†r¸j-XCharr¹†rºj©jq†r»htj{†r¼jsj¿†r½j-XBooleanr¾†r¿htjÆrÀjsj¿†rÁhŒXoverloadr†rÃhtjÆrÄjsj2†rÅjXfunctionrƆrÇjsj¿†rÈjtXCharInrɆrÊj©jm†rËjXconstr̆rÍjsj¿†rÎhŒjé†rÏhtj{†rÐjsj¿†rÑjXstringrÒ†rÓhtjÆrÔjsj¿†rÕhŒjâ†rÖhtj{†r×jsj¿†rØhŒXTCharSetrÙ†rÚj©jq†rÛhtj{†rÜjsj¿†rÝj-XBooleanrÞ†rßhtjÆràjsj¿†ráhŒXoverloadrâ†rãhtjÆräjsX

rå†ræjXfunctionrç†rèjsj¿†réjtXStrAtPosrê†rëj©jm†rìjXconstrí†rîjsj¿†rïhŒjé†rðhtj{†rñjsj¿†ròjXstringró†rôhtjÆrõjsj¿†röjEXPosr÷†røhtj{†rùjsj¿†rúj-XIntegerrû†rühtjÆrýjsj¿†rþjXconstrÿ†rjsj¿†rjEXStrr†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†r	jsj¿†r
j-XBooleanr†rhtjÆr
jsj2†rjXfunctionr†rjsj¿†rjtX
StrAtBeginr†rj©jm†rjXconstr†rjsj¿†rhŒjé†rhtjÕ†rjsj¿†rjEXStrr†rhtj{†rjsj¿†rjXstringr†r j©jq†r!htj{†r"jsj¿†r#j-XBooleanr$†r%htjÆr&jsj2†r'jXfunctionr(†r)jsj¿†r*jtXStrInr+†r,j©jm†r-jXconstr.†r/jsj¿†r0hŒjé†r1htjÕ†r2jsj¿†r3hŒXSubStrr4†r5htj{†r6jsj¿†r7jXstringr8†r9j©jq†r:htj{†r;jsj¿†r<j-XBooleanr=†r>htjÆr?jsj¿†r@hŒXoverloadrA†rBhtjÆrCjsj2†rDjXfunctionrE†rFjsj¿†rGjtXStrInrH†rIj©jm†rJhŒjކrKhtj{†rLjsj¿†rMhŒXTStrArN†rOhtjÆrPjsj¿†rQjXconstrR†rSjsj¿†rThŒjé†rUhtj{†rVjsj¿†rWjXstringrX†rYj©jq†rZhtj{†r[jsj¿†r\j-XBooleanr]†r^htjÆr_jsj¿†r`hŒXoverloadra†rbhtjÆrcjsj2†rdjXfunctionre†rfjsj¿†rgjtXStrInrh†rij©jm†rjhŒXSLrk†rlhtj{†rmjsj¿†rnhŒXTStringsro†rphtjÆrqjsj¿†rrjXconstrs†rtjsj¿†ruhŒjé†rvhtj{†rwjsj¿†rxjXstringry†rzj©jq†r{htj{†r|jsj¿†r}j-XBooleanr~†rhtjÆr€jsj¿†rhŒXoverloadr‚†rƒhtjÆr„jsj2†r…jXfunctionr††r‡jsj¿†rˆjtXStrIndexr‰†rŠj©jm†r‹hŒjކrŒhtj{†rjsj¿†rŽhŒXTStrAr†rhtjÆr‘jsj¿†r’jXconstr“†r”jsj¿†r•hŒjé†r–htj{†r—jsj¿†r˜jXstringr™†ršj©jq†r›htj{†rœjsj¿†rj-XIntegerrž†rŸhtjÆr jsj¿†r¡hŒXoverloadr¢†r£htjÆr¤jsj2†r¥jXfunctionr¦†r§jsj¿†r¨jtXStrIndexr©†rªj©jm†r«hŒXSLr¬†r­htj{†r®jsj¿†r¯hŒXTStringsr°†r±htjÆr²jsj¿†r³jXconstr´†rµjsj¿†r¶hŒjé†r·htj{†r¸jsj¿†r¹jXstringrº†r»j©jq†r¼htj{†r½jsj¿†r¾j-XIntegerr¿†rÀhtjÆrÁjsj¿†rÂhŒXoverloadrÆrÄhtjÆrÅjsX

rƆrÇjXfunctionrȆrÉjsj¿†rÊjtX	TextAtPosrˆrÌj©jm†rÍjXconstrΆrÏjsj¿†rÐhŒjé†rÑhtj{†rÒjsj¿†rÓjXstringrÔ†rÕhtjÆrÖjsj¿†r×jEXPosr؆rÙhtj{†rÚjsj¿†rÛj-XIntegerr܆rÝhtjÆrÞjsj¿†rßjXconstrà†rájsj¿†râhŒXTextrã†rähtj{†råjsj¿†ræjXstringrç†rèj©jq†réhtj{†rêjsj¿†rëj-XBooleanrì†ríhtjÆrîjsj2†rïjXfunctionrð†rñjsj¿†ròjtXTextAtBeginró†rôj©jm†rõjXconströ†r÷jsj¿†røhŒjé†rùhtjÕ†rújsj¿†rûhŒXTextrü†rýhtj{†rþjsj¿†rÿjXstringr†rj©jq†rhtj{†rjsj¿†rj-XBooleanr†rhtjÆrjsj2†rjXfunctionr	†r
jsj¿†rjtXTextInr†r
j©jm†rjXconstr†rjsj¿†rhŒjé†rhtjÕ†rjsj¿†rhŒXTextr†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†rj-XBooleanr†rhtjÆr jsj¿†r!hŒXoverloadr"†r#htjÆr$jsj2†r%jXfunctionr&†r'jsj¿†r(jtXTextInr)†r*j©jm†r+hŒjކr,htj{†r-jsj¿†r.hŒXTStrAr/†r0htjÆr1jsj¿†r2jXconstr3†r4jsj¿†r5hŒXTextr6†r7htj{†r8jsj¿†r9jXstringr:†r;j©jq†r<htj{†r=jsj¿†r>j-XBooleanr?†r@htjÆrAjsj¿†rBhŒXoverloadrC†rDhtjÆrEjsj2†rFjXfunctionrG†rHjsj¿†rIjtXTextInrJ†rKj©jm†rLhŒXSLrM†rNhtj{†rOjsj¿†rPhŒXTStringsrQ†rRhtjÆrSjsj¿†rTjXconstrU†rVjsj¿†rWhŒXTextrX†rYhtj{†rZjsj¿†r[jXstringr\†r]j©jq†r^htj{†r_jsj¿†r`j-XBooleanra†rbhtjÆrcjsj¿†rdhŒXoverloadre†rfhtjÆrgjsj2†rhjXfunctionri†rjjsj¿†rkjtX	TextIndexrl†rmj©jm†rnhŒjކrohtj{†rpjsj¿†rqhŒXTStrArr†rshtjÆrtjsj¿†rujXconstrv†rwjsj¿†rxhŒXTextry†rzhtj{†r{jsj¿†r|jXstringr}†r~j©jq†rhtj{†r€jsj¿†rj-XIntegerr‚†rƒhtjÆr„jsj¿†r…hŒXoverloadr††r‡htjÆrˆjsj2†r‰jXfunctionrІr‹jsj¿†rŒjtX	TextIndexr†rŽj©jm†rhŒXSLr†r‘htj{†r’jsj¿†r“hŒXTStringsr”†r•htjÆr–jsj¿†r—jXconstr˜†r™jsj¿†ršhŒXTextr›†rœhtj{†rjsj¿†ržjXstringrŸ†r j©jq†r¡htj{†r¢jsj¿†r£j-XIntegerr¤†r¥htjÆr¦jsj¿†r§hŒXoverloadr¨†r©htjÆrªjsX

r«†r¬hFX{ Replace }r­†r®jsj2†r¯jXfunctionr°†r±jsj¿†r²jtXReplaceCharsr³†r´j©jm†rµjXconstr¶†r·jsj¿†r¸hŒjé†r¹htj{†rºjsj¿†r»jXstringr¼†r½htjÆr¾jsj¿†r¿hŒXOldrÀ†rÁhtjÕ†rÂjsj¿†rÃjXNewrĆrÅhtj{†rÆjsj¿†rÇj-XCharrȆrÉj©jq†rÊhtj{†rËjsj¿†rÌjXstringr͆rÎhtjÆrÏjsj¿†rÐhŒXoverloadrцrÒhtjÆrÓjsj2†rÔjXfunctionrÕ†rÖjsj¿†r×jtXReplaceCharsr؆rÙj©jm†rÚjXconstrÛ†rÜjsj¿†rÝhŒjé†rÞhtj{†rßjsj¿†ràjXstringrá†râhtjÆrãjsj¿†rähŒXOldrå†ræhtj{†rçjsj¿†rèhŒXTCharSetré†rêhtjÆrëjsj¿†rìjXNewrí†rîhtj{†rïjsj¿†rðj-XCharrñ†ròj©jq†róhtj{†rôjsj¿†rõjXstringrö†r÷htjÆrøjsj¿†rùhŒXoverloadrú†rûhtjÆrüjsX

rý†rþjXfunctionrÿ†rjsj¿†rjtXReplacer†rj©jm†rjXconstr†rjsj¿†rhŒjé†rhtjÕ†r	jsj¿†r
hŒXOldr†rhtjÕ†r
jsj¿†rjXNewr†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†rjXstringr†rhtjÆrjsX

r†rhFX{ TStrings }r†rjsj2†rjXfunctionr †r!jsj¿†r"jtXSLOfFiler#†r$j©jm†r%jXconstr&†r'jsj¿†r(hŒXFileNamer)†r*htj{†r+jsj¿†r,jXstringr-†r.j©jq†r/htj{†r0jsj¿†r1hŒXTStringListr2†r3htjÆr4jsj2†r5jXfunctionr6†r7jsj¿†r8jtXContainsEmptyLinesr9†r:j©jm†r;hŒXSLr<†r=htj{†r>jsj¿†r?hŒXTStringsr@†rAj©jq†rBhtj{†rCjsj¿†rDj-XBooleanrE†rFhtjÆrGjsj2†rHjX	procedurerI†rJjsj¿†rKjtXDeleteEmptyLinesrL†rMj©jm†rNhŒXSLrO†rPhtj{†rQjsj¿†rRhŒXTStringsrS†rTj©jq†rUhtjÆrVjsj2†rWjX	procedurerX†rYjsj¿†rZjtXDeleteCommentLinesr[†r\j©jm†r]hŒXSLr^†r_htj{†r`jsj¿†rahŒXTStringsrb†rchtjÆrdjsj¿†rejXconstrf†rgjsj¿†rhhŒXCommentSignri†rjhtj{†rkjsj¿†rljXstringrm†rnjsj¿†rohtjì†rpjsj¿†rqjÁjJ†rrjÁX//rs†rtjÁjJ†ruj©jq†rvhtjÆrwjsj2†rxjX	procedurery†rzjsj¿†r{jtXWriteSLr|†r}j©jm†r~hŒXStringsr†r€htj{†rjsj¿†r‚hŒXTStringsrƒ†r„htjÆr…jsj¿†r†jXconstr‡†rˆjsj¿†r‰hŒXPrefixrІr‹htj{†rŒjsj¿†rjXstringrކrjsj¿†rhtjì†r‘jsj¿†r’jÁjJ†r“jÁjJ†r”htjÆr•jsX
  r–†r—jXconstr˜†r™jsj¿†ršhŒXSuffixr›†rœhtj{†rjsj¿†ržjXstringrŸ†r jsj¿†r¡htjì†r¢jsj¿†r£jÁjJ†r¤jÁjJ†r¥j©jq†r¦htjÆr§jsX

r¨†r©jXfunctionrª†r«jsj¿†r¬jtXFindLiner­†r®j©jm†r¯hŒXSLr°†r±htj{†r²jsj¿†r³hŒXTStringsr´†rµhtjÆr¶jsj¿†r·jXconstr¸†r¹jsj¿†rºhŒjé†r»htj{†r¼jsj¿†r½jXstringr¾†r¿j©jq†rÀhtj{†rÁjsj¿†rÂj-XIntegerrÆrÄhtjÆrÅjsX

rƆrÇjX	procedurerȆrÉjsj¿†rÊjtXQuickSortSLrˆrÌj©jm†rÍhŒXSLrΆrÏhtj{†rÐjsj¿†rÑhŒXTStringListrÒ†rÓj©jq†rÔhtjÆrÕjsX

rÖ†r×hFX	{ TStrA }r؆rÙjsj2†rÚjXfunctionrÛ†rÜjsj¿†rÝjtXIncStrArÞ†rßj©jm†ràhŒXStrArá†râhtj{†rãjsj¿†rähŒXTStrArå†ræj©jq†rçhtj{†rèjsj¿†réj-XIntegerrê†rëhtjÆrìjsX

rí†rîhFX
{ TByteA }rï†rðjsj2†rñjXfunctionrò†rójsj¿†rôjtX
StrOfByteArõ†röj©jm†r÷hŒjš†røhtj{†rùjsj¿†rúhŒXTByteArû†rüj©jq†rýhtj{†rþjsj¿†rÿjXstringr†rhtjÆrjsj2†rjXfunctionr†rjsj¿†rjtX
ByteAOfStrr†rj©jm†r	jXconstr
†rjsj¿†rhŒjé†r
htj{†rjsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†rhŒXTByteAr†rhtjÆrjsj2†rjXfunctionr†rjsj¿†rjtX
ByteAOfIntr†rj©jm†rhŒXir†r htj{†r!jsj¿†r"j-XIntegerr#†r$j©jq†r%htj{†r&jsj¿†r'hŒXTByteAr(†r)htjÆr*jsj2†r+jXfunctionr,†r-jsj¿†r.jtX
IntOfByteAr/†r0j©jm†r1hŒjކr2htj{†r3jsj¿†r4hŒXTByteAr5†r6j©jq†r7htj{†r8jsj¿†r9j-XIntegerr:†r;htjÆr<jsj2†r=jXfunctionr>†r?jsj¿†r@jtX
ByteAOfHexrA†rBj©jm†rCjXconstrD†rEjsj¿†rFhŒXHexrG†rHhtj{†rIjsj¿†rJjXstringrK†rLj©jq†rMhtj{†rNjsj¿†rOhŒXTByteArP†rQhtjÆrRjsX

rS†rTjXfunctionrU†rVjsj¿†rWjtX	SameByteArX†rYj©jm†rZjXconstr[†r\jsj¿†r]hŒjކr^htjÕ†r_jsj¿†r`hŒj݆rahtj{†rbjsj¿†rchŒXTByteArd†rej©jq†rfhtj{†rgjsj¿†rhj-XBooleanri†rjhtjÆrkjsj2†rljXfunctionrm†rnjsj¿†rojtXReverserp†rqj©jm†rrhŒjš†rshtj{†rtjsj¿†ruhŒXTByteArv†rwj©jq†rxhtj{†ryjsj¿†rzhŒXTByteAr{†r|htjÆr}jsj2†r~jXfunctionr†r€jsj¿†rjtX	SaveByteAr‚†rƒj©jm†r„hŒXDatar…†r†htj{†r‡jsj¿†rˆhŒXTByteAr‰†rŠhtjÆr‹jsj¿†rŒjXconstr†rŽjsj¿†rhŒXFileNamer†r‘htj{†r’jsj¿†r“jXstringr”†r•htjÆr–jsj¿†r—hŒX	Overwriter˜†r™htj{†ršjsj¿†r›j-XBooleanrœ†rjsj¿†ržhtjì†rŸjsj¿†r jXTruer¡†r¢j©jq†r£htj{†r¤jsj¿†r¥j-XBooleanr¦†r§htjÆr¨jsj2†r©jXfunctionrª†r«jsj¿†r¬jtX	LoadByteAr­†r®j©jm†r¯jXconstr°†r±jsj¿†r²hŒXFileNamer³†r´htj{†rµjsj¿†r¶jXstringr·†r¸j©jq†r¹htj{†rºjsj¿†r»hŒXTByteAr¼†r½htjÆr¾jsX

r¿†rÀjXfunctionrÁ†rÂjsj¿†rÃjtXEndianrĆrÅj©jm†rÆhŒj†rÇhtj{†rÈjsj¿†rÉj-XIntegerrʆrËj©jq†rÌhtj{†rÍjsj¿†rÎj-XIntegerrφrÐhtjÆrÑjsX

rÒ†rÓhFX	{ Files }rÔ†rÕjsj2†rÖjXfunctionr׆rØjsj¿†rÙjtX
SizeOfFilerÚ†rÛj©jm†rÜjXconstr݆rÞjsj¿†rßhŒXFileNamerà†ráhtj{†râjsj¿†rãjXstringrä†råj©jq†ræhtj{†rçjsj¿†rèj-XIntegerré†rêhtjÆrëjsj2†rìjXfunctionrí†rîjsj¿†rïjtXFileExrð†rñj©jm†ròjXconstró†rôjsj¿†rõhŒXFileNamerö†r÷htj{†røjsj¿†rùjXstringrú†rûhtjÆrüjsj¿†rýhŒXAllowFoldersrþ†rÿhtj{†rjsj¿†rj-XBooleanr†rjsj¿†rhtjì†rjsj¿†rjXFalser†rj©jq†r	htj{†r
jsj¿†rj-XBooleanr†r
htjÆrjsj2†rjXfunctionr†rjsj¿†rjtXLWPSolver†rj©jm†rjXconstr†rjsj¿†rhŒXDirr†rhtj{†rjsj¿†rjXstringr†rj©jq†rhtj{†r jsj¿†r!jXstringr"†r#htjÆr$jsj2†r%jXfunctionr&†r'jsj¿†r(jtXLWPSlashr)†r*j©jm†r+e(jXconstr,†r-jsj¿†r.hŒXDirr/†r0htj{†r1jsj¿†r2jXstringr3†r4j©jq†r5htj{†r6jsj¿†r7jXstringr8†r9htjÆr:jsX

r;†r<jXfunctionr=†r>jsj¿†r?jtXExtractDriver@†rAj©jm†rBjXconstrC†rDjsj¿†rEhŒXFileNamerF†rGhtj{†rHjsj¿†rIjXstringrJ†rKj©jq†rLhtj{†rMjsj¿†rNjXstringrO†rPhtjÆrQjsj2†rRjXfunctionrS†rTjsj¿†rUjtXExtractPathrV†rWj©jm†rXjXconstrY†rZjsj¿†r[hŒXFileNamer\†r]htj{†r^jsj¿†r_jXstringr`†raj©jq†rbhtj{†rcjsj¿†rdjXstringre†rfhtjÆrgjsj2†rhjXfunctionri†rjjsj¿†rkjtX
ExtractPrefixrl†rmj©jm†rnjXconstro†rpjsj¿†rqhŒXFileNamerr†rshtj{†rtjsj¿†rujXstringrv†rwj©jq†rxhtj{†ryjsj¿†rzjXstringr{†r|htjÆr}jsj2†r~jXfunctionr†r€jsj¿†rjtX
ExtractSuffixr‚†rƒj©jm†r„jXconstr…†r†jsj¿†r‡hŒXFileNamerˆ†r‰htj{†rŠjsj¿†r‹jXstringrŒ†rj©jq†rŽhtj{†rjsj¿†rjXstringr‘†r’htjÆr“jsX

r”†r•jXfunctionr–†r—jsj¿†r˜jtXIsValidFileNamer™†ršj©jm†r›jXconstrœ†rjsj¿†ržhŒXFileNamerŸ†r htj{†r¡jsj¿†r¢jXstringr£†r¤j©jq†r¥htj{†r¦jsj¿†r§j-XBooleanr¨†r©htjÆrªjsj2†r«jXfunctionr¬†r­jsj¿†r®jtXMakeValidFileNamer¯†r°j©jm†r±hŒXFileNamer²†r³htj{†r´jsj¿†rµjXstringr¶†r·htjÆr¸jsj¿†r¹jXconstrº†r»jsj¿†r¼jRXDefaultr½†r¾htj{†r¿jsj¿†rÀjXstringrÁ†rÂjsj¿†rÃhtjì†rÄjsj¿†rÅjÁjJ†rÆjÁXFilerdžrÈjÁjJ†rÉj©jq†rÊhtj{†rËjsj¿†rÌjXstringr͆rÎhtjÆrÏjsX

rІrÑhFX{ Converting }rÒ†rÓjsj2†rÔjXfunctionrÕ†rÖjsj¿†r×jtXIsValidIntegerr؆rÙj©jm†rÚjXconstrÛ†rÜjsj¿†rÝhŒjé†rÞhtj{†rßjsj¿†ràjXstringrá†râj©jq†rãhtj{†räjsj¿†råj-XBooleanræ†rçhtjÆrèjsj2†réjXfunctionrê†rëjsj¿†rìjtXIsValidCardinalrí†rîj©jm†rïjXconstrð†rñjsj¿†ròhŒjé†róhtj{†rôjsj¿†rõjXstringrö†r÷j©jq†røhtj{†rùjsj¿†rúj-XBooleanrû†rühtjÆrýjsX

rþ†rÿjXfunctionr†rjsj¿†rjtX	StrOfBoolr†rj©jm†rhŒXflagr†rhtj{†rjsj¿†r	j-XBooleanr
†rhtjÆrjsj¿†r
jXconstr†rjsj¿†rhŒXTrueStrr†rhtj{†rjsj¿†rjXstringr†rjsj¿†rhtjì†rjsj¿†rjÁjJ†rjÁXTruer†rjÁjJ†rhtjÆrjsX
  r†r jXconstr!†r"jsj¿†r#hŒXFalseStrr$†r%htj{†r&jsj¿†r'jXstringr(†r)jsj¿†r*htjì†r+jsj¿†r,jÁjJ†r-jÁXFalser.†r/jÁjJ†r0j©jq†r1htj{†r2jsj¿†r3jXstringr4†r5htjÆr6jsj2†r7jXfunctionr8†r9jsj¿†r:jtXStrOfIntr;†r<j©jm†r=hŒj†r>htj{†r?jsj¿†r@j-XIntegerrA†rBj©jq†rChtj{†rDjsj¿†rEjXstringrF†rGhtjÆrHjsj2†rIjXfunctionrJ†rKjsj¿†rLjtX	CardOfStrrM†rNj©jm†rOjXconstrP†rQjsj¿†rRhŒjé†rShtj{†rTjsj¿†rUjXstringrV†rWj©jq†rXhtj{†rYjsj¿†rZj-XCardinalr[†r\htjÆr]jsX

r^†r_jXfunctionr`†rajsj¿†rbjtXHexOrdrc†rdj©jm†rehŒXHexrf†rghtj{†rhjsj¿†rij-XCharrj†rkj©jq†rlhtj{†rmjsj¿†rnhŒXTHexro†rphtjÆrqjsj2†rrjXfunctionrs†rtjsj¿†rujtX	ByteOfHexrv†rwj©jm†rxhŒXHexry†rzhtj{†r{jsj¿†r|hŒXTHexByteStrr}†r~j©jq†rhtj{†r€jsj¿†rj-XByter‚†rƒhtjÆr„jsX

r…†r†jXfunctionr‡†rˆjsj¿†r‰jtXDecOfHexrІr‹j©jm†rŒjXconstr†rŽjsj¿†rhŒXHexr†r‘htj{†r’jsj¿†r“jXstringr”†r•j©jq†r–htj{†r—jsj¿†r˜jXstringr™†ršhtjÆr›jsj2†rœjXfunctionr†ržjsj¿†rŸjtX	HexOfByter †r¡j©jm†r¢hŒj:†r£htj{†r¤jsj¿†r¥j-XByter¦†r§j©jq†r¨htj{†r©jsj¿†rªhŒXTHexByteStrr«†r¬htjÆr­jsj2†r®jXfunctionr¯†r°jsj¿†r±jtX	HexOfCardr²†r³j©jm†r´hŒj†rµhtj{†r¶jsj¿†r·j-XCardinalr¸†r¹j©jq†rºhtj{†r»jsj¿†r¼jXstringr½†r¾htjÆr¿jsj¿†rÀhŒXoverloadrÁ†rÂhtjÆrÃjsj2†rÄjXfunctionrņrÆjsj¿†rÇjtX	HexOfCardrȆrÉj©jm†rÊhŒj†rËhtj{†rÌjsj¿†rÍj-XCardinalrΆrÏhtjÆrÐjsj¿†rÑhŒXDigitsrÒ†rÓhtj{†rÔjsj¿†rÕj-XIntegerrÖ†r×j©jq†rØhtj{†rÙjsj¿†rÚjXstringrÛ†rÜhtjÆrÝjsj¿†rÞhŒXoverloadr߆ràhtjÆrájsX

râ†rãjXfunctionrä†råjsj¿†ræjtXPascalHexArrayrç†rèj©jm†réhŒjš†rêhtj{†rëjsj¿†rìhŒXTByteArí†rîhtjÆrïjsj¿†rðjRXNamerñ†ròhtj{†rójsj¿†rôjXstringrõ†röj©jq†r÷htj{†røjsj¿†rùjXstringrú†rûhtjÆrüjsX

rý†rþjXfunctionrÿ†rjsj¿†rjtX
HexOfByteAr†rj©jm†rhŒjš†rhtj{†rjsj¿†rhŒXTByteAr†r	htjÆr
jsj¿†rhŒXBlocksr†r
htj{†rjsj¿†rj-XIntegerr†rjsj¿†rhtjì†rjsj¿†rjŸj5†rhtjÆrjsX
  r†rjXconstr†rjsj¿†rhŒXSplitterr†rhtj{†rjsj¿†rjXstringr †r!jsj¿†r"htjì†r#jsj¿†r$jÁjJ†r%jÁj¿†r&jÁjJ†r'j©jq†r(htj{†r)jsj¿†r*jXstringr+†r,htjÆr-jsj2†r.jXfunctionr/†r0jsj¿†r1jtX
BinOfByteAr2†r3j©jm†r4hŒjš†r5htj{†r6jsj¿†r7hŒXTByteAr8†r9htjÆr:jsj¿†r;hŒXBlocksr<†r=htj{†r>jsj¿†r?j-XIntegerr@†rAjsj¿†rBhtjì†rCjsj¿†rDjŸj½†rEhtjÆrFjsX
  rG†rHjXconstrI†rJjsj¿†rKhŒXSplitterrL†rMhtj{†rNjsj¿†rOjXstringrP†rQjsj¿†rRhtjì†rSjsj¿†rTjÁjJ†rUjÁj¿†rVjÁjJ†rWj©jq†rXhtj{†rYjsj¿†rZjXstringr[†r\htjÆr]jsX

r^†r_jXfunctionr`†rajsj¿†rbjtX	CardOfHexrc†rdj©jm†rehŒXHexrf†rghtj{†rhjsj¿†rijXstringrj†rkj©jq†rlhtj{†rmjsj¿†rnj-XCardinalro†rphtjÆrqjsj2†rrjXfunctionrs†rtjsj¿†rujtXIntOfBinrv†rwj©jm†rxhŒXBinry†rzhtj{†r{jsj¿†r|jXstringr}†r~j©jq†rhtj{†r€jsj¿†rj-XCardinalr‚†rƒhtjÆr„jsX

r…†r†jXfunctionr‡†rˆjsj¿†r‰jtXBinOfIntFillrІr‹j©jm†rŒhŒXnr†rŽhtj{†rjsj¿†rj-Xcardinalr‘†r’htjÆr“jsj¿†r”hŒXMinCountr•†r–htj{†r—jsj¿†r˜j-XIntegerr™†ršjsj¿†r›htjì†rœjsj¿†rjŸjІržj©jq†rŸhtj{†r jsj¿†r¡jXstringr¢†r£htjÆr¤jsj2†r¥jXfunctionr¦†r§jsj¿†r¨jtXBinOfIntr©†rªj©jm†r«hŒj†r¬htj{†r­jsj¿†r®j-Xcardinalr¯†r°j©jq†r±htj{†r²jsj¿†r³jXstringr´†rµhtjÆr¶jsX

r·†r¸jXfunctionr¹†rºjsj¿†r»jtX
BaseNOfIntr¼†r½j©jm†r¾hŒj·†r¿htj{†rÀjsj¿†rÁj-XCardinalr†rÃhtjÆrÄjsj¿†rÅhŒj݆rÆhtj{†rÇjsj¿†rÈhŒXTBaseNrɆrÊj©jq†rËhtj{†rÌjsj¿†rÍjXstringrΆrÏhtjÆrÐjsj2†rÑjXfunctionrÒ†rÓjsj¿†rÔjtX
IntOfBaseNrÕ†rÖj©jm†r×hŒjø†rØhtj{†rÙjsj¿†rÚjXstringrÛ†rÜhtjÆrÝjsj¿†rÞhŒj݆rßhtj{†ràjsj¿†ráhŒXTBaseNrâ†rãj©jq†rähtj{†råjsj¿†ræj-XCardinalrç†rèhtjÆréjsX

rê†rëhFX
{ Ranges }rì†ríjsj2†rîjXfunctionrï†rðjsj¿†rñjtXKeepInrò†rój©jm†rôhŒj†rõhtjÕ†röjsj¿†r÷hŒXBottomrø†rùhtjÕ†rújsj¿†rûhŒXToprü†rýhtj{†rþjsj¿†rÿj-XVariantr†rj©jq†rhtj{†rjsj¿†rj-XVariantr†rhtjÆrjsj2†rjXfunctionr	†r
jsj¿†rjtXInRanger†r
j©jm†rhŒXValuer†rhtjÕ†rjsj¿†rhŒXBottomr†rhtjÕ†rjsj¿†rhŒXTopr†rhtj{†rjsj¿†rj-XVariantr†rj©jq†rhtj{†rjsj¿†rj-XBooleanr †r!htjÆr"jsj2†r#jXfunctionr$†r%jsj¿†r&jtX
InStrictRanger'†r(j©jm†r)hŒXValuer*†r+htjÕ†r,jsj¿†r-hŒXBottomr.†r/htjÕ†r0jsj¿†r1hŒXTopr2†r3htj{†r4jsj¿†r5j-XVariantr6†r7j©jq†r8htj{†r9jsj¿†r:j-XBooleanr;†r<htjÆr=jsj2†r>jXfunctionr?†r@jsj¿†rAjtXMinrB†rCj©jm†rDjXconstrE†rFjsj¿†rGhŒjކrHhtjÕ†rIjsj¿†rJhŒj݆rKhtj{†rLjsj¿†rMj-XIntegerrN†rOj©jq†rPhtj{†rQjsj¿†rRj-XIntegerrS†rThtjÆrUjsj¿†rVhŒXoverloadrW†rXhtjÆrYjsj2†rZjXfunctionr[†r\jsj¿†r]jtXMinr^†r_j©jm†r`jXconstra†rbjsj¿†rchŒjކrdhtj{†rejsj¿†rfhŒXTIntArg†rhj©jq†rihtj{†rjjsj¿†rkj-XIntegerrl†rmhtjÆrnjsj¿†rohŒXoverloadrp†rqhtjÆrrjsj2†rsjXfunctionrt†rujsj¿†rvjtXMaxrw†rxj©jm†ryjXconstrz†r{jsj¿†r|hŒjކr}htjÕ†r~jsj¿†rhŒj݆r€htj{†rjsj¿†r‚j-XIntegerrƒ†r„j©jq†r…htj{†r†jsj¿†r‡j-XIntegerrˆ†r‰htjÆrŠjsj¿†r‹hŒXoverloadrŒ†rhtjÆrŽjsj2†rjXfunctionr†r‘jsj¿†r’jtXMaxr“†r”j©jm†r•jXconstr–†r—jsj¿†r˜hŒjކr™htj{†ršjsj¿†r›hŒXTIntArœ†rj©jq†ržhtj{†rŸjsj¿†r j-XIntegerr¡†r¢htjÆr£jsj¿†r¤hŒXoverloadr¥†r¦htjÆr§jsX

r¨†r©jXconstrª†r«jsX
  r¬†r­hŒXRangesSeparatorr®†r¯jsj¿†r°htjì†r±jsj¿†r²jÁjJ†r³jÁjÕ†r´jÁjJ†rµhtjÆr¶jsX
  r·†r¸hŒXRangeInnerSeparatorr¹†rºjsj¿†r»htjì†r¼jsj¿†r½jÁjJ†r¾jÁjR†r¿jÁjJ†rÀhtjÆrÁjsX
  r†rÃhŒX
RangeInfiniterĆrÅjsj¿†rÆhtjì†rÇjsj¿†rÈjÁjJ†rÉjÁjW†rÊjÁjJ†rËhtjÆrÌjsX
  r͆rÎhŒXRangeSpecialCharsrφrÐjsj¿†rÑhtjì†rÒjsj¿†rÓj©j'†rÔhŒXRangesSeparatorrÕ†rÖhtjÕ†r×jsj¿†rØhŒXRangeInnerSeparatorrÙ†rÚhtjÕ†rÛjsj¿†rÜhŒX
RangeInfiniter݆rÞj©j/†rßhtjÆràjsX

rá†râjXfunctionrã†räjsj¿†råjtXRangesOfStrræ†rçj©jm†rèjXconstré†rêjsj¿†rëhŒjé†rìhtj{†ríjsj¿†rîjXstringrï†rðj©jq†rñhtj{†ròjsj¿†róhŒXTRangesrô†rõhtjÆröjsj2†r÷jXfunctionrø†rùjsj¿†rújtXInRangesrû†rüj©jm†rýhŒXRangesrþ†rÿhtj{†rjsj¿†rhŒXTRangesr†rhtjÆrjsj¿†rhŒX	TestValuer†rhtj{†rjsj¿†r	j-XCardinalr
†rj©jq†rhtj{†r
jsj¿†rj-XBooleanr†rhtjÆrjsX

r†rjXfunctionr†rjsj¿†rjtXSuccessr†rj©jm†rhŒXResr†rhtj{†rjsj¿†rj-XIntegerr†rhtjÆr jsj¿†r!hŒXResultOnSuccessr"†r#htj{†r$jsj¿†r%j-XIntegerr&†r'jsj¿†r(htjì†r)jsj¿†r*hŒX
ERROR_SUCCESSr+†r,j©jq†r-htj{†r.jsj¿†r/j-XBooleanr0†r1htjÆr2jsj2†r3jXfunctionr4†r5jsj¿†r6jtXFailurer7†r8j©jm†r9hŒXResr:†r;htj{†r<jsj¿†r=j-XIntegerr>†r?htjÆr@jsj¿†rAhŒXResultOnSuccessrB†rChtj{†rDjsj¿†rEj-XIntegerrF†rGjsj¿†rHhtjì†rIjsj¿†rJhŒX
ERROR_SUCCESSrK†rLj©jq†rMhtj{†rNjsj¿†rOj-XBooleanrP†rQhtjÆrRjsX

rS†rTjXfunctionrU†rVjsj¿†rWjtXExpandStringrX†rYj©jm†rZjXconstr[†r\jsj¿†r]hŒjé†r^htj{†r_jsj¿†r`jXstringra†rbj©jq†rchtj{†rdjsj¿†rejXstringrf†rghtjÆrhjsX

ri†rjhFX	{ Files }rk†rljsj2†rmjX	procedurern†rojsj¿†rpjtXDeleteFilesrq†rrj©jm†rsjXconstrt†rujsj¿†rvhŒXMaskrw†rxhtj{†ryjsj¿†rzjXstringr{†r|htjÆr}jsj¿†r~hŒXScanSubDirsr†r€htj{†rjsj¿†r‚j-XBooleanrƒ†r„jsj¿†r…htjì†r†jsj¿†r‡jXTruerˆ†r‰htjÆrŠjsX
  r‹†rŒhŒX
Attributesr†rŽhtj{†rjsj¿†rj-XIntegerr‘†r’jsj¿†r“htjì†r”jsj¿†r•hŒXfaFindEveryFiler–†r—j©jq†r˜htjÆr™jsj2†ršjX	procedurer›†rœjsj¿†rjtXFileNewrž†rŸj©jm†r jXconstr¡†r¢jsj¿†r£hŒXFileNamer¤†r¥htj{†r¦jsj¿†r§jXstringr¨†r©j©jq†rªhtjÆr«jsj2†r¬jXfunctionr­†r®jsj¿†r¯jtXDateTimeOfFileTimer°†r±j©jm†r²jXconstr³†r´jsj¿†rµhŒXFileTimer¶†r·htj{†r¸jsj¿†r¹hŒX	TFileTimerº†r»j©jq†r¼htj{†r½jsj¿†r¾j-X	TDateTimer¿†rÀhtjÆrÁjsX

r†rÃhFX
{ FileNames }rĆrÅjsj2†rÆjXfunctionrdžrÈjsj¿†rÉjtX
GetFileNewrʆrËj©jm†rÌhŒXFileNamer͆rÎhtj{†rÏjsj¿†rÐjXstringrцrÒhtjÆrÓjsj¿†rÔhŒXNoFloppyDrivesrÕ†rÖhtj{†r×jsj¿†rØj-XBooleanrÙ†rÚjsj¿†rÛhtjì†rÜjsj¿†rÝjXTruerÞ†rßj©jq†ràhtj{†rájsj¿†râjXstringrã†rähtjÆråjsX

ræ†rçhFX{ Finding Files }rè†réjsj2†rêjXfunctionrë†rìjsj¿†ríjtXFindAllrî†rïj©jm†rðhŒXStringsrñ†ròhtj{†rójsj¿†rôhŒXTStringsrõ†röhtjÆr÷jsj¿†røjXconstrù†rújsj¿†rûhŒXMaskrü†rýhtj{†rþjsj¿†rÿjXstringr†rhtjÆrjsX
  r†rhŒXScanSubDirsr†rhtj{†rjsj¿†rj-XBooleanr	†r
jsj¿†rhtjì†rjsj¿†r
jXTruer†rhtjÆrjsj¿†rhŒX
Attributesr†rhtj{†rjsj¿†rj-XIntegerr†rjsj¿†rhtjì†rjsj¿†rhŒXfaFindEveryFiler†rhtjÆrjsX
  r†rhŒX
FileReturnr †r!htj{†r"jsj¿†r#hŒX
TFileNameFuncr$†r%jsj¿†r&htjì†r'jsj¿†r(jXnilr)†r*j©jq†r+htj{†r,jsj¿†r-j-XBooleanr.†r/htjÆr0jsj2†r1jXfunctionr2†r3jsj¿†r4jtXFindAllFirstr5†r6j©jm†r7jXconstr8†r9jsj¿†r:hŒXMaskr;†r<htj{†r=jsj¿†r>jXstringr?†r@htjÆrAjsj¿†rBhŒXScanSubDirsrC†rDhtj{†rEjsj¿†rFj-XBooleanrG†rHjsj¿†rIhtjì†rJjsj¿†rKjXTruerL†rMhtjÆrNjsX
  rO†rPhŒX
AttributesrQ†rRhtj{†rSjsj¿†rTj-XIntegerrU†rVjsj¿†rWhtjì†rXjsj¿†rYhŒXfaFindEveryFilerZ†r[j©jq†r\htj{†r]jsj¿†r^jXstringr_†r`htjÆrajsX

rb†rcjXfunctionrd†rejsj¿†rfjtX
FullOSInforg†rhhtj{†rijsj¿†rjjXstringrk†rle(htjÆrmjsj2†rnjXfunctionro†rpjsj¿†rqjtXWin32PlatformStrrr†rshtj{†rtjsj¿†rujXstringrv†rwhtjÆrxjsj2†ryjXfunctionrz†r{jsj¿†r|jtXWin9xr}†r~htj{†rjsj¿†r€j-XBooleanr†r‚htjÆrƒjsj2†r„jXfunctionr…†r†jsj¿†r‡jtXWinNTrˆ†r‰htj{†rŠjsj¿†r‹j-XBooleanrŒ†rhtjÆrŽjsj2†rjXfunctionr†r‘jsj¿†r’jtXWin2000r“†r”htj{†r•jsj¿†r–j-XBooleanr—†r˜htjÆr™jsj2†ršjXfunctionr›†rœjsj¿†rjtXWinXPrž†rŸhtj{†r jsj¿†r¡j-XBooleanr¢†r£htjÆr¤jsX

r¥†r¦jXvarr§†r¨jsX
  r©†rªhŒXMyDirr«†r¬htj{†r­jsj¿†r®jXstringr¯†r°jsj¿†r±htjì†r²jsj¿†r³jÁjJ†r´jÁjJ†rµhtjÆr¶jsX
  r·†r¸hŒXLastSuccessResr¹†rºhtj{†r»jsj¿†r¼j-XIntegerr½†r¾jsj¿†r¿htjì†rÀjsj¿†rÁjŸj®†rÂhtjÆrÃjsX
  
rĆrÅhFX{ Backward compatibility }rƆrÇjsj2†rÈhFX{$IFNDEF VER130}rɆrÊjsj2†rËjXfunctionr̆rÍjsj¿†rÎjtXSameTextrφrÐj©jm†rÑjXconstrÒ†rÓjsj¿†rÔhŒXS1rÕ†rÖhtjÕ†r×jsj¿†rØhŒXS2rÙ†rÚhtj{†rÛjsj¿†rÜjXstringr݆rÞj©jq†rßhtj{†ràjsj¿†ráj-XBooleanrâ†rãhtjÆräjsj2†råhFX{$ENDIF}ræ†rçjsX

rè†réjXimplementationrê†rëjsj2†rìhFX{$IFNDEF VER140}rí†rîjsj2†rïjXusesrð†rñjsj¿†ròhŒXFileCtrlró†rôhtjÆrõjsj2†röhFX{$ENDIF}r÷†røjsX

rù†rúhFX{$IFNDEF VER130}rû†rüjsj2†rýjXfunctionrþ†rÿjsj¿†rjtXSameTextr†rj©jm†rjXconstr†rjsj¿†rhŒXS1r†rhtjÕ†r	jsj¿†r
hŒXS2r†rhtj{†r
jsj¿†rjXstringr†rj©jq†rhtj{†rjsj¿†rj-XBooleanr†rhtjÆrjsj2†rjXbeginr†rjsX
  r†rjJXResultr†rjsj¿†rhtj{†rhtjì†r jsj¿†r!jEXCompareTextr"†r#j©jm†r$hŒXS1r%†r&htjÕ†r'jsj¿†r(hŒXS2r)†r*j©jq†r+jsj¿†r,htjì†r-jsj¿†r.jŸj®†r/htjÆr0jsj2†r1jXendr2†r3htjÆr4jsj2†r5hFX{$ENDIF}r6†r7jsX

r8†r9jX	procedurer:†r;jsj¿†r<jtXReportr=†r>j©jm†r?jXconstr@†rAjsj¿†rBhŒX
ReportNamerC†rDhtjÕ†rEjsj¿†rFhŒXTextrG†rHhtj{†rIjsj¿†rJjXstringrK†rLj©jq†rMhtjÆrNjsj2†rOjXvarrP†rQjsX
  rR†rShŒj†rThtj{†rUjsj¿†rVj-XTextFilerW†rXhtjÆrYjsX
  rZ†r[hŒXFileNamer\†r]htj{†r^jsj¿†r_jXstringr`†rahtjÆrbjsj2†rcjXbeginrd†rejsX
  rf†rghŒXFileNamerh†rijsj¿†rjhtj{†rkhtjì†rljsj¿†rmhŒXMyDirrn†rojsj¿†rphtjÆrqjsj¿†rrhŒX
ReportNamers†rtjsj¿†ruhtjÆrvjsj¿†rwjÁjJ†rxjÁX.repry†rzjÁjJ†r{htjÆr|jsX
  r}†r~hŒXAssignr†r€j©jm†rhŒj†r‚htjÕ†rƒjsj¿†r„hŒXFileNamer…†r†j©jq†r‡htjÆrˆjsX
  r‰†rŠjXtryr‹†rŒjsX
    r†rŽjXifr†rjsj¿†r‘jXnotr’†r“jsj¿†r”jEX
FileExistsr•†r–j©jm†r—hŒXFileNamer˜†r™j©jq†ršjsj¿†r›jXthenrœ†rjsX
      rž†rŸjEXRewriter †r¡j©jm†r¢hŒj†r£j©jq†r¤jsX
    r¥†r¦jXelser§†r¨jsX
      r©†rªjEXAppendr«†r¬j©jm†r­hŒj†r®j©jq†r¯htjÆr°jsX
    r±†r²jEXWriteLnr³†r´j©jm†rµhŒj†r¶htjÕ†r·jsj¿†r¸hŒXTextr¹†rºj©jq†r»htjÆr¼jsX
  r½†r¾jXfinallyr¿†rÀjsX
    rÁ†rÂjEXCloserÆrÄj©jm†rÅhŒj†rÆj©jq†rÇhtjÆrÈjsX
  rɆrÊjXendrˆrÌhtjÆrÍjsj2†rÎjXendrφrÐhtjÆrÑjsX

rÒ†rÓjX	procedurerÔ†rÕjsj¿†rÖjtXClearReportr׆rØj©jm†rÙjXconstrÚ†rÛjsj¿†rÜhŒX
ReportNamer݆rÞhtj{†rßjsj¿†ràjXstringrá†râj©jq†rãhtjÆräjsj2†råjXvarræ†rçjsX
  rè†réhŒXFileNamerê†rëhtj{†rìjsj¿†ríjXstringrî†rïhtjÆrðjsj2†rñjXbeginrò†rójsX
  rô†rõhŒXFileNamerö†r÷jsj¿†røhtj{†rùhtjì†rújsj¿†rûhŒXMyDirrü†rýjsj¿†rþhtjÆrÿjsj¿†rhŒX
ReportNamer†rjsj¿†rhtjÆrjsj¿†rjÁjJ†rjÁX.repr†rjÁjJ†r	htjÆr
jsX
  r†rjEX
DeleteFiler
†rj©jm†rhŒXFileNamer†rj©jq†rhtjÆrjsj2†rjXendr†rhtjÆrjsX

r†rjX	procedurer†rjsj¿†rjtX	ReportFmtr†rj©jm†rjXconstr †r!jsj¿†r"hŒX
ReportNamer#†r$htjÕ†r%jsj¿†r&hŒXFmtr'†r(htj{†r)jsj¿†r*jXstringr+†r,htjÆr-jsj¿†r.jXconstr/†r0jsj¿†r1hŒXArgsr2†r3htj{†r4jsj¿†r5jXarrayr6†r7jsj¿†r8jXofr9†r:jsj¿†r;jXconstr<†r=j©jq†r>htjÆr?jsj2†r@jXbeginrA†rBjsX
  rC†rDhŒXReportrE†rFj©jm†rGhŒX
ReportNamerH†rIhtjÕ†rJjsj¿†rKjEXFormatrL†rMj©jm†rNhŒXFmtrO†rPhtjÕ†rQjsj¿†rRhŒXArgsrS†rTj©X))rU†rVhtjÆrWjsj2†rXjXendrY†rZhtjÆr[jsX

r\†r]jX	procedurer^†r_jsj¿†r`jtX	GetParamsra†rbj©jm†rchŒXStringsrd†rehtj{†rfjsj¿†rghŒXTStringsrh†rij©jq†rjhtjÆrkjsj2†rljXvarrm†rnjsX
  ro†rphŒjÚ†rqhtj{†rrjsj¿†rsj-XPCharrt†ruhtjÆrvjsX
  rw†rxhŒXParamry†rzhtj{†r{jsj¿†r|jXstringr}†r~htjÆrjsX

  r€†rjXfunctionr‚†rƒjsj¿†r„jtXGetParamStrr…†r†j©jm†r‡jXvarrˆ†r‰jsj¿†rŠhŒjÚ†r‹htj{†rŒjsj¿†rj-XPCharrކrhtjÆrjsj¿†r‘jXvarr’†r“jsj¿†r”hŒXParamr•†r–htj{†r—jsj¿†r˜jXstringr™†ršj©jq†r›htj{†rœjsj¿†rj-XBooleanrž†rŸhtjÆr jsX
  r¡†r¢jXvarr£†r¤jsX
    r¥†r¦hŒXQuotedr§†r¨htj{†r©jsj¿†rªj-XBooleanr«†r¬htjÆr­jsX
  r®†r¯jXbeginr°†r±jsX
    r²†r³hŒXParamr´†rµjsj¿†r¶htj{†r·htjì†r¸jsj¿†r¹jÁjJ†rºjÁjJ†r»htjÆr¼jsX

    r½†r¾jXrepeatr¿†rÀjsX
      rÁ†rÂjXwhilerÆrÄjsj¿†rÅj©jm†rÆhŒjÚ†rÇj©j'†rÈjŸj®†rÉj©j/†rÊjsj¿†rËhtj†rÌhtj‡†rÍjsj¿†rÎjÖX#0rφrÐj©jq†rÑjsj¿†rÒjXandrÓ†rÔjsj¿†rÕj©jm†rÖhŒjÚ†r×j©j'†rØjŸj®†rÙj©j/†rÚjsj¿†rÛhtj†rÜhtjì†rÝjsj¿†rÞjÁjJ†rßjÁj¿†ràjÁjJ†ráj©jq†râjsj¿†rãjXdorä†råjsX	
        ræ†rçjEXIncrè†réj©jm†rêhŒjÚ†rëj©jq†rìhtjÆríjsX

      rî†rïhŒXQuotedrð†rñjsj¿†ròhtj{†róhtjì†rôjsj¿†rõjXFalserö†r÷htjÆrøjsX
      rù†rújXwhilerû†rüjsj¿†rýhŒjÚ†rþj©j'†rÿjŸj®†rj©j/†rjsj¿†rhtj†rhtj‡†rjsj¿†rjÖX#0r†rjsj¿†rjXdor	†r
jsj¿†rjXbeginr†r
jsX	
        r†rjXifr†rjsj¿†rhŒjÚ†rj©j'†rjŸj®†rj©j/†rjsj¿†rhtjì†rjsj¿†rjÁjJ†rjÁjI†rjÁjJ†rjsj¿†rjXthenr†rjsj¿†r jXbeginr!†r"jsX
          r#†r$hŒXQuotedr%†r&jsj¿†r'htj{†r(htjì†r)jsj¿†r*jXnotr+†r,jsj¿†r-hŒXQuotedr.†r/htjÆr0jsX
          r1†r2jEXIncr3†r4j©jm†r5hŒjÚ†r6j©jq†r7htjÆr8jsX	
        r9†r:jXContinuer;†r<htjÆr=jsj¿†r>jXendr?†r@htjÆrAjsX	
        rB†rCjXifrD†rEjsj¿†rFj©jm†rGhŒjÚ†rHj©j'†rIjŸj®†rJj©j/†rKjsj¿†rLhtj†rMhtjì†rNjsj¿†rOjÁjJ†rPjÁj¿†rQjÁjJ†rRj©jq†rSjsj¿†rTjXandrU†rVjsj¿†rWjXnotrX†rYjsj¿†rZhŒXQuotedr[†r\jsj¿†r]jXthenr^†r_jsX
          r`†rajXBreakrb†rchtjÆrdjsX	
        re†rfhŒXParamrg†rhjsj¿†rihtj{†rjhtjì†rkjsj¿†rlhŒXParamrm†rnjsj¿†rohtjÆrpjsj¿†rqhŒjÚ†rrj©j'†rsjŸj®†rtj©j/†ruhtjÆrvjsX	
        rw†rxjEXIncry†rzj©jm†r{hŒjÚ†r|j©jq†r}htjÆr~jsX
      r†r€jXendr†r‚htjÆrƒjsX
    r„†r…jXuntilr††r‡jsj¿†rˆj©jm†r‰hŒXParamrІr‹jsj¿†rŒhtj†rhtj‡†rŽjsj¿†rjÁjJ†rjÁjJ†r‘j©jq†r’jsj¿†r“jXorr”†r•jsj¿†r–j©jm†r—hŒjÚ†r˜j©j'†r™jŸj®†ršj©j/†r›jsj¿†rœhtjì†rjsj¿†ržjÖX#0rŸ†r j©jq†r¡htjÆr¢jsX

    r£†r¤jJXResultr¥†r¦jsj¿†r§htj{†r¨htjì†r©jsj¿†rªhŒXParamr«†r¬jsj¿†r­htj†r®htj‡†r¯jsj¿†r°jÁjJ†r±jÁjJ†r²htjÆr³jsX
  r´†rµjXendr¶†r·htjÆr¸jsX

r¹†rºjXbeginr»†r¼jsX
  r½†r¾hŒXStringsr¿†rÀhtj~†rÁhŒXClearr†rÃhtjÆrÄjsX
  rņrÆhŒjÚ†rÇjsj¿†rÈhtj{†rÉhtjì†rÊjsj¿†rËhŒXGetCommandLiner̆rÍhtjÆrÎjsX
  rφrÐhŒXGetParamStrrцrÒj©jm†rÓhŒjÚ†rÔhtjÕ†rÕjsj¿†rÖhŒXParamr׆rØj©jq†rÙhtjÆrÚjsX
  rÛ†rÜjXwhiler݆rÞjsj¿†rßhŒXGetParamStrrà†ráj©jm†râhŒjÚ†rãhtjÕ†räjsj¿†råhŒXParamræ†rçj©jq†rèjsj¿†réjXdorê†rëjsX
    rì†ríhŒXStringsrî†rïhtj~†rðhŒXAddrñ†ròj©jm†róhŒXParamrô†rõj©jq†röhtjÆr÷jsj2†røjXendrù†rúhtjÆrûjsX

rü†rýjXfunctionrþ†rÿjsj¿†rjtX	GetParamsr†rj©jm†rjXconstr†rjsj¿†rhŒX	Separatorr†rhtj{†r	jsj¿†r
jXstringr†rjsj¿†r
htjì†rjsj¿†rjÁjJ†rjÁj¿†rjÁjJ†rj©jq†rhtj{†rjsj¿†rjXstringr†rhtjÆrjsj2†rjXvarr†rjsX
  r†rhŒXSLr†rhtj{†r jsj¿†r!hŒXTStringListr"†r#htjÆr$jsj2†r%jXbeginr&†r'jsX
  r(†r)hŒXSLr*†r+jsj¿†r,htj{†r-htjì†r.jsj¿†r/hŒXTStringListr0†r1htj~†r2hŒXCreater3†r4htjÆr5jsX
  r6†r7hŒX	GetParamsr8†r9j©jm†r:hŒXSLr;†r<j©jq†r=htjÆr>jsX
  r?†r@jJXResultrA†rBjsj¿†rChtj{†rDhtjì†rEjsj¿†rFhŒXJoinrG†rHj©jm†rIhŒXSLrJ†rKhtjÕ†rLjsj¿†rMhŒX	SeparatorrN†rOj©jq†rPhtjÆrQjsX
  rR†rShŒXSLrT†rUhtj~†rVhŒXFreerW†rXhtjÆrYjsj2†rZjXendr[†r\htjÆr]jsX

r^†r_jXfunctionr`†rajsj¿†rbjtXSwitchrc†rdj©jm†rejXconstrf†rgjsj¿†rhhŒXSwitchri†rjhtj{†rkjsj¿†rljXstringrm†rnhtjÆrojsj¿†rpjXconstrq†rrjsj¿†rshŒXPrefixCharsrt†ruhtj{†rvjsj¿†rwhŒXTCharSetrx†ryjsj¿†rzhtjì†r{jsj¿†r|hŒXSwitchCharsr}†r~htjÆrjsX
  r€†rhŒX
IgnoreCaser‚†rƒhtj{†r„jsj¿†r…j-XBooleanr††r‡jsj¿†rˆhtjì†r‰jsj¿†rŠjXTruer‹†rŒj©jq†rhtj{†rŽjsj¿†rj-XBooleanr†r‘htjÆr’jsj2†r“hX//= SysUtils.FindCmdLineSwitchr”†r•jsj2†r–jXvarr—†r˜jsX
  r™†ršhŒj†r›htj{†rœjsj¿†rj-XIntegerrž†rŸhtjÆr jsX
  r¡†r¢hŒXsr£†r¤htj{†r¥jsj¿†r¦jXstringr§†r¨htjÆr©jsj2†rªjXbeginr«†r¬jsX
  r­†r®jJXResultr¯†r°jsj¿†r±htj{†r²htjì†r³jsj¿†r´jXTruerµ†r¶htjÆr·jsX

  r¸†r¹jXforrº†r»jsj¿†r¼hŒj†r½jsj¿†r¾htj{†r¿htjì†rÀjsj¿†rÁjŸj5†rÂjsj¿†rÃjXtorĆrÅjsj¿†rÆjEX
ParamCountrdžrÈjsj¿†rÉjXdorʆrËjsj¿†rÌjXbeginr͆rÎjsX
    rφrÐhŒj£†rÑjsj¿†rÒhtj{†rÓhtjì†rÔjsj¿†rÕjEXParamStrrÖ†r×j©jm†rØhŒj†rÙj©jq†rÚhtjÆrÛjsX

    r܆rÝjXifrÞ†rßjsj¿†ràj©jm†ráhŒj£†râjsj¿†rãhtj†rähtj‡†råjsj¿†ræjÁjJ†rçjÁjJ†rèj©jq†réjsj¿†rêjXandrë†rìjsj¿†ríj©jm†rîhŒj£†rïj©j'†rðjŸj5†rñj©j/†ròjsj¿†rójXinrô†rõjsj¿†röhŒXPrefixCharsr÷†røj©jq†rùjsj¿†rújXthenrû†rüjsj¿†rýjXbeginrþ†rÿjsX
    r†rhX///i know that always s <> '', but this is saverr†rjsX
      r†rhŒj£†rjsj¿†rhtj{†rhtjì†r	jsj¿†r
jEXCopyr†rj©jm†r
hŒj£†rhtjÕ†rjsj¿†rjŸj³†rhtjÕ†rjsj¿†rhŒXMaxIntr†rj©jq†rhtjÆrjsX
      r†rjXifr†rjsj¿†rj©jm†rhŒj£†rjsj¿†rhtjì†r jsj¿†r!hŒXSwitchr"†r#j©jq†r$jsj¿†r%jXorr&†r'jsj¿†r(j©jm†r)hŒX
IgnoreCaser*†r+jsj¿†r,jXandr-†r.jsj¿†r/j©jm†r0jŸj®†r1htjì†r2jEXAnsiCompareTextr3†r4j©jm†r5hŒj£†r6htjÕ†r7jsj¿†r8hŒXSwitchr9†r:j©X)))r;†r<jsj¿†r=jXthenr>†r?jsX	
        r@†rAjXExitrB†rChtjÆrDjsX
    rE†rFjXendrG†rHhtjÆrIjsX
  rJ†rKjXendrL†rMhtjÆrNjsX

  rO†rPjJXResultrQ†rRjsj¿†rShtj{†rThtjì†rUjsj¿†rVjXFalserW†rXhtjÆrYjsj2†rZjXendr[†r\htjÆr]jsX

r^†r_jXfunctionr`†rajsj¿†rbjtXParamNumrc†rdj©jm†rejXconstrf†rgjsj¿†rhhŒjé†rihtj{†rjjsj¿†rkjXstringrl†rmj©jq†rnhtj{†rojsj¿†rpj-XIntegerrq†rrhtjÆrsjsj2†rtjXbeginru†rvjsX
  rw†rxjXforry†rzjsj¿†r{jJXResultr|†r}jsj¿†r~htj{†rhtjì†r€jsj¿†rjŸj5†r‚jsj¿†rƒjXtor„†r…jsj¿†r†jEX
ParamCountr‡†rˆjsj¿†r‰jXdorІr‹jsX
    rŒ†rjXifrކrjsj¿†rjŸj®†r‘htjì†r’jEXAnsiCompareTextr“†r”j©jm†r•jEXParamStrr–†r—j©jm†r˜jJXResultr™†ršj©jq†r›htjÕ†rœjsj¿†rhŒjé†ržj©jq†rŸjsj¿†r jXthenr¡†r¢jsX
      r£†r¤jXExitr¥†r¦htjÆr§jsX

  r¨†r©jJXResultrª†r«jsj¿†r¬htj{†r­htjì†r®jsj¿†r¯jŸj®†r°htjÆr±jsj2†r²jXendr³†r´htjÆrµjsX

r¶†r·jXfunctionr¸†r¹jsj¿†rºjtXParamPrefixNumr»†r¼j©jm†r½jXconstr¾†r¿jsj¿†rÀhŒXPrefixrÁ†rÂhtj{†rÃjsj¿†rÄjXstringrņrÆj©jq†rÇhtj{†rÈe(jsj¿†rÉj-XIntegerrʆrËhtjÆrÌjsj2†rÍjXvarrΆrÏjsX
  rІrÑhŒXLenrÒ†rÓhtj{†rÔjsj¿†rÕj-XIntegerrÖ†r×htjÆrØjsj2†rÙjXbeginrÚ†rÛjsX
  r܆rÝhŒXLenrÞ†rßjsj¿†ràhtj{†ráhtjì†râjsj¿†rãjEXLengthrä†råj©jm†ræhŒXPrefixrç†rèj©jq†réhtjÆrêjsX
  rë†rìjXforrí†rîjsj¿†rïjJXResultrð†rñjsj¿†ròhtj{†róhtjì†rôjsj¿†rõjŸj5†röjsj¿†r÷jXtorø†rùjsj¿†rújEX
ParamCountrû†rüjsj¿†rýjXdorþ†rÿjsX
    r†rjXifr†rjsj¿†rjŸj®†rhtjì†rjEXAnsiCompareTextr†rj©jm†r	jEXCopyr
†rj©jm†rjEXParamStrr
†rj©jm†rjJXResultr†rj©jq†rhtjÕ†rjsj¿†rjŸj5†rhtjÕ†rjsj¿†rhŒXLenr†rj©jq†rhtjÕ†rjsj¿†rhŒXPrefixr†rj©jq†rjsj¿†r jXthenr!†r"jsX
      r#†r$jXExitr%†r&htjÆr'jsX

  r(†r)jJXResultr*†r+jsj¿†r,htj{†r-htjì†r.jsj¿†r/jŸj®†r0htjÆr1jsj2†r2jXendr3†r4htjÆr5jsX

r6†r7jXfunctionr8†r9jsj¿†r:jtXParamr;†r<j©jm†r=jXconstr>†r?jsj¿†r@hŒjé†rAhtj{†rBjsj¿†rCjXstringrD†rEj©jq†rFhtj{†rGjsj¿†rHj-XBooleanrI†rJhtjÆrKjsj2†rLjXbeginrM†rNjsX
  rO†rPjJXResultrQ†rRjsj¿†rShtj{†rThtjì†rUjsj¿†rVhŒXParamNumrW†rXj©jm†rYhŒjé†rZj©jq†r[jsj¿†r\htj‡†r]jsj¿†r^jŸj®†r_htjÆr`jsj2†rajXendrb†rchtjÆrdjsX

re†rfjXfunctionrg†rhjsj¿†rijtXParamPrefixrj†rkj©jm†rljXconstrm†rnjsj¿†rohŒXPrefixrp†rqhtj{†rrjsj¿†rsjXstringrt†ruj©jq†rvhtj{†rwjsj¿†rxj-XBooleanry†rzhtjÆr{jsj2†r|jXbeginr}†r~jsX
  r†r€jJXResultr†r‚jsj¿†rƒhtj{†r„htjì†r…jsj¿†r†hŒXParamPrefixNumr‡†rˆj©jm†r‰hŒXPrefixrІr‹j©jq†rŒjsj¿†rhtj‡†rŽjsj¿†rjŸj®†rhtjÆr‘jsj2†r’jXendr“†r”htjÆr•jsX

r–†r—jXfunctionr˜†r™jsj¿†ršjtXGetParamr›†rœj©jm†rjXconstrž†rŸjsj¿†r hŒXPrefixr¡†r¢htj{†r£jsj¿†r¤jXstringr¥†r¦jsj¿†r§htjì†r¨jsj¿†r©jÁjJ†rªjÁjJ†r«htjÆr¬jsj¿†r­jXconstr®†r¯jsj¿†r°jRXDefaultr±†r²htj{†r³jsj¿†r´jXstringrµ†r¶jsj¿†r·htjì†r¸jsj¿†r¹jÁjJ†rºjÁjJ†r»j©jq†r¼htj{†r½jsj¿†r¾jXstringr¿†rÀhtjÆrÁjsj2†rÂjXvarrÆrÄjsX
  rņrÆhŒj†rÇhtj{†rÈjsj¿†rÉj-XIntegerrʆrËhtjÆrÌjsj2†rÍjXbeginrΆrÏjsX
  rІrÑjJXResultrÒ†rÓjsj¿†rÔhtj{†rÕhtjì†rÖjsj¿†r×jRXDefaultr؆rÙhtjÆrÚjsX

  rÛ†rÜjXifr݆rÞjsj¿†rßhŒXPrefixrà†rájsj¿†râhtjì†rãjsj¿†räjÁjJ†råjÁjJ†ræjsj¿†rçjXthenrè†réjsj¿†rêjXbeginrë†rìjsX
    rí†rîjJXResultrï†rðjsj¿†rñhtj{†ròhtjì†rójsj¿†rôjEXParamStrrõ†röj©jm†r÷jŸj5†røj©jq†rùhtjÆrújsX
  rû†rüjXExitrý†rþhtjÆrÿjsj¿†rjXendr†rhtjÆrjsX

  r†rhŒj†rjsj¿†rhtj{†rhtjì†r	jsj¿†r
hŒXParamPrefixNumr†rj©jm†r
hŒXPrefixr†rj©jq†rhtjÆrjsX
  r†rjXifr†rjsj¿†rhŒj†rjsj¿†rhtj‡†rjsj¿†rjŸj®†rjsj¿†rjXthenr†rjsX
    r†r jJXResultr!†r"jsj¿†r#htj{†r$htjì†r%jsj¿†r&jEXCopyr'†r(j©jm†r)jEXParamStrr*†r+j©jm†r,hŒj†r-j©jq†r.htjÕ†r/jsj¿†r0jEXLengthr1†r2j©jm†r3hŒXPrefixr4†r5j©jq†r6jsj¿†r7htjÆr8jsj¿†r9jŸj5†r:htjÕ†r;jsj¿†r<hŒXMaxIntr=†r>j©jq†r?htjÆr@jsj2†rAjXendrB†rChtjÆrDjsX

rE†rFjXfunctionrG†rHjsj¿†rIjtXGetMyDirrJ†rKj©jm†rLhŒXFullPathrM†rNhtj{†rOjsj¿†rPj-XBooleanrQ†rRjsj¿†rShtjì†rTjsj¿†rUjXFalserV†rWj©jq†rXhtj{†rYjsj¿†rZjXstringr[†r\htjÆr]jsj2†r^jXvarr_†r`jsX
  ra†rbhŒXBufferrc†rdhtj{†rejsj¿†rfjXarrayrg†rhj©j'†rijŸj®†rjhtj~†rkhtj~†rljŸX260rm†rnj©j/†rojsj¿†rpjXofrq†rrjsj¿†rsj-XCharrt†ruhtjÆrvjsj2†rwjXbeginrx†ryjsX
  rz†r{jJXResultr|†r}jsj¿†r~htj{†rhtjì†r€jsj¿†rjÁjJ†r‚jÁjJ†rƒhtjÆr„jsX
  r…†r†jEX	SetStringr‡†rˆj©jm†r‰jJXResultrІr‹htjÕ†rŒjsj¿†rhŒXBufferrކrhtjÕ†rjsj¿†r‘jEXGetModuleFileNamer’†r“j©jm†r”jŸj®†r•htjÕ†r–jsj¿†r—hŒXBufferr˜†r™htjÕ†ršjsj¿†r›jEXSizeOfrœ†rj©jm†ržhŒXBufferrŸ†r j©X)))r¡†r¢htjÆr£jsX
  r¤†r¥jXifr¦†r§jsj¿†r¨hŒXFullPathr©†rªjsj¿†r«jXthenr¬†r­jsX
    r®†r¯jJXResultr°†r±jsj¿†r²htj{†r³htjì†r´jsj¿†rµhŒX
GetFileNewr¶†r·j©jm†r¸jJXResultr¹†rºj©jq†r»htjÆr¼jsX
  r½†r¾jJXResultr¿†rÀjsj¿†rÁhtj{†rÂhtjì†rÃjsj¿†rÄhŒXExtractPathrņrÆj©jm†rÇjJXResultrȆrÉj©jq†rÊhtjÆrËjsj2†rÌjXendr͆rÎhtjÆrÏjsX

rІrÑjXfunctionrÒ†rÓjsj¿†rÔjtXWinDirrÕ†rÖhtj{†r×jsj¿†rØjXstringrÙ†rÚhtjÆrÛjsj2†rÜjXvarr݆rÞjsX
  r߆ràhŒXResrá†râhtj{†rãjsj¿†räj-XPCharrå†ræhtjÆrçjsj2†rèjXbeginré†rêjsX
  rë†rìjJXResultrí†rîjsj¿†rïhtj{†rðhtjì†rñjsj¿†ròjÁjJ†rójÁjp†rôjÁjJ†rõhtjÆröjsX
  r÷†røjEXGetMemrù†rúj©jm†rûhŒXResrü†rýhtjÕ†rþjsj¿†rÿhŒXMAX_PATHr †r j©jq†r htjÆr jsX
  r †r hŒXGetWindowsDirectoryr †r j©jm†r hŒXResr	 †r
 htjÕ†r jsj¿†r hŒXMAX_PATHr
 †r j©jq†r htjÆr jsX
  r †r jJXResultr †r jsj¿†r htj{†r htjì†r jsj¿†r hŒXResr †r jsj¿†r htjÆr jsj¿†r jÁjJ†r jÁjp†r jÁjJ†r  htjÆr! jsX
  r" †r# jEXFreeMemr$ †r% j©jm†r& hŒXResr' †r( htjÕ†r) jsj¿†r* hŒXMAX_PATHr+ †r, j©jq†r- htjÆr. jsj2†r/ jXendr0 †r1 htjÆr2 jsX

r3 †r4 jXfunctionr5 †r6 jsj¿†r7 jtXSysDirr8 †r9 htj{†r: jsj¿†r; jXstringr< †r= htjÆr> jsj2†r? jXvarr@ †rA jsX
  rB †rC hŒXResrD †rE htj{†rF jsj¿†rG j-XPCharrH †rI htjÆrJ jsj2†rK jXbeginrL †rM jsX
  rN †rO jJXResultrP †rQ jsj¿†rR htj{†rS htjì†rT jsj¿†rU jÁjJ†rV jÁjp†rW jÁjJ†rX htjÆrY jsX
  rZ †r[ jEXGetMemr\ †r] j©jm†r^ hŒXResr_ †r` htjÕ†ra jsj¿†rb hŒXMAX_PATHrc †rd j©jq†re htjÆrf jsX
  rg †rh hŒXGetSystemDirectoryri †rj j©jm†rk hŒXResrl †rm htjÕ†rn jsj¿†ro hŒXMAX_PATHrp †rq j©jq†rr htjÆrs jsX
  rt †ru jJXResultrv †rw jsj¿†rx htj{†ry htjì†rz jsj¿†r{ hŒXResr| †r} jsj¿†r~ htjÆr jsj¿†r€ jÁjJ†r jÁjp†r‚ jÁjJ†rƒ htjÆr„ jsX
  r… †r† jEXFreeMemr‡ †rˆ j©jm†r‰ hŒXResrŠ †r‹ htjÕ†rŒ jsj¿†r hŒXMAX_PATHrŽ †r j©jq†r htjÆr‘ jsj2†r’ jXendr“ †r” htjÆr• jsX

r– †r— jXfunctionr˜ †r™ jsj¿†rš jtXUserNamer› †rœ htj{†r jsj¿†rž jXstringrŸ †r  htjÆr¡ jsj2†r¢ jXvarr£ †r¤ jsX
  r¥ †r¦ hŒXLenr§ †r¨ htj{†r© jsj¿†rª j-XCardinalr« †r¬ htjÆr­ jsX
  r® †r¯ hŒXResr° †r± htj{†r² jsj¿†r³ j-XPCharr´ †rµ htjÆr¶ jsj2†r· jXbeginr¸ †r¹ jsX
  rº †r» jJXResultr¼ †r½ jsj¿†r¾ htj{†r¿ htjì†rÀ jsj¿†rÁ jÁjJ†r jÁjJ†rà htjÆrÄ jsX
  rÅ †rÆ jEXGetMemrÇ †rÈ j©jm†rÉ hŒXResrÊ †rË htjÕ†rÌ jsj¿†rÍ hŒXMAX_PATHrÎ †rÏ j©jq†rÐ htjÆrÑ jsX
  rÒ †rÓ hŒXLenrÔ †rÕ jsj¿†rÖ htj{†r× htjì†rØ jsj¿†rÙ hŒXMAX_PATHrÚ †rÛ htjÆrÜ jsX
  rÝ †rÞ hŒXGetUserNamerß †rà j©jm†rá hŒXResr⠆rã htjÕ†rä jsj¿†rå hŒXLenræ †rç j©jq†rè htjÆré jsX
  rê †rë jJXResultrì †rí jsj¿†rî htj{†rï htjì†rð jsj¿†rñ hŒXResrò †ró htjÆrô jsX
  rõ †rö jEXFreeMemr÷ †rø j©jm†rù hŒXResrú †rû htjÕ†rü jsj¿†rý hŒXMAX_PATHrþ †rÿ j©jq†r!htjÆr!jsj2†r!jXendr!†r!htjÆr!jsX

r!†r!jXfunctionr!†r	!jsj¿†r
!jtX	FirstCharr!†r!j©jm†r
!jXconstr!†r!jsj¿†r!hŒjé†r!htj{†r!jsj¿†r!jXstringr!†r!j©jq†r!htj{†r!jsj¿†r!j-XCharr!†r!htjÆr!jsj2†r!jXbeginr!†r!jsX
  r!†r !jXifr!!†r"!jsj¿†r#!hŒj£†r$!jsj¿†r%!htjì†r&!jsj¿†r'!jÁjJ†r(!jÁjJ†r)!jsj¿†r*!jXthenr+!†r,!jsX
    r-!†r.!jJXResultr/!†r0!jsj¿†r1!htj{†r2!htjì†r3!jsj¿†r4!jÖX#0r5!†r6!jsX
  r7!†r8!jXelser9!†r:!jsX
    r;!†r<!jJXResultr=!†r>!jsj¿†r?!htj{†r@!htjì†rA!jsj¿†rB!hŒj£†rC!j©j'†rD!jŸj5†rE!j©j/†rF!htjÆrG!jsj2†rH!jXendrI!†rJ!htjÆrK!jsX

rL!†rM!jXfunctionrN!†rO!jsj¿†rP!jtXLastCharrQ!†rR!j©jm†rS!jXconstrT!†rU!jsj¿†rV!hŒjé†rW!htj{†rX!jsj¿†rY!jXstringrZ!†r[!j©jq†r\!htj{†r]!jsj¿†r^!j-XCharr_!†r`!htjÆra!jsj2†rb!jXbeginrc!†rd!jsX
  re!†rf!jXifrg!†rh!jsj¿†ri!hŒj£†rj!jsj¿†rk!htjì†rl!jsj¿†rm!jÁjJ†rn!jÁjJ†ro!jsj¿†rp!jXthenrq!†rr!jsX
    rs!†rt!jJXResultru!†rv!jsj¿†rw!htj{†rx!htjì†ry!jsj¿†rz!jÖX#0r{!†r|!jsX
  r}!†r~!jXelser!†r€!jsX
    r!†r‚!jJXResultrƒ!†r„!jsj¿†r…!htj{†r†!htjì†r‡!jsj¿†rˆ!hŒj£†r‰!j©j'†rŠ!jEXLengthr‹!†rŒ!j©jm†r!hŒj£†rŽ!j©X)]r!†r!htjÆr‘!jsj2†r’!jXendr“!†r”!htjÆr•!jsX

r–!†r—!jXfunctionr˜!†r™!jsj¿†rš!jtXCharPosr›!†rœ!j©jm†r!hŒjâ†rž!htj{†rŸ!jsj¿†r !j-XCharr¡!†r¢!htjÆr£!jsj¿†r¤!jXconstr¥!†r¦!jsj¿†r§!hŒjé†r¨!htj{†r©!jsj¿†rª!jXstringr«!†r¬!htjÆr­!jsj¿†r®!hŒXOffsetr¯!†r°!htj{†r±!jsj¿†r²!j-XIntegerr³!†r´!jsj¿†rµ!htjì†r¶!jsj¿†r·!jŸj5†r¸!j©jq†r¹!htj{†rº!jsj¿†r»!j-XIntegerr¼!†r½!htjÆr¾!jsj2†r¿!jXvarrÀ!†rÁ!jsX
  rÂ!†rÃ!hŒXMaxPosToSearchrÄ!†rÅ!htj{†rÆ!jsj¿†rÇ!j-XIntegerrÈ!†rÉ!htjÆrÊ!jsj2†rË!jXbeginrÌ!†rÍ!jsX
  rÎ!†rÏ!jJXResultrÐ!†rÑ!jsj¿†rÒ!htj{†rÓ!htjì†rÔ!jsj¿†rÕ!hŒXOffsetrÖ!†r×!htjÆrØ!jsX
  rÙ!†rÚ!hŒXMaxPosToSearchrÛ!†rÜ!jsj¿†rÝ!htj{†rÞ!htjì†rß!jsj¿†rà!jEXLengthrá!†râ!j©jm†rã!hŒjé†rä!j©jq†rå!htjÆræ!jsX

  rç!†rè!jXwhileré!†rê!jsj¿†rë!jJXResultrì!†rí!jsj¿†rî!htj†rï!htjì†rð!jsj¿†rñ!hŒXMaxPosToSearchrò!†ró!jsj¿†rô!jXdorõ!†rö!jsj¿†r÷!jXbeginrø!†rù!jsX
    rú!†rû!jXifrü!†rý!jsj¿†rþ!hŒjé†rÿ!j©j'†r"jJXResultr"†r"j©j/†r"jsj¿†r"htjì†r"jsj¿†r"hŒjâ†r"jsj¿†r"jXthenr	"†r
"jsX
      r"†r"jXExitr
"†r"htjÆr"jsX
    r"†r"jEXIncr"†r"j©jm†r"jJXResultr"†r"j©jq†r"htjÆr"jsX
  r"†r"jXendr"†r"htjÆr"jsX

  r"†r"jJXResultr "†r!"jsj¿†r""htj{†r#"htjì†r$"jsj¿†r%"jŸj®†r&"htjÆr'"jsj2†r("jXendr)"†r*"htjÆr+"jsX

r,"†r-"jXfunctionr."†r/"jsj¿†r0"jtXCharPosr1"†r2"j©jm†r3"hŒjâ†r4"htj{†r5"jsj¿†r6"hŒXTCharSetr7"†r8"htjÆr9"jsj¿†r:"jXconstr;"†r<"jsj¿†r="hŒjé†r>"htj{†r?"jsj¿†r@"jXstringrA"†rB"htjÆrC"jsj¿†rD"hŒXOffsetrE"†rF"htj{†rG"jsj¿†rH"j-XIntegerrI"†rJ"jsj¿†rK"htjì†rL"jsj¿†rM"jŸj5†rN"j©jq†rO"htj{†rP"jsj¿†rQ"j-XIntegerrR"†rS"htjÆrT"jsj2†rU"jXvarrV"†rW"jsX
  rX"†rY"hŒXMaxPosToSearchrZ"†r["htj{†r\"jsj¿†r]"j-XIntegerr^"†r_"htjÆr`"jsj2†ra"jXbeginrb"†rc"jsX
  rd"†re"jJXResultrf"†rg"jsj¿†rh"htj{†ri"htjì†rj"jsj¿†rk"hŒXOffsetrl"†rm"htjÆrn"jsX
  ro"†rp"hŒXMaxPosToSearchrq"†rr"jsj¿†rs"htj{†rt"htjì†ru"jsj¿†rv"jEXLengthrw"†rx"j©jm†ry"hŒjé†rz"j©jq†r{"htjÆr|"jsX

  r}"†r~"jXwhiler"†r€"jsj¿†r"jJXResultr‚"†rƒ"jsj¿†r„"htj†r…"htjì†r†"jsj¿†r‡"hŒXMaxPosToSearchrˆ"†r‰"jsj¿†rŠ"jXdor‹"†rŒ"jsj¿†r"jXbeginrŽ"†r"jsX
    r"†r‘"jXifr’"†r“"jsj¿†r”"hŒjé†r•"j©j'†r–"jJXResultr—"†r˜"j©j/†r™"jsj¿†rš"jXinr›"†rœ"jsj¿†r"hŒjâ†rž"jsj¿†rŸ"jXthenr "†r¡"jsX
      r¢"†r£"jXExitr¤"†r¥"htjÆr¦"jsX
    r§"†r¨"jEXIncr©"†rª"j©jm†r«"jJXResultr¬"†r­"j©jq†r®"htjÆr¯"jsX
  r°"†r±"jXendr²"†r³"htjÆr´"jsX

  rµ"†r¶"jJXResultr·"†r¸"jsj¿†r¹"htj{†rº"htjì†r»"jsj¿†r¼"jŸj®†r½"htjÆr¾"jsj2†r¿"jXendrÀ"†rÁ"htjÆrÂ"jsX

rÃ"†rÄ"jXfunctionrÅ"†rÆ"jsj¿†rÇ"jtXCharPosRrÈ"†rÉ"j©jm†rÊ"hŒjâ†rË"htj{†rÌ"jsj¿†rÍ"j-XCharrÎ"†rÏ"htjÆrÐ"jsj¿†rÑ"jXconstrÒ"†rÓ"jsj¿†rÔ"hŒjé†rÕ"htj{†rÖ"jsj¿†r×"jXstringrØ"†rÙ"htjÆrÚ"jsj¿†rÛ"hŒXOffsetrÜ"†rÝ"htj{†rÞ"jsj¿†rß"j-XIntegerrà"†rá"jsj¿†râ"htjì†rã"jsj¿†rä"htjR†rå"jŸj5†ræ"j©jq†rç"htj{†rè"jsj¿†ré"j-XIntegerrê"†rë"htjÆrì"jsj2†rí"jXbeginrî"†rï"jsX
  rð"†rñ"jXifrò"†ró"jsj¿†rô"hŒXOffsetrõ"†rö"jsj¿†r÷"htj†rø"jsj¿†rù"jŸj®†rú"jsj¿†rû"jXthenrü"†rý"jsX
    rþ"†rÿ"jJXResultr#†r#jsj¿†r#htj{†r#htjì†r#jsj¿†r#jEXLengthr#†r#j©jm†r#hŒjé†r	#j©jq†r
#jsj¿†r#htjÆr#jsj¿†r
#jŸj5†r#jsj¿†r#htjR†r#jsj¿†r#hŒXOffsetr#†r#jsX
  r#†r#jXelser#†r#jsX
    r#†r#jJXResultr#†r#e(jsj¿†r#htj{†r#htjì†r#jsj¿†r#hŒXOffsetr #†r!#htjÆr"#jsX
  r##†r$#jXifr%#†r&#jsj¿†r'#jJXResultr(#†r)#jsj¿†r*#htj‡†r+#jsj¿†r,#jEXLengthr-#†r.#j©jm†r/#hŒjé†r0#j©jq†r1#jsj¿†r2#jXthenr3#†r4#jsX
    r5#†r6#jJXResultr7#†r8#jsj¿†r9#htj{†r:#htjì†r;#jsj¿†r<#jEXLengthr=#†r>#j©jm†r?#hŒjé†r@#j©jq†rA#htjÆrB#jsX

  rC#†rD#jXwhilerE#†rF#jsj¿†rG#jJXResultrH#†rI#jsj¿†rJ#htj‡†rK#jsj¿†rL#jŸj®†rM#jsj¿†rN#jXdorO#†rP#jsj¿†rQ#jXbeginrR#†rS#jsX
    rT#†rU#jXifrV#†rW#jsj¿†rX#hŒjé†rY#j©j'†rZ#jJXResultr[#†r\#j©j/†r]#jsj¿†r^#htjì†r_#jsj¿†r`#hŒjâ†ra#jsj¿†rb#jXthenrc#†rd#jsX
      re#†rf#jXExitrg#†rh#htjÆri#jsX
    rj#†rk#jEXDecrl#†rm#j©jm†rn#jJXResultro#†rp#j©jq†rq#htjÆrr#jsX
  rs#†rt#jXendru#†rv#htjÆrw#jsj2†rx#jXendry#†rz#htjÆr{#jsX

r|#†r}#jXfunctionr~#†r#jsj¿†r€#jtXPosExr#†r‚#j©jm†rƒ#jXconstr„#†r…#jsj¿†r†#hŒXSubStrr‡#†rˆ#htjÕ†r‰#jsj¿†rŠ#hŒjé†r‹#htj{†rŒ#jsj¿†r#jXstringrŽ#†r#htjÆr#jsj¿†r‘#hŒXOffsetr’#†r“#htj{†r”#jsj¿†r•#j-XIntegerr–#†r—#jsj¿†r˜#htjì†r™#jsj¿†rš#jŸj5†r›#j©jq†rœ#htj{†r#jsj¿†rž#j-XIntegerrŸ#†r #htjÆr¡#jsj2†r¢#jXvarr£#†r¤#jsX
  r¥#†r¦#hŒXMaxPosToSearchr§#†r¨#htjÕ†r©#jsj¿†rª#hŒX	LenSubStrr«#†r¬#htjÕ†r­#jsj¿†r®#hŒj†r¯#htj{†r°#jsj¿†r±#j-XIntegerr²#†r³#htjÆr´#jsj2†rµ#jXbeginr¶#†r·#jsX
  r¸#†r¹#jXifrº#†r»#jsj¿†r¼#hŒXSubStrr½#†r¾#jsj¿†r¿#htjì†rÀ#jsj¿†rÁ#jÁjJ†rÂ#jÁjJ†rÃ#jsj¿†rÄ#jXthenrÅ#†rÆ#jsj¿†rÇ#jXbeginrÈ#†rÉ#jsX
    rÊ#†rË#jJXResultrÌ#†rÍ#jsj¿†rÎ#htj{†rÏ#htjì†rÐ#jsj¿†rÑ#jŸj®†rÒ#htjÆrÓ#jsX
  rÔ#†rÕ#jXExitrÖ#†r×#htjÆrØ#jsj¿†rÙ#jXendrÚ#†rÛ#htjÆrÜ#jsX

  rÝ#†rÞ#jXifrß#†rà#jsj¿†rá#hŒXOffsetrâ#†rã#jsj¿†rä#htj†rå#jsj¿†ræ#jŸj5†rç#jsj¿†rè#jXthenré#†rê#jsX
    rë#†rì#jJXResultrí#†rî#jsj¿†rï#htj{†rð#htjì†rñ#jsj¿†rò#jŸj5†ró#jsX
  rô#†rõ#jXelserö#†r÷#jsX
    rø#†rù#jJXResultrú#†rû#jsj¿†rü#htj{†rý#htjì†rþ#jsj¿†rÿ#hŒXOffsetr$†r$htjÆr$jsX

  r$†r$hŒX	LenSubStrr$†r$jsj¿†r$htj{†r$htjì†r	$jsj¿†r
$jEXLengthr$†r$j©jm†r
$hŒXSubStrr$†r$j©jq†r$htjÆr$jsX
  r$†r$hŒXMaxPosToSearchr$†r$jsj¿†r$htj{†r$htjì†r$jsj¿†r$jEXLengthr$†r$j©jm†r$hŒjé†r$j©jq†r$jsj¿†r$htjR†r $jsj¿†r!$hŒX	LenSubStrr"$†r#$jsj¿†r$$htjÆr%$jsj¿†r&$jŸj5†r'$htjÆr($jsX

  r)$†r*$jXwhiler+$†r,$jsj¿†r-$jJXResultr.$†r/$jsj¿†r0$htj†r1$htjì†r2$jsj¿†r3$hŒXMaxPosToSearchr4$†r5$jsj¿†r6$jXdor7$†r8$jsj¿†r9$jXbeginr:$†r;$jsX
    r<$†r=$jXifr>$†r?$jsj¿†r@$hŒjé†rA$j©j'†rB$jJXResultrC$†rD$j©j/†rE$jsj¿†rF$htjì†rG$jsj¿†rH$hŒXSubStrrI$†rJ$j©j'†rK$jŸj5†rL$j©j/†rM$jsj¿†rN$jXthenrO$†rP$jsj¿†rQ$jXbeginrR$†rS$jsX
      rT$†rU$hŒj†rV$jsj¿†rW$htj{†rX$htjì†rY$jsj¿†rZ$jŸj5†r[$htjÆr\$jsX

      r]$†r^$jXwhiler_$†r`$jsj¿†ra$j©jm†rb$hŒj†rc$jsj¿†rd$htj†re$jsj¿†rf$hŒX	LenSubStrrg$†rh$j©jq†ri$jsX
       rj$†rk$jXandrl$†rm$jsj¿†rn$j©jm†ro$hŒjé†rp$j©j'†rq$jJXResultrr$†rs$jsj¿†rt$htjÆru$jsj¿†rv$hŒj†rw$j©j/†rx$jsj¿†ry$htjì†rz$jsj¿†r{$hŒXSubStrr|$†r}$j©j'†r~$hŒj†r$jsj¿†r€$htjÆr$jsj¿†r‚$jŸj5†rƒ$j©X])r„$†r…$jsj¿†r†$jXdor‡$†rˆ$jsX	
        r‰$†rŠ$jEXIncr‹$†rŒ$j©jm†r$hŒj†rŽ$j©jq†r$htjÆr$jsX

      r‘$†r’$jXifr“$†r”$jsj¿†r•$hŒj†r–$jsj¿†r—$htjì†r˜$jsj¿†r™$hŒX	LenSubStrrš$†r›$jsj¿†rœ$jXthenr$†rž$jsX	
        rŸ$†r $jXExitr¡$†r¢$htjÆr£$jsX
    r¤$†r¥$jXendr¦$†r§$htjÆr¨$jsX
    r©$†rª$jEXIncr«$†r¬$j©jm†r­$jJXResultr®$†r¯$j©jq†r°$htjÆr±$jsX
  r²$†r³$jXendr´$†rµ$htjÆr¶$jsX

  r·$†r¸$jJXResultr¹$†rº$jsj¿†r»$htj{†r¼$htjì†r½$jsj¿†r¾$jŸj®†r¿$htjÆrÀ$jsj2†rÁ$jXendrÂ$†rÃ$htjÆrÄ$jsX

rÅ$†rÆ$jXfunctionrÇ$†rÈ$jsj¿†rÉ$jtX	PosExTextrÊ$†rË$j©jm†rÌ$jXconstrÍ$†rÎ$jsj¿†rÏ$hŒXSubStrrÐ$†rÑ$htjÕ†rÒ$jsj¿†rÓ$hŒjé†rÔ$htj{†rÕ$jsj¿†rÖ$jXstringr×$†rØ$htjÆrÙ$jsj¿†rÚ$hŒXOffsetrÛ$†rÜ$htj{†rÝ$jsj¿†rÞ$j-XIntegerrß$†rà$jsj¿†rá$htjì†râ$jsj¿†rã$jŸj5†rä$j©jq†rå$htj{†ræ$jsj¿†rç$j-XIntegerrè$†ré$htjÆrê$jsj2†rë$jXvarrì$†rí$jsX
  rî$†rï$hŒXMaxPosToSearchrð$†rñ$htjÕ†rò$jsj¿†ró$hŒX	LenSubStrrô$†rõ$htjÕ†rö$jsj¿†r÷$hŒj†rø$htj{†rù$jsj¿†rú$j-XIntegerrû$†rü$htjÆrý$jsX

  rþ$†rÿ$jXfunctionr%†r%jsj¿†r%jtXSameCharr%†r%j©jm†r%hŒjš†r%htjÕ†r%jsj¿†r%hŒj:†r	%htj{†r
%jsj¿†r%j-XCharr%†r
%j©jq†r%htj{†r%jsj¿†r%j-XBooleanr%†r%htjÆr%jsX
  r%†r%jXbeginr%†r%jsX
    r%†r%jJXResultr%†r%jsj¿†r%htj{†r%htjì†r%jsj¿†r%jEXUpCaser %†r!%j©jm†r"%hŒjš†r#%j©jq†r$%jsj¿†r%%htjì†r&%jsj¿†r'%jEXUpCaser(%†r)%j©jm†r*%hŒj:†r+%j©jq†r,%jsX
  r-%†r.%jXendr/%†r0%htjÆr1%jsX

r2%†r3%jXbeginr4%†r5%jsX
  r6%†r7%jXifr8%†r9%jsj¿†r:%hŒXSubStrr;%†r<%jsj¿†r=%htjì†r>%jsj¿†r?%jÁjJ†r@%jÁjJ†rA%jsj¿†rB%jXthenrC%†rD%jsj¿†rE%jXbeginrF%†rG%jsX
    rH%†rI%jJXResultrJ%†rK%jsj¿†rL%htj{†rM%htjì†rN%jsj¿†rO%jŸj®†rP%htjÆrQ%jsX
  rR%†rS%jXExitrT%†rU%htjÆrV%jsj¿†rW%jXendrX%†rY%htjÆrZ%jsX

  r[%†r\%jXifr]%†r^%jsj¿†r_%hŒXOffsetr`%†ra%jsj¿†rb%htj†rc%jsj¿†rd%jŸj5†re%jsj¿†rf%jXthenrg%†rh%jsX
    ri%†rj%jJXResultrk%†rl%jsj¿†rm%htj{†rn%htjì†ro%jsj¿†rp%jŸj5†rq%jsX
  rr%†rs%jXelsert%†ru%jsX
    rv%†rw%jJXResultrx%†ry%jsj¿†rz%htj{†r{%htjì†r|%jsj¿†r}%hŒXOffsetr~%†r%htjÆr€%jsX

  r%†r‚%hŒX	LenSubStrrƒ%†r„%jsj¿†r…%htj{†r†%htjì†r‡%jsj¿†rˆ%jEXLengthr‰%†rŠ%j©jm†r‹%hŒXSubStrrŒ%†r%j©jq†rŽ%htjÆr%jsX
  r%†r‘%hŒXMaxPosToSearchr’%†r“%jsj¿†r”%htj{†r•%htjì†r–%jsj¿†r—%jEXLengthr˜%†r™%j©jm†rš%hŒjé†r›%j©jq†rœ%jsj¿†r%htjR†rž%jsj¿†rŸ%hŒX	LenSubStrr %†r¡%jsj¿†r¢%htjÆr£%jsj¿†r¤%jŸj5†r¥%htjÆr¦%jsX

  r§%†r¨%jXwhiler©%†rª%jsj¿†r«%jJXResultr¬%†r­%jsj¿†r®%htj†r¯%htjì†r°%jsj¿†r±%hŒXMaxPosToSearchr²%†r³%jsj¿†r´%jXdorµ%†r¶%jsj¿†r·%jXbeginr¸%†r¹%jsX
    rº%†r»%jXifr¼%†r½%jsj¿†r¾%hŒXSameCharr¿%†rÀ%j©jm†rÁ%hŒjé†rÂ%j©j'†rÃ%jJXResultrÄ%†rÅ%j©j/†rÆ%htjÕ†rÇ%jsj¿†rÈ%hŒXSubStrrÉ%†rÊ%j©j'†rË%jŸj5†rÌ%j©X])rÍ%†rÎ%jsj¿†rÏ%jXthenrÐ%†rÑ%jsj¿†rÒ%jXbeginrÓ%†rÔ%jsX
      rÕ%†rÖ%hŒj†r×%jsj¿†rØ%htj{†rÙ%htjì†rÚ%jsj¿†rÛ%jŸj5†rÜ%htjÆrÝ%jsX

      rÞ%†rß%jXwhilerà%†rá%jsj¿†râ%j©jm†rã%hŒj†rä%jsj¿†rå%htj†ræ%jsj¿†rç%hŒX	LenSubStrrè%†ré%j©jq†rê%jsX
       rë%†rì%jXandrí%†rî%jsj¿†rï%j©jm†rð%hŒXSameCharrñ%†rò%j©jm†ró%hŒjé†rô%j©j'†rõ%jJXResultrö%†r÷%jsj¿†rø%htjÆrù%jsj¿†rú%hŒj†rû%j©j/†rü%htjÕ†rý%jsj¿†rþ%hŒXSubStrrÿ%†r&j©j'†r&hŒj†r&jsj¿†r&htjÆr&jsj¿†r&jŸj5†r&j©X]))r&†r&jsj¿†r	&jXdor
&†r&jsX	
        r&†r
&jEXIncr&†r&j©jm†r&hŒj†r&j©jq†r&htjÆr&jsX

      r&†r&jXifr&†r&jsj¿†r&hŒj†r&jsj¿†r&htjì†r&jsj¿†r&hŒX	LenSubStrr&†r&jsj¿†r&jXthenr &†r!&jsX	
        r"&†r#&jXExitr$&†r%&htjÆr&&jsX
    r'&†r(&jXendr)&†r*&htjÆr+&jsX
    r,&†r-&jEXIncr.&†r/&j©jm†r0&jJXResultr1&†r2&j©jq†r3&htjÆr4&jsX
  r5&†r6&jXendr7&†r8&htjÆr9&jsX

  r:&†r;&jJXResultr<&†r=&jsj¿†r>&htj{†r?&htjì†r@&jsj¿†rA&jŸj®†rB&htjÆrC&jsj2†rD&jXendrE&†rF&htjÆrG&jsX

rH&†rI&jXfunctionrJ&†rK&jsj¿†rL&jtX
PosExAnsiTextrM&†rN&j©jm†rO&jXconstrP&†rQ&jsj¿†rR&hŒXSubStrrS&†rT&htjÕ†rU&jsj¿†rV&hŒjé†rW&htj{†rX&jsj¿†rY&jXstringrZ&†r[&htjÆr\&jsj¿†r]&hŒXOffsetr^&†r_&htj{†r`&jsj¿†ra&j-XIntegerrb&†rc&jsj¿†rd&htjì†re&jsj¿†rf&jŸj5†rg&j©jq†rh&htj{†ri&jsj¿†rj&j-XIntegerrk&†rl&htjÆrm&jsj2†rn&jXvarro&†rp&jsX
  rq&†rr&hŒXMaxPosToSearchrs&†rt&htjÕ†ru&jsj¿†rv&hŒX	LenSubStrrw&†rx&htjÕ†ry&jsj¿†rz&hŒj†r{&htj{†r|&jsj¿†r}&j-XIntegerr~&†r&htjÆr€&jsX

  r&†r‚&jXfunctionrƒ&†r„&jsj¿†r…&jtXSameCharr†&†r‡&j©jm†rˆ&hŒjš†r‰&htjÕ†rŠ&jsj¿†r‹&hŒj:†rŒ&htj{†r&jsj¿†rŽ&j-XCharr&†r&j©jq†r‘&htj{†r’&jsj¿†r“&j-XBooleanr”&†r•&htjÆr–&jsX
  r—&†r˜&jXbeginr™&†rš&jsX
    r›&†rœ&jJXResultr&†rž&jsj¿†rŸ&htj{†r &htjì†r¡&jsj¿†r¢&hŒX	CharLowerr£&†r¤&j©jm†r¥&j-XPCharr¦&†r§&j©jm†r¨&hŒjš†r©&j©X))rª&†r«&jsj¿†r¬&htjì†r­&jsj¿†r®&hŒX	CharLowerr¯&†r°&j©jm†r±&j-XPCharr²&†r³&j©jm†r´&hŒj:†rµ&j©X))r¶&†r·&htjÆr¸&jsX
  r¹&†rº&jXendr»&†r¼&htjÆr½&jsX

r¾&†r¿&jXbeginrÀ&†rÁ&jsX
  rÂ&†rÃ&jXifrÄ&†rÅ&jsj¿†rÆ&hŒXSubStrrÇ&†rÈ&jsj¿†rÉ&htjì†rÊ&jsj¿†rË&jÁjJ†rÌ&jÁjJ†rÍ&jsj¿†rÎ&jXthenrÏ&†rÐ&jsj¿†rÑ&jXbeginrÒ&†rÓ&jsX
    rÔ&†rÕ&jJXResultrÖ&†r×&jsj¿†rØ&htj{†rÙ&htjì†rÚ&jsj¿†rÛ&jŸj®†rÜ&htjÆrÝ&jsX
  rÞ&†rß&jXExitrà&†rá&htjÆrâ&jsj¿†rã&jXendrä&†rå&htjÆræ&jsX

  rç&†rè&jXifré&†rê&jsj¿†rë&hŒXOffsetrì&†rí&jsj¿†rî&htj†rï&jsj¿†rð&jŸj5†rñ&jsj¿†rò&jXthenró&†rô&jsX
    rõ&†rö&jJXResultr÷&†rø&jsj¿†rù&htj{†rú&htjì†rû&jsj¿†rü&jŸj5†rý&jsX
  rþ&†rÿ&jXelser'†r'jsX
    r'†r'jJXResultr'†r'jsj¿†r'htj{†r'htjì†r'jsj¿†r	'hŒXOffsetr
'†r'htjÆr'jsX

  r
'†r'hŒX	LenSubStrr'†r'jsj¿†r'htj{†r'htjì†r'jsj¿†r'jEXLengthr'†r'j©jm†r'hŒXSubStrr'†r'j©jq†r'htjÆr'jsX
  r'†r'hŒXMaxPosToSearchr'†r'jsj¿†r 'htj{†r!'htjì†r"'jsj¿†r#'jEXLengthr$'†r%'j©jm†r&'hŒjé†r''j©jq†r('jsj¿†r)'htjR†r*'jsj¿†r+'hŒX	LenSubStrr,'†r-'jsj¿†r.'htjÆr/'jsj¿†r0'jŸj5†r1'htjÆr2'jsX

  r3'†r4'jXwhiler5'†r6'jsj¿†r7'jJXResultr8'†r9'jsj¿†r:'htj†r;'htjì†r<'jsj¿†r='hŒXMaxPosToSearchr>'†r?'jsj¿†r@'jXdorA'†rB'jsj¿†rC'jXbeginrD'†rE'jsX
    rF'†rG'jXifrH'†rI'jsj¿†rJ'hŒXSameCharrK'†rL'j©jm†rM'hŒjé†rN'j©j'†rO'jJXResultrP'†rQ'j©j/†rR'htjÕ†rS'jsj¿†rT'hŒXSubStrrU'†rV'j©j'†rW'jŸj5†rX'j©X])rY'†rZ'jsj¿†r['jXthenr\'†r]'jsj¿†r^'jXbeginr_'†r`'jsX
      ra'†rb'hŒj†rc'jsj¿†rd'htj{†re'htjì†rf'jsj¿†rg'jŸj5†rh'htjÆri'jsX

      rj'†rk'jXwhilerl'†rm'jsj¿†rn'j©jm†ro'hŒj†rp'jsj¿†rq'htj†rr'jsj¿†rs'hŒX	LenSubStrrt'†ru'j©jq†rv'jsX
       rw'†rx'jXandry'†rz'jsj¿†r{'j©jm†r|'hŒXSameCharr}'†r~'j©jm†r'hŒjé†r€'j©j'†r'jJXResultr‚'†rƒ'jsj¿†r„'htjÆr…'jsj¿†r†'hŒj†r‡'j©j/†rˆ'htjÕ†r‰'jsj¿†rŠ'hŒXSubStrr‹'†rŒ'j©j'†r'hŒj†rŽ'jsj¿†r'htjÆr'jsj¿†r‘'jŸj5†r’'j©X]))r“'†r”'jsj¿†r•'jXdor–'†r—'jsX	
        r˜'†r™'jEXIncrš'†r›'j©jm†rœ'hŒj†r'j©jq†rž'htjÆrŸ'jsX

      r '†r¡'jXifr¢'†r£'jsj¿†r¤'hŒj†r¥'jsj¿†r¦'htjì†r§'jsj¿†r¨'hŒX	LenSubStrr©'†rª'jsj¿†r«'jXthenr¬'†r­'jsX	
        r®'†r¯'jXExitr°'†r±'htjÆr²'jsX
    r³'†r´'jXendrµ'†r¶'htjÆr·'jsX
    r¸'†r¹'jEXIncrº'†r»'j©jm†r¼'jJXResultr½'†r¾'j©jq†r¿'htjÆrÀ'jsX
  rÁ'†rÂ'jXendrÃ'†rÄ'htjÆrÅ'jsX

  rÆ'†rÇ'jJXResultrÈ'†rÉ'jsj¿†rÊ'htj{†rË'htjì†rÌ'jsj¿†rÍ'jŸj®†rÎ'htjÆrÏ'jsj2†rÐ'jXendrÑ'†rÒ'htjÆrÓ'jsX

rÔ'†rÕ'jXfunctionrÖ'†r×'jsj¿†rØ'jtX	UntilCharrÙ'†rÚ'j©jm†rÛ'jXconstrÜ'†rÝ'jsj¿†rÞ'hŒjé†rß'htj{†rà'jsj¿†rá'jXstringrâ'†rã'htjÆrä'jsj¿†rå'hŒXBrakeræ'†rç'htj{†rè'jsj¿†ré'j-XCharrê'†rë'j©jq†rì'htj{†rí'jsj¿†rî'jXstringrï'†rð'htjÆrñ'jsj2†rò'jXvarró'†rô'jsX
  rõ'†rö'hŒXpr÷'†rø'htj{†rù'jsj¿†rú'j-XIntegerrû'†rü'htjÆrý'jsj2†rþ'jXbeginrÿ'†r(jsX
  r(†r(hŒj÷'†r(jsj¿†r(htj{†r(htjì†r(jsj¿†r(hŒXCharPosr(†r	(j©jm†r
(hŒXBraker(†r(htjÕ†r
(jsj¿†r(hŒjé†r(j©jq†r(htjÆr(jsX

  r(†r(jXifr(†r(jsj¿†r(hŒj÷'†r(jsj¿†r(htj‡†r(jsj¿†r(jŸj®†r(jsj¿†r(jXthenr(†r(jsX
    r(†r (jJXResultr!(†r"(jsj¿†r#(htj{†r$(htjì†r%(jsj¿†r&(jEXCopyr'(†r((j©jm†r)(hŒjé†r*(htjÕ†r+(jsj¿†r,(jŸj5†r-(htjÕ†r.(jsj¿†r/(hŒj÷'†r0(jsj¿†r1(htjR†r2(jsj¿†r3(jŸj5†r4(j©jq†r5(jsX
  r6(†r7(jXelser8(†r9(jsX
    r:(†r;(jJXResultr<(†r=(jsj¿†r>(htj{†r?(htjì†r@(jsj¿†rA(hŒjé†rB(htjÆrC(jsj2†rD(jXendrE(†rF(htjÆrG(jsX

rH(†rI(jXfunctionrJ(†rK(jsj¿†rL(jtX	UntilCharrM(†rN(j©jm†rO(jXconstrP(†rQ(jsj¿†rR(hŒjé†rS(htj{†rT(jsj¿†rU(jXstringrV(†rW(htjÆrX(jsj¿†rY(hŒXBrakerZ(†r[(htj{†r\(jsj¿†r](hŒXTCharSetr^(†r_(j©jq†r`(htj{†ra(e(jsj¿†rb(jXstringrc(†rd(htjÆre(jsj2†rf(jXvarrg(†rh(jsX
  ri(†rj(hŒj÷'†rk(htj{†rl(jsj¿†rm(j-XIntegerrn(†ro(htjÆrp(jsj2†rq(jXbeginrr(†rs(jsX
  rt(†ru(jJXResultrv(†rw(jsj¿†rx(htj{†ry(htjì†rz(jsj¿†r{(jÁjJ†r|(jÁjJ†r}(htjÆr~(jsX
  r(†r€(hŒj÷'†r(jsj¿†r‚(htj{†rƒ(htjì†r„(jsj¿†r…(hŒXCharPosr†(†r‡(j©jm†rˆ(hŒXBraker‰(†rŠ(htjÕ†r‹(jsj¿†rŒ(hŒjé†r(j©jq†rŽ(htjÆr(jsX

  r(†r‘(jXifr’(†r“(jsj¿†r”(hŒj÷'†r•(jsj¿†r–(htj‡†r—(jsj¿†r˜(jŸj®†r™(jsj¿†rš(jXthenr›(†rœ(jsX
    r(†rž(jJXResultrŸ(†r (jsj¿†r¡(htj{†r¢(htjì†r£(jsj¿†r¤(jEXCopyr¥(†r¦(j©jm†r§(hŒjé†r¨(htjÕ†r©(jsj¿†rª(jŸj5†r«(htjÕ†r¬(jsj¿†r­(hŒj÷'†r®(jsj¿†r¯(htjR†r°(jsj¿†r±(jŸj5†r²(j©jq†r³(jsX
  r´(†rµ(jXelser¶(†r·(jsX
    r¸(†r¹(jJXResultrº(†r»(jsj¿†r¼(htj{†r½(htjì†r¾(jsj¿†r¿(hŒjé†rÀ(htjÆrÁ(jsj2†rÂ(jXendrÃ(†rÄ(htjÆrÅ(jsX

rÆ(†rÇ(jXfunctionrÈ(†rÉ(jsj¿†rÊ(jtX
UntilLastCharrË(†rÌ(j©jm†rÍ(jXconstrÎ(†rÏ(jsj¿†rÐ(hŒjé†rÑ(htj{†rÒ(jsj¿†rÓ(jXstringrÔ(†rÕ(htjÆrÖ(jsj¿†r×(hŒXBrakerØ(†rÙ(htj{†rÚ(jsj¿†rÛ(j-XCharrÜ(†rÝ(htjÆrÞ(jsX
  rß(†rà(hŒX
IgnoreNoBrakerá(†râ(htj{†rã(jsj¿†rä(j-XBooleanrå(†ræ(jsj¿†rç(htjì†rè(jsj¿†ré(jXTruerê(†rë(j©jq†rì(htj{†rí(jsj¿†rî(jXstringrï(†rð(htjÆrñ(jsj2†rò(jXvarró(†rô(jsX
  rõ(†rö(hŒj÷'†r÷(htj{†rø(jsj¿†rù(j-XIntegerrú(†rû(htjÆrü(jsj2†rý(jXbeginrþ(†rÿ(jsX
  r)†r)jJXResultr)†r)jsj¿†r)htj{†r)htjì†r)jsj¿†r)jÁjJ†r)jÁjJ†r	)htjÆr
)jsX
  r)†r)hŒj÷'†r
)jsj¿†r)htj{†r)htjì†r)jsj¿†r)hŒXCharPosRr)†r)j©jm†r)hŒXBraker)†r)htjÕ†r)jsj¿†r)hŒjé†r)j©jq†r)htjÆr)jsX

  r)†r)jXifr)†r)jsj¿†r )hŒj÷'†r!)jsj¿†r")htj‡†r#)jsj¿†r$)jŸj®†r%)jsj¿†r&)jXthenr')†r()jsX
    r))†r*)jJXResultr+)†r,)jsj¿†r-)htj{†r.)htjì†r/)jsj¿†r0)jEXCopyr1)†r2)j©jm†r3)hŒjé†r4)htjÕ†r5)jsj¿†r6)jŸj5†r7)htjÕ†r8)jsj¿†r9)hŒj÷'†r:)jsj¿†r;)htjR†r<)jsj¿†r=)jŸj5†r>)j©jq†r?)jsX
  r@)†rA)jXelserB)†rC)jsj¿†rD)jXifrE)†rF)jsj¿†rG)hŒX
IgnoreNoBrakerH)†rI)jsj¿†rJ)jXthenrK)†rL)jsX
    rM)†rN)jJXResultrO)†rP)jsj¿†rQ)htj{†rR)htjì†rS)jsj¿†rT)hŒjé†rU)htjÆrV)jsj2†rW)jXendrX)†rY)htjÆrZ)jsX

r[)†r\)jXfunctionr])†r^)jsj¿†r_)jtXFromCharr`)†ra)j©jm†rb)jXconstrc)†rd)jsj¿†re)hŒjé†rf)htj{†rg)jsj¿†rh)jXstringri)†rj)htjÆrk)jsj¿†rl)hŒXBrakerm)†rn)htj{†ro)jsj¿†rp)j-XCharrq)†rr)j©jq†rs)htj{†rt)jsj¿†ru)jXstringrv)†rw)htjÆrx)jsj2†ry)jXvarrz)†r{)jsX
  r|)†r})hŒj÷'†r~)htj{†r)jsj¿†r€)j-XIntegerr)†r‚)htjÆrƒ)jsj2†r„)jXbeginr…)†r†)jsX
  r‡)†rˆ)jJXResultr‰)†rŠ)jsj¿†r‹)htj{†rŒ)htjì†r)jsj¿†rŽ)jÁjJ†r)jÁjJ†r)htjÆr‘)jsX
  r’)†r“)hŒj÷'†r”)jsj¿†r•)htj{†r–)htjì†r—)jsj¿†r˜)hŒXCharPosr™)†rš)j©jm†r›)hŒXBrakerœ)†r)htjÕ†rž)jsj¿†rŸ)hŒjé†r )j©jq†r¡)htjÆr¢)jsX

  r£)†r¤)jXifr¥)†r¦)jsj¿†r§)hŒj÷'†r¨)jsj¿†r©)htj‡†rª)jsj¿†r«)jŸj®†r¬)jsj¿†r­)jXthenr®)†r¯)jsX
    r°)†r±)jJXResultr²)†r³)jsj¿†r´)htj{†rµ)htjì†r¶)jsj¿†r·)jEXCopyr¸)†r¹)j©jm†rº)hŒjé†r»)htjÕ†r¼)jsj¿†r½)hŒj÷'†r¾)jsj¿†r¿)htjÆrÀ)jsj¿†rÁ)jŸj5†rÂ)htjÕ†rÃ)jsj¿†rÄ)jEXLengthrÅ)†rÆ)j©jm†rÇ)hŒjé†rÈ)j©jq†rÉ)jsj¿†rÊ)htjR†rË)jsj¿†rÌ)hŒj÷'†rÍ)j©jq†rÎ)htjÆrÏ)jsj2†rÐ)jXendrÑ)†rÒ)htjÆrÓ)jsX

rÔ)†rÕ)jXfunctionrÖ)†r×)jsj¿†rØ)jtXFromCharrÙ)†rÚ)j©jm†rÛ)jXconstrÜ)†rÝ)jsj¿†rÞ)hŒjé†rß)htj{†rà)jsj¿†rá)jXstringrâ)†rã)htjÆrä)jsj¿†rå)hŒXBrakeræ)†rç)htj{†rè)jsj¿†ré)hŒXTCharSetrê)†rë)j©jq†rì)htj{†rí)jsj¿†rî)jXstringrï)†rð)htjÆrñ)jsj2†rò)jXvarró)†rô)jsX
  rõ)†rö)hŒj÷'†r÷)htj{†rø)jsj¿†rù)j-XIntegerrú)†rû)htjÆrü)jsj2†rý)jXbeginrþ)†rÿ)jsX
  r*†r*jJXResultr*†r*jsj¿†r*htj{†r*htjì†r*jsj¿†r*jÁjJ†r*jÁjJ†r	*htjÆr
*jsX
  r*†r*hŒj÷'†r
*jsj¿†r*htj{†r*htjì†r*jsj¿†r*hŒXCharPosr*†r*j©jm†r*hŒXBraker*†r*htjÕ†r*jsj¿†r*hŒjé†r*j©jq†r*htjÆr*jsX

  r*†r*jXifr*†r*jsj¿†r *hŒj÷'†r!*jsj¿†r"*htj‡†r#*jsj¿†r$*jŸj®†r%*jsj¿†r&*jXthenr'*†r(*jsX
    r)*†r**jJXResultr+*†r,*jsj¿†r-*htj{†r.*htjì†r/*jsj¿†r0*jEXCopyr1*†r2*j©jm†r3*hŒjé†r4*htjÕ†r5*jsj¿†r6*hŒj÷'†r7*jsj¿†r8*htjÆr9*jsj¿†r:*jŸj5†r;*htjÕ†r<*jsj¿†r=*jEXLengthr>*†r?*j©jm†r@*hŒjé†rA*j©jq†rB*jsj¿†rC*htjR†rD*jsj¿†rE*hŒj÷'†rF*j©jq†rG*htjÆrH*jsj2†rI*jXendrJ*†rK*htjÆrL*jsX

rM*†rN*jXfunctionrO*†rP*jsj¿†rQ*jtXFromLastCharrR*†rS*j©jm†rT*jXconstrU*†rV*jsj¿†rW*hŒjé†rX*htj{†rY*jsj¿†rZ*jXstringr[*†r\*htjÆr]*jsj¿†r^*hŒXBraker_*†r`*htj{†ra*jsj¿†rb*j-XCharrc*†rd*htjÆre*jsX
  rf*†rg*hŒX
IgnoreNoBrakerh*†ri*htj{†rj*jsj¿†rk*j-XBooleanrl*†rm*jsj¿†rn*htjì†ro*jsj¿†rp*jXFalserq*†rr*j©jq†rs*htj{†rt*jsj¿†ru*jXstringrv*†rw*htjÆrx*jsj2†ry*jXvarrz*†r{*jsX
  r|*†r}*hŒj÷'†r~*htj{†r*jsj¿†r€*j-XIntegerr*†r‚*htjÆrƒ*jsj2†r„*jXbeginr…*†r†*jsX
  r‡*†rˆ*jJXResultr‰*†rŠ*jsj¿†r‹*htj{†rŒ*htjì†r*jsj¿†rŽ*jÁjJ†r*jÁjJ†r*htjÆr‘*jsX
  r’*†r“*hŒj÷'†r”*jsj¿†r•*htj{†r–*htjì†r—*jsj¿†r˜*hŒXCharPosRr™*†rš*j©jm†r›*hŒXBrakerœ*†r*htjÕ†rž*jsj¿†rŸ*hŒjé†r *j©jq†r¡*htjÆr¢*jsX

  r£*†r¤*jXifr¥*†r¦*jsj¿†r§*hŒj÷'†r¨*jsj¿†r©*htj‡†rª*jsj¿†r«*jŸj®†r¬*jsj¿†r­*jXthenr®*†r¯*jsX
    r°*†r±*jJXResultr²*†r³*jsj¿†r´*htj{†rµ*htjì†r¶*jsj¿†r·*jEXCopyr¸*†r¹*j©jm†rº*hŒjé†r»*htjÕ†r¼*jsj¿†r½*hŒj÷'†r¾*jsj¿†r¿*htjÆrÀ*jsj¿†rÁ*jŸj5†rÂ*htjÕ†rÃ*jsj¿†rÄ*jEXLengthrÅ*†rÆ*j©jm†rÇ*hŒjé†rÈ*j©jq†rÉ*jsj¿†rÊ*htjR†rË*jsj¿†rÌ*hŒj÷'†rÍ*j©jq†rÎ*jsX
  rÏ*†rÐ*jXelserÑ*†rÒ*jsj¿†rÓ*jXifrÔ*†rÕ*jsj¿†rÖ*hŒX
IgnoreNoBraker×*†rØ*jsj¿†rÙ*jXthenrÚ*†rÛ*jsX
    rÜ*†rÝ*jJXResultrÞ*†rß*jsj¿†rà*htj{†rá*htjì†râ*jsj¿†rã*hŒjé†rä*htjÆrå*jsj2†ræ*jXendrç*†rè*htjÆré*jsX

rê*†rë*jXfunctionrì*†rí*jsj¿†rî*jtXBetweenCharsrï*†rð*j©jm†rñ*jXconstrò*†ró*jsj¿†rô*hŒjé†rõ*htj{†rö*jsj¿†r÷*jXstringrø*†rù*htjÆrú*jsj¿†rû*hŒXStartrü*†rý*htjÕ†rþ*jsj¿†rÿ*hŒXFinishr+†r+htj{†r+jsj¿†r+j-XCharr+†r+htjÆr+jsX
  r+†r+hŒX	Inclusiver	+†r
+htj{†r+jsj¿†r+j-XBooleanr
+†r+jsj¿†r+htjì†r+jsj¿†r+jXFalser+†r+j©jq†r+htj{†r+jsj¿†r+jXstringr+†r+htjÆr+jsj2†r+jXvarr+†r+jsX
  r+†r+hŒj÷'†r+htjÕ†r +jsj¿†r!+hŒXfinr"+†r#+htj{†r$+jsj¿†r%+j-XIntegerr&+†r'+htjÆr(+jsj2†r)+jXbeginr*+†r++jsX
  r,+†r-+jJXResultr.+†r/+jsj¿†r0+htj{†r1+htjì†r2+jsj¿†r3+jÁjJ†r4+jÁjJ†r5+htjÆr6+jsX

  r7+†r8+hŒj÷'†r9+jsj¿†r:+htj{†r;+htjì†r<+jsj¿†r=+hŒXCharPosr>+†r?+j©jm†r@+hŒXStartrA+†rB+htjÕ†rC+jsj¿†rD+hŒjé†rE+j©jq†rF+htjÆrG+jsX
  rH+†rI+jXifrJ+†rK+jsj¿†rL+hŒj÷'†rM+jsj¿†rN+htjì†rO+jsj¿†rP+jŸj®†rQ+jsj¿†rR+jXthenrS+†rT+jsX
    rU+†rV+jXExitrW+†rX+htjÆrY+jsX

  rZ+†r[+hŒXfinr\+†r]+jsj¿†r^+htj{†r_+htjì†r`+jsj¿†ra+hŒXCharPosrb+†rc+j©jm†rd+hŒXFinishre+†rf+htjÕ†rg+jsj¿†rh+hŒjé†ri+htjÕ†rj+jsj¿†rk+hŒj÷'†rl+jsj¿†rm+htjÆrn+jsj¿†ro+jŸj5†rp+j©jq†rq+htjÆrr+jsX
  rs+†rt+jXifru+†rv+jsj¿†rw+hŒXfinrx+†ry+jsj¿†rz+htjì†r{+jsj¿†r|+jŸj®†r}+jsj¿†r~+jXthenr+†r€+jsX
    r+†r‚+jXExitrƒ+†r„+htjÆr…+jsX

  r†+†r‡+jXifrˆ+†r‰+jsj¿†rŠ+jXnotr‹+†rŒ+jsj¿†r+hŒX	InclusiverŽ+†r+jsj¿†r+jXthenr‘+†r’+jsj¿†r“+jXbeginr”+†r•+jsX
    r–+†r—+jEXIncr˜+†r™+j©jm†rš+hŒj÷'†r›+j©jq†rœ+htjÆr+jsX
    rž+†rŸ+jEXDecr +†r¡+j©jm†r¢+hŒXfinr£+†r¤+j©jq†r¥+htjÆr¦+jsX
  r§+†r¨+jXendr©+†rª+htjÆr«+jsX

  r¬+†r­+jJXResultr®+†r¯+jsj¿†r°+htj{†r±+htjì†r²+jsj¿†r³+jEXCopyr´+†rµ+j©jm†r¶+hŒjé†r·+htjÕ†r¸+jsj¿†r¹+hŒj÷'†rº+htjÕ†r»+jsj¿†r¼+hŒXfinr½+†r¾+jsj¿†r¿+htjR†rÀ+jsj¿†rÁ+hŒj÷'†rÂ+jsj¿†rÃ+htjÆrÄ+jsj¿†rÅ+jŸj5†rÆ+j©jq†rÇ+htjÆrÈ+jsj2†rÉ+jXendrÊ+†rË+htjÆrÌ+jsX

rÍ+†rÎ+jXfunctionrÏ+†rÐ+jsj¿†rÑ+jtXUntilStrrÒ+†rÓ+j©jm†rÔ+jXconstrÕ+†rÖ+jsj¿†r×+hŒjé†rØ+htj{†rÙ+jsj¿†rÚ+jXstringrÛ+†rÜ+htjÆrÝ+jsj¿†rÞ+hŒXBrakerß+†rà+htj{†rá+jsj¿†râ+jXstringrã+†rä+j©jq†rå+htj{†ræ+jsj¿†rç+jXstringrè+†ré+htjÆrê+jsj2†rë+jXvarrì+†rí+jsX
  rî+†rï+hŒj÷'†rð+htj{†rñ+jsj¿†rò+j-XIntegerró+†rô+htjÆrõ+jsj2†rö+jXbeginr÷+†rø+jsX
  rù+†rú+jXifrû+†rü+jsj¿†rý+jEXLengthrþ+†rÿ+j©jm†r,hŒXBraker,†r,j©jq†r,jsj¿†r,htjì†r,jsj¿†r,jŸj5†r,jsj¿†r,jXthenr	,†r
,jsj¿†r,jXbeginr,†r
,jsX
    r,†r,jJXResultr,†r,jsj¿†r,htj{†r,htjì†r,jsj¿†r,hŒX	UntilCharr,†r,j©jm†r,hŒjé†r,htjÕ†r,jsj¿†r,hŒXBraker,†r,j©j'†r,jŸj5†r,j©X])r ,†r!,htjÆr",jsX
  r#,†r$,jXExitr%,†r&,htjÆr',jsj¿†r(,jXendr),†r*,htjÆr+,jsX

  r,,†r-,hŒj÷'†r.,jsj¿†r/,htj{†r0,htjì†r1,jsj¿†r2,hŒXPosExr3,†r4,j©jm†r5,hŒXBraker6,†r7,htjÕ†r8,jsj¿†r9,hŒjé†r:,j©jq†r;,htjÆr<,jsX

  r=,†r>,jXifr?,†r@,jsj¿†rA,hŒj÷'†rB,jsj¿†rC,htj‡†rD,jsj¿†rE,jŸj®†rF,jsj¿†rG,jXthenrH,†rI,jsX
    rJ,†rK,jJXResultrL,†rM,jsj¿†rN,htj{†rO,htjì†rP,jsj¿†rQ,jEXCopyrR,†rS,j©jm†rT,hŒjé†rU,htjÕ†rV,jsj¿†rW,jŸj5†rX,htjÕ†rY,jsj¿†rZ,hŒj÷'†r[,jsj¿†r\,htjR†r],jsj¿†r^,jŸj5†r_,j©jq†r`,jsX
  ra,†rb,jXelserc,†rd,jsX
    re,†rf,jJXResultrg,†rh,jsj¿†ri,htj{†rj,htjì†rk,jsj¿†rl,hŒjé†rm,htjÆrn,jsj2†ro,jXendrp,†rq,htjÆrr,jsX

rs,†rt,jXfunctionru,†rv,jsj¿†rw,jtXFromStrrx,†ry,j©jm†rz,jXconstr{,†r|,jsj¿†r},hŒjé†r~,htj{†r,jsj¿†r€,jXstringr,†r‚,htjÆrƒ,jsj¿†r„,hŒXBraker…,†r†,htj{†r‡,jsj¿†rˆ,jXstringr‰,†rŠ,j©jq†r‹,htj{†rŒ,jsj¿†r,jXstringrŽ,†r,htjÆr,jsj2†r‘,jXvarr’,†r“,jsX
  r”,†r•,hŒj÷'†r–,htj{†r—,jsj¿†r˜,j-XIntegerr™,†rš,htjÆr›,jsj2†rœ,jXbeginr,†rž,jsX
  rŸ,†r ,jXifr¡,†r¢,jsj¿†r£,jEXLengthr¤,†r¥,j©jm†r¦,hŒXBraker§,†r¨,j©jq†r©,jsj¿†rª,htjì†r«,jsj¿†r¬,jŸj5†r­,jsj¿†r®,jXthenr¯,†r°,jsj¿†r±,jXbeginr²,†r³,jsX
    r´,†rµ,jJXResultr¶,†r·,jsj¿†r¸,htj{†r¹,htjì†rº,jsj¿†r»,hŒXFromCharr¼,†r½,j©jm†r¾,hŒjé†r¿,htjÕ†rÀ,jsj¿†rÁ,hŒXBrakerÂ,†rÃ,j©j'†rÄ,jŸj5†rÅ,j©X])rÆ,†rÇ,htjÆrÈ,jsX
  rÉ,†rÊ,jXExitrË,†rÌ,htjÆrÍ,jsj¿†rÎ,jXendrÏ,†rÐ,htjÆrÑ,jsX

  rÒ,†rÓ,jJXResultrÔ,†rÕ,jsj¿†rÖ,htj{†r×,htjì†rØ,jsj¿†rÙ,jÁjJ†rÚ,jÁjJ†rÛ,htjÆrÜ,jsX
  rÝ,†rÞ,hŒj÷'†rß,jsj¿†rà,htj{†rá,htjì†râ,jsj¿†rã,hŒXPosExrä,†rå,j©jm†ræ,hŒXBrakerç,†rè,htjÕ†ré,jsj¿†rê,hŒj£†rë,j©jq†rì,htjÆrí,jsX

  rî,†rï,jXifrð,†rñ,jsj¿†rò,hŒj÷'†ró,jsj¿†rô,htj‡†rõ,jsj¿†rö,jŸj®†r÷,jsj¿†rø,jXthenrù,†rú,jsj¿†rû,jXbeginrü,†rý,jsX
    rþ,†rÿ,jEXIncr-†r-j©jm†r-hŒj÷'†r-htjÕ†r-jsj¿†r-jEXLengthr-†r-j©jm†r-hŒXBraker	-†r
-j©X))r-†r-htjÆr
-jsX
    r-†r-jJXResultr-†r-jsj¿†r-htj{†r-htjì†r-jsj¿†r-jEXCopyr-†r-j©jm†r-hŒjé†r-htjÕ†r-jsj¿†r-hŒj÷'†r-htjÕ†r-jsj¿†r-jEXLengthr-†r -j©jm†r!-hŒjé†r"-j©jq†r#-jsj¿†r$-htjR†r%-jsj¿†r&-hŒj÷'†r'-jsj¿†r(-htjÆr)-jsj¿†r*-jŸj5†r+-j©jq†r,-htjÆr--jsX
  r.-†r/-jXendr0-†r1-htjÆr2-jsj2†r3-jXendr4-†r5-htjÆr6-jsX

r7-†r8-jXfunctionr9-†r:-jsj¿†r;-jtX
StringWrapr<-†r=-j©jm†r>-jXconstr?-†r@-jsj¿†rA-hŒjé†rB-htj{†rC-jsj¿†rD-jXstringrE-†rF-htjÆrG-jsj¿†rH-hŒXWidthrI-†rJ-htj{†rK-jsj¿†rL-j-XIntegerrM-†rN-htjÆrO-jsj¿†rP-jXconstrQ-†rR-jsj¿†rS-hŒXLineEndrT-†rU-htj{†rV-jsj¿†rW-jXstringrX-†rY-jsj¿†rZ-htjì†r[-jsj¿†r\-hŒXEOLr]-†r^-j©jq†r_-htj{†r`-jsj¿†ra-jXstringrb-†rc-htjÆrd-jsj2†re-jXvarrf-†rg-jsX
  rh-†ri-hŒj†rj-htj{†rk-jsj¿†rl-j-XIntegerrm-†rn-htjÆro-jsj2†rp-jXbeginrq-†rr-jsX
  rs-†rt-jJXResultru-†rv-jsj¿†rw-htj{†rx-e(htjì†ry-jsj¿†rz-jÁjJ†r{-jÁjJ†r|-htjÆr}-jsX
  r~-†r-jXifr€-†r-jsj¿†r‚-j©jm†rƒ-hŒjé†r„-jsj¿†r…-htjì†r†-jsj¿†r‡-jÁjJ†rˆ-jÁjJ†r‰-j©jq†rŠ-jsj¿†r‹-jXorrŒ-†r-jsj¿†rŽ-j©jm†r-hŒXWidthr-†r‘-jsj¿†r’-htj†r“-jsj¿†r”-jŸj5†r•-j©jq†r–-jsj¿†r—-jXthenr˜-†r™-jsX
    rš-†r›-jXExitrœ-†r-htjÆrž-jsX

  rŸ-†r -hŒj†r¡-jsj¿†r¢-htj{†r£-htjì†r¤-jsj¿†r¥-jŸj5†r¦-htjÆr§-jsX
  r¨-†r©-jXwhilerª-†r«-jsj¿†r¬-jXTruer­-†r®-jsj¿†r¯-jXdor°-†r±-jsj¿†r²-jXbeginr³-†r´-jsX
    rµ-†r¶-jJXResultr·-†r¸-jsj¿†r¹-htj{†rº-htjì†r»-jsj¿†r¼-jJXResultr½-†r¾-jsj¿†r¿-htjÆrÀ-jsj¿†rÁ-jEXCopyrÂ-†rÃ-j©jm†rÄ-hŒjé†rÅ-htjÕ†rÆ-jsj¿†rÇ-hŒj†rÈ-htjÕ†rÉ-jsj¿†rÊ-hŒXWidthrË-†rÌ-j©jq†rÍ-htjÆrÎ-jsX
    rÏ-†rÐ-jEXIncrÑ-†rÒ-j©jm†rÓ-hŒj†rÔ-htjÕ†rÕ-jsj¿†rÖ-hŒXWidthr×-†rØ-j©jq†rÙ-htjÆrÚ-jsX
    rÛ-†rÜ-jXifrÝ-†rÞ-jsj¿†rß-hŒj†rà-jsj¿†rá-htj†râ-htjì†rã-jsj¿†rä-jEXLengthrå-†ræ-j©jm†rç-hŒjé†rè-j©jq†ré-jsj¿†rê-jXthenrë-†rì-jsX
      rí-†rî-jJXResultrï-†rð-jsj¿†rñ-htj{†rò-htjì†ró-jsj¿†rô-jJXResultrõ-†rö-jsj¿†r÷-htjÆrø-jsj¿†rù-hŒXLineEndrú-†rû-jsX
    rü-†rý-jXelserþ-†rÿ-jsX
      r.†r.jXExitr.†r.htjÆr.jsX
  r.†r.jXendr.†r.htjÆr	.jsj2†r
.jXendr.†r.htjÆr
.jsX

r.†r.jXfunctionr.†r.jsj¿†r.jtXSplitr.†r.j©jm†r.jXconstr.†r.jsj¿†r.hŒjé†r.htjÕ†r.jsj¿†r.hŒX	Separatorr.†r.htj{†r.jsj¿†r.jXstringr .†r!.htjÆr".jsj¿†r#.hŒXIgnoreMultiSepr$.†r%.htj{†r&.jsj¿†r'.j-XBooleanr(.†r).jsj¿†r*.htjì†r+.jsj¿†r,.jXTruer-.†r..htjÆr/.jsX
  r0.†r1.hŒXMinCountr2.†r3.htj{†r4.jsj¿†r5.j-XIntegerr6.†r7.jsj¿†r8.htjì†r9.jsj¿†r:.jŸj®†r;.j©jq†r<.htj{†r=.jsj¿†r>.hŒXTStrAr?.†r@.htjÆrA.jsj2†rB.jXvarrC.†rD.jsX
  rE.†rF.hŒj÷'†rG.htjÕ†rH.jsj¿†rI.hŒXfinrJ.†rK.htjÕ†rL.jsj¿†rM.hŒXSepLenrN.†rO.htj{†rP.jsj¿†rQ.j-XIntegerrR.†rS.htjÆrT.jsX

  rU.†rV.jX	procedurerW.†rX.jsj¿†rY.jtXAddrZ.†r[.j©jm†r\.jXconstr].†r^.jsj¿†r_.hŒjé†r`.htj{†ra.jsj¿†rb.jXstringrc.†rd.j©jq†re.htjÆrf.jsX
  rg.†rh.jXbeginri.†rj.jsX
    rk.†rl.jXifrm.†rn.jsj¿†ro.hŒXIgnoreMultiSeprp.†rq.jsj¿†rr.jXandrs.†rt.jsj¿†ru.j©jm†rv.hŒjé†rw.jsj¿†rx.htjì†ry.jsj¿†rz.jÁjJ†r{.jÁjJ†r|.j©jq†r}.jsj¿†r~.jXthenr.†r€.jsX
      r.†r‚.jXExitrƒ.†r„.htjÆr….jsX
    r†.†r‡.jEX	SetLengthrˆ.†r‰.j©jm†rŠ.jJXResultr‹.†rŒ.htjÕ†r.jsj¿†rŽ.jEXLengthr.†r.j©jm†r‘.jJXResultr’.†r“.j©jq†r”.jsj¿†r•.htjÆr–.jsj¿†r—.jŸj5†r˜.j©jq†r™.htjÆrš.jsX
    r›.†rœ.jJXResultr.†rž.j©j'†rŸ.jEXHighr .†r¡.j©jm†r¢.jJXResultr£.†r¤.j©X)]r¥.†r¦.jsj¿†r§.htj{†r¨.htjì†r©.jsj¿†rª.hŒjé†r«.htjÆr¬.jsX
  r­.†r®.jXendr¯.†r°.htjÆr±.jsX

r².†r³.jXbeginr´.†rµ.jsX
  r¶.†r·.jXifr¸.†r¹.jsj¿†rº.hŒjé†r».jsj¿†r¼.htjì†r½.jsj¿†r¾.jÁjJ†r¿.jÁjJ†rÀ.jsj¿†rÁ.jXthenrÂ.†rÃ.jsj¿†rÄ.jXbeginrÅ.†rÆ.jsX
    rÇ.†rÈ.jXifrÉ.†rÊ.jsj¿†rË.jEXLengthrÌ.†rÍ.j©jm†rÎ.jJXResultrÏ.†rÐ.j©jq†rÑ.jsj¿†rÒ.htj†rÓ.jsj¿†rÔ.hŒXMinCountrÕ.†rÖ.jsj¿†r×.jXthenrØ.†rÙ.jsX
      rÚ.†rÛ.jEX	SetLengthrÜ.†rÝ.j©jm†rÞ.jJXResultrß.†rà.htjÕ†rá.jsj¿†râ.hŒXMinCountrã.†rä.j©jq†rå.htjÆræ.jsX
  rç.†rè.jXExitré.†rê.htjÆrë.jsj¿†rì.jXendrí.†rî.htjÆrï.jsX

  rð.†rñ.jJXResultrò.†ró.jsj¿†rô.htj{†rõ.htjì†rö.jsj¿†r÷.jXnilrø.†rù.htjÆrú.jsX
  rû.†rü.hŒXSepLenrý.†rþ.jsj¿†rÿ.htj{†r/htjì†r/jsj¿†r/jEXLengthr/†r/j©jm†r/hŒX	Separatorr/†r/j©jq†r/htjÆr	/jsX

  r
/†r/hŒj÷'†r/jsj¿†r
/htj{†r/htjì†r/jsj¿†r/jŸj5†r/htjÆr/jsX
  r/†r/hŒXfinr/†r/jsj¿†r/htj{†r/htjì†r/jsj¿†r/hŒXPosExr/†r/j©jm†r/hŒX	Separatorr/†r/htjÕ†r /jsj¿†r!/hŒjé†r"/j©jq†r#/htjÆr$/jsX
  r%/†r&/jXwhiler'/†r(/jsj¿†r)/hŒXfinr*/†r+/jsj¿†r,/htj‡†r-/jsj¿†r./jŸj®†r//jsj¿†r0/jXdor1/†r2/jsj¿†r3/jXbeginr4/†r5/jsX
    r6/†r7/hŒXAddr8/†r9/j©jm†r:/jEXCopyr;/†r</j©jm†r=/hŒjé†r>/htjÕ†r?/jsj¿†r@/hŒj÷'†rA/htjÕ†rB/jsj¿†rC/hŒXfinrD/†rE/jsj¿†rF/htjR†rG/jsj¿†rH/hŒj÷'†rI/j©X))rJ/†rK/htjÆrL/jsX
    rM/†rN/hŒj÷'†rO/jsj¿†rP/htj{†rQ/htjì†rR/jsj¿†rS/hŒXfinrT/†rU/jsj¿†rV/htjÆrW/jsj¿†rX/hŒXSepLenrY/†rZ/htjÆr[/jsX
    r\/†r]/hŒXfinr^/†r_/jsj¿†r`/htj{†ra/htjì†rb/jsj¿†rc/hŒXPosExrd/†re/j©jm†rf/hŒX	Separatorrg/†rh/htjÕ†ri/jsj¿†rj/hŒjé†rk/htjÕ†rl/jsj¿†rm/hŒj÷'†rn/j©jq†ro/htjÆrp/jsX
  rq/†rr/jXendrs/†rt/htjÆru/jsX
  rv/†rw/hŒXAddrx/†ry/j©jm†rz/jEXCopyr{/†r|/j©jm†r}/hŒjé†r~/htjÕ†r/jsj¿†r€/hŒj÷'†r/htjÕ†r‚/jsj¿†rƒ/jEXLengthr„/†r…/j©jm†r†/hŒjé†r‡/j©jq†rˆ/jsj¿†r‰/htjR†rŠ/jsj¿†r‹/hŒj÷'†rŒ/jsj¿†r/htjÆrŽ/jsj¿†r/jŸj5†r/j©X))r‘/†r’/htjÆr“/jsX

  r”/†r•/jXifr–/†r—/jsj¿†r˜/jEXLengthr™/†rš/j©jm†r›/jJXResultrœ/†r/j©jq†rž/jsj¿†rŸ/htj†r /jsj¿†r¡/hŒXMinCountr¢/†r£/jsj¿†r¤/jXthenr¥/†r¦/jsX
    r§/†r¨/jEX	SetLengthr©/†rª/j©jm†r«/jJXResultr¬/†r­/htjÕ†r®/jsj¿†r¯/hŒXMinCountr°/†r±/j©jq†r²/htjÆr³/jsj2†r´/jXendrµ/†r¶/htjÆr·/jsX

r¸/†r¹/jX	procedurerº/†r»/jsj¿†r¼/jtXSplitr½/†r¾/j©jm†r¿/jXconstrÀ/†rÁ/jsj¿†rÂ/hŒjé†rÃ/htjÕ†rÄ/jsj¿†rÅ/hŒX	SeparatorrÆ/†rÇ/htj{†rÈ/jsj¿†rÉ/jXstringrÊ/†rË/htjÆrÌ/jsj¿†rÍ/hŒXStringsrÎ/†rÏ/htj{†rÐ/jsj¿†rÑ/hŒXTStringsrÒ/†rÓ/htjÆrÔ/jsX
  rÕ/†rÖ/hŒXIgnoreMultiSepr×/†rØ/htj{†rÙ/jsj¿†rÚ/j-XBooleanrÛ/†rÜ/jsj¿†rÝ/htjì†rÞ/jsj¿†rß/jXTruerà/†rá/j©jq†râ/htjÆrã/jsX 
rä/†rå/jXvarræ/†rç/jsX
  rè/†ré/hŒj÷'†rê/htjÕ†rë/jsj¿†rì/hŒXfinrí/†rî/htjÕ†rï/jsj¿†rð/hŒXSepLenrñ/†rò/htj{†ró/jsj¿†rô/j-XIntegerrõ/†rö/htjÆr÷/jsX

  rø/†rù/jX	procedurerú/†rû/jsj¿†rü/jtXAddrý/†rþ/j©jm†rÿ/jXconstr0†r0jsj¿†r0hŒjé†r0htj{†r0jsj¿†r0jXstringr0†r0j©jq†r0htjÆr	0jsX
  r
0†r0jXbeginr0†r
0jsX
    r0†r0jXifr0†r0jsj¿†r0hŒXIgnoreMultiSepr0†r0jsj¿†r0jXandr0†r0jsj¿†r0j©jm†r0hŒjé†r0jsj¿†r0htjì†r0jsj¿†r0jÁjJ†r0jÁjJ†r0j©jq†r 0jsj¿†r!0jXthenr"0†r#0jsX
      r$0†r%0jXExitr&0†r'0htjÆr(0jsX
    r)0†r*0hŒXStringsr+0†r,0htj~†r-0hŒXAddr.0†r/0j©jm†r00hŒjé†r10j©jq†r20htjÆr30jsX
  r40†r50jXendr60†r70htjÆr80jsX

r90†r:0jXbeginr;0†r<0jsX
  r=0†r>0jXifr?0†r@0jsj¿†rA0hŒjé†rB0jsj¿†rC0htjì†rD0jsj¿†rE0jÁjJ†rF0jÁjJ†rG0jsj¿†rH0jXthenrI0†rJ0jsX
    rK0†rL0jXExitrM0†rN0htjÆrO0jsX

  rP0†rQ0hŒXStringsrR0†rS0htj~†rT0hŒXBeginUpdaterU0†rV0htjÆrW0jsX
  rX0†rY0hŒXSepLenrZ0†r[0jsj¿†r\0htj{†r]0htjì†r^0jsj¿†r_0jEXLengthr`0†ra0j©jm†rb0hŒX	Separatorrc0†rd0j©jq†re0htjÆrf0jsX
  rg0†rh0hŒj÷'†ri0jsj¿†rj0htj{†rk0htjì†rl0jsj¿†rm0jŸj5†rn0htjÆro0jsX
  rp0†rq0hŒXfinrr0†rs0jsj¿†rt0htj{†ru0htjì†rv0jsj¿†rw0hŒXPosExrx0†ry0j©jm†rz0hŒX	Separatorr{0†r|0htjÕ†r}0jsj¿†r~0hŒjé†r0j©jq†r€0htjÆr0jsX
  r‚0†rƒ0jXwhiler„0†r…0jsj¿†r†0hŒXfinr‡0†rˆ0jsj¿†r‰0htj‡†rŠ0jsj¿†r‹0jŸj®†rŒ0jsj¿†r0jXdorŽ0†r0jsj¿†r0jXbeginr‘0†r’0jsX
    r“0†r”0hŒXAddr•0†r–0j©jm†r—0jEXCopyr˜0†r™0j©jm†rš0hŒjé†r›0htjÕ†rœ0jsj¿†r0hŒj÷'†rž0htjÕ†rŸ0jsj¿†r 0hŒXfinr¡0†r¢0jsj¿†r£0htjR†r¤0jsj¿†r¥0hŒj÷'†r¦0j©X))r§0†r¨0htjÆr©0jsX
    rª0†r«0hŒj÷'†r¬0jsj¿†r­0htj{†r®0htjì†r¯0jsj¿†r°0hŒXfinr±0†r²0jsj¿†r³0htjÆr´0jsj¿†rµ0hŒXSepLenr¶0†r·0htjÆr¸0jsX
    r¹0†rº0hŒXfinr»0†r¼0jsj¿†r½0htj{†r¾0htjì†r¿0jsj¿†rÀ0hŒXPosExrÁ0†rÂ0j©jm†rÃ0hŒX	SeparatorrÄ0†rÅ0htjÕ†rÆ0jsj¿†rÇ0hŒjé†rÈ0htjÕ†rÉ0jsj¿†rÊ0hŒj÷'†rË0j©jq†rÌ0htjÆrÍ0jsX
  rÎ0†rÏ0jXendrÐ0†rÑ0htjÆrÒ0jsX
  rÓ0†rÔ0hŒXAddrÕ0†rÖ0j©jm†r×0jEXCopyrØ0†rÙ0j©jm†rÚ0hŒjé†rÛ0htjÕ†rÜ0jsj¿†rÝ0hŒj÷'†rÞ0htjÕ†rß0jsj¿†rà0jEXLengthrá0†râ0j©jm†rã0hŒjé†rä0j©jq†rå0jsj¿†ræ0htjR†rç0jsj¿†rè0hŒj÷'†ré0jsj¿†rê0htjÆrë0jsj¿†rì0jŸj5†rí0j©X))rî0†rï0htjÆrð0jsX
  rñ0†rò0hŒXStringsró0†rô0htj~†rõ0hŒX	EndUpdaterö0†r÷0htjÆrø0jsj2†rù0jXendrú0†rû0htjÆrü0jsX

rý0†rþ0jXfunctionrÿ0†r1jsj¿†r1jtXSplitr1†r1j©jm†r1jXconstr1†r1jsj¿†r1hŒjé†r1htj{†r	1jsj¿†r
1jXstringr1†r1htjÆr
1jsj¿†r1hŒX
Separatorsr1†r1htj{†r1jsj¿†r1hŒXTCharSetr1†r1htjÆr1jsX
  r1†r1hŒXIgnoreMultiSepr1†r1htj{†r1jsj¿†r1j-XBooleanr1†r1jsj¿†r1htjì†r1jsj¿†r 1jXTruer!1†r"1htjÆr#1jsj¿†r$1hŒXMinCountr%1†r&1htj{†r'1jsj¿†r(1j-XIntegerr)1†r*1jsj¿†r+1htjì†r,1jsj¿†r-1jŸj®†r.1j©jq†r/1htj{†r01jsj¿†r11hŒXTStrAr21†r31htjÆr41jsj2†r51jXvarr61†r71jsX
  r81†r91hŒj÷'†r:1htjÕ†r;1jsj¿†r<1hŒXfinr=1†r>1htj{†r?1jsj¿†r@1j-XIntegerrA1†rB1htjÆrC1jsX

  rD1†rE1jX	procedurerF1†rG1jsj¿†rH1jtXAddrI1†rJ1j©jm†rK1jXconstrL1†rM1jsj¿†rN1hŒjé†rO1htj{†rP1jsj¿†rQ1jXstringrR1†rS1j©jq†rT1htjÆrU1jsX
  rV1†rW1jXbeginrX1†rY1jsX
    rZ1†r[1jXifr\1†r]1jsj¿†r^1hŒXIgnoreMultiSepr_1†r`1jsj¿†ra1jXandrb1†rc1jsj¿†rd1j©jm†re1hŒjé†rf1jsj¿†rg1htjì†rh1jsj¿†ri1jÁjJ†rj1jÁjJ†rk1j©jq†rl1jsj¿†rm1jXthenrn1†ro1jsX
      rp1†rq1jXExitrr1†rs1htjÆrt1jsX
    ru1†rv1jEX	SetLengthrw1†rx1j©jm†ry1jJXResultrz1†r{1htjÕ†r|1jsj¿†r}1jEXLengthr~1†r1j©jm†r€1jJXResultr1†r‚1j©jq†rƒ1jsj¿†r„1htjÆr…1jsj¿†r†1jŸj5†r‡1j©jq†rˆ1htjÆr‰1jsX
    rŠ1†r‹1jJXResultrŒ1†r1j©j'†rŽ1jEXHighr1†r1j©jm†r‘1jJXResultr’1†r“1j©X)]r”1†r•1jsj¿†r–1htj{†r—1htjì†r˜1jsj¿†r™1hŒjé†rš1htjÆr›1jsX
  rœ1†r1jXendrž1†rŸ1htjÆr 1jsX

r¡1†r¢1jXbeginr£1†r¤1jsX
  r¥1†r¦1jXifr§1†r¨1jsj¿†r©1hŒjé†rª1jsj¿†r«1htjì†r¬1jsj¿†r­1jÁjJ†r®1jÁjJ†r¯1jsj¿†r°1jXthenr±1†r²1jsj¿†r³1jXbeginr´1†rµ1jsX
    r¶1†r·1jXifr¸1†r¹1jsj¿†rº1jEXLengthr»1†r¼1j©jm†r½1jJXResultr¾1†r¿1j©jq†rÀ1jsj¿†rÁ1htj†rÂ1jsj¿†rÃ1hŒXMinCountrÄ1†rÅ1jsj¿†rÆ1jXthenrÇ1†rÈ1jsX
      rÉ1†rÊ1jEX	SetLengthrË1†rÌ1j©jm†rÍ1jJXResultrÎ1†rÏ1htjÕ†rÐ1jsj¿†rÑ1hŒXMinCountrÒ1†rÓ1j©jq†rÔ1htjÆrÕ1jsX
  rÖ1†r×1jXExitrØ1†rÙ1htjÆrÚ1jsj¿†rÛ1jXendrÜ1†rÝ1htjÆrÞ1jsX

  rß1†rà1jJXResultrá1†râ1jsj¿†rã1htj{†rä1htjì†rå1jsj¿†ræ1jXnilrç1†rè1htjÆré1jsX

  rê1†rë1hŒj÷'†rì1jsj¿†rí1htj{†rî1htjì†rï1jsj¿†rð1jŸj5†rñ1htjÆrò1jsX
  ró1†rô1hŒXfinrõ1†rö1jsj¿†r÷1htj{†rø1htjì†rù1jsj¿†rú1hŒXCharPosrû1†rü1j©jm†rý1hŒX
Separatorsrþ1†rÿ1htjÕ†r2jsj¿†r2hŒjé†r2j©jq†r2htjÆr2jsX
  r2†r2jXwhiler2†r2jsj¿†r	2hŒXfinr
2†r2jsj¿†r2htj‡†r
2jsj¿†r2jŸj®†r2jsj¿†r2jXdor2†r2jsj¿†r2jXbeginr2†r2jsX
    r2†r2hŒXAddr2†r2j©jm†r2jEXCopyr2†r2j©jm†r2hŒjé†r2htjÕ†r2jsj¿†r 2hŒj÷'†r!2htjÕ†r"2jsj¿†r#2hŒXfinr$2†r%2jsj¿†r&2htjR†r'2jsj¿†r(2hŒj÷'†r)2j©X))r*2†r+2htjÆr,2jsX
    r-2†r.2hŒj÷'†r/2jsj¿†r02htj{†r12htjì†r22jsj¿†r32hŒXfinr42†r52jsj¿†r62htjÆr72jsj¿†r82jŸj5†r92htjÆr:2jsX
    r;2†r<2hŒXfinr=2†r>2jsj¿†r?2htj{†r@2htjì†rA2jsj¿†rB2hŒXCharPosrC2†rD2j©jm†rE2hŒX
SeparatorsrF2†rG2htjÕ†rH2jsj¿†rI2hŒjé†rJ2htjÕ†rK2jsj¿†rL2hŒj÷'†rM2j©jq†rN2htjÆrO2jsX
  rP2†rQ2jXendrR2†rS2htjÆrT2jsX
  rU2†rV2hŒXAddrW2†rX2j©jm†rY2jEXCopyrZ2†r[2j©jm†r\2hŒjé†r]2htjÕ†r^2jsj¿†r_2hŒj÷'†r`2htjÕ†ra2jsj¿†rb2jEXLengthrc2†rd2j©jm†re2hŒjé†rf2j©jq†rg2jsj¿†rh2htjR†ri2jsj¿†rj2hŒj÷'†rk2jsj¿†rl2htjÆrm2jsj¿†rn2jŸj5†ro2j©X))rp2†rq2htjÆrr2jsX

  rs2†rt2jXifru2†rv2jsj¿†rw2jEXLengthrx2†ry2j©jm†rz2jJXResultr{2†r|2j©jq†r}2jsj¿†r~2htj†r2jsj¿†r€2hŒXMinCountr2†r‚2jsj¿†rƒ2jXthenr„2†r…2jsX
    r†2†r‡2jEX	SetLengthrˆ2†r‰2j©jm†rŠ2jJXResultr‹2†rŒ2htjÕ†r2jsj¿†rŽ2hŒXMinCountr2†r2j©jq†r‘2htjÆr’2jsj2†r“2jXendr”2†r•2htjÆr–2jsX

r—2†r˜2jX	procedurer™2†rš2jsj¿†r›2jtXTileStrrœ2†r2j©jm†rž2jXconstrŸ2†r 2jsj¿†r¡2hŒjé†r¢2htj{†r£2jsj¿†r¤2jXstringr¥2†r¦2htjÆr§2jsj¿†r¨2hŒX
BrakeStartr©2†rª2htj{†r«2jsj¿†r¬2j-XIntegerr­2†r®2htjÆr¯2jsj¿†r°2hŒXBrakeEndr±2†r²2htj{†r³2jsj¿†r´2j-XIntegerrµ2†r¶2htjÆr·2jsX
  r¸2†r¹2e(hŒXoutrº2†r»2jsj¿†r¼2hŒXLeftr½2†r¾2htjÕ†r¿2jsj¿†rÀ2hŒXRightrÁ2†rÂ2htj{†rÃ2jsj¿†rÄ2jXstringrÅ2†rÆ2j©jq†rÇ2htjÆrÈ2jsj2†rÉ2jXbeginrÊ2†rË2jsX
  rÌ2†rÍ2hŒXLeftrÎ2†rÏ2jsj¿†rÐ2htj{†rÑ2htjì†rÒ2jsj¿†rÓ2jEXCopyrÔ2†rÕ2j©jm†rÖ2hŒjé†r×2htjÕ†rØ2jsj¿†rÙ2jŸj5†rÚ2htjÕ†rÛ2jsj¿†rÜ2hŒX
BrakeStartrÝ2†rÞ2htjR†rß2jŸj5†rà2j©jq†rá2htjÆrâ2jsX
  rã2†rä2hŒXRightrå2†ræ2jsj¿†rç2htj{†rè2htjì†ré2jsj¿†rê2jEXCopyrë2†rì2j©jm†rí2hŒjé†rî2htjÕ†rï2jsj¿†rð2hŒXBrakeEndrñ2†rò2jsj¿†ró2htjÆrô2jsj¿†rõ2jŸj5†rö2htjÕ†r÷2jsj¿†rø2hŒXMaxIntrù2†rú2j©jq†rû2htjÆrü2jsj2†rý2jXendrþ2†rÿ2htjÆr3jsX

r3†r3jXfunctionr3†r3jsj¿†r3jtXJoinr3†r3j©jm†r3hŒXStringsr	3†r
3htj{†r3jsj¿†r3hŒXTStringsr
3†r3htjÆr3jsj¿†r3hŒX	Separatorr3†r3htj{†r3jsj¿†r3jXstringr3†r3jsj¿†r3htjì†r3jsj¿†r3jÁjJ†r3jÁj¿†r3jÁjJ†r3j©jq†r3htj{†r3jsj¿†r3jXstringr 3†r!3htjÆr"3jsj2†r#3jXvarr$3†r%3jsX
  r&3†r'3hŒj†r(3htjÕ†r)3jsj¿†r*3hŒXimaxr+3†r,3htj{†r-3jsj¿†r.3j-XIntegerr/3†r03htjÆr13jsj2†r23jXbeginr33†r43jsX
  r53†r63jJXResultr73†r83jsj¿†r93htj{†r:3htjì†r;3jsj¿†r<3jÁjJ†r=3jÁjJ†r>3htjÆr?3jsX
  r@3†rA3hŒXimaxrB3†rC3jsj¿†rD3htj{†rE3htjì†rF3jsj¿†rG3hŒXStringsrH3†rI3htj~†rJ3hŒXCountrK3†rL3htjR†rM3jŸj5†rN3htjÆrO3jsX
  rP3†rQ3jXforrR3†rS3jsj¿†rT3hŒj†rU3jsj¿†rV3htj{†rW3htjì†rX3jsj¿†rY3jŸj®†rZ3jsj¿†r[3jXtor\3†r]3jsj¿†r^3hŒXimaxr_3†r`3jsj¿†ra3jXdorb3†rc3jsj¿†rd3jXbeginre3†rf3jsX
    rg3†rh3jJXResultri3†rj3jsj¿†rk3htj{†rl3htjì†rm3jsj¿†rn3jJXResultro3†rp3jsj¿†rq3htjÆrr3jsj¿†rs3hŒXStringsrt3†ru3j©j'†rv3hŒj†rw3j©j/†rx3htjÆry3jsX
    rz3†r{3jXifr|3†r}3jsj¿†r~3hŒj†r3jsj¿†r€3htj†r3jsj¿†r‚3hŒXimaxrƒ3†r„3jsj¿†r…3jXthenr†3†r‡3jsX
      rˆ3†r‰3jJXResultrŠ3†r‹3jsj¿†rŒ3htj{†r3htjì†rŽ3jsj¿†r3jJXResultr3†r‘3jsj¿†r’3htjÆr“3jsj¿†r”3hŒX	Separatorr•3†r–3htjÆr—3jsX
  r˜3†r™3jXendrš3†r›3htjÆrœ3jsj2†r3jXendrž3†rŸ3htjÆr 3jsX

r¡3†r¢3jXfunctionr£3†r¤3jsj¿†r¥3jtXJoinr¦3†r§3j©jm†r¨3hŒXStrAr©3†rª3htj{†r«3jsj¿†r¬3hŒXTStrAr­3†r®3htjÆr¯3jsj¿†r°3hŒX	Separatorr±3†r²3htj{†r³3jsj¿†r´3jXstringrµ3†r¶3jsj¿†r·3htjì†r¸3jsj¿†r¹3jÁjJ†rº3jÁj¿†r»3jÁjJ†r¼3j©jq†r½3htj{†r¾3jsj¿†r¿3jXstringrÀ3†rÁ3htjÆrÂ3jsj¿†rÃ3hŒXoverloadrÄ3†rÅ3htjÆrÆ3jsj2†rÇ3jXvarrÈ3†rÉ3jsX
  rÊ3†rË3hŒj†rÌ3htj{†rÍ3jsj¿†rÎ3j-XIntegerrÏ3†rÐ3htjÆrÑ3jsj2†rÒ3jXbeginrÓ3†rÔ3jsX
  rÕ3†rÖ3jJXResultr×3†rØ3jsj¿†rÙ3htj{†rÚ3htjì†rÛ3jsj¿†rÜ3jÁjJ†rÝ3jÁjJ†rÞ3htjÆrß3jsX
  rà3†rá3jXforrâ3†rã3jsj¿†rä3hŒj†rå3jsj¿†ræ3htj{†rç3htjì†rè3jsj¿†ré3jŸj®†rê3jsj¿†rë3jXtorì3†rí3jsj¿†rî3jEXHighrï3†rð3j©jm†rñ3hŒXStrArò3†ró3j©jq†rô3jsj¿†rõ3jXdorö3†r÷3jsj¿†rø3jXbeginrù3†rú3jsX
    rû3†rü3jJXResultrý3†rþ3jsj¿†rÿ3htj{†r4htjì†r4jsj¿†r4jJXResultr4†r4jsj¿†r4htjÆr4jsj¿†r4hŒXStrAr4†r	4j©j'†r
4hŒj†r4j©j/†r4htjÆr
4jsX
    r4†r4jXifr4†r4jsj¿†r4hŒj†r4jsj¿†r4htj†r4jsj¿†r4jEXHighr4†r4j©jm†r4hŒXStrAr4†r4j©jq†r4jsj¿†r4jXthenr4†r4jsX
      r 4†r!4jJXResultr"4†r#4jsj¿†r$4htj{†r%4htjì†r&4jsj¿†r'4jJXResultr(4†r)4jsj¿†r*4htjÆr+4jsj¿†r,4hŒX	Separatorr-4†r.4htjÆr/4jsX
  r04†r14jXendr24†r34htjÆr44jsj2†r54jXendr64†r74htjÆr84jsX

r94†r:4jXfunctionr;4†r<4jsj¿†r=4jtXMulStrr>4†r?4j©jm†r@4jXconstrA4†rB4jsj¿†rC4hŒjé†rD4htj{†rE4jsj¿†rF4jXstringrG4†rH4htjÆrI4jsj¿†rJ4hŒXCountrK4†rL4htj{†rM4jsj¿†rN4j-XIntegerrO4†rP4j©jq†rQ4htj{†rR4jsj¿†rS4jXstringrT4†rU4htjÆrV4jsj2†rW4jXvarrX4†rY4jsX
  rZ4†r[4hŒjÚ†r\4htj{†r]4jsj¿†r^4j-XPCharr_4†r`4htjÆra4jsX
  rb4†rc4hŒXLenrd4†re4htjÕ†rf4jsj¿†rg4hŒj†rh4htj{†ri4jsj¿†rj4j-XIntegerrk4†rl4htjÆrm4jsj2†rn4jXbeginro4†rp4jsX
  rq4†rr4jJXResultrs4†rt4jsj¿†ru4htj{†rv4htjì†rw4jsj¿†rx4jÁjJ†ry4jÁjJ†rz4htjÆr{4jsX
  r|4†r}4jXifr~4†r4jsj¿†r€4hŒXCountr4†r‚4jsj¿†rƒ4htjì†r„4jsj¿†r…4jŸj®†r†4jsj¿†r‡4jXthenrˆ4†r‰4jsX
    rŠ4†r‹4jXExitrŒ4†r4htjÆrŽ4jsX

  r4†r4hŒXLenr‘4†r’4jsj¿†r“4htj{†r”4htjì†r•4jsj¿†r–4jEXLengthr—4†r˜4j©jm†r™4hŒjé†rš4j©jq†r›4htjÆrœ4jsX
  r4†rž4jEX	SetLengthrŸ4†r 4j©jm†r¡4jJXResultr¢4†r£4htjÕ†r¤4jsj¿†r¥4hŒXLenr¦4†r§4jsj¿†r¨4htjW†r©4jsj¿†rª4hŒXCountr«4†r¬4j©jq†r­4htjÆr®4jsX

  r¯4†r°4hŒjÚ†r±4jsj¿†r²4htj{†r³4htjì†r´4jsj¿†rµ4j-XPointerr¶4†r·4j©jm†r¸4jJXResultr¹4†rº4j©jq†r»4htjÆr¼4jsX
  r½4†r¾4jXforr¿4†rÀ4jsj¿†rÁ4hŒj†rÂ4jsj¿†rÃ4htj{†rÄ4htjì†rÅ4jsj¿†rÆ4jŸj5†rÇ4jsj¿†rÈ4jXtorÉ4†rÊ4jsj¿†rË4hŒXCountrÌ4†rÍ4jsj¿†rÎ4jXdorÏ4†rÐ4jsj¿†rÑ4jXbeginrÒ4†rÓ4jsX
    rÔ4†rÕ4jEXMoverÖ4†r×4j©jm†rØ4j-XPointerrÙ4†rÚ4j©jm†rÛ4hŒjé†rÜ4j©jq†rÝ4htX^rÞ4†rß4htjÕ†rà4jsj¿†rá4hŒjÚ†râ4htjÞ4†rã4htjÕ†rä4jsj¿†rå4hŒXLenræ4†rç4j©jq†rè4htjÆré4jsX
    rê4†rë4jEXIncrì4†rí4j©jm†rî4hŒjÚ†rï4htjÕ†rð4jsj¿†rñ4hŒXLenrò4†ró4j©jq†rô4htjÆrõ4jsX
  rö4†r÷4jXendrø4†rù4htjÆrú4jsj2†rû4jXendrü4†rý4htjÆrþ4jsX

rÿ4†r5jXfunctionr5†r5jsj¿†r5jtXAlignRr5†r5j©jm†r5jXconstr5†r5jsj¿†r	5hŒjé†r
5htj{†r5jsj¿†r5jXstringr
5†r5htjÆr5jsj¿†r5hŒXWidthr5†r5htj{†r5jsj¿†r5j-XIntegerr5†r5htjÆr5jsj¿†r5hŒXFillerr5†r5htj{†r5jsj¿†r5j-XCharr5†r5jsj¿†r5htjì†r 5jsj¿†r!5jÁjJ†r"5jÁj¿†r#5jÁjJ†r$5j©jq†r%5htj{†r&5jsj¿†r'5jXstringr(5†r)5htjÆr*5jsj2†r+5jXbeginr,5†r-5jsX
  r.5†r/5jJXResultr05†r15jsj¿†r25htj{†r35htjì†r45jsj¿†r55hŒXMulStrr65†r75j©jm†r85hŒXFillerr95†r:5htjÕ†r;5jsj¿†r<5hŒXWidthr=5†r>5jsj¿†r?5htjR†r@5jsj¿†rA5jEXLengthrB5†rC5j©jm†rD5hŒjé†rE5j©X))rF5†rG5jsj¿†rH5htjÆrI5jsj¿†rJ5hŒjé†rK5htjÆrL5jsj2†rM5jXendrN5†rO5htjÆrP5jsX

rQ5†rR5jXfunctionrS5†rT5jsj¿†rU5jtXMaxStrrV5†rW5j©jm†rX5jXconstrY5†rZ5jsj¿†r[5hŒjé†r\5htj{†r]5jsj¿†r^5jXstringr_5†r`5htjÆra5jsj¿†rb5hŒXMaxLenrc5†rd5htj{†re5jsj¿†rf5j-XIntegerrg5†rh5j©jq†ri5htj{†rj5jsj¿†rk5jXstringrl5†rm5htjÆrn5jsj2†ro5jXvarrp5†rq5jsX
  rr5†rs5hŒXLenrt5†ru5htj{†rv5jsj¿†rw5j-XIntegerrx5†ry5htjÆrz5jsj2†r{5jXbeginr|5†r}5jsX
  r~5†r5hŒXLenr€5†r5jsj¿†r‚5htj{†rƒ5htjì†r„5jsj¿†r…5jEXLengthr†5†r‡5j©jm†rˆ5hŒjé†r‰5j©jq†rŠ5htjÆr‹5jsX
  rŒ5†r5jXifrŽ5†r5jsj¿†r5hŒXLenr‘5†r’5jsj¿†r“5htj†r”5htjì†r•5jsj¿†r–5hŒXMaxLenr—5†r˜5jsj¿†r™5jXthenrš5†r›5jsj¿†rœ5jXbeginr5†rž5jsX
    rŸ5†r 5jJXResultr¡5†r¢5jsj¿†r£5htj{†r¤5htjì†r¥5jsj¿†r¦5hŒjé†r§5htjÆr¨5jsX
  r©5†rª5jXExitr«5†r¬5jsj¿†r­5jXendr®5†r¯5htjÆr°5jsX

  r±5†r²5jJXResultr³5†r´5jsj¿†rµ5htj{†r¶5htjì†r·5jsj¿†r¸5jEXCopyr¹5†rº5j©jm†r»5hŒjé†r¼5htjÕ†r½5jsj¿†r¾5jŸj5†r¿5htjÕ†rÀ5jsj¿†rÁ5hŒXMaxLenrÂ5†rÃ5jsj¿†rÄ5htjR†rÅ5jsj¿†rÆ5jŸj¸†rÇ5j©jq†rÈ5jsj¿†rÉ5htjÆrÊ5jsj¿†rË5jÁjJ†rÌ5jÁX...rÍ5†rÎ5jÁjJ†rÏ5htjÆrÐ5jsj2†rÑ5jXendrÒ5†rÓ5htjÆrÔ5jsX

rÕ5†rÖ5jXfunctionr×5†rØ5jsj¿†rÙ5jtXTrimAllrÚ5†rÛ5j©jm†rÜ5jXconstrÝ5†rÞ5jsj¿†rß5hŒjé†rà5htj{†rá5jsj¿†râ5jXstringrã5†rä5j©jq†rå5htj{†ræ5jsj¿†rç5jXstringrè5†ré5htjÆrê5jsj2†rë5jXvarrì5†rí5jsX
  rî5†rï5hŒj†rð5htj{†rñ5jsj¿†rò5j-XIntegerró5†rô5htjÆrõ5jsj2†rö5jXbeginr÷5†rø5jsX
  rù5†rú5jXforrû5†rü5jsj¿†rý5hŒj†rþ5jsj¿†rÿ5htj{†r6htjì†r6jsj¿†r6jŸj5†r6jsj¿†r6jXtor6†r6jsj¿†r6jEXLengthr6†r	6j©jm†r
6hŒjé†r6j©jq†r6jsj¿†r
6jXdor6†r6jsX
    r6†r6jXifr6†r6jsj¿†r6hŒjé†r6j©j'†r6hŒj†r6j©j/†r6jsj¿†r6htj‡†r6jsj¿†r6jÖX#32r6†r6jsj¿†r6jXthenr6†r 6jsX
      r!6†r"6jJXResultr#6†r$6jsj¿†r%6htj{†r&6htjì†r'6jsj¿†r(6jJXResultr)6†r*6jsj¿†r+6htjÆr,6jsj¿†r-6hŒjé†r.6j©j'†r/6hŒj†r06j©j/†r16htjÆr26jsj2†r36jXendr46†r56htjÆr66jsX

r76†r86jXfunctionr96†r:6jsj¿†r;6jtXControlCharr<6†r=6j©jm†r>6hŒjâ†r?6htj{†r@6jsj¿†rA6j-XCharrB6†rC6j©jq†rD6htj{†rE6jsj¿†rF6j-XBooleanrG6†rH6htjÆrI6jsj2†rJ6jXbeginrK6†rL6jsX
  rM6†rN6jJXResultrO6†rP6jsj¿†rQ6htj{†rR6htjì†rS6jsj¿†rT6hŒjâ†rU6jsj¿†rV6jXinrW6†rX6jsj¿†rY6hŒXStrangeCharsrZ6†r[6htjÆr\6jsj2†r]6jXendr^6†r_6htjÆr`6jsX

ra6†rb6jXfunctionrc6†rd6jsj¿†re6jtXFriendlyCharrf6†rg6j©jm†rh6hŒjâ†ri6htj{†rj6jsj¿†rk6j-XCharrl6†rm6j©jq†rn6htj{†ro6jsj¿†rp6j-XCharrq6†rr6htjÆrs6jsj2†rt6jXbeginru6†rv6jsX
  rw6†rx6jXcasery6†rz6jsj¿†r{6hŒjâ†r|6jsj¿†r}6jXofr~6†r6jsX
    r€6†r6jÖX#0r‚6†rƒ6htj{†r„6jsj¿†r…6jJXResultr†6†r‡6jsj¿†rˆ6htj{†r‰6htjì†rŠ6jsj¿†r‹6jÁjJ†rŒ6jÁj~†r6jÁjJ†rŽ6htjÆr6jsX
    r6†r‘6jÖX#1r’6†r“6htj~†r”6htj~†r•6jÖX#31r–6†r—6htj{†r˜6jsj¿†r™6jJXResultrš6†r›6jsj¿†rœ6htj{†r6htjì†rž6jsj¿†rŸ6jÁjJ†r 6jÁj]†r¡6jÁjJ†r¢6htjÆr£6jsX
    r¤6†r¥6jÖX#255r¦6†r§6htj{†r¨6jsj¿†r©6jJXResultrª6†r«6jsj¿†r¬6htj{†r­6htjì†r®6jsj¿†r¯6jÁjJ†r°6jÁX#r±6†r²6jÁjJ†r³6htjÆr´6jsX
  rµ6†r¶6jXelser·6†r¸6jsX
    r¹6†rº6jJXResultr»6†r¼6jsj¿†r½6htj{†r¾6htjì†r¿6jsj¿†rÀ6hŒjâ†rÁ6htjÆrÂ6jsX
  rÃ6†rÄ6jXendrÅ6†rÆ6htjÆrÇ6jsj2†rÈ6jXendrÉ6†rÊ6htjÆrË6jsX

rÌ6†rÍ6jXfunctionrÎ6†rÏ6jsj¿†rÐ6jtXFriendlyStrrÑ6†rÒ6j©jm†rÓ6jXconstrÔ6†rÕ6jsj¿†rÖ6hŒjé†r×6htj{†rØ6jsj¿†rÙ6jXstringrÚ6†rÛ6j©jq†rÜ6htj{†rÝ6jsj¿†rÞ6jXstringrß6†rà6htjÆrá6jsj2†râ6jXvarrã6†rä6jsX
  rå6†ræ6hŒj†rç6htj{†rè6jsj¿†ré6j-XIntegerrê6†rë6htjÆrì6jsj2†rí6jXbeginrî6†rï6jsX
  rð6†rñ6jEX	SetLengthrò6†ró6j©jm†rô6jJXResultrõ6†rö6htjÕ†r÷6jsj¿†rø6jEXLengthrù6†rú6j©jm†rû6hŒjé†rü6j©X))rý6†rþ6htjÆrÿ6jsX
  r7†r7jXforr7†r7jsj¿†r7hŒj†r7jsj¿†r7htj{†r7htjì†r7jsj¿†r	7jŸj5†r
7jsj¿†r7jXtor7†r
7jsj¿†r7jEXLengthr7†r7j©jm†r7hŒjé†r7j©jq†r7jsj¿†r7jXdor7†r7jsX
    r7†r7jJXResultr7†r7j©j'†r7hŒj†r7j©j/†r7jsj¿†r7htj{†r7htjì†r 7jsj¿†r!7hŒXFriendlyCharr"7†r#7j©jm†r$7hŒjé†r%7j©j'†r&7hŒj†r'7j©X])r(7†r)7htjÆr*7jsj2†r+7jXendr,7†r-7htjÆr.7jsX

r/7†r07jXfunctionr17†r27jsj¿†r37jtXFriendlyStrr47†r57j©jm†r67hŒjš†r77htj{†r87jsj¿†r97hŒXTByteAr:7†r;7j©jq†r<7htj{†r=7jsj¿†r>7jXstringr?7†r@7htjÆrA7jsj2†rB7jXvarrC7†rD7jsX
  rE7†rF7hŒj†rG7htj{†rH7jsj¿†rI7j-XIntegerrJ7†rK7htjÆrL7jsj2†rM7jXbeginrN7†rO7jsX
  rP7†rQ7jEX	SetLengthrR7†rS7j©jm†rT7jJXResultrU7†rV7htjÕ†rW7jsj¿†rX7jEXLengthrY7†rZ7j©jm†r[7hŒjš†r\7j©X))r]7†r^7htjÆr_7jsX
  r`7†ra7jXforrb7†rc7jsj¿†rd7hŒj†re7jsj¿†rf7htj{†rg7htjì†rh7jsj¿†ri7jŸj®†rj7jsj¿†rk7jXtorl7†rm7jsj¿†rn7jEXHighro7†rp7j©jm†rq7hŒjš†rr7j©jq†rs7jsj¿†rt7jXdoru7†rv7jsX
    rw7†rx7jJXResultry7†rz7j©j'†r{7hŒj†r|7jsj¿†r}7htjÆr~7jsj¿†r7jŸj5†r€7j©j/†r7jsj¿†r‚7htj{†rƒ7htjì†r„7jsj¿†r…7hŒXFriendlyCharr†7†r‡7j©jm†rˆ7j-XCharr‰7†rŠ7j©jm†r‹7hŒjš†rŒ7j©j'†r7hŒj†rŽ7j©X]))r7†r7htjÆr‘7jsj2†r’7jXendr“7†r”7htjÆr•7jsX

r–7†r—7jXfunctionr˜7†r™7jsj¿†rš7jtXQuoter›7†rœ7j©jm†r7jXconstrž7†rŸ7jsj¿†r 7hŒjé†r¡7htj{†r¢7jsj¿†r£7jXstringr¤7†r¥7htjÆr¦7jsj¿†r§7hŒXQuoterr¨7†r©7htj{†rª7jsj¿†r«7j-XCharr¬7†r­7jsj¿†r®7htjì†r¯7jsj¿†r°7jÁjJ†r±7jÁjI†r²7jÁjJ†r³7j©jq†r´7htj{†rµ7jsj¿†r¶7jXstringr·7†r¸7htjÆr¹7jsj2†rº7jXbeginr»7†r¼7jsX
  r½7†r¾7jJXResultr¿7†rÀ7jsj¿†rÁ7htj{†rÂ7htjì†rÃ7jsj¿†rÄ7hŒjé†rÅ7htjÆrÆ7jsX

  rÇ7†rÈ7jXifrÉ7†rÊ7jsj¿†rË7hŒX	FirstCharrÌ7†rÍ7j©jm†rÎ7hŒjé†rÏ7j©jq†rÐ7jsj¿†rÑ7htj†rÒ7htj‡†rÓ7jsj¿†rÔ7hŒXQuoterrÕ7†rÖ7jsj¿†r×7jXthenrØ7†rÙ7jsX
    rÚ7†rÛ7jJXResultrÜ7†rÝ7jsj¿†rÞ7htj{†rß7htjì†rà7jsj¿†rá7hŒXQuoterrâ7†rã7jsj¿†rä7htjÆrå7jsj¿†ræ7jJXResultrç7†rè7e(htjÆré7jsX

  rê7†rë7jXifrì7†rí7jsj¿†rî7hŒXLastCharrï7†rð7j©jm†rñ7hŒjé†rò7j©jq†ró7jsj¿†rô7htj†rõ7htj‡†rö7jsj¿†r÷7hŒXQuoterrø7†rù7jsj¿†rú7jXthenrû7†rü7jsX
    rý7†rþ7jJXResultrÿ7†r8jsj¿†r8htj{†r8htjì†r8jsj¿†r8jJXResultr8†r8jsj¿†r8htjÆr8jsj¿†r	8hŒXQuoterr
8†r8htjÆr8jsj2†r
8jXendr8†r8htjÆr8jsX

r8†r8jXfunctionr8†r8jsj¿†r8jtXDeQuoter8†r8j©jm†r8jXconstr8†r8jsj¿†r8hŒjé†r8htj{†r8jsj¿†r8jXstringr8†r 8j©jq†r!8htj{†r"8jsj¿†r#8jXstringr$8†r%8htjÆr&8jsj2†r'8jXbeginr(8†r)8jsX
  r*8†r+8jJXResultr,8†r-8jsj¿†r.8htj{†r/8htjì†r08jsj¿†r18jÁjJ†r28jÁjJ†r38htjÆr48jsX
  r58†r68jXifr78†r88jsj¿†r98jEXLengthr:8†r;8j©jm†r<8hŒjé†r=8j©jq†r>8jsj¿†r?8htj‡†r@8jsj¿†rA8jŸj³†rB8jsj¿†rC8jXthenrD8†rE8jsX
    rF8†rG8jJXResultrH8†rI8jsj¿†rJ8htj{†rK8htjì†rL8jsj¿†rM8jEXCopyrN8†rO8j©jm†rP8hŒjé†rQ8htjÕ†rR8jsj¿†rS8jŸj³†rT8htjÕ†rU8jsj¿†rV8jEXLengthrW8†rX8j©jm†rY8hŒjé†rZ8j©jq†r[8jsj¿†r\8htjR†r]8jsj¿†r^8jŸj³†r_8j©jq†r`8htjÆra8jsj2†rb8jXendrc8†rd8htjÆre8jsX

rf8†rg8jXfunctionrh8†ri8jsj¿†rj8jtXUnQuoterk8†rl8j©jm†rm8jXconstrn8†ro8jsj¿†rp8hŒjé†rq8htj{†rr8jsj¿†rs8jXstringrt8†ru8j©jq†rv8htj{†rw8jsj¿†rx8jXstringry8†rz8htjÆr{8jsj2†r|8jXvarr}8†r~8jsX
  r8†r€8hŒXStartr8†r‚8htjÕ†rƒ8jsj¿†r„8hŒXLenr…8†r†8htj{†r‡8jsj¿†rˆ8j-XIntegerr‰8†rŠ8htjÆr‹8jsj2†rŒ8jXbeginr8†rŽ8jsX
  r8†r8hŒXStartr‘8†r’8jsj¿†r“8htj{†r”8htjì†r•8jsj¿†r–8jŸj5†r—8htjÆr˜8jsX
  r™8†rš8hŒXLenr›8†rœ8jsj¿†r8htj{†rž8htjì†rŸ8jsj¿†r 8jEXLengthr¡8†r¢8j©jm†r£8hŒjé†r¤8j©jq†r¥8htjÆr¦8jsX

  r§8†r¨8jXifr©8†rª8jsj¿†r«8j©jm†r¬8hŒjé†r­8jsj¿†r®8htj†r¯8htj‡†r°8jsj¿†r±8jÁjJ†r²8jÁjJ†r³8j©jq†r´8jsj¿†rµ8jXandr¶8†r·8jsj¿†r¸8j©jm†r¹8hŒjé†rº8j©j'†r»8jŸj5†r¼8j©j/†r½8jsj¿†r¾8jXinr¿8†rÀ8jsj¿†rÁ8j©X([rÂ8†rÃ8jÖX#0rÄ8†rÅ8htj~†rÆ8htj~†rÇ8jÖX#32rÈ8†rÉ8j©j/†rÊ8jsj¿†rË8htjÆrÌ8jsj¿†rÍ8hŒX
QuoteCharsrÎ8†rÏ8j©X))rÐ8†rÑ8jsj¿†rÒ8jXthenrÓ8†rÔ8jsj¿†rÕ8jXbeginrÖ8†r×8jsX
    rØ8†rÙ8jXifrÚ8†rÛ8jsj¿†rÜ8j©jm†rÝ8hŒXLastCharrÞ8†rß8j©jm†rà8hŒjé†rá8j©jq†râ8jsj¿†rã8htjì†rä8jsj¿†rå8hŒjé†ræ8j©j'†rç8jŸj5†rè8j©X])ré8†rê8jsj¿†rë8jXthenrì8†rí8jsX
      rî8†rï8jEXDecrð8†rñ8j©jm†rò8hŒXLenró8†rô8j©jq†rõ8htjÆrö8jsX
    r÷8†rø8jEXIncrù8†rú8j©jm†rû8hŒXStartrü8†rý8j©jq†rþ8htjÆrÿ8jsX
  r9†r9jXendr9†r9htjÆr9jsX

  r9†r9jJXResultr9†r9jsj¿†r	9htj{†r
9htjì†r9jsj¿†r9jEXCopyr
9†r9j©jm†r9hŒjé†r9htjÕ†r9jsj¿†r9hŒXStartr9†r9htjÕ†r9jsj¿†r9hŒXLenr9†r9jsj¿†r9htjR†r9jsj¿†r9hŒXStartr9†r9jsj¿†r9htjÆr9jsj¿†r 9jŸj5†r!9j©jq†r"9htjÆr#9jsj2†r$9jXendr%9†r&9htjÆr'9jsX

r(9†r)9jXfunctionr*9†r+9jsj¿†r,9jtX
StrNumerusr-9†r.9j©jm†r/9jXconstr09†r19jsj¿†r29hŒXValuer39†r49htj{†r59jsj¿†r69j-XIntegerr79†r89htjÆr99jsj¿†r:9jXconstr;9†r<9jsj¿†r=9hŒXSingularr>9†r?9htjÕ†r@9jsj¿†rA9hŒXPluralrB9†rC9htj{†rD9jsj¿†rE9jXstringrF9†rG9htjÆrH9jsX
  rI9†rJ9jXconstrK9†rL9jsj¿†rM9hŒXZerorN9†rO9htj{†rP9jsj¿†rQ9jXstringrR9†rS9jsj¿†rT9htjì†rU9jsj¿†rV9jÁjJ†rW9jÁj®†rX9jÁjJ†rY9j©jq†rZ9htj{†r[9jsj¿†r\9jXstringr]9†r^9htjÆr_9jsj2†r`9jXbeginra9†rb9jsX
  rc9†rd9jXifre9†rf9jsj¿†rg9jEXAbsrh9†ri9j©jm†rj9hŒXValuerk9†rl9j©jq†rm9jsj¿†rn9htjì†ro9jsj¿†rp9jŸj5†rq9jsj¿†rr9jXthenrs9†rt9jsX
    ru9†rv9jJXResultrw9†rx9jsj¿†ry9htj{†rz9htjì†r{9jsj¿†r|9jEXIntToStrr}9†r~9j©jm†r9hŒXValuer€9†r9j©jq†r‚9jsj¿†rƒ9htjÆr„9jsj¿†r…9jÁjJ†r†9jÁj¿†r‡9jÁjJ†rˆ9jsj¿†r‰9htjÆrŠ9jsj¿†r‹9hŒXSingularrŒ9†r9jsX
  rŽ9†r9jXelser9†r‘9jsj¿†r’9jXifr“9†r”9jsj¿†r•9hŒXValuer–9†r—9jsj¿†r˜9htjì†r™9jsj¿†rš9jŸj®†r›9jsj¿†rœ9jXthenr9†rž9jsX
    rŸ9†r 9jJXResultr¡9†r¢9jsj¿†r£9htj{†r¤9htjì†r¥9jsj¿†r¦9hŒXZeror§9†r¨9jsj¿†r©9htjÆrª9jsj¿†r«9jÁjJ†r¬9jÁj¿†r­9jÁjJ†r®9jsj¿†r¯9htjÆr°9jsj¿†r±9hŒXPluralr²9†r³9jsX
  r´9†rµ9jXelser¶9†r·9jsX
    r¸9†r¹9jJXResultrº9†r»9jsj¿†r¼9htj{†r½9htjì†r¾9jsj¿†r¿9jEXIntToStrrÀ9†rÁ9j©jm†rÂ9hŒXValuerÃ9†rÄ9j©jq†rÅ9jsj¿†rÆ9htjÆrÇ9jsj¿†rÈ9jÁjJ†rÉ9jÁj¿†rÊ9jÁjJ†rË9jsj¿†rÌ9htjÆrÍ9jsj¿†rÎ9hŒXPluralrÏ9†rÐ9htjÆrÑ9jsj2†rÒ9jXendrÓ9†rÔ9htjÆrÕ9jsX

rÖ9†r×9jXfunctionrØ9†rÙ9jsj¿†rÚ9jtXMakeStrrÛ9†rÜ9j©jm†rÝ9jXconstrÞ9†rß9jsj¿†rà9hŒXItemsrá9†râ9htj{†rã9jsj¿†rä9jXarrayrå9†ræ9jsj¿†rç9jXofrè9†ré9jsj¿†rê9jXconstrë9†rì9htjÆrí9jsj¿†rî9hŒX	Separatorrï9†rð9htj{†rñ9jsj¿†rò9jXstringró9†rô9jsj¿†rõ9htjì†rö9jsj¿†r÷9jÁjJ†rø9jÁjJ†rù9j©jq†rú9htj{†rû9jsj¿†rü9jXstringrý9†rþ9htjÆrÿ9jsj2†r:jXconstr:†r:jsX
  r:†r:hŒXBoolStringsr:†r:htj{†r:jsj¿†r:jXarrayr	:†r
:j©j'†r:j-XBooleanr:†r
:j©j/†r:jsj¿†r:jXofr:†r:jsj¿†r:jXstringr:†r:jsj¿†r:htjì†r:jsj¿†r:j©jm†r:jÁjJ†r:jÁXFalser:†r:jÁjJ†r:htjÕ†r:jsj¿†r:jÁjJ†r:jÁXTruer :†r!:jÁjJ†r":j©jq†r#:htjÆr$:jsX

r%:†r&:jXvarr':†r(:jsX
  r):†r*:hŒj†r+:htj{†r,:jsj¿†r-:j-XIntegerr.:†r/:htjÆr0:jsX

  r1:†r2:jXfunctionr3:†r4:jsj¿†r5:jtXStrOfPr6:†r7:j©jm†r8:hŒjÚ†r9:htj{†r::jsj¿†r;:j-XPointerr<:†r=:j©jq†r>:htj{†r?:jsj¿†r@:jXstringrA:†rB:htjÆrC:jsX
  rD:†rE:jXbeginrF:†rG:jsX
    rH:†rI:jXifrJ:†rK:jsj¿†rL:hŒjÚ†rM:jsj¿†rN:htjì†rO:jsj¿†rP:jXnilrQ:†rR:jsj¿†rS:jXthenrT:†rU:jsX
      rV:†rW:jJXResultrX:†rY:jsj¿†rZ:htj{†r[:htjì†r\:jsj¿†r]:jÁjJ†r^:jÁX[nil]r_:†r`:jÁjJ†ra:jsX
    rb:†rc:jXelserd:†re:jsX
      rf:†rg:jJXResultrh:†ri:jsj¿†rj:htj{†rk:htjì†rl:jsj¿†rm:jÁjJ†rn:jÁj'†ro:jÁjJ†rp:jsj¿†rq:htjÆrr:jsj¿†rs:jEXIntToStrrt:†ru:j©jm†rv:j-XCardinalrw:†rx:j©jm†ry:hŒjÚ†rz:j©X))r{:†r|:jsj¿†r}:htjÆr~:jsj¿†r:jÁjJ†r€:jÁj/†r:jÁjJ†r‚:htjÆrƒ:jsX
  r„:†r…:jXendr†:†r‡:htjÆrˆ:jsX

  r‰:†rŠ:jX	procedurer‹:†rŒ:jsj¿†r:jtXAddrŽ:†r:j©jm†r:jXconstr‘:†r’:jsj¿†r“:hŒjé†r”:htj{†r•:jsj¿†r–:jXstringr—:†r˜:j©jq†r™:htjÆrš:jsX
  r›:†rœ:jXbeginr:†rž:jsX
    rŸ:†r :jJXResultr¡:†r¢:jsj¿†r£:htj{†r¤:htjì†r¥:jsj¿†r¦:jJXResultr§:†r¨:jsj¿†r©:htjÆrª:jsj¿†r«:hŒj£†r¬:jsj¿†r­:htjÆr®:jsj¿†r¯:hŒX	Separatorr°:†r±:htjÆr²:jsX
  r³:†r´:jXendrµ:†r¶:htjÆr·:jsX

r¸:†r¹:jXbeginrº:†r»:jsX
  r¼:†r½:jJXResultr¾:†r¿:jsj¿†rÀ:htj{†rÁ:htjì†rÂ:jsj¿†rÃ:jÁjJ†rÄ:jÁjJ†rÅ:htjÆrÆ:jsX
  rÇ:†rÈ:jXforrÉ:†rÊ:jsj¿†rË:hŒj†rÌ:jsj¿†rÍ:htj{†rÎ:htjì†rÏ:jsj¿†rÐ:jŸj®†rÑ:jsj¿†rÒ:jXtorÓ:†rÔ:jsj¿†rÕ:jEXHighrÖ:†r×:j©jm†rØ:hŒXItemsrÙ:†rÚ:j©jq†rÛ:jsj¿†rÜ:jXdorÝ:†rÞ:jsX
    rß:†rà:jXwithrá:†râ:jsj¿†rã:hŒXItemsrä:†rå:j©j'†ræ:hŒj†rç:j©j/†rè:jsj¿†ré:jXdorê:†rë:jsX
      rì:†rí:jXcaserî:†rï:jsj¿†rð:hŒXVTyperñ:†rò:jsj¿†ró:jXofrô:†rõ:jsX	
        rö:†r÷:hŒXvtStringrø:†rù:htj{†rú:jsX     rû:†rü:hŒXAddrý:†rþ:j©jm†rÿ:hŒXVStringr;†r;htjÞ4†r;j©jq†r;htjÆr;jsX	
        r;†r;hŒX	vtIntegerr;†r;htj{†r	;jsX    r
;†r;hŒXAddr;†r
;j©jm†r;jEXIntToStrr;†r;j©jm†r;hŒXVIntegerr;†r;j©X))r;†r;htjÆr;jsX	
        r;†r;hŒX	vtBooleanr;†r;htj{†r;jsX    r;†r;hŒXAddr;†r;j©jm†r ;hŒXBoolStringsr!;†r";j©j'†r#;hŒXVBooleanr$;†r%;j©X])r&;†r';htjÆr(;jsX	
        r);†r*;hŒXvtCharr+;†r,;htj{†r-;jsX       r.;†r/;hŒXAddr0;†r1;j©jm†r2;hŒXVCharr3;†r4;j©jq†r5;htjÆr6;jsX	
        r7;†r8;hŒXvtPCharr9;†r:;htj{†r;;jsX      r<;†r=;hŒXAddr>;†r?;j©jm†r@;hŒXVPCharrA;†rB;j©jq†rC;htjÆrD;jsX	
        rE;†rF;hŒX
vtExtendedrG;†rH;htj{†rI;jsX   rJ;†rK;hŒXAddrL;†rM;j©jm†rN;jEX
FloatToStrrO;†rP;j©jm†rQ;hŒX	VExtendedrR;†rS;htjÞ4†rT;j©X))rU;†rV;htjÆrW;jsX	
        rX;†rY;hŒXvtObjectrZ;†r[;htj{†r\;jsX     r];†r^;jXifr_;†r`;jsj¿†ra;hŒXVObjectrb;†rc;jsj¿†rd;jXisre;†rf;jsj¿†rg;hŒX
TComponentrh;†ri;jsj¿†rj;jXthenrk;†rl;jsX
                        rm;†rn;hŒXAddro;†rp;j©jm†rq;hŒX
TComponentrr;†rs;j©jm†rt;hŒXVObjectru;†rv;j©jq†rw;htj~†rx;hŒXNamery;†rz;j©jq†r{;jsX
                      r|;†r};jXelser~;†r;jsX
                        r€;†r;hŒXAddr‚;†rƒ;j©jm†r„;hŒXVObjectr…;†r†;htj~†r‡;hŒX	ClassNamerˆ;†r‰;j©jq†rŠ;htjÆr‹;jsX	
        rŒ;†r;hŒXvtClassrŽ;†r;htj{†r;jsX      r‘;†r’;hŒXAddr“;†r”;j©jm†r•;hŒXVClassr–;†r—;htj~†r˜;hŒX	ClassNamer™;†rš;j©jq†r›;htjÆrœ;jsX	
        r;†rž;hŒXvtAnsiStringrŸ;†r ;htj{†r¡;jsj¿†r¢;hŒXAddr£;†r¤;j©jm†r¥;jXstringr¦;†r§;j©jm†r¨;hŒXVAnsiStringr©;†rª;j©X))r«;†r¬;htjÆr­;jsX	
        r®;†r¯;hŒX
vtCurrencyr°;†r±;htj{†r²;jsX   r³;†r´;hŒXAddrµ;†r¶;j©jm†r·;jEX	CurrToStrr¸;†r¹;j©jm†rº;hŒX	VCurrencyr»;†r¼;htjÞ4†r½;j©X))r¾;†r¿;htjÆrÀ;jsX	
        rÁ;†rÂ;hŒXvtInt64rÃ;†rÄ;htj{†rÅ;jsX      rÆ;†rÇ;hŒXAddrÈ;†rÉ;j©jm†rÊ;jEXIntToStrrË;†rÌ;j©jm†rÍ;hŒXVInt64rÎ;†rÏ;htjÞ4†rÐ;j©X))rÑ;†rÒ;htjÆrÓ;jsX	
        rÔ;†rÕ;hŒX	vtVariantrÖ;†r×;htj{†rØ;jsX    rÙ;†rÚ;hŒXAddrÛ;†rÜ;j©jm†rÝ;jXstringrÞ;†rß;j©jm†rà;hŒXVVariantrá;†râ;htjÞ4†rã;j©X))rä;†rå;htjÆræ;jsX


        rç;†rè;hŒX
vtWideCharré;†rê;htj{†rë;jsX   rì;†rí;hŒXAddrî;†rï;j©jm†rð;hŒX	VWideCharrñ;†rò;j©jq†ró;htjÆrô;jsX	
        rõ;†rö;hŒXvtPWideCharr÷;†rø;htj{†rù;jsX  rú;†rû;hŒXAddrü;†rý;j©jm†rþ;hŒX
VPWideCharrÿ;†r<j©jq†r<htjÆr<jsX	
        r<†r<hŒXvtInterfacer<†r<htj{†r<jsX  r<†r	<hŒXAddr
<†r<j©jm†r<hŒXStrOfPr
<†r<j©jm†r<hŒX
VInterfacer<†r<j©X))r<†r<htjÆr<jsX	
        r<†r<hŒX	vtPointerr<†r<htj{†r<jsX    r<†r<hŒXAddr<†r<j©jm†r<hŒXStrOfPr<†r <j©jm†r!<hŒXVPointerr"<†r#<j©X))r$<†r%<htjÆr&<jsX	
        r'<†r(<hŒXvtWideStringr)<†r*<htj{†r+<jsj¿†r,<hŒXAddr-<†r.<j©jm†r/<j-X
WideStringr0<†r1<j©jm†r2<hŒXVWideStringr3<†r4<j©X))r5<†r6<htjÆr7<jsX
      r8<†r9<jXendr:<†r;<htjÆr<<jsX
  r=<†r><jXifr?<†r@<jsj¿†rA<jJXResultrB<†rC<jsj¿†rD<htj†rE<htj‡†rF<jsj¿†rG<jÁjJ†rH<jÁjJ†rI<jsj¿†rJ<jXthenrK<†rL<jsX
    rM<†rN<jEX	SetLengthrO<†rP<j©jm†rQ<jJXresultrR<†rS<htjÕ†rT<jsj¿†rU<jEXLengthrV<†rW<j©jm†rX<jJXResultrY<†rZ<j©jq†r[<jsj¿†r\<htjR†r]<jsj¿†r^<jEXLengthr_<†r`<j©jm†ra<hŒX	Separatorrb<†rc<j©X))rd<†re<htjÆrf<jsj2†rg<jXendrh<†ri<htjÆrj<jsX

rk<†rl<jX	procedurerm<†rn<jsj¿†ro<jtXShowTextrp<†rq<j©jm†rr<jXconstrs<†rt<jsj¿†ru<hŒXItemsrv<†rw<htj{†rx<jsj¿†ry<jXarrayrz<†r{<jsj¿†r|<jXofr}<†r~<jsj¿†r<jXconstr€<†r<htjÆr‚<jsj¿†rƒ<hŒX	Separatorr„<†r…<htj{†r†<jsj¿†r‡<jXstringrˆ<†r‰<jsj¿†rŠ<htjì†r‹<jsj¿†rŒ<jÁjJ†r<jÁjJ†rŽ<j©jq†r<htjÆr<jsj2†r‘<jXvarr’<†r“<jsX
  r”<†r•<hŒXTextr–<†r—<htj{†r˜<jsj¿†r™<jXstringrš<†r›<htjÆrœ<jsj2†r<jXbeginrž<†rŸ<jsX
  r <†r¡<hŒXTextr¢<†r£<jsj¿†r¤<htj{†r¥<htjì†r¦<jsj¿†r§<hŒXMakeStrr¨<†r©<j©jm†rª<hŒXItemsr«<†r¬<htjÕ†r­<jsj¿†r®<hŒX	Separatorr¯<†r°<j©jq†r±<htjÆr²<jsX

  r³<†r´<hŒX
MessageBoxrµ<†r¶<j©jm†r·<jŸj®†r¸<htjÕ†r¹<jsj¿†rº<j-XPCharr»<†r¼<j©jm†r½<hŒXTextr¾<†r¿<j©jq†rÀ<htjÕ†rÁ<jsj¿†rÂ<jÁjJ†rÃ<jÁXInforÄ<†rÅ<jÁjJ†rÆ<htjÕ†rÇ<jsj¿†rÈ<hŒXMB_OKrÉ<†rÊ<jsj¿†rË<jXandrÌ<†rÍ<jsj¿†rÎ<hŒXMB_APPLMODALrÏ<†rÐ<j©jq†rÑ<htjÆrÒ<jsj2†rÓ<jXendrÔ<†rÕ<htjÆrÖ<jsX

r×<†rØ<jXfunctionrÙ<†rÚ<jsj¿†rÛ<jtXDeleteCharsrÜ<†rÝ<j©jm†rÞ<jXconstrß<†rà<jsj¿†rá<hŒjé†râ<htj{†rã<jsj¿†rä<jXstringrå<†ræ<htjÆrç<jsj¿†rè<hŒjâ†ré<htj{†rê<jsj¿†rë<j-XCharrì<†rí<j©jq†rî<htj{†rï<jsj¿†rð<jXstringrñ<†rò<htjÆró<jsj2†rô<jXvarrõ<†rö<jsX
  r÷<†rø<hŒj†rù<htj{†rú<jsj¿†rû<j-XIntegerrü<†rý<htjÆrþ<jsj2†rÿ<jXbeginr=†r=jsX
  r=†r=jJXResultr=†r=jsj¿†r=htj{†r=htjì†r=jsj¿†r	=jÁjJ†r
=jÁjJ†r=htjÆr=jsX
  r
=†r=jXforr=†r=jsj¿†r=hŒj†r=jsj¿†r=htj{†r=htjì†r=jsj¿†r=jŸj5†r=jsj¿†r=jXtor=†r=jsj¿†r=jEXLengthr=†r=j©jm†r=hŒjé†r=j©jq†r =jsj¿†r!=jXdor"=†r#=jsX
    r$=†r%=jXifr&=†r'=jsj¿†r(=hŒjé†r)=j©j'†r*=hŒj†r+=j©j/†r,=jsj¿†r-=htj†r.=htj‡†r/=jsj¿†r0=hŒjâ†r1=jsj¿†r2=jXthenr3=†r4=jsX
      r5=†r6=jJXResultr7=†r8=jsj¿†r9=htj{†r:=htjì†r;=jsj¿†r<=jJXResultr==†r>=jsj¿†r?=htjÆr@=jsj¿†rA=hŒjé†rB=j©j'†rC=hŒj†rD=j©j/†rE=htjÆrF=jsj2†rG=jXendrH=†rI=htjÆrJ=jsX

rK=†rL=jXfunctionrM=†rN=jsj¿†rO=jtXDeleteCharsrP=†rQ=j©jm†rR=jXconstrS=†rT=e(jsj¿†rU=hŒjé†rV=htj{†rW=jsj¿†rX=jXstringrY=†rZ=htjÆr[=jsj¿†r\=hŒjâ†r]=htj{†r^=jsj¿†r_=hŒXTCharSetr`=†ra=j©jq†rb=htj{†rc=jsj¿†rd=jXstringre=†rf=htjÆrg=jsj2†rh=jXvarri=†rj=jsX
  rk=†rl=hŒj†rm=htj{†rn=jsj¿†ro=j-XIntegerrp=†rq=htjÆrr=jsj2†rs=jXbeginrt=†ru=jsX
  rv=†rw=jJXResultrx=†ry=jsj¿†rz=htj{†r{=htjì†r|=jsj¿†r}=jÁjJ†r~=jÁjJ†r=htjÆr€=jsX
  r=†r‚=jXforrƒ=†r„=jsj¿†r…=hŒj†r†=jsj¿†r‡=htj{†rˆ=htjì†r‰=jsj¿†rŠ=jŸj5†r‹=jsj¿†rŒ=jXtor=†rŽ=jsj¿†r=jEXLengthr=†r‘=j©jm†r’=hŒjé†r“=j©jq†r”=jsj¿†r•=jXdor–=†r—=jsX
    r˜=†r™=jXifrš=†r›=jsj¿†rœ=jXnotr=†rž=jsj¿†rŸ=j©jm†r =hŒjé†r¡=j©j'†r¢=hŒj†r£=j©j/†r¤=jsj¿†r¥=jXinr¦=†r§=jsj¿†r¨=hŒjâ†r©=j©jq†rª=jsj¿†r«=jXthenr¬=†r­=jsX
      r®=†r¯=jJXResultr°=†r±=jsj¿†r²=htj{†r³=htjì†r´=jsj¿†rµ=jJXResultr¶=†r·=jsj¿†r¸=htjÆr¹=jsj¿†rº=hŒjé†r»=j©j'†r¼=hŒj†r½=j©j/†r¾=htjÆr¿=jsj2†rÀ=jXendrÁ=†rÂ=htjÆrÃ=jsX

rÄ=†rÅ=jXfunctionrÆ=†rÇ=jsj¿†rÈ=jtXExtractCharsrÉ=†rÊ=j©jm†rË=jXconstrÌ=†rÍ=jsj¿†rÎ=hŒjé†rÏ=htj{†rÐ=jsj¿†rÑ=jXstringrÒ=†rÓ=htjÆrÔ=jsj¿†rÕ=hŒjâ†rÖ=htj{†r×=jsj¿†rØ=hŒXTCharSetrÙ=†rÚ=j©jq†rÛ=htj{†rÜ=jsj¿†rÝ=jXstringrÞ=†rß=htjÆrà=jsj2†rá=jXvarrâ=†rã=jsX
  rä=†rå=hŒj†ræ=htj{†rç=jsj¿†rè=j-XIntegerré=†rê=htjÆrë=jsj2†rì=jXbeginrí=†rî=jsX
  rï=†rð=jJXResultrñ=†rò=jsj¿†ró=htj{†rô=htjì†rõ=jsj¿†rö=jÁjJ†r÷=jÁjJ†rø=htjÆrù=jsX
  rú=†rû=jXforrü=†rý=jsj¿†rþ=hŒj†rÿ=jsj¿†r>htj{†r>htjì†r>jsj¿†r>jŸj5†r>jsj¿†r>jXtor>†r>jsj¿†r>jEXLengthr	>†r
>j©jm†r>hŒjé†r>j©jq†r
>jsj¿†r>jXdor>†r>jsX
    r>†r>jXifr>†r>jsj¿†r>hŒjé†r>j©j'†r>hŒj†r>j©j/†r>jsj¿†r>jXinr>†r>jsj¿†r>hŒjâ†r>jsj¿†r>jXthenr >†r!>jsX
      r">†r#>jJXResultr$>†r%>jsj¿†r&>htj{†r'>htjì†r(>jsj¿†r)>jJXResultr*>†r+>jsj¿†r,>htjÆr->jsj¿†r.>hŒjé†r/>j©j'†r0>hŒj†r1>j©j/†r2>htjÆr3>jsj2†r4>jXendr5>†r6>htjÆr7>jsX

r8>†r9>jXfunctionr:>†r;>jsj¿†r<>jtX	CharCountr=>†r>>j©jm†r?>jXconstr@>†rA>jsj¿†rB>hŒjé†rC>htj{†rD>jsj¿†rE>jXstringrF>†rG>htjÆrH>jsj¿†rI>hŒjâ†rJ>htj{†rK>jsj¿†rL>j-XCharrM>†rN>j©jq†rO>htj{†rP>jsj¿†rQ>j-XIntegerrR>†rS>htjÆrT>jsj2†rU>jXvarrV>†rW>jsX
  rX>†rY>hŒj†rZ>htj{†r[>jsj¿†r\>j-XIntegerr]>†r^>htjÆr_>jsj2†r`>jXbeginra>†rb>jsX
  rc>†rd>jJXResultre>†rf>jsj¿†rg>htj{†rh>htjì†ri>jsj¿†rj>jŸj®†rk>htjÆrl>jsX
  rm>†rn>jXforro>†rp>jsj¿†rq>hŒj†rr>jsj¿†rs>htj{†rt>htjì†ru>jsj¿†rv>jŸj5†rw>jsj¿†rx>jXtory>†rz>jsj¿†r{>jEXLengthr|>†r}>j©jm†r~>hŒjé†r>j©jq†r€>jsj¿†r>jXdor‚>†rƒ>jsX
    r„>†r…>jXifr†>†r‡>jsj¿†rˆ>hŒjé†r‰>j©j'†rŠ>hŒj†r‹>j©j/†rŒ>jsj¿†r>htjì†rŽ>jsj¿†r>hŒjâ†r>jsj¿†r‘>jXthenr’>†r“>jsX
      r”>†r•>jEXIncr–>†r—>j©jm†r˜>jJXResultr™>†rš>j©jq†r›>htjÆrœ>jsj2†r>jXendrž>†rŸ>htjÆr >jsX

r¡>†r¢>jXfunctionr£>†r¤>jsj¿†r¥>jtXStrAtPosr¦>†r§>j©jm†r¨>jXconstr©>†rª>jsj¿†r«>hŒjé†r¬>htj{†r­>jsj¿†r®>jXstringr¯>†r°>htjÆr±>jsj¿†r²>jEXPosr³>†r´>htj{†rµ>jsj¿†r¶>j-XIntegerr·>†r¸>htjÆr¹>jsj¿†rº>jXconstr»>†r¼>jsj¿†r½>jEXStrr¾>†r¿>htj{†rÀ>jsj¿†rÁ>jXstringrÂ>†rÃ>j©jq†rÄ>htj{†rÅ>jsj¿†rÆ>j-XBooleanrÇ>†rÈ>htjÆrÉ>jsj2†rÊ>jXbeginrË>†rÌ>jsX
  rÍ>†rÎ>jJXResultrÏ>†rÐ>jsj¿†rÑ>htj{†rÒ>htjì†rÓ>jsj¿†rÔ>j©jm†rÕ>jEXStrrÖ>†r×>jsj¿†rØ>htj†rÙ>htj‡†rÚ>jsj¿†rÛ>jÁjJ†rÜ>jÁjJ†rÝ>j©jq†rÞ>jsj¿†rß>jXandrà>†rá>jsj¿†râ>j©jm†rã>jEXStrrä>†rå>jsj¿†ræ>htjì†rç>jsj¿†rè>jEXCopyré>†rê>j©jm†rë>hŒjé†rì>htjÕ†rí>jsj¿†rî>jEXPosrï>†rð>htjÕ†rñ>jsj¿†rò>jEXLengthró>†rô>j©jm†rõ>jEXStrrö>†r÷>j©X)))rø>†rù>htjÆrú>jsj2†rû>jXendrü>†rý>htjÆrþ>jsX

rÿ>†r?jXfunctionr?†r?jsj¿†r?jtX	TextAtPosr?†r?j©jm†r?jXconstr?†r?jsj¿†r	?hŒjé†r
?htj{†r?jsj¿†r?jXstringr
?†r?htjÆr?jsj¿†r?jEXPosr?†r?htj{†r?jsj¿†r?j-XIntegerr?†r?htjÆr?jsj¿†r?jXconstr?†r?jsj¿†r?hŒXTextr?†r?htj{†r?jsj¿†r?jXstringr ?†r!?j©jq†r"?htj{†r#?jsj¿†r$?j-XBooleanr%?†r&?htjÆr'?jsj2†r(?jXbeginr)?†r*?jsX
  r+?†r,?jJXResultr-?†r.?jsj¿†r/?htj{†r0?htjì†r1?jsj¿†r2?j©jm†r3?hŒXTextr4?†r5?jsj¿†r6?htj†r7?htj‡†r8?jsj¿†r9?jÁjJ†r:?jÁjJ†r;?j©jq†r<?jsj¿†r=?jXandr>?†r??jsj¿†r@?jEXSameTextrA?†rB?j©jm†rC?hŒXTextrD?†rE?htjÕ†rF?jsj¿†rG?jEXCopyrH?†rI?j©jm†rJ?hŒjé†rK?htjÕ†rL?jsj¿†rM?jEXPosrN?†rO?htjÕ†rP?jsj¿†rQ?jEXLengthrR?†rS?j©jm†rT?hŒXTextrU?†rV?j©X)))rW?†rX?htjÆrY?jsj2†rZ?jXendr[?†r\?htjÆr]?jsX

r^?†r_?jXfunctionr`?†ra?jsj¿†rb?jtX
StrAtBeginrc?†rd?j©jm†re?jXconstrf?†rg?jsj¿†rh?hŒjé†ri?htjÕ†rj?jsj¿†rk?jEXStrrl?†rm?htj{†rn?jsj¿†ro?jXstringrp?†rq?j©jq†rr?htj{†rs?jsj¿†rt?j-XBooleanru?†rv?htjÆrw?jsj2†rx?jXbeginry?†rz?jsX
  r{?†r|?jJXResultr}?†r~?jsj¿†r?htj{†r€?htjì†r?jsj¿†r‚?hŒXStrAtPosrƒ?†r„?j©jm†r…?hŒjé†r†?htjÕ†r‡?jsj¿†rˆ?jŸj5†r‰?htjÕ†rŠ?jsj¿†r‹?jEXStrrŒ?†r?j©jq†rŽ?htjÆr?jsj2†r?jXendr‘?†r’?htjÆr“?jsX

r”?†r•?jXfunctionr–?†r—?jsj¿†r˜?jtXTextAtBeginr™?†rš?j©jm†r›?jXconstrœ?†r?jsj¿†rž?hŒjé†rŸ?htjÕ†r ?jsj¿†r¡?hŒXTextr¢?†r£?htj{†r¤?jsj¿†r¥?jXstringr¦?†r§?j©jq†r¨?htj{†r©?jsj¿†rª?j-XBooleanr«?†r¬?htjÆr­?jsj2†r®?jXbeginr¯?†r°?jsX
  r±?†r²?jJXResultr³?†r´?jsj¿†rµ?htj{†r¶?htjì†r·?jsj¿†r¸?hŒX	TextAtPosr¹?†rº?j©jm†r»?hŒjé†r¼?htjÕ†r½?jsj¿†r¾?jŸj5†r¿?htjÕ†rÀ?jsj¿†rÁ?hŒXTextrÂ?†rÃ?j©jq†rÄ?htjÆrÅ?jsj2†rÆ?jXendrÇ?†rÈ?htjÆrÉ?jsX

rÊ?†rË?jXfunctionrÌ?†rÍ?jsj¿†rÎ?jtXCharInrÏ?†rÐ?j©jm†rÑ?jXconstrÒ?†rÓ?jsj¿†rÔ?hŒjé†rÕ?htj{†rÖ?jsj¿†r×?jXstringrØ?†rÙ?htjÆrÚ?jsj¿†rÛ?hŒjâ†rÜ?htj{†rÝ?jsj¿†rÞ?j-XCharrß?†rà?j©jq†rá?htj{†râ?jsj¿†rã?j-XBooleanrä?†rå?htjÆræ?jsj2†rç?jXvarrè?†ré?jsX
  rê?†rë?hŒj†rì?htj{†rí?jsj¿†rî?j-XIntegerrï?†rð?htjÆrñ?jsj2†rò?jXbeginró?†rô?jsX
  rõ?†rö?jJXResultr÷?†rø?jsj¿†rù?htj{†rú?htjì†rû?jsj¿†rü?jXTruerý?†rþ?htjÆrÿ?jsX
  r@†r@jXforr@†r@jsj¿†r@hŒj†r@jsj¿†r@htj{†r@htjì†r@jsj¿†r	@jŸj5†r
@jsj¿†r@jXtor@†r
@jsj¿†r@jEXLengthr@†r@j©jm†r@hŒjé†r@j©jq†r@jsj¿†r@jXdor@†r@jsX
    r@†r@jXifr@†r@jsj¿†r@hŒjé†r@j©j'†r@hŒj†r@j©j/†r@jsj¿†r @htjì†r!@jsj¿†r"@hŒjâ†r#@jsj¿†r$@jXthenr%@†r&@jsj¿†r'@jXExitr(@†r)@htjÆr*@jsX
  r+@†r,@jJXResultr-@†r.@jsj¿†r/@htj{†r0@htjì†r1@jsj¿†r2@jXFalser3@†r4@htjÆr5@jsj2†r6@jXendr7@†r8@htjÆr9@jsX

r:@†r;@jXfunctionr<@†r=@jsj¿†r>@jtXCharInr?@†r@@j©jm†rA@jXconstrB@†rC@jsj¿†rD@hŒjé†rE@htj{†rF@jsj¿†rG@jXstringrH@†rI@htjÆrJ@jsj¿†rK@hŒjâ†rL@htj{†rM@jsj¿†rN@hŒXTCharSetrO@†rP@j©jq†rQ@htj{†rR@jsj¿†rS@j-XBooleanrT@†rU@htjÆrV@jsj2†rW@jXvarrX@†rY@jsX
  rZ@†r[@hŒj†r\@htj{†r]@jsj¿†r^@j-XIntegerr_@†r`@htjÆra@jsj2†rb@jXbeginrc@†rd@jsX
  re@†rf@jJXResultrg@†rh@jsj¿†ri@htj{†rj@htjì†rk@jsj¿†rl@jXFalserm@†rn@htjÆro@jsX
  rp@†rq@jXforrr@†rs@jsj¿†rt@hŒj†ru@jsj¿†rv@htj{†rw@htjì†rx@jsj¿†ry@jŸj5†rz@jsj¿†r{@jXtor|@†r}@jsj¿†r~@jEXLengthr@†r€@j©jm†r@hŒjé†r‚@j©jq†rƒ@jsj¿†r„@jXdor…@†r†@jsj¿†r‡@jXbeginrˆ@†r‰@jsX
    rŠ@†r‹@jJXResultrŒ@†r@jsj¿†rŽ@htj{†r@htjì†r@jsj¿†r‘@hŒjé†r’@j©j'†r“@hŒj†r”@j©j/†r•@jsj¿†r–@jXinr—@†r˜@jsj¿†r™@hŒjâ†rš@htjÆr›@jsX
    rœ@†r@jXifrž@†rŸ@jsj¿†r @jJXResultr¡@†r¢@jsj¿†r£@jXthenr¤@†r¥@jsX
      r¦@†r§@jXExitr¨@†r©@htjÆrª@jsX
  r«@†r¬@jXendr­@†r®@htjÆr¯@jsj2†r°@jXendr±@†r²@htjÆr³@jsX

r´@†rµ@jXfunctionr¶@†r·@jsj¿†r¸@jtXStrInr¹@†rº@j©jm†r»@jXconstr¼@†r½@jsj¿†r¾@hŒjé†r¿@htjÕ†rÀ@jsj¿†rÁ@hŒXSubStrrÂ@†rÃ@htj{†rÄ@jsj¿†rÅ@jXstringrÆ@†rÇ@j©jq†rÈ@htj{†rÉ@jsj¿†rÊ@j-XBooleanrË@†rÌ@htjÆrÍ@jsj2†rÎ@jXbeginrÏ@†rÐ@jsX
  rÑ@†rÒ@jJXResultrÓ@†rÔ@jsj¿†rÕ@htj{†rÖ@htjì†r×@jsj¿†rØ@hŒXPosExrÙ@†rÚ@j©jm†rÛ@hŒXSubStrrÜ@†rÝ@htjÕ†rÞ@jsj¿†rß@hŒjé†rà@j©jq†rá@jsj¿†râ@htj‡†rã@jsj¿†rä@jŸj®†rå@htjÆræ@jsj2†rç@jXendrè@†ré@htjÆrê@jsX

rë@†rì@jXfunctionrí@†rî@jsj¿†rï@jtXStrInrð@†rñ@j©jm†rò@hŒXSLró@†rô@htj{†rõ@jsj¿†rö@hŒXTStringsr÷@†rø@htjÆrù@jsj¿†rú@jXconstrû@†rü@jsj¿†rý@hŒjé†rþ@htj{†rÿ@jsj¿†rAjXstringrA†rAj©jq†rAhtj{†rAjsj¿†rAj-XBooleanrA†rAhtjÆrAjsj2†r	AjXvarr
A†rAjsX
  rA†r
AhŒj†rAhtj{†rAjsj¿†rAj-XIntegerrA†rAhtjÆrAjsj2†rAjXbeginrA†rAjsX
  rA†rAjJXResultrA†rAjsj¿†rAhtj{†rAhtjì†rAjsj¿†rAjXFalserA†r AhtjÆr!AjsX
  r"A†r#AjXforr$A†r%Ajsj¿†r&AhŒj†r'Ajsj¿†r(Ahtj{†r)Ahtjì†r*Ajsj¿†r+AjŸj®†r,Ajsj¿†r-AjXtor.A†r/Ajsj¿†r0AhŒXSLr1A†r2Ahtj~†r3AhŒXCountr4A†r5AhtjR†r6AjŸj5†r7Ajsj¿†r8AjXdor9A†r:Ajsj¿†r;AjXbeginr<A†r=AjsX
    r>A†r?AjJXResultr@A†rAAjsj¿†rBAhtj{†rCAhtjì†rDAjsj¿†rEAj©jm†rFAhŒjé†rGAjsj¿†rHAhtjì†rIAjsj¿†rJAhŒXSLrKA†rLAj©j'†rMAhŒj†rNAj©X])rOA†rPAhtjÆrQAjsX
    rRA†rSAjXifrTA†rUAjsj¿†rVAjJXResultrWA†rXAjsj¿†rYAjXthenrZA†r[AjsX
      r\A†r]AjXExitr^A†r_AhtjÆr`AjsX
  raA†rbAjXendrcA†rdAhtjÆreAjsj2†rfAjXendrgA†rhAhtjÆriAjsX

rjA†rkAjXfunctionrlA†rmAjsj¿†rnAjtXStrInroA†rpAj©jm†rqAhŒjކrrAhtj{†rsAjsj¿†rtAhŒXTStrAruA†rvAhtjÆrwAjsj¿†rxAjXconstryA†rzAjsj¿†r{AhŒjé†r|Ahtj{†r}Ajsj¿†r~AjXstringrA†r€Aj©jq†rAhtj{†r‚Ajsj¿†rƒAj-XBooleanr„A†r…AhtjÆr†Ajsj2†r‡AjXvarrˆA†r‰AjsX
  rŠA†r‹AhŒj†rŒAhtj{†rAjsj¿†rŽAj-XIntegerrA†rAhtjÆr‘Ajsj2†r’AjXbeginr“A†r”AjsX
  r•A†r–AjJXResultr—A†r˜Ajsj¿†r™Ahtj{†ršAhtjì†r›Ajsj¿†rœAjXFalserA†ržAhtjÆrŸAjsX
  r A†r¡AjXforr¢A†r£Ajsj¿†r¤AhŒj†r¥Ajsj¿†r¦Ahtj{†r§Ahtjì†r¨Ajsj¿†r©AjEXLowrªA†r«Aj©jm†r¬AhŒjކr­Aj©jq†r®Ajsj¿†r¯AjXtor°A†r±Ajsj¿†r²AjEXHighr³A†r´Aj©jm†rµAhŒjކr¶Aj©jq†r·Ajsj¿†r¸AjXdor¹A†rºAjsj¿†r»AjXbeginr¼A†r½AjsX
    r¾A†r¿AjJXResultrÀA†rÁAjsj¿†rÂAhtj{†rÃAhtjì†rÄAjsj¿†rÅAj©jm†rÆAhŒjé†rÇAjsj¿†rÈAhtjì†rÉAjsj¿†rÊAhŒjކrËAj©j'†rÌAhŒj†rÍAj©X])rÎA†rÏAhtjÆrÐAjsX
    rÑA†rÒAjXifrÓA†rÔAjsj¿†rÕAjJXResultrÖA†r×Ajsj¿†rØAjXthenrÙA†rÚAjsX
      rÛA†rÜAjXExitrÝA†rÞAhtjÆrßAjsX
  ràA†ráAjXendrâA†rãAhtjÆräAjsj2†råAjXendræA†rçAhtjÆrèAjsX

réA†rêAjXfunctionrëA†rìAjsj¿†ríAjtXTextInrîA†rïAj©jm†rðAjXconstrñA†ròAjsj¿†róAhŒjé†rôAhtjÕ†rõAjsj¿†röAhŒXTextr÷A†røAhtj{†rùAjsj¿†rúAjXstringrûA†rüAj©jq†rýAhtj{†rþAjsj¿†rÿAj-XBooleanrB†rBhtjÆrBjsj2†rBjXbeginrB†rBjsX
  rB†rBjJXResultrB†r	Bjsj¿†r
Bhtj{†rBhtjì†rBjsj¿†r
BhŒX	PosExTextrB†rBj©jm†rBhŒXTextrB†rBhtjÕ†rBjsj¿†rBhŒjé†rBj©jq†rBjsj¿†rBhtj‡†rBjsj¿†rBjŸj®†rBhtjÆrBjsj2†rBjXendrB†rBhtjÆrBjsX

r B†r!BjXfunctionr"B†r#Bjsj¿†r$BjtXTextInr%B†r&Bj©jm†r'BhŒXSLr(B†r)Bhtj{†r*Bjsj¿†r+BhŒXTStringsr,B†r-BhtjÆr.Bjsj¿†r/BjXconstr0B†r1Bjsj¿†r2BhŒXTextr3B†r4Bhtj{†r5Bjsj¿†r6BjXstringr7B†r8Bj©jq†r9Bhtj{†r:Bjsj¿†r;Bj-XBooleanr<B†r=BhtjÆr>Bjsj2†r?BjXvarr@B†rABjsX
  rBB†rCBhŒj†rDBhtj{†rEBjsj¿†rFBj-XIntegerrGB†rHBhtjÆrIBjsj2†rJBjXbeginrKB†rLBjsX
  rMB†rNBjJXResultrOB†rPBjsj¿†rQBhtj{†rRBhtjì†rSBjsj¿†rTBjXFalserUB†rVBhtjÆrWBjsX
  rXB†rYBjXforrZB†r[Bjsj¿†r\BhŒj†r]Bjsj¿†r^Bhtj{†r_Bhtjì†r`Bjsj¿†raBjŸj®†rbBjsj¿†rcBjXtordB†reBjsj¿†rfBhŒXSLrgB†rhBhtj~†riBhŒXCountrjB†rkBhtjR†rlBjŸj5†rmBjsj¿†rnBjXdoroB†rpBjsj¿†rqBjXbeginrrB†rsBjsX
    rtB†ruBjJXResultrvB†rwBjsj¿†rxBhtj{†ryBhtjì†rzBjsj¿†r{BjEXSameTextr|B†r}Bj©jm†r~BhŒXTextrB†r€BhtjÕ†rBjsj¿†r‚BhŒXSLrƒB†r„Be(j©j'†r…BhŒj†r†Bj©X])r‡B†rˆBhtjÆr‰BjsX
    rŠB†r‹BjXifrŒB†rBjsj¿†rŽBjJXResultrB†rBjsj¿†r‘BjXthenr’B†r“BjsX
      r”B†r•BjXExitr–B†r—BhtjÆr˜BjsX
  r™B†ršBjXendr›B†rœBhtjÆrBjsj2†ržBjXendrŸB†r BhtjÆr¡BjsX

r¢B†r£BjXfunctionr¤B†r¥Bjsj¿†r¦BjtXTextInr§B†r¨Bj©jm†r©BhŒjކrªBhtj{†r«Bjsj¿†r¬BhŒXTStrAr­B†r®BhtjÆr¯Bjsj¿†r°BjXconstr±B†r²Bjsj¿†r³BhŒXTextr´B†rµBhtj{†r¶Bjsj¿†r·BjXstringr¸B†r¹Bj©jq†rºBhtj{†r»Bjsj¿†r¼Bj-XBooleanr½B†r¾BhtjÆr¿Bjsj2†rÀBjXvarrÁB†rÂBjsX
  rÃB†rÄBhŒj†rÅBhtj{†rÆBjsj¿†rÇBj-XIntegerrÈB†rÉBhtjÆrÊBjsj2†rËBjXbeginrÌB†rÍBjsX
  rÎB†rÏBjJXResultrÐB†rÑBjsj¿†rÒBhtj{†rÓBhtjì†rÔBjsj¿†rÕBjXFalserÖB†r×BhtjÆrØBjsX
  rÙB†rÚBjXforrÛB†rÜBjsj¿†rÝBhŒj†rÞBjsj¿†rßBhtj{†ràBhtjì†ráBjsj¿†râBjEXLowrãB†räBj©jm†råBhŒjކræBj©jq†rçBjsj¿†rèBjXtoréB†rêBjsj¿†rëBjEXHighrìB†ríBj©jm†rîBhŒjކrïBj©jq†rðBjsj¿†rñBjXdoròB†róBjsj¿†rôBjXbeginrõB†röBjsX
    r÷B†røBjJXResultrùB†rúBjsj¿†rûBhtj{†rüBhtjì†rýBjsj¿†rþBjEXSameTextrÿB†rCj©jm†rChŒXTextrC†rChtjÕ†rCjsj¿†rChŒjކrCj©j'†rChŒj†rCj©X])r	C†r
ChtjÆrCjsX
    rC†r
CjXifrC†rCjsj¿†rCjJXResultrC†rCjsj¿†rCjXthenrC†rCjsX
      rC†rCjXExitrC†rChtjÆrCjsX
  rC†rCjXendrC†rChtjÆrCjsj2†r CjXendr!C†r"ChtjÆr#CjsX

r$C†r%CjXfunctionr&C†r'Cjsj¿†r(CjtXStrIndexr)C†r*Cj©jm†r+ChŒXSLr,C†r-Chtj{†r.Cjsj¿†r/ChŒXTStringsr0C†r1ChtjÆr2Cjsj¿†r3CjXconstr4C†r5Cjsj¿†r6ChŒjé†r7Chtj{†r8Cjsj¿†r9CjXstringr:C†r;Cj©jq†r<Chtj{†r=Cjsj¿†r>Cj-XIntegerr?C†r@ChtjÆrACjsj2†rBCjXbeginrCC†rDCjsX
  rEC†rFCjXforrGC†rHCjsj¿†rICjJXResultrJC†rKCjsj¿†rLChtj{†rMChtjì†rNCjsj¿†rOCjŸj®†rPCjsj¿†rQCjXtorRC†rSCjsj¿†rTChŒXSLrUC†rVChtj~†rWChŒXCountrXC†rYChtjR†rZCjŸj5†r[Cjsj¿†r\CjXdor]C†r^CjsX
    r_C†r`CjXifraC†rbCjsj¿†rcChŒjé†rdCjsj¿†reChtjì†rfCjsj¿†rgChŒXSLrhC†riCj©j'†rjCjJXResultrkC†rlCj©j/†rmCjsj¿†rnCjXthenroC†rpCjsX
      rqC†rrCjXExitrsC†rtChtjÆruCjsX
  rvC†rwCjJXResultrxC†ryCjsj¿†rzChtj{†r{Chtjì†r|Cjsj¿†r}ChtjR†r~CjŸj5†rChtjÆr€Cjsj2†rCjXendr‚C†rƒChtjÆr„CjsX

r…C†r†CjXfunctionr‡C†rˆCjsj¿†r‰CjtXStrIndexrŠC†r‹Cj©jm†rŒChŒjކrChtj{†rŽCjsj¿†rChŒXTStrArC†r‘ChtjÆr’Cjsj¿†r“CjXconstr”C†r•Cjsj¿†r–ChŒjé†r—Chtj{†r˜Cjsj¿†r™CjXstringršC†r›Cj©jq†rœChtj{†rCjsj¿†ržCj-XIntegerrŸC†r ChtjÆr¡Cjsj2†r¢CjXbeginr£C†r¤CjsX
  r¥C†r¦CjXforr§C†r¨Cjsj¿†r©CjJXResultrªC†r«Cjsj¿†r¬Chtj{†r­Chtjì†r®Cjsj¿†r¯CjEXLowr°C†r±Cj©jm†r²ChŒjކr³Cj©jq†r´Cjsj¿†rµCjXtor¶C†r·Cjsj¿†r¸CjEXHighr¹C†rºCj©jm†r»ChŒjކr¼Cj©jq†r½Cjsj¿†r¾CjXdor¿C†rÀCjsX
    rÁC†rÂCjXifrÃC†rÄCjsj¿†rÅChŒjé†rÆCjsj¿†rÇChtjì†rÈCjsj¿†rÉChŒjކrÊCj©j'†rËCjJXResultrÌC†rÍCj©j/†rÎCjsj¿†rÏCjXthenrÐC†rÑCjsX
      rÒC†rÓCjXExitrÔC†rÕChtjÆrÖCjsX
  r×C†rØCjJXResultrÙC†rÚCjsj¿†rÛChtj{†rÜChtjì†rÝCjsj¿†rÞChtjR†rßCjŸj5†ràChtjÆráCjsj2†râCjXendrãC†räChtjÆråCjsX

ræC†rçCjXfunctionrèC†réCjsj¿†rêCjtX	TextIndexrëC†rìCj©jm†ríChŒXSLrîC†rïChtj{†rðCjsj¿†rñChŒXTStringsròC†róChtjÆrôCjsj¿†rõCjXconströC†r÷Cjsj¿†røChŒXTextrùC†rúChtj{†rûCjsj¿†rüCjXstringrýC†rþCj©jq†rÿChtj{†rDjsj¿†rDj-XIntegerrD†rDhtjÆrDjsj2†rDjXbeginrD†rDjsX
  rD†r	DjXforr
D†rDjsj¿†rDjJXResultr
D†rDjsj¿†rDhtj{†rDhtjì†rDjsj¿†rDjŸj®†rDjsj¿†rDjXtorD†rDjsj¿†rDhŒXSLrD†rDhtj~†rDhŒXCountrD†rDhtjR†rDjŸj5†rDjsj¿†rDjXdor D†r!DjsX
    r"D†r#DjXifr$D†r%Djsj¿†r&DjEXSameTextr'D†r(Dj©jm†r)DhŒXTextr*D†r+DhtjÕ†r,Djsj¿†r-DhŒXSLr.D†r/Dj©j'†r0DjJXResultr1D†r2Dj©X])r3D†r4Djsj¿†r5DjXthenr6D†r7DjsX
      r8D†r9DjXExitr:D†r;DhtjÆr<DjsX
  r=D†r>DjJXResultr?D†r@Djsj¿†rADhtj{†rBDhtjì†rCDjsj¿†rDDhtjR†rEDjŸj5†rFDhtjÆrGDjsj2†rHDjXendrID†rJDhtjÆrKDjsX

rLD†rMDjXfunctionrND†rODjsj¿†rPDjtX	TextIndexrQD†rRDj©jm†rSDhŒjކrTDhtj{†rUDjsj¿†rVDhŒXTStrArWD†rXDhtjÆrYDjsj¿†rZDjXconstr[D†r\Djsj¿†r]DhŒXTextr^D†r_Dhtj{†r`Djsj¿†raDjXstringrbD†rcDj©jq†rdDhtj{†reDjsj¿†rfDj-XIntegerrgD†rhDhtjÆriDjsj2†rjDjXbeginrkD†rlDjsX
  rmD†rnDjXforroD†rpDjsj¿†rqDjJXResultrrD†rsDjsj¿†rtDhtj{†ruDhtjì†rvDjsj¿†rwDjEXLowrxD†ryDj©jm†rzDhŒjކr{Dj©jq†r|Djsj¿†r}DjXtor~D†rDjsj¿†r€DjEXHighrD†r‚Dj©jm†rƒDhŒjކr„Dj©jq†r…Djsj¿†r†DjXdor‡D†rˆDjsX
    r‰D†rŠDjXifr‹D†rŒDjsj¿†rDjEXSameTextrŽD†rDj©jm†rDhŒXTextr‘D†r’DhtjÕ†r“Djsj¿†r”DhŒjކr•Dj©j'†r–DjJXResultr—D†r˜Dj©X])r™D†ršDjsj¿†r›DjXthenrœD†rDjsX
      ržD†rŸDjXExitr D†r¡DhtjÆr¢DjsX
  r£D†r¤DjJXResultr¥D†r¦Djsj¿†r§Dhtj{†r¨Dhtjì†r©Djsj¿†rªDhtjR†r«DjŸj5†r¬DhtjÆr­Djsj2†r®DjXendr¯D†r°DhtjÆr±DjsX

r²D†r³DjXfunctionr´D†rµDjsj¿†r¶DjtXReplaceCharsr·D†r¸Dj©jm†r¹DjXconstrºD†r»Djsj¿†r¼DhŒjé†r½Dhtj{†r¾Djsj¿†r¿DjXstringrÀD†rÁDhtjÆrÂDjsj¿†rÃDhŒXOldrÄD†rÅDhtjÕ†rÆDjsj¿†rÇDjXNewrÈD†rÉDhtj{†rÊDjsj¿†rËDj-XCharrÌD†rÍDj©jq†rÎDhtj{†rÏDjsj¿†rÐDjXstringrÑD†rÒDhtjÆrÓDjsj2†rÔDjXvarrÕD†rÖDjsX
  r×D†rØDhŒj†rÙDhtj{†rÚDjsj¿†rÛDj-XIntegerrÜD†rÝDhtjÆrÞDjsj2†rßDjXbeginràD†ráDjsX
  râD†rãDjJXResulträD†råDjsj¿†ræDhtj{†rçDhtjì†rèDjsj¿†réDhŒjé†rêDhtjÆrëDjsX
  rìD†ríDjXforrîD†rïDjsj¿†rðDhŒj†rñDjsj¿†ròDhtj{†róDhtjì†rôDjsj¿†rõDjŸj5†röDjsj¿†r÷DjXtorøD†rùDjsj¿†rúDjEXLengthrûD†rüDj©jm†rýDjJXResultrþD†rÿDj©jq†rEjsj¿†rEjXdorE†rEjsX
    rE†rEjXifrE†rEjsj¿†rEjJXResultr	E†r
Ej©j'†rEhŒj†rEj©j/†r
Ejsj¿†rEhtjì†rEjsj¿†rEhŒXOldrE†rEjsj¿†rEjXthenrE†rEjsX
      rE†rEjJXResultrE†rEj©j'†rEhŒj†rEj©j/†rEjsj¿†rEhtj{†rEhtjì†rEjsj¿†r EjXNewr!E†r"EhtjÆr#Ejsj2†r$EjXendr%E†r&EhtjÆr'EjsX

r(E†r)EjXfunctionr*E†r+Ejsj¿†r,EjtXReplaceCharsr-E†r.Ej©jm†r/EjXconstr0E†r1Ejsj¿†r2EhŒjé†r3Ehtj{†r4Ejsj¿†r5EjXstringr6E†r7EhtjÆr8Ejsj¿†r9EhŒXOldr:E†r;Ehtj{†r<Ejsj¿†r=EhŒXTCharSetr>E†r?EhtjÆr@Ejsj¿†rAEjXNewrBE†rCEhtj{†rDEjsj¿†rEEj-XCharrFE†rGEj©jq†rHEhtj{†rIEjsj¿†rJEjXstringrKE†rLEhtjÆrMEjsj2†rNEjXvarrOE†rPEjsX
  rQE†rREhŒj†rSEhtj{†rTEjsj¿†rUEj-XIntegerrVE†rWEhtjÆrXEjsj2†rYEjXbeginrZE†r[EjsX
  r\E†r]EjJXResultr^E†r_Ejsj¿†r`Ehtj{†raEhtjì†rbEjsj¿†rcEhŒjé†rdEhtjÆreEjsX
  rfE†rgEjXforrhE†riEjsj¿†rjEhŒj†rkEjsj¿†rlEhtj{†rmEhtjì†rnEjsj¿†roEjŸj5†rpEjsj¿†rqEjXtorrE†rsEjsj¿†rtEjEXLengthruE†rvEj©jm†rwEjJXResultrxE†ryEj©jq†rzEjsj¿†r{EjXdor|E†r}EjsX
    r~E†rEjXifr€E†rEjsj¿†r‚EjJXResultrƒE†r„Ej©j'†r…EhŒj†r†Ej©j/†r‡Ejsj¿†rˆEjXinr‰E†rŠEjsj¿†r‹EhŒXOldrŒE†rEjsj¿†rŽEjXthenrE†rEjsX
      r‘E†r’EjJXResultr“E†r”Ej©j'†r•EhŒj†r–Ej©j/†r—Ejsj¿†r˜Ehtj{†r™Ehtjì†ršEjsj¿†r›EjXNewrœE†rEhtjÆržEjsj2†rŸEjXendr E†r¡EhtjÆr¢EjsX

r£E†r¤EjXfunctionr¥E†r¦Ejsj¿†r§EjtXReplacer¨E†r©Ej©jm†rªEjXconstr«E†r¬Ejsj¿†r­EhŒjé†r®EhtjÕ†r¯Ejsj¿†r°EhŒXOldr±E†r²EhtjÕ†r³Ejsj¿†r´EjXNewrµE†r¶Ehtj{†r·Ejsj¿†r¸EjXstringr¹E†rºEj©jq†r»Ehtj{†r¼Ejsj¿†r½EjXstringr¾E†r¿EhtjÆrÀEjsj2†rÁEjXvarrÂE†rÃEjsX
  rÄE†rÅEhŒXoldprÆE†rÇEhtjÕ†rÈEjsj¿†rÉEhŒXpsrÊE†rËEhtj{†rÌEjsj¿†rÍEj-XIntegerrÎE†rÏEhtjÆrÐEjsj2†rÑEjXbeginrÒE†rÓEjsX
  rÔE†rÕEhŒXpsrÖE†r×Ejsj¿†rØEhtj{†rÙEhtjì†rÚEjsj¿†rÛEjŸj5†rÜEhtjÆrÝEjsX
  rÞE†rßEjJXResultràE†ráEjsj¿†râEhtj{†rãEhtjì†räEjsj¿†råEjÁjJ†ræEjÁjJ†rçEhtjÆrèEjsX
  réE†rêEjXwhilerëE†rìEjsj¿†ríEjXTruerîE†rïEjsj¿†rðEjXdorñE†ròEjsj¿†róEjXbeginrôE†rõEjsX
    röE†r÷EhŒXoldprøE†rùEjsj¿†rúEhtj{†rûEhtjì†rüEjsj¿†rýEhŒXpsrþE†rÿEhtjÆrFjsX
    rF†rFhŒXpsrF†rFjsj¿†rFhtj{†rFhtjì†rFjsj¿†rFhŒXPosExr	F†r
Fj©jm†rFhŒXOldrF†r
FhtjÕ†rFjsj¿†rFhŒjé†rFhtjÕ†rFjsj¿†rFhŒXoldprF†rFj©jq†rFhtjÆrFjsX
    rF†rFjXifrF†rFjsj¿†rFhŒXpsrF†rFjsj¿†rFhtjì†rFjsj¿†r FjŸj®†r!Fjsj¿†r"FjXthenr#F†r$Fjsj¿†r%FjXbeginr&F†r'FjsX
      r(F†r)FjJXResultr*F†r+Fjsj¿†r,Fhtj{†r-Fhtjì†r.Fjsj¿†r/FjJXResultr0F†r1Fjsj¿†r2FhtjÆr3Fjsj¿†r4FjEXCopyr5F†r6Fj©jm†r7FhŒjé†r8FhtjÕ†r9Fjsj¿†r:FhŒXoldpr;F†r<FhtjÕ†r=Fjsj¿†r>FjEXLengthr?F†r@Fj©jm†rAFhŒjé†rBFj©jq†rCFjsj¿†rDFhtjR†rEFjsj¿†rFFhŒXoldprGF†rHFjsj¿†rIFhtjÆrJFjsj¿†rKFjŸj5†rLFj©jq†rMFhtjÆrNFjsX
    rOF†rPFjXExitrQF†rRFhtjÆrSFjsj¿†rTFjXendrUF†rVFhtjÆrWFjsX
    rXF†rYFjJXResultrZF†r[Fjsj¿†r\Fhtj{†r]Fhtjì†r^Fjsj¿†r_FjJXResultr`F†raFjsj¿†rbFhtjÆrcFjsj¿†rdFjEXCopyreF†rfFj©jm†rgFhŒjé†rhFhtjÕ†riFjsj¿†rjFhŒXoldprkF†rlFhtjÕ†rmFjsj¿†rnFhŒXpsroF†rpFjsj¿†rqFhtjR†rrFjsj¿†rsFhŒXoldprtF†ruFj©jq†rvFjsj¿†rwFhtjÆrxFjsj¿†ryFjXNewrzF†r{FhtjÆr|FjsX
    r}F†r~FjEXIncrF†r€Fj©jm†rFhŒXpsr‚F†rƒFhtjÕ†r„Fjsj¿†r…FjEXLengthr†F†r‡Fj©jm†rˆFhŒXOldr‰F†rŠFj©X))r‹F†rŒFhtjÆrFjsX
  rŽF†rFjXendrF†r‘FhtjÆr’Fjsj2†r“FjXendr”F†r•FhtjÆr–FjsX

r—F†r˜FjXfunctionr™F†ršFjsj¿†r›FjtXSLOfFilerœF†rFj©jm†ržFjXconstrŸF†r Fjsj¿†r¡FhŒXFileNamer¢F†r£Fhtj{†r¤Fjsj¿†r¥FjXstringr¦F†r§Fj©jq†r¨Fhtj{†r©Fjsj¿†rªFhŒXTStringListr«F†r¬FhtjÆr­Fjsj2†r®FjXbeginr¯F†r°FjsX
  r±F†r²FjJXResultr³F†r´Fjsj¿†rµFhtj{†r¶Fhtjì†r·Fjsj¿†r¸FhŒXTStringListr¹F†rºFhtj~†r»FhŒXCreater¼F†r½FhtjÆr¾FjsX
  r¿F†rÀFjXifrÁF†rÂFjsj¿†rÃFjEX
FileExistsrÄF†rÅFj©jm†rÆFhŒXFileNamerÇF†rÈFj©jq†rÉFjsj¿†rÊFjXthenrËF†rÌFjsX
    rÍF†rÎFjJXResultrÏF†rÐFhtj~†rÑFhŒXLoadFromFilerÒF†rÓFj©jm†rÔFhŒXFileNamerÕF†rÖFj©jq†r×FhtjÆrØFjsj2†rÙFjXendrÚF†rÛFhtjÆrÜFjsX

rÝF†rÞFjXfunctionrßF†ràFjsj¿†ráFjtXContainsEmptyLinesrâF†rãFj©jm†räFhŒXSLråF†ræFhtj{†rçFjsj¿†rèFhŒXTStringsréF†rêFj©jq†rëFhtj{†rìFjsj¿†ríFj-XBooleanrîF†rïFhtjÆrðFjsj2†rñFjXbeginròF†róFjsX
  rôF†rõFjJXResultröF†r÷Fjsj¿†røFhtj{†rùFhtjì†rúFjsj¿†rûFhŒXStrInrüF†rýFj©jm†rþFhŒXSLrÿF†rGhtjÕ†rGjsj¿†rGjÁjJ†rGjÁjJ†rGj©jq†rGhtjÆrGjsj2†rGjXendrG†r	GhtjÆr
GjsX

rG†rGjX	procedurer
G†rGjsj¿†rGjtXDeleteEmptyLinesrG†rGj©jm†rGhŒXSLrG†rGhtj{†rGjsj¿†rGhŒXTStringsrG†rGj©jq†rGhtjÆrGjsj2†rGjXvarrG†rGjsX
  rG†rGhŒj†r Ghtj{†r!Gjsj¿†r"Gj-XIntegerr#G†r$GhtjÆr%Gjsj2†r&GjXbeginr'G†r(GjsX
  r)G†r*GhŒj†r+Gjsj¿†r,Ghtj{†r-Ghtjì†r.Gjsj¿†r/GjŸj®†r0GhtjÆr1GjsX
  r2G†r3GjXwhiler4G†r5Gjsj¿†r6GhŒj†r7Gjsj¿†r8Ghtj†r9Gjsj¿†r:GhŒXSLr;G†r<Ghtj~†r=GhŒXCountr>G†r?Gjsj¿†r@GjXdorAG†rBGjsj¿†rCGjXbeginrDG†rEGjsX
    rFG†rGGjXifrHG†rIGjsj¿†rJGhŒXSLrKG†rLGj©j'†rMGhŒj†rNGj©j/†rOGjsj¿†rPGhtjì†rQGjsj¿†rRGjÁjJ†rSGjÁjJ†rTGjsj¿†rUGjXthenrVG†rWGjsX
      rXG†rYGhŒXSLrZG†r[Ghtj~†r\GhŒXDeleter]G†r^Gj©jm†r_GhŒj†r`Gj©jq†raGjsX
    rbG†rcGjXelserdG†reGjsX
      rfG†rgGjEXIncrhG†riGj©jm†rjGhŒj†rkGj©jq†rlGhtjÆrmGjsX
  rnG†roGjXendrpG†rqGhtjÆrrGjsj2†rsGjXendrtG†ruGhtjÆrvGjsX

rwG†rxGjX	procedureryG†rzGjsj¿†r{GjtXDeleteCommentLinesr|G†r}Gj©jm†r~GhŒXSLrG†r€Ghtj{†rGjsj¿†r‚GhŒXTStringsrƒG†r„GhtjÆr…Gjsj¿†r†GjXconstr‡G†rˆGjsj¿†r‰GhŒXCommentSignrŠG†r‹Ghtj{†rŒGjsj¿†rGjXstringrŽG†rGjsj¿†rGhtjì†r‘Gjsj¿†r’GjÁjJ†r“GjÁX//r”G†r•GjÁjJ†r–Gj©jq†r—GhtjÆr˜Gjsj2†r™GjXvarršG†r›GjsX
  rœG†rGhŒj†ržGhtj{†rŸGjsj¿†r Gj-XIntegerr¡G†r¢GhtjÆr£Gjsj2†r¤GjXbeginr¥G†r¦GjsX
  r§G†r¨GhŒj†r©Gjsj¿†rªGhtj{†r«Ghtjì†r¬Gjsj¿†r­GjŸj®†r®GhtjÆr¯GjsX
  r°G†r±GjXwhiler²G†r³Gjsj¿†r´GhŒj†rµGjsj¿†r¶Ghtj†r·Gjsj¿†r¸GhŒXSLr¹G†rºGhtj~†r»GhŒXCountr¼G†r½Gjsj¿†r¾GjXdor¿G†rÀGjsj¿†rÁGjXbeginrÂG†rÃGjsX
    rÄG†rÅGjXifrÆG†rÇGjsj¿†rÈGj©jm†rÉGhŒXSLrÊG†rËGj©j'†rÌGhŒj†rÍGj©j/†rÎGjsj¿†rÏGhtjì†rÐGjsj¿†rÑGjÁjJ†rÒGjÁjJ†rÓGj©jq†rÔGjsj¿†rÕGjXorrÖG†r×Gjsj¿†rØGj©jm†rÙGhŒX
StrAtBeginrÚG†rÛGj©jm†rÜGe(jEXTrimLeftrÝG†rÞGj©jm†rßGhŒXSLràG†ráGj©j'†râGhŒj†rãGj©X])räG†råGhtjÕ†ræGjsj¿†rçGhŒXCommentSignrèG†réGj©X))rêG†rëGjsj¿†rìGjXthenríG†rîGjsX
      rïG†rðGhŒXSLrñG†ròGhtj~†róGhŒXDeleterôG†rõGj©jm†röGhŒj†r÷Gj©jq†røGjsX
    rùG†rúGjXelserûG†rüGjsX
      rýG†rþGjEXIncrÿG†rHj©jm†rHhŒj†rHj©jq†rHhtjÆrHjsX
  rH†rHjXendrH†rHhtjÆr	Hjsj2†r
HjXendrH†rHhtjÆr
HjsX

rH†rHjXfunctionrH†rHjsj¿†rHjtXFindLinerH†rHj©jm†rHhŒXSLrH†rHhtj{†rHjsj¿†rHhŒXTStringsrH†rHhtjÆrHjsj¿†rHjXconstrH†rHjsj¿†r HhŒjé†r!Hhtj{†r"Hjsj¿†r#HjXstringr$H†r%Hj©jq†r&Hhtj{†r'Hjsj¿†r(Hj-XIntegerr)H†r*HhtjÆr+Hjsj2†r,HjXbeginr-H†r.HjsX
  r/H†r0HjXforr1H†r2Hjsj¿†r3HjJXResultr4H†r5Hjsj¿†r6Hhtj{†r7Hhtjì†r8Hjsj¿†r9HjŸj®†r:Hjsj¿†r;HjXtor<H†r=Hjsj¿†r>HhŒXSLr?H†r@Hhtj~†rAHhŒXCountrBH†rCHhtjR†rDHjŸj5†rEHjsj¿†rFHjXdorGH†rHHjsX
    rIH†rJHjXifrKH†rLHjsj¿†rMHhŒXTextAtBeginrNH†rOHj©jm†rPHhŒXSLrQH†rRHj©j'†rSHjJXResultrTH†rUHj©j/†rVHhtjÕ†rWHjsj¿†rXHhŒjé†rYHj©jq†rZHjsj¿†r[HjXthenr\H†r]HjsX
      r^H†r_HjXExitr`H†raHhtjÆrbHjsX
  rcH†rdHjJXResultreH†rfHjsj¿†rgHhtj{†rhHhtjì†riHjsj¿†rjHhtjR†rkHjŸj5†rlHhtjÆrmHjsj2†rnHjXendroH†rpHhtjÆrqHjsX

rrH†rsHjX	procedurertH†ruHjsj¿†rvHjtXQuickSortSLrwH†rxHj©jm†ryHhŒXSLrzH†r{Hhtj{†r|Hjsj¿†r}HhŒXTStringListr~H†rHj©jq†r€HhtjÆrHjsX

  r‚H†rƒHjX	procedurer„H†r…Hjsj¿†r†HjtXSortr‡H†rˆHj©jm†r‰HhŒXlrŠH†r‹HhtjÕ†rŒHjsj¿†rHhŒXrrŽH†rHhtj{†rHjsj¿†r‘Hj-XIntegerr’H†r“Hj©jq†r”HhtjÆr•HjsX
  r–H†r—HjXvarr˜H†r™HjsX
    ršH†r›HhŒj†rœHhtjÕ†rHhŒXjržH†rŸHhtj{†r Hjsj¿†r¡Hj-XIntegerr¢H†r£HhtjÆr¤HjsX
    r¥H†r¦HhŒj †r§HhtjÕ†r¨HhŒXxr©H†rªHhtj{†r«Hjsj¿†r¬HjXstringr­H†r®HhtjÆr¯HjsX
  r°H†r±HjXbeginr²H†r³HjsX
    r´H†rµHhŒj†r¶Hjsj¿†r·Hhtj{†r¸Hhtjì†r¹Hjsj¿†rºHhŒjŠH†r»HhtjÆr¼HjsX
    r½H†r¾HhŒjžH†r¿Hjsj¿†rÀHhtj{†rÁHhtjì†rÂHjsj¿†rÃHhŒjŽH†rÄHhtjÆrÅHjsX
    rÆH†rÇHhŒj©H†rÈHjsj¿†rÉHhtj{†rÊHhtjì†rËHjsj¿†rÌHhŒXSLrÍH†rÎHj©X[(rÏH†rÐHhŒjžH†rÑHjsj¿†rÒHhtjÆrÓHjsj¿†rÔHhŒj†rÕHj©jq†rÖHjsj¿†r×HjXdivrØH†rÙHjsj¿†rÚHjŸj³†rÛHj©j/†rÜHhtjÆrÝHjsX
    rÞH†rßHjXrepeatràH†ráHjsX
      râH†rãHjXwhileräH†råHjsj¿†ræHhŒXSLrçH†rèHj©j'†réHhŒj†rêHj©j/†rëHjsj¿†rìHhtj†ríHjsj¿†rîHhŒj©H†rïHjsj¿†rðHjXdorñH†ròHjsj¿†róHjEXIncrôH†rõHj©jm†röHhŒj†r÷Hj©jq†røHhtjÆrùHjsX
      rúH†rûHjXwhilerüH†rýHjsj¿†rþHhŒXSLrÿH†rIj©j'†rIhŒjžH†rIj©j/†rIjsj¿†rIhtj‡†rIjsj¿†rIhŒj©H†rIjsj¿†rIjXdor	I†r
Ijsj¿†rIjEXDecrI†r
Ij©jm†rIhŒjžH†rIj©jq†rIhtjÆrIjsX
      rI†rIjXifrI†rIjsj¿†rIhŒj†rIjsj¿†rIhtj†rIhtjì†rIjsj¿†rIhŒjžH†rIjsj¿†rIjXthenrI†rIjsj¿†r IjXbeginr!I†r"IjsX	
        r#I†r$IhŒj †r%Ijsj¿†r&Ihtj{†r'Ihtjì†r(Ijsj¿†r)IhŒXSLr*I†r+Ij©j'†r,IhŒj†r-Ij©j/†r.IhtjÆr/IjsX	
        r0I†r1IhŒXSLr2I†r3Ij©j'†r4IhŒj†r5Ij©j/†r6Ijsj¿†r7Ihtj{†r8Ihtjì†r9Ijsj¿†r:IhŒXSLr;I†r<Ij©j'†r=IhŒjžH†r>Ij©j/†r?IhtjÆr@IjsX	
        rAI†rBIhŒXSLrCI†rDIj©j'†rEIhŒjžH†rFIj©j/†rGIjsj¿†rHIhtj{†rIIhtjì†rJIjsj¿†rKIhŒj †rLIhtjÆrMIjsX	
        rNI†rOIjEXIncrPI†rQIj©jm†rRIhŒj†rSIj©jq†rTIhtjÆrUIjsj¿†rVIjEXDecrWI†rXIj©jm†rYIhŒjžH†rZIj©jq†r[IhtjÆr\IjsX
      r]I†r^IjXendr_I†r`IhtjÆraIjsX
    rbI†rcIjXuntilrdI†reIjsj¿†rfIhŒj†rgIjsj¿†rhIhtj‡†riIjsj¿†rjIhŒjžH†rkIhtjÆrlIjsX
    rmI†rnIjXifroI†rpIjsj¿†rqIhŒjžH†rrIjsj¿†rsIhtj‡†rtIjsj¿†ruIhŒjŠH†rvIjsj¿†rwIjXthenrxI†ryIjsj¿†rzIhŒXSortr{I†r|Ij©jm†r}IhŒjŠH†r~IhtjÕ†rIjsj¿†r€IhŒjžH†rIj©jq†r‚IhtjÆrƒIjsX
    r„I†r…IjXifr†I†r‡Ijsj¿†rˆIhŒj†r‰Ijsj¿†rŠIhtj†r‹Ijsj¿†rŒIhŒjŽH†rIjsj¿†rŽIjXthenrI†rIjsj¿†r‘IhŒXSortr’I†r“Ij©jm†r”IhŒj†r•IhtjÕ†r–Ijsj¿†r—IhŒjŽH†r˜Ij©jq†r™IhtjÆršIjsX
  r›I†rœIjXendrI†ržIhtjÆrŸIjsX

r I†r¡IjXbeginr¢I†r£IjsX
  r¤I†r¥IjXifr¦I†r§Ijsj¿†r¨IhŒXSLr©I†rªIhtj~†r«IhŒXCountr¬I†r­Ijsj¿†r®Ihtj‡†r¯Ijsj¿†r°IjŸj®†r±Ijsj¿†r²IjXthenr³I†r´IjsX
    rµI†r¶IhŒXSortr·I†r¸Ij©jm†r¹IjŸj®†rºIhtjÕ†r»Ijsj¿†r¼IhŒXSLr½I†r¾Ihtj~†r¿IhŒXCountrÀI†rÁIhtjR†rÂIjŸj5†rÃIj©jq†rÄIhtjÆrÅIjsj2†rÆIjXendrÇI†rÈIhtjÆrÉIjsX

rÊI†rËIjXfunctionrÌI†rÍIjsj¿†rÎIjtXIncStrArÏI†rÐIj©jm†rÑIhŒXStrArÒI†rÓIhtj{†rÔIjsj¿†rÕIhŒXTStrArÖI†r×Ij©jq†rØIhtj{†rÙIjsj¿†rÚIj-XIntegerrÛI†rÜIhtjÆrÝIjsj2†rÞIjXbeginrßI†ràIjsX
  ráI†râIjEX	SetLengthrãI†räIj©jm†råIhŒXStrAræI†rçIhtjÕ†rèIjsj¿†réIjEXLengthrêI†rëIj©jm†rìIhŒXStrAríI†rîIj©jq†rïIjsj¿†rðIhtjÆrñIjsj¿†ròIjŸj5†róIj©jq†rôIhtjÆrõIjsX
  röI†r÷IjJXResultrøI†rùIjsj¿†rúIhtj{†rûIhtjì†rüIjsj¿†rýIjEXHighrþI†rÿIj©jm†rJhŒXStrArJ†rJj©jq†rJhtjÆrJjsj2†rJjXendrJ†rJhtjÆrJjsX

r	J†r
JjXfunctionrJ†rJjsj¿†r
JjtX
StrOfByteArJ†rJj©jm†rJhŒjš†rJhtj{†rJjsj¿†rJhŒXTByteArJ†rJj©jq†rJhtj{†rJjsj¿†rJjXstringrJ†rJhtjÆrJjsj2†rJjXbeginrJ†rJjsX
  rJ†r JjJXResultr!J†r"Jjsj¿†r#Jhtj{†r$Jhtjì†r%Jjsj¿†r&JjXstringr'J†r(Jj©jm†r)JjEXCopyr*J†r+Jj©jm†r,JhŒjš†r-JhtjÕ†r.Jjsj¿†r/JjŸj®†r0JhtjÕ†r1Jjsj¿†r2JjEXLengthr3J†r4Jj©jm†r5JhŒjš†r6Jj©X)))r7J†r8JhtjÆr9Jjsj2†r:JjXendr;J†r<JhtjÆr=JjsX

r>J†r?JjXfunctionr@J†rAJjsj¿†rBJjtX
ByteAOfStrrCJ†rDJj©jm†rEJjXconstrFJ†rGJjsj¿†rHJhŒjé†rIJhtj{†rJJjsj¿†rKJjXstringrLJ†rMJj©jq†rNJhtj{†rOJjsj¿†rPJhŒXTByteArQJ†rRJhtjÆrSJjsj2†rTJjXbeginrUJ†rVJjsX
  rWJ†rXJjJXResultrYJ†rZJjsj¿†r[Jhtj{†r\Jhtjì†r]Jjsj¿†r^JhŒXTByteAr_J†r`Jj©jm†raJjEXCopyrbJ†rcJj©jm†rdJhŒjé†reJhtjÕ†rfJjsj¿†rgJjŸj5†rhJhtjÕ†riJjsj¿†rjJjEXLengthrkJ†rlJj©jm†rmJhŒj£†rnJj©X)))roJ†rpJhtjÆrqJjsj2†rrJjXendrsJ†rtJhtjÆruJjsX

rvJ†rwJjXfunctionrxJ†ryJjsj¿†rzJjtX
ByteAOfIntr{J†r|Jj©jm†r}JhŒj†r~Jhtj{†rJjsj¿†r€Jj-XIntegerrJ†r‚Jj©jq†rƒJhtj{†r„Jjsj¿†r…JhŒXTByteAr†J†r‡JhtjÆrˆJjsj2†r‰JjXbeginrŠJ†r‹JjsX
  rŒJ†rJjEX	SetLengthrŽJ†rJj©jm†rJjJXResultr‘J†r’JhtjÕ†r“Jjsj¿†r”JjEXSizeOfr•J†r–Jj©jm†r—Jj-XIntegerr˜J†r™Jj©X))ršJ†r›JhtjÆrœJjsX
  rJ†ržJjEXMoverŸJ†r Jj©jm†r¡JhŒj†r¢JhtjÕ†r£Jjsj¿†r¤Jj-XPointerr¥J†r¦Jj©jm†r§JjJXResultr¨J†r©Jj©jq†rªJhtjÞ4†r«JhtjÕ†r¬Jjsj¿†r­JjEXSizeOfr®J†r¯Jj©jm†r°Jj-XIntegerr±J†r²Jj©X))r³J†r´JhtjÆrµJjsj2†r¶JjXendr·J†r¸JhtjÆr¹JjsX

rºJ†r»JjXfunctionr¼J†r½Jjsj¿†r¾JjtX
IntOfByteAr¿J†rÀJj©jm†rÁJhŒjކrÂJhtj{†rÃJjsj¿†rÄJhŒXTByteArÅJ†rÆJj©jq†rÇJhtj{†rÈJjsj¿†rÉJj-XIntegerrÊJ†rËJhtjÆrÌJjsj2†rÍJjXbeginrÎJ†rÏJjsX
  rÐJ†rÑJjJXResultrÒJ†rÓJjsj¿†rÔJhtj{†rÕJhtjì†rÖJjsj¿†r×JjŸj®†rØJhtjÆrÙJjsX
  rÚJ†rÛJjEXMoverÜJ†rÝJj©jm†rÞJj-XPointerrßJ†ràJj©jm†ráJhŒjކrâJj©jq†rãJhtjÞ4†räJhtjÕ†råJjsj¿†ræJjJXResultrçJ†rèJhtjÕ†réJjsj¿†rêJjEXMinrëJ†rìJj©jm†ríJjEXLengthrîJ†rïJj©jm†rðJhŒjކrñJj©jq†ròJhtjÕ†róJjsj¿†rôJjEXSizeOfrõJ†röJj©jm†r÷Jj-XIntegerrøJ†rùJj©X)))rúJ†rûJhtjÆrüJjsj2†rýJjXendrþJ†rÿJhtjÆrKjsX

rK†rKjXfunctionrK†rKjsj¿†rKjtX
ByteAOfHexrK†rKj©jm†rKjXconstr	K†r
Kjsj¿†rKhŒXHexrK†r
Khtj{†rKjsj¿†rKjXstringrK†rKj©jq†rKhtj{†rKjsj¿†rKhŒXTByteArK†rKhtjÆrKjsj2†rKjXvarrK†rKjsX
  rK†rKhŒj†rKhtj{†rKjsj¿†rKj-XIntegerr K†r!KhtjÆr"KjsX
  r#K†r$KhŒXhr%K†r&Khtj{†r'Kjsj¿†r(KjXstringr)K†r*KhtjÆr+Kjsj2†r,KjXbeginr-K†r.KjsX
  r/K†r0KhŒj%K†r1Kjsj¿†r2Khtj{†r3Khtjì†r4Kjsj¿†r5KhŒXExtractCharsr6K†r7Kj©jm†r8KhŒXHexr9K†r:KhtjÕ†r;Kjsj¿†r<KhŒXHexadecimalCharsr=K†r>Kj©jq†r?KhtjÆr@KjsX
  rAK†rBKjEX	SetLengthrCK†rDKj©jm†rEKjJXResultrFK†rGKhtjÕ†rHKjsj¿†rIKjEXLengthrJK†rKKj©jm†rLKhŒj%K†rMKj©jq†rNKjsj¿†rOKjXdivrPK†rQKjsj¿†rRKjŸj³†rSKj©jq†rTKhtjÆrUKjsX
  rVK†rWKjXforrXK†rYKjsj¿†rZKhŒj†r[Kjsj¿†r\Khtj{†r]Khtjì†r^Kjsj¿†r_KjŸj®†r`Kjsj¿†raKjXtorbK†rcKjsj¿†rdKjEXHighreK†rfKj©jm†rgKjJXResultrhK†riKj©jq†rjKjsj¿†rkKjXdorlK†rmKjsX
    rnK†roKjJXResultrpK†rqKj©j'†rrKhŒj†rsKj©j/†rtKjsj¿†ruKhtj{†rvKhtjì†rwKjsj¿†rxKhŒX	ByteOfHexryK†rzKj©jm†r{KjEXCopyr|K†r}Kj©jm†r~KhŒj%K†rKhtjÕ†r€Kjsj¿†rKj©jm†r‚KhŒj†rƒKjsj¿†r„KjXshlr…K†r†Kjsj¿†r‡KjŸj5†rˆKj©jq†r‰Kjsj¿†rŠKhtjÆr‹Kjsj¿†rŒKjŸj5†rKhtjÕ†rŽKjsj¿†rKjŸj³†rKj©X))r‘K†r’KhtjÆr“Kjsj2†r”KjXendr•K†r–KhtjÆr—KjsX

r˜K†r™KjXfunctionršK†r›Kjsj¿†rœKjtX
SizeOfFilerK†ržKj©jm†rŸKjXconstr K†r¡Kjsj¿†r¢KhŒXFileNamer£K†r¤Khtj{†r¥Kjsj¿†r¦KjXstringr§K†r¨Kj©jq†r©Khtj{†rªKjsj¿†r«Kj-XIntegerr¬K†r­KhtjÆr®Kjsj2†r¯KjXvarr°K†r±KjsX
  r²K†r³KhŒj†r´Khtj{†rµKjsj¿†r¶KjXfiler·K†r¸KhtjÆr¹Kjsj2†rºKjXbeginr»K†r¼KjsX
  r½K†r¾KjEX
AssignFiler¿K†rÀKj©jm†rÁKhŒj†rÂKhtjÕ†rÃKjsj¿†rÄKhŒXFileNamerÅK†rÆKj©jq†rÇKhtjÆrÈKjsX
  rÉK†rÊKhFX{$I-}rËK†rÌKjEXResetrÍK†rÎKj©jm†rÏKhŒj†rÐKhtjÕ†rÑKjsj¿†rÒKjŸj5†rÓKj©jq†rÔKhtjÆrÕKhFX{$I+}rÖK†r×KjsX
  rØK†rÙKjXifrÚK†rÛKjsj¿†rÜKjEXIOResultrÝK†rÞKjsj¿†rßKhtjì†ràKjsj¿†ráKjŸj®†râKjsj¿†rãKjXthenräK†råKjsj¿†ræKjXbeginrçK†rèKjsX
    réK†rêKjJXResultrëK†rìKjsj¿†ríKhtj{†rîKhtjì†rïKjsj¿†rðKjEXFileSizerñK†ròKj©jm†róKhŒj†rôKj©jq†rõKhtjÆröKjsX
    r÷K†røKjEX	CloseFilerùK†rúKj©jm†rûKhŒj†rüKj©jq†rýKhtjÆrþKjsX
  rÿK†rLjXendrL†rLjsj¿†rLjXelserL†rLjsX
    rL†rLjJXResultrL†r	Ljsj¿†r
Lhtj{†rLhtjì†rLjsj¿†r
LjŸj®†rLhtjÆrLjsj2†rLjXendrL†rLhtjÆrLjsX

rL†rLjXfunctionrL†rLjsj¿†rLjtXFileExrL†rLj©jm†rLjXconstrL†rLjsj¿†rLhŒXFileNamerL†r Lhtj{†r!Ljsj¿†r"LjXstringr#L†r$LhtjÆr%Ljsj¿†r&LhŒXAllowFoldersr'L†r(Lhtj{†r)Ljsj¿†r*Lj-XBooleanr+L†r,Ljsj¿†r-Lhtjì†r.Ljsj¿†r/LjXFalser0L†r1Lj©jq†r2Lhtj{†r3Ljsj¿†r4Lj-XBooleanr5L†r6LhtjÆr7Ljsj2†r8LjXvarr9L†r:LjsX
  r;L†r<LhŒXFindDatar=L†r>Lhtj{†r?Ljsj¿†r@LhŒXTWin32FindDatarAL†rBLhtjÆrCLjsj2†rDLjXbeginrEL†rFLjsX
  rGL†rHLjXifrIL†rJLjsj¿†rKLhŒXFileNamerLL†rMLjsj¿†rNLhtjì†rOLjsj¿†rPLjÁjJ†rQLjÁjJ†rRLjsj¿†rSLjXthenrTL†rULjsj¿†rVLjXbeginrWL†rXLjsX
    rYL†rZLjJXResultr[L†r\Ljsj¿†r]Lhtj{†r^Lhtjì†r_Ljsj¿†r`LjXFalseraL†rbLhtjÆrcLjsX
  rdL†reLjXExitrfL†rgLhtjÆrhLjsj¿†riLjXendrjL†rkLhtjÆrlLjsX

  rmL†rnLjJXResultroL†rpLjsj¿†rqLhtj{†rrLhtjì†rsLjsj¿†rtLj©jm†ruLhŒXAllowFoldersrvL†rwLjsj¿†rxLjXandryL†rzLjsj¿†r{LjEXDirectoryExistsr|L†r}Lj©jm†r~LhŒXFileNamerL†r€Lj©X))rL†r‚Ljsj¿†rƒLjXorr„L†r…LjsX
    r†L†r‡Lj©jm†rˆLhŒX
FindFirstFiler‰L†rŠLj©jm†r‹Lj-XPCharrŒL†rLj©jm†rŽLhŒXFileNamerL†rLj©jq†r‘LhtjÕ†r’Ljsj¿†r“LhŒXFindDatar”L†r•Lj©jq†r–Ljsj¿†r—Lhtj†r˜Lhtj‡†r™Ljsj¿†ršLhŒXINVALID_HANDLE_VALUEr›L†rœLj©jq†rLhtjÆržLjsX
  rŸL†r LjJXResultr¡L†r¢Ljsj¿†r£Lhtj{†r¤Lhtjì†r¥Ljsj¿†r¦LjJXResultr§L†r¨Ljsj¿†r©LjXandrªL†r«Ljsj¿†r¬LjXnotr­L†r®Ljsj¿†r¯LhŒXCharInr°L†r±Lj©jm†r²LhŒXFileNamer³L†r´LhtjÕ†rµLjsj¿†r¶LhŒX	WildCardsr·L†r¸Lj©jq†r¹LhtjÆrºLjsX
  r»L†r¼LjJXResultr½L†r¾Ljsj¿†r¿Lhtj{†rÀLhtjì†rÁLjsj¿†rÂLjJXResultrÃL†rÄLjsj¿†rÅLjXandrÆL†rÇLjsj¿†rÈLj©jm†rÉLhŒXAllowFoldersrÊL†rËLjsX
    rÌL†rÍLjXorrÎL†rÏLjsj¿†rÐLj©X((rÑL†rÒLhŒXFindDatarÓL†rÔLhtj~†rÕLhŒXdwFileAttributesrÖL†r×Ljsj¿†rØLjXandrÙL†rÚLjsj¿†rÛLhŒXFILE_ATTRIBUTE_DIRECTORYrÜL†rÝLj©jq†rÞLjsj¿†rßLhtjì†ràLjsj¿†ráLjŸj®†râLj©X))rãL†räLhtjÆråLjsj2†ræLjXendrçL†rèLhtjÆréLjsX

rêL†rëLjXfunctionrìL†ríLjsj¿†rîLjtXLWPSolverïL†rðLj©jm†rñLjXconstròL†róLjsj¿†rôLhŒXDirrõL†röLhtj{†r÷Ljsj¿†røLjXstringrùL†rúLj©jq†rûLhtj{†rüLjsj¿†rýLjXstringrþL†rÿLhtjÆrMjsj2†rMjXbeginrM†rMjsX
  rM†rMjXifrM†rMjsj¿†rMj©jm†r	MhŒXDirr
M†rMjsj¿†rMhtj†r
Mhtj‡†rMjsj¿†rMjÁjJ†rMjÁjJ†rMj©jq†rMjsj¿†rMjXandrM†rMjsj¿†rMj©jm†rMhŒXDirrM†rMj©j'†rMjEXLengthrM†rMj©jm†rMhŒXDirrM†rMj©X)]r M†r!Mjsj¿†r"Mhtjì†r#Mjsj¿†r$Me(jÁjJ†r%MjÁjp†r&MjÁjJ†r'Mj©jq†r(Mjsj¿†r)MjXthenr*M†r+Mjsj¿†r,MjXbeginr-M†r.MjsX
    r/M†r0MjJXResultr1M†r2Mjsj¿†r3Mhtj{†r4Mhtjì†r5Mjsj¿†r6MjEXCopyr7M†r8Mj©jm†r9MhŒXDirr:M†r;MhtjÕ†r<Mjsj¿†r=MjŸj5†r>MhtjÕ†r?Mjsj¿†r@MjEXLengthrAM†rBMj©jm†rCMhŒXDirrDM†rEMj©jq†rFMjsj¿†rGMhtjR†rHMjsj¿†rIMjŸj5†rJMj©jq†rKMhtjÆrLMjsX
  rMM†rNMjXendrOM†rPMjsj¿†rQMjXelserRM†rSMjsX
    rTM†rUMjJXResultrVM†rWMjsj¿†rXMhtj{†rYMhtjì†rZMjsj¿†r[MhŒXDirr\M†r]MhtjÆr^Mjsj2†r_MjXendr`M†raMhtjÆrbMjsX

rcM†rdMjXfunctionreM†rfMjsj¿†rgMjtXLWPSlashrhM†riMj©jm†rjMjXconstrkM†rlMjsj¿†rmMhŒXDirrnM†roMhtj{†rpMjsj¿†rqMjXstringrrM†rsMj©jq†rtMhtj{†ruMjsj¿†rvMjXstringrwM†rxMhtjÆryMjsj2†rzMjXbeginr{M†r|MjsX
  r}M†r~MjXifrM†r€Mjsj¿†rMj©jm†r‚MhŒXDirrƒM†r„Mjsj¿†r…Mhtj†r†Mhtj‡†r‡Mjsj¿†rˆMjÁjJ†r‰MjÁjJ†rŠMj©jq†r‹Mjsj¿†rŒMjXandrM†rŽMjsj¿†rMj©jm†rMhŒXDirr‘M†r’Mj©j'†r“MjEXLengthr”M†r•Mj©jm†r–MhŒXDirr—M†r˜Mj©X)]r™M†ršMjsj¿†r›Mhtjì†rœMjsj¿†rMjÁjJ†ržMjÁjp†rŸMjÁjJ†r Mj©jq†r¡Mjsj¿†r¢MjXthenr£M†r¤Mjsj¿†r¥MjXbeginr¦M†r§MjsX
    r¨M†r©MjJXResultrªM†r«Mjsj¿†r¬Mhtj{†r­Mhtjì†r®Mjsj¿†r¯MjEXCopyr°M†r±Mj©jm†r²MhŒXDirr³M†r´MhtjÕ†rµMjsj¿†r¶MjŸj5†r·MhtjÕ†r¸Mjsj¿†r¹MjEXLengthrºM†r»Mj©jm†r¼MhŒXDirr½M†r¾Mj©X))r¿M†rÀMhtjÆrÁMjsX
  rÂM†rÃMjXendrÄM†rÅMjsj¿†rÆMjXelserÇM†rÈMjsX
    rÉM†rÊMjJXResultrËM†rÌMjsj¿†rÍMhtj{†rÎMhtjì†rÏMjsj¿†rÐMhŒXDirrÑM†rÒMjsj¿†rÓMhtjÆrÔMjsj¿†rÕMjÁjJ†rÖMjÁjp†r×MjÁjJ†rØMhtjÆrÙMjsj2†rÚMjXendrÛM†rÜMhtjÆrÝMjsX

rÞM†rßMjXfunctionràM†ráMjsj¿†râMjtXExtractDriverãM†räMj©jm†råMjXconstræM†rçMjsj¿†rèMhŒXFileNameréM†rêMhtj{†rëMjsj¿†rìMjXstringríM†rîMj©jq†rïMhtj{†rðMjsj¿†rñMjXstringròM†róMhtjÆrôMjsj2†rõMjXbeginröM†r÷MjsX
  røM†rùMjJXResultrúM†rûMjsj¿†rüMhtj{†rýMhtjì†rþMjsj¿†rÿMjÁjJ†rNjÁjJ†rNhtjÆrNjsX
  rN†rNjXifrN†rNjsj¿†rNj©jm†rNjEXLengthr	N†r
Nj©jm†rNhŒXFileNamerN†r
Nj©jq†rNjsj¿†rNhtj‡†rNhtjì†rNjsj¿†rNjŸj³†rNj©jq†rNjsj¿†rNjXandrN†rNjsj¿†rNj©jm†rNhŒXFileNamerN†rNj©j'†rNjŸj³†rNj©j/†rNjsj¿†rNhtjì†r Njsj¿†r!NjÁjJ†r"NjÁj{†r#NjÁjJ†r$Nj©jq†r%Njsj¿†r&NjXthenr'N†r(NjsX
    r)N†r*NjJXResultr+N†r,Njsj¿†r-Nhtj{†r.Nhtjì†r/Njsj¿†r0NjEX	UpperCaser1N†r2Nj©jm†r3NhŒXFileNamer4N†r5Nj©j'†r6NjŸj5†r7Nj©j/†r8Njsj¿†r9NhtjÆr:Njsj¿†r;NjÁjJ†r<NjÁX:\r=N†r>NjÁjJ†r?Nj©jq†r@NhtjÆrANjsj2†rBNjXendrCN†rDNhtjÆrENjsX

rFN†rGNjXfunctionrHN†rINjsj¿†rJNjtXExtractPathrKN†rLNj©jm†rMNjXconstrNN†rONjsj¿†rPNhŒXFileNamerQN†rRNhtj{†rSNjsj¿†rTNjXstringrUN†rVNj©jq†rWNhtj{†rXNjsj¿†rYNjXstringrZN†r[NhtjÆr\Njsj2†r]NjXvarr^N†r_NjsX
  r`N†raNhŒj÷'†rbNhtj{†rcNjsj¿†rdNj-XIntegerreN†rfNhtjÆrgNjsj2†rhNjXbeginriN†rjNjsX
  rkN†rlNhŒj÷'†rmNjsj¿†rnNhtj{†roNhtjì†rpNjsj¿†rqNhŒXCharPosRrrN†rsNj©jm†rtNjÁjJ†ruNjÁjp†rvNjÁjJ†rwNhtjÕ†rxNjsj¿†ryNhŒXFileNamerzN†r{Nj©jq†r|NhtjÆr}NjsX
  r~N†rNjXifr€N†rNjsj¿†r‚NhŒjÚ†rƒNjsj¿†r„Nhtj‡†r…Njsj¿†r†NjŸj®†r‡Njsj¿†rˆNjXthenr‰N†rŠNjsX
    r‹N†rŒNjJXResultrN†rŽNjsj¿†rNhtj{†rNhtjì†r‘Njsj¿†r’NjEXCopyr“N†r”Nj©jm†r•NhŒXFileNamer–N†r—NhtjÕ†r˜Njsj¿†r™NjŸj5†ršNhtjÕ†r›Njsj¿†rœNhŒj÷'†rNj©jq†ržNjsX
  rŸN†r NjXelser¡N†r¢NjsX
    r£N†r¤NjJXResultr¥N†r¦Njsj¿†r§Nhtj{†r¨Nhtjì†r©Njsj¿†rªNhŒXFileNamer«N†r¬NhtjÆr­Njsj2†r®NjXendr¯N†r°NhtjÆr±NjsX

r²N†r³NjXfunctionr´N†rµNjsj¿†r¶NjtX
ExtractPrefixr·N†r¸Nj©jm†r¹NjXconstrºN†r»Njsj¿†r¼NhŒXFileNamer½N†r¾Nhtj{†r¿Njsj¿†rÀNjXstringrÁN†rÂNj©jq†rÃNhtj{†rÄNjsj¿†rÅNjXstringrÆN†rÇNhtjÆrÈNjsj2†rÉNjXbeginrÊN†rËNjsX
  rÌN†rÍNjJXResultrÎN†rÏNjsj¿†rÐNhtj{†rÑNhtjì†rÒNjsj¿†rÓNhŒX
UntilLastCharrÔN†rÕNj©jm†rÖNjEXExtractFileNamer×N†rØNj©jm†rÙNhŒXFileNamerÚN†rÛNj©jq†rÜNhtjÕ†rÝNjsj¿†rÞNjÁjJ†rßNjÁj~†ràNjÁjJ†ráNj©jq†râNhtjÆrãNjsj2†räNjXendråN†ræNhtjÆrçNjsX

rèN†réNjXfunctionrêN†rëNjsj¿†rìNjtX
ExtractSuffixríN†rîNj©jm†rïNjXconstrðN†rñNjsj¿†ròNhŒXFileNameróN†rôNhtj{†rõNjsj¿†röNjXstringr÷N†røNj©jq†rùNhtj{†rúNjsj¿†rûNjXstringrüN†rýNhtjÆrþNjsj2†rÿNjXbeginrO†rOjsX
  rO†rOjJXResultrO†rOjsj¿†rOhtj{†rOhtjì†rOjsj¿†r	OhŒXFromLastCharr
O†rOj©jm†rOjEXExtractFileNamer
O†rOj©jm†rOhŒXFileNamerO†rOj©jq†rOhtjÕ†rOjsj¿†rOjÁjJ†rOjÁj~†rOjÁjJ†rOj©jq†rOhtjÆrOjsj2†rOjXendrO†rOhtjÆrOjsX

rO†rOjXfunctionr O†r!Ojsj¿†r"OjtX	SameByteAr#O†r$Oj©jm†r%OjXconstr&O†r'Ojsj¿†r(OhŒjކr)OhtjÕ†r*Ojsj¿†r+OhŒj݆r,Ohtj{†r-Ojsj¿†r.OhŒXTByteAr/O†r0Oj©jq†r1Ohtj{†r2Ojsj¿†r3Oj-XBooleanr4O†r5OhtjÆr6Ojsj2†r7OjXbeginr8O†r9OjsX
  r:O†r;OjJXResultr<O†r=Ojsj¿†r>Ohtj{†r?Ohtjì†r@Ojsj¿†rAOj©jm†rBOhŒjކrCOjsj¿†rDOhtjì†rEOjsj¿†rFOhŒj݆rGOj©jq†rHOjsj¿†rIOjXorrJO†rKOjsj¿†rLOj©X((rMO†rNOjEXLengthrOO†rPOj©jm†rQOhŒjކrROj©jq†rSOjsj¿†rTOhtjì†rUOjsj¿†rVOjEXLengthrWO†rXOj©jm†rYOhŒj݆rZOj©X))r[O†r\Ojsj¿†r]OjXandr^O†r_Ojsj¿†r`OjEX
CompareMemraO†rbOj©jm†rcOhŒjކrdOhtjÕ†reOjsj¿†rfOhŒj݆rgOhtjÕ†rhOjsj¿†riOjEXLengthrjO†rkOj©jm†rlOhŒjކrmOj©X)))rnO†roOhtjÆrpOjsj2†rqOjXendrrO†rsOhtjÆrtOjsX

ruO†rvOjXfunctionrwO†rxOjsj¿†ryOjtXReverserzO†r{Oj©jm†r|OhŒjކr}Ohtj{†r~Ojsj¿†rOhŒXTByteAr€O†rOj©jq†r‚Ohtj{†rƒOjsj¿†r„OhŒXTByteAr…O†r†OhtjÆr‡Ojsj2†rˆOjXvarr‰O†rŠOjsX
  r‹O†rŒOhŒj†rOhtj{†rŽOjsj¿†rOj-XIntegerrO†r‘OhtjÆr’Ojsj2†r“OjXbeginr”O†r•OjsX
  r–O†r—OjEX	SetLengthr˜O†r™Oj©jm†ršOjJXResultr›O†rœOhtjÕ†rOjsj¿†ržOjEXLengthrŸO†r Oj©jm†r¡OhŒjކr¢Oj©X))r£O†r¤OhtjÆr¥OjsX

  r¦O†r§OjXforr¨O†r©Ojsj¿†rªOhŒj†r«Ojsj¿†r¬Ohtj{†r­Ohtjì†r®Ojsj¿†r¯OjŸj®†r°Ojsj¿†r±OjXtor²O†r³Ojsj¿†r´OjEXHighrµO†r¶Oj©jm†r·OhŒjކr¸Oj©jq†r¹Ojsj¿†rºOjXdor»O†r¼OjsX
    r½O†r¾OjJXResultr¿O†rÀOj©j'†rÁOjEXHighrÂO†rÃOj©jm†rÄOjJXResultrÅO†rÆOj©jq†rÇOjsj¿†rÈOhtjR†rÉOjsj¿†rÊOhŒj†rËOj©j/†rÌOjsj¿†rÍOhtj{†rÎOhtjì†rÏOjsj¿†rÐOhŒjކrÑOj©j'†rÒOhŒj†rÓOj©j/†rÔOhtjÆrÕOjsj2†rÖOjXendr×O†rØOhtjÆrÙOjsX

rÚO†rÛOjXfunctionrÜO†rÝOjsj¿†rÞOjtXEndianrßO†ràOj©jm†ráOhŒj†râOhtj{†rãOjsj¿†räOj-XIntegerråO†ræOj©jq†rçOhtj{†rèOjsj¿†réOj-XIntegerrêO†rëOhtjÆrìOjsj2†ríOjXtyperîO†rïOjsX
  rðO†rñOhŒXEndianArrayròO†róOjsj¿†rôOhtjì†rõOjsj¿†röOjXpackedr÷O†røOjsj¿†rùOjXarrayrúO†rûOj©j'†rüOjŸj®†rýOhtj~†rþOhtj~†rÿOjŸj¸†rPj©j/†rPjsj¿†rPjXofrP†rPjsj¿†rPj-XByterP†rPhtjÆrPjsj2†r	PjXvarr
P†rPjsX
  rP†r
PhŒjš†rPhtjÕ†rPjsj¿†rPhŒj:†rPhtj{†rPjsj¿†rPhŒXEndianArrayrP†rPhtjÆrPjsj2†rPjXbeginrP†rPjsX
  rP†rPhŒjš†rPjsj¿†rPhtj{†rPhtjì†rPjsj¿†r PhŒXEndianArrayr!P†r"Pj©jm†r#PhŒj†r$Pj©jq†r%PhtjÆr&PjsX
  r'P†r(PhŒj:†r)Pj©j'†r*PjŸj®†r+Pj©j/†r,Pjsj¿†r-Phtj{†r.Phtjì†r/Pjsj¿†r0PhŒjš†r1Pj©j'†r2PjŸj¸†r3Pj©j/†r4PhtjÆr5PjsX
  r6P†r7PhŒj:†r8Pj©j'†r9PjŸj5†r:Pj©j/†r;Pjsj¿†r<Phtj{†r=Phtjì†r>Pjsj¿†r?PhŒjš†r@Pj©j'†rAPjŸj³†rBPj©j/†rCPhtjÆrDPjsX
  rEP†rFPhŒj:†rGPj©j'†rHPjŸj³†rIPj©j/†rJPjsj¿†rKPhtj{†rLPhtjì†rMPjsj¿†rNPhŒjš†rOPj©j'†rPPjŸj5†rQPj©j/†rRPhtjÆrSPjsX
  rTP†rUPhŒj:†rVPj©j'†rWPjŸj¸†rXPj©j/†rYPjsj¿†rZPhtj{†r[Phtjì†r\Pjsj¿†r]PhŒjš†r^Pj©j'†r_PjŸj®†r`Pj©j/†raPhtjÆrbPjsX
  rcP†rdPjJXResultreP†rfPjsj¿†rgPhtj{†rhPhtjì†riPjsj¿†rjPj-XIntegerrkP†rlPj©jm†rmPhŒj:†rnPj©jq†roPhtjÆrpPjsj2†rqPjXendrrP†rsPhtjÆrtPjsX

ruP†rvPjXfunctionrwP†rxPjsj¿†ryPjtX	SaveByteArzP†r{Pj©jm†r|PhŒXDatar}P†r~Phtj{†rPjsj¿†r€PhŒXTByteArP†r‚PhtjÆrƒPjsj¿†r„PjXconstr…P†r†Pjsj¿†r‡PhŒXFileNamerˆP†r‰Phtj{†rŠPjsj¿†r‹PjXstringrŒP†rPhtjÆrŽPjsX
  rP†rPhŒX	Overwriter‘P†r’Phtj{†r“Pjsj¿†r”Pj-XBooleanr•P†r–Pjsj¿†r—Phtjì†r˜Pjsj¿†r™PjXTrueršP†r›Pj©jq†rœPhtj{†rPjsj¿†ržPj-XBooleanrŸP†r PhtjÆr¡Pjsj2†r¢PjXvarr£P†r¤PjsX
  r¥P†r¦PhŒj†r§Phtj{†r¨Pjsj¿†r©PjXfilerªP†r«PhtjÆr¬Pjsj2†r­PjXbeginr®P†r¯PjsX
  r°P†r±PjXifr²P†r³Pjsj¿†r´PjEX
FileExistsrµP†r¶Pj©jm†r·PhŒXFileNamer¸P†r¹Pj©jq†rºPjsj¿†r»PjXandr¼P†r½Pjsj¿†r¾PjXnotr¿P†rÀPjsj¿†rÁPhŒX	OverwriterÂP†rÃPjsj¿†rÄPjXthenrÅP†rÆPjsj¿†rÇPjXbeginrÈP†rÉPjsX
    rÊP†rËPjJXResultrÌP†rÍPjsj¿†rÎPhtj{†rÏPhtjì†rÐPjsj¿†rÑPjXFalserÒP†rÓPhtjÆrÔPjsX
  rÕP†rÖPjXExitr×P†rØPjsj¿†rÙPjXendrÚP†rÛPhtjÆrÜPjsX

  rÝP†rÞPjEX
AssignFilerßP†ràPj©jm†ráPhŒj†râPhtjÕ†rãPjsj¿†räPhŒXFileNameråP†ræPj©jq†rçPhtjÆrèPjsX
  réP†rêPhFX{$I-}rëP†rìPjEXRewriteríP†rîPj©jm†rïPhŒj†rðPhtjÕ†rñPjsj¿†ròPjŸj5†róPj©jq†rôPhtjÆrõPhFX{$I+}röP†r÷PjsX
  røP†rùPjXifrúP†rûPjsj¿†rüPjEXIOResultrýP†rþPjsj¿†rÿPhtjì†rQjsj¿†rQjŸj®†rQjsj¿†rQjXthenrQ†rQjsj¿†rQjXbeginrQ†rQjsX
    r	Q†r
QjXifrQ†rQjsj¿†r
QjEXLengthrQ†rQj©jm†rQhŒXDatarQ†rQj©jq†rQjsj¿†rQhtj‡†rQjsj¿†rQjŸj®†rQjsj¿†rQjXthenrQ†rQjsX
      rQ†rQjEX
BlockWriterQ†rQj©jm†rQhŒj†r QhtjÕ†r!Qjsj¿†r"QhŒXDatar#Q†r$Qj©j'†r%QjŸj®†r&Qj©j/†r'QhtjÕ†r(Qjsj¿†r)QjEXLengthr*Q†r+Qj©jm†r,QhŒXDatar-Q†r.Qj©X))r/Q†r0QhtjÆr1QjsX
    r2Q†r3QjEX	CloseFiler4Q†r5Qj©jm†r6QhŒj†r7Qj©jq†r8QhtjÆr9QjsX
    r:Q†r;QjJXResultr<Q†r=Qjsj¿†r>Qhtj{†r?Qhtjì†r@Qjsj¿†rAQjXTruerBQ†rCQhtjÆrDQjsX
  rEQ†rFQjXendrGQ†rHQjsj¿†rIQjXelserJQ†rKQjsX
    rLQ†rMQjJXResultrNQ†rOQjsj¿†rPQhtj{†rQQhtjì†rRQjsj¿†rSQjXFalserTQ†rUQhtjÆrVQjsj2†rWQjXendrXQ†rYQhtjÆrZQjsX

r[Q†r\QjXfunctionr]Q†r^Qjsj¿†r_QjtX	LoadByteAr`Q†raQj©jm†rbQjXconstrcQ†rdQjsj¿†reQhŒXFileNamerfQ†rgQhtj{†rhQjsj¿†riQjXstringrjQ†rkQj©jq†rlQhtj{†rmQjsj¿†rnQhŒXTByteAroQ†rpQhtjÆrqQjsj2†rrQjXvarrsQ†rtQjsX
  ruQ†rvQhŒj†rwQhtj{†rxQjsj¿†ryQjXfilerzQ†r{QhtjÆr|Qjsj2†r}QjXbeginr~Q†rQjsX
  r€Q†rQjEX
AssignFiler‚Q†rƒQj©jm†r„QhŒj†r…QhtjÕ†r†Qjsj¿†r‡QhŒXFileNamerˆQ†r‰Qj©jq†rŠQhtjÆr‹QjsX
  rŒQ†rQhFX{$I-}rŽQ†rQjEXResetrQ†r‘Qj©jm†r’QhŒj†r“QhtjÕ†r”Qjsj¿†r•QjŸj5†r–Qj©jq†r—QhtjÆr˜QhFX{$I+}r™Q†ršQjsX
  r›Q†rœQjXifrQ†ržQjsj¿†rŸQjEXIOResultr Q†r¡Qjsj¿†r¢Qhtjì†r£Qjsj¿†r¤QjŸj®†r¥Qjsj¿†r¦QjXthenr§Q†r¨Qjsj¿†r©QjXbeginrªQ†r«QjsX
    r¬Q†r­QjEX	SetLengthr®Q†r¯Qj©jm†r°QjJXResultr±Q†r²QhtjÕ†r³Qjsj¿†r´QjEXFileSizerµQ†r¶Qj©jm†r·QhŒj†r¸Qj©X))r¹Q†rºQhtjÆr»QjsX
    r¼Q†r½QjXifr¾Q†r¿Qjsj¿†rÀQjEXLengthrÁQ†rÂQj©jm†rÃQjJXResultrÄQ†rÅQj©jq†rÆQjsj¿†rÇQhtj‡†rÈQjsj¿†rÉQjŸj®†rÊQjsj¿†rËQjXthenrÌQ†rÍQjsX
      rÎQ†rÏQjEX	BlockReadrÐQ†rÑQj©jm†rÒQhŒj†rÓQhtjÕ†rÔQjsj¿†rÕQjJXResultrÖQ†r×Qj©j'†rØQjŸj®†rÙQj©j/†rÚQhtjÕ†rÛQjsj¿†rÜQjEXFileSizerÝQ†rÞQj©jm†rßQhŒj†ràQj©X))ráQ†râQhtjÆrãQjsX
    räQ†råQjEX	CloseFileræQ†rçQj©jm†rèQhŒj†réQj©jq†rêQhtjÆrëQjsX
  rìQ†ríQjXendrîQ†rïQjsj¿†rðQjXelserñQ†ròQjsX
    róQ†rôQjEX	SetLengthrõQ†röQj©jm†r÷QjJXResultrøQ†rùQhtjÕ†rúQjsj¿†rûQjŸj®†rüQj©jq†rýQhtjÆrþQjsj2†rÿQjXendrR†rRhtjÆrRjsX

rR†rRjXfunctionrR†rRjsj¿†rRjtXIsValidFileNamerR†r	Rj©jm†r
RjXconstrR†rRjsj¿†r
RhŒXFileNamerR†rRhtj{†rRjsj¿†rRjXstringrR†rRj©jq†rRhtj{†rRjsj¿†rRj-XBooleanrR†rRhtjÆrRjsj2†rRjXbeginrR†rRjsX
  rR†rRjJXResultrR†r Rjsj¿†r!Rhtj{†r"Rhtjì†r#Rjsj¿†r$Rj©jm†r%RhŒXFileNamer&R†r'Rjsj¿†r(Rhtj†r)Rhtj‡†r*Rjsj¿†r+RjÁjJ†r,RjÁjJ†r-Rj©jq†r.Rjsj¿†r/RjXandr0R†r1Rjsj¿†r2RjXnotr3R†r4Rjsj¿†r5RhŒXCharInr6R†r7Rj©jm†r8RhŒXFileNamer9R†r:RhtjÕ†r;Rjsj¿†r<RhŒXFileNameEnemiesr=R†r>Rj©jq†r?RjsX
    r@R†rARjXandrBR†rCRjsj¿†rDRhŒXCharInrER†rFRj©jm†rGRjEXTrimrHR†rIRj©jm†rJRhŒXFileNamerKR†rLRj©jq†rMRhtjÕ†rNRjsj¿†rORhŒXAllCharsrPR†rQRjsj¿†rRRhtjR†rSRjsj¿†rTRj©j'†rURjÁjJ†rVRe(jÁj~†rWRjÁjJ†rXRj©X])rYR†rZRhtjÆr[Rjsj2†r\RjXendr]R†r^RhtjÆr_RjsX

r`R†raRjXfunctionrbR†rcRjsj¿†rdRjtXMakeValidFileNamereR†rfRj©jm†rgRhŒXFileNamerhR†riRhtj{†rjRjsj¿†rkRjXstringrlR†rmRhtjÆrnRjsj¿†roRjXconstrpR†rqRjsj¿†rrRjRXDefaultrsR†rtRhtj{†ruRjsj¿†rvRjXstringrwR†rxRjsj¿†ryRhtjì†rzRjsj¿†r{RjÁjJ†r|RjÁXFiler}R†r~RjÁjJ†rRj©jq†r€Rhtj{†rRjsj¿†r‚RjXstringrƒR†r„RhtjÆr…Rjsj2†r†RjXbeginr‡R†rˆRjsX
  r‰R†rŠRjXifr‹R†rŒRjsj¿†rRhŒXFileNamerŽR†rRjsj¿†rRhtjì†r‘Rjsj¿†r’RjÁjJ†r“RjÁjJ†r”Rjsj¿†r•RjXthenr–R†r—RjsX
    r˜R†r™RhŒXFileNameršR†r›Rjsj¿†rœRhtj{†rRhtjì†ržRjsj¿†rŸRjRXDefaultr R†r¡RhtjÆr¢RjsX

  r£R†r¤RjXifr¥R†r¦Rjsj¿†r§RhŒXCharInr¨R†r©Rj©jm†rªRhŒXFileNamer«R†r¬RhtjÕ†r­Rjsj¿†r®RhŒXFileNameEnemiesr¯R†r°Rj©jq†r±Rjsj¿†r²RjXthenr³R†r´RjsX
    rµR†r¶RjJXResultr·R†r¸Rjsj¿†r¹Rhtj{†rºRhtjì†r»Rjsj¿†r¼RhŒXReplaceCharsr½R†r¾Rj©jm†r¿RhŒXFileNamerÀR†rÁRhtjÕ†rÂRjsj¿†rÃRhŒXFileNameEnemiesrÄR†rÅRhtjÕ†rÆRjsj¿†rÇRjÁjJ†rÈRjÁX_rÉR†rÊRjÁjJ†rËRj©jq†rÌRjsX
  rÍR†rÎRjXelserÏR†rÐRjsj¿†rÑRjXifrÒR†rÓRjsj¿†rÔRjXnotrÕR†rÖRjsj¿†r×RhŒXCharInrØR†rÙRj©jm†rÚRjEXTrimrÛR†rÜRj©jm†rÝRhŒXFileNamerÞR†rßRj©jq†ràRhtjÕ†ráRjsj¿†râRhŒXAllCharsrãR†räRjsj¿†råRhtjR†ræRjsj¿†rçRj©j'†rèRjÁjJ†réRjÁj~†rêRjÁjJ†rëRj©X])rìR†ríRjsj¿†rîRjXthenrïR†rðRjsX
    rñR†ròRjJXResultróR†rôRjsj¿†rõRhtj{†röRhtjì†r÷Rjsj¿†røRjRXDefaultrùR†rúRjsX
  rûR†rüRjXelserýR†rþRjsX
    rÿR†rSjJXResultrS†rSjsj¿†rShtj{†rShtjì†rSjsj¿†rShŒXFileNamerS†rShtjÆr	Sjsj2†r
SjXendrS†rShtjÆr
SjsX

rS†rSjXfunctionrS†rSjsj¿†rSjtXIsValidIntegerrS†rSj©jm†rSjXconstrS†rSjsj¿†rShŒjé†rShtj{†rSjsj¿†rSjXstringrS†rSj©jq†rShtj{†rSjsj¿†r Sj-XBooleanr!S†r"ShtjÆr#Sjsj2†r$ShFXa{const
  LowInt = '2147483648';
  HighInt = '2147483647';
var
  len, RealLen, i, o: Integer;
  c: Char;
begin
  Result := False;
  if S = '' then
    Exit;

  len := Length(S);
  o := 1;
  
  if S[1] = '-' then begin
    if len = 1 then
      Exit;
    Inc(o);
    while (o <= len) and (S[o] = '0') do
      Inc(o);
    if o > len then
      Exit;
    if o < len then begin
      RealLen := len - o + 1;
      if RealLen > Length(LowInt) then
        Exit
      else if RealLen = Length(LowInt) then begin
        for i := 1 to Length(LowInt) do begin
          c := S[i + o - 1];
          if (c < '0') or (c > LowInt[i]) then
            Exit;
          if c in ['0'..Char((Byte(LowInt[i])-1))] then
            Break;
        end;
        Inc(o, i);
      end;
    end;
  end else begin
    while (o <= len) and (S[o] = '0') do
      Inc(o);
    if o <= len then begin
      RealLen := len - o + 1;
      if RealLen > Length(HighInt) then
        Exit
      else if RealLen = Length(HighInt) then begin
        for i := 1 to Length(HighInt) do begin
          c := S[i + o - 1];
          if (c < '0') or (c > HighInt[i]) then
            Exit;
          if c in ['0'..Char((Byte(HighInt[i])-1))] then
            Break;
        end;
        Inc(o, i);
      end;
    end;
  end;

  for i := o to len do
    if not (S[i] in ['0'..'9']) then
      Exit;

  Result := True;  }r%S†r&Sjsj2†r'SjXvarr(S†r)SjsX
  r*S†r+ShŒj†r,Shtj{†r-Sjsj¿†r.Sj-XInt64r/S†r0ShtjÆr1Sjsj2†r2SjXbeginr3S†r4SjsX
  r5S†r6ShŒj†r7Sjsj¿†r8Shtj{†r9Shtjì†r:Sjsj¿†r;SjEX
StrToInt64Defr<S†r=Sj©jm†r>ShŒjé†r?ShtjÕ†r@Sjsj¿†rASjEXHighrBS†rCSj©jm†rDSj-XInt64rES†rFSj©X))rGS†rHShtjÆrISjsX
  rJS†rKSjJXResultrLS†rMSjsj¿†rNShtj{†rOShtjì†rPSjsj¿†rQSj©jm†rRShŒj†rSSjsj¿†rTShtj‡†rUShtjì†rVSjsj¿†rWSjEXLowrXS†rYSj©jm†rZSj-XIntegerr[S†r\Sj©X))r]S†r^Sjsj¿†r_SjXandr`S†raSjsj¿†rbSj©jm†rcShŒj†rdSjsj¿†reShtj†rfShtjì†rgSjsj¿†rhSjEXHighriS†rjSj©jm†rkSj-XIntegerrlS†rmSj©X))rnS†roShtjÆrpSjsj2†rqSjXendrrS†rsShtjÆrtSjsX

ruS†rvSjXfunctionrwS†rxSjsj¿†rySjtXIsValidCardinalrzS†r{Sj©jm†r|SjXconstr}S†r~Sjsj¿†rShŒjé†r€Shtj{†rSjsj¿†r‚SjXstringrƒS†r„Sj©jq†r…Shtj{†r†Sjsj¿†r‡Sj-XBooleanrˆS†r‰ShtjÆrŠSjsj2†r‹ShFX®{const
  HighCard = '4294967295';
var
  len, RealLen, i, o: Integer;
begin
  Result := False;
  if S = '' then
    Exit;

  len := Length(S);
  o := 1;
  
  while (o <= len) and (S[o] = '0') do
    Inc(o);
  if o <= len then begin
    RealLen := len - o + 1;
    if RealLen > Length(HighCard) then
      Exit
    else if RealLen = Length(HighCard) then begin
      for i := 1 to Length(HighCard) do begin
        if S[i + o - 1] > HighCard[i] then
          Exit;
        if S[i + o - 1] in ['0'..Char((Byte(HighCard[i])-1))] then
          Break;
      end;
      Inc(o, i);
    end;
  end;

  for i := o to len do
    if not (S[i] in ['0'..'9']) then
      Exit;

  Result := True;  }rŒS†rSjsj2†rŽSjXvarrS†rSjsX
  r‘S†r’ShŒj†r“Shtj{†r”Sjsj¿†r•Sj-XInt64r–S†r—ShtjÆr˜Sjsj2†r™SjXbeginršS†r›SjsX
  rœS†rShŒj†ržSjsj¿†rŸShtj{†r Shtjì†r¡Sjsj¿†r¢SjEX
StrToInt64Defr£S†r¤Sj©jm†r¥ShŒjé†r¦ShtjÕ†r§Sjsj¿†r¨ShtjR†r©SjŸj5†rªSj©jq†r«ShtjÆr¬SjsX
  r­S†r®SjJXResultr¯S†r°Sjsj¿†r±Shtj{†r²Shtjì†r³Sjsj¿†r´Sj©jm†rµShŒj†r¶Sjsj¿†r·Shtj‡†r¸Shtjì†r¹Sjsj¿†rºSjŸj®†r»Sj©jq†r¼Sjsj¿†r½SjXandr¾S†r¿Sjsj¿†rÀSj©jm†rÁShŒj†rÂSjsj¿†rÃShtj†rÄShtjì†rÅSjsj¿†rÆSjEXHighrÇS†rÈSj©jm†rÉSj-XCardinalrÊS†rËSj©X))rÌS†rÍShtjÆrÎSjsj2†rÏSjXendrÐS†rÑShtjÆrÒSjsX

rÓS†rÔSjXfunctionrÕS†rÖSjsj¿†r×SjtX	StrOfBoolrØS†rÙSj©jm†rÚShŒXflagrÛS†rÜShtj{†rÝSjsj¿†rÞSj-XBooleanrßS†ràShtjÆráSjsj¿†râSjXconstrãS†räSjsj¿†råShŒXTrueStrræS†rçShtj{†rèSjsj¿†réSjXstringrêS†rëSjsj¿†rìShtjì†ríSjsj¿†rîSjÁjJ†rïSjÁXTruerðS†rñSjÁjJ†ròShtjÆróSjsX
  rôS†rõSjXconströS†r÷Sjsj¿†røShŒXFalseStrrùS†rúShtj{†rûSjsj¿†rüSjXstringrýS†rþSjsj¿†rÿShtjì†rTjsj¿†rTjÁjJ†rTjÁXFalserT†rTjÁjJ†rTj©jq†rThtj{†rTjsj¿†rTjXstringr	T†r
ThtjÆrTjsj2†rTjXbeginr
T†rTjsX
  rT†rTjXifrT†rTjsj¿†rThŒXFlagrT†rTjsj¿†rTjXthenrT†rTjsX
    rT†rTjJXResultrT†rTjsj¿†rThtj{†rThtjì†rTjsj¿†r ThŒXTrueStrr!T†r"TjsX
  r#T†r$TjXelser%T†r&TjsX
    r'T†r(TjJXResultr)T†r*Tjsj¿†r+Thtj{†r,Thtjì†r-Tjsj¿†r.ThŒXFalseStrr/T†r0ThtjÆr1Tjsj2†r2TjXendr3T†r4ThtjÆr5TjsX

r6T†r7TjXfunctionr8T†r9Tjsj¿†r:TjtXStrOfIntr;T†r<Tj©jm†r=ThŒj†r>Thtj{†r?Tjsj¿†r@Tj-XIntegerrAT†rBTj©jq†rCThtj{†rDTjsj¿†rETjXstringrFT†rGThtjÆrHTjsj2†rITjXbeginrJT†rKTjsj2†rLThFX{  if i = 0 then begin
    Result := '0';
  Exit end;

  while i > 0 do begin
    Result := Char(Byte('0') + (i mod 10)) + Result;
    i := i div 10;
  end;}rMT†rNTjsX
  rOT†rPTjJXResultrQT†rRTjsj¿†rSThtj{†rTThtjì†rUTjsj¿†rVTjEXIntToStrrWT†rXTj©jm†rYThŒj†rZTj©jq†r[ThtjÆr\Tjsj2†r]TjXendr^T†r_ThtjÆr`TjsX

raT†rbTjXfunctionrcT†rdTjsj¿†reTjtX	CardOfStrrfT†rgTj©jm†rhTjXconstriT†rjTjsj¿†rkThŒjé†rlThtj{†rmTjsj¿†rnTjXstringroT†rpTj©jq†rqThtj{†rrTjsj¿†rsTj-XCardinalrtT†ruThtjÆrvTjsj2†rwTjXvarrxT†ryTjsX
  rzT†r{ThŒXResr|T†r}Thtj{†r~Tjsj¿†rTj-XInt64r€T†rThtjÆr‚Tjsj2†rƒTjXbeginr„T†r…TjsX
  r†T†r‡ThŒXResrˆT†r‰Tjsj¿†rŠThtj{†r‹Thtjì†rŒTjsj¿†rTjEX
StrToInt64DefrŽT†rTj©jm†rThŒjé†r‘ThtjÕ†r’Tjsj¿†r“ThtjR†r”TjŸj5†r•Tj©jq†r–ThtjÆr—TjsX
  r˜T†r™TjXifršT†r›Tjsj¿†rœThŒXResrT†ržTjsj¿†rŸThtj‡†r Tjsj¿†r¡TjEXHighr¢T†r£Tj©jm†r¤Tj-XCardinalr¥T†r¦Tj©jq†r§Tjsj¿†r¨TjXthenr©T†rªTjsX
    r«T†r¬ThŒXResr­T†r®Tjsj¿†r¯Thtj{†r°Thtjì†r±Tjsj¿†r²TjEXHighr³T†r´Tj©jm†rµTj-XCardinalr¶T†r·Tj©jq†r¸TjsX
  r¹T†rºTjXelser»T†r¼Tjsj¿†r½TjXifr¾T†r¿Tjsj¿†rÀThŒXResrÁT†rÂTjsj¿†rÃThtj†rÄTjsj¿†rÅTjŸj®†rÆTjsj¿†rÇTjXthenrÈT†rÉTjsX
    rÊT†rËThŒXResrÌT†rÍTjsj¿†rÎThtj{†rÏThtjì†rÐTjsj¿†rÑTjŸj®†rÒThtjÆrÓTjsX
  rÔT†rÕTjJXResultrÖT†r×Tjsj¿†rØThtj{†rÙThtjì†rÚTjsj¿†rÛTj-XCardinalrÜT†rÝTj©jm†rÞThŒXResrßT†ràTj©jq†ráThtjÆrâTjsj2†rãTjXendräT†råThtjÆræTjsX

rçT†rèTjXfunctionréT†rêTjsj¿†rëTjtXHexOrdrìT†ríTj©jm†rîThŒXHexrïT†rðThtj{†rñTjsj¿†ròTj-XCharróT†rôTj©jq†rõThtj{†röTjsj¿†r÷ThŒXTHexrøT†rùThtjÆrúTjsj2†rûTjXbeginrüT†rýTjsX
  rþT†rÿTjXcaserU†rUjsj¿†rUhŒXHexrU†rUjsj¿†rUjXofrU†rUjsX
    rU†r	UjÁjJ†r
UjÁj®†rUjÁjJ†rUhtj~†r
Uhtj~†rUjÁjJ†rUjÁj´†rUjÁjJ†rUhtj{†rUjsX
      rU†rUjJXResultrU†rUjsj¿†rUhtj{†rUhtjì†rUjsj¿†rUj-XByterU†rUj©jm†rUhŒXHexrU†rUj©jq†r Ujsj¿†r!UhtjR†r"Ujsj¿†r#UjŸX48r$U†r%UhtjÆr&UjsX
    r'U†r(UjÁjJ†r)UjÁjކr*UjÁjJ†r+Uhtj~†r,Uhtj~†r-UjÁjJ†r.UjÁj†r/UjÁjJ†r0Uhtj{†r1UjsX
      r2U†r3UjJXResultr4U†r5Ujsj¿†r6Uhtj{†r7Uhtjì†r8Ujsj¿†r9Uj-XByter:U†r;Uj©jm†r<UhŒXHexr=U†r>Uj©jq†r?Ujsj¿†r@UhtjR†rAUjsj¿†rBUjŸX55rCU†rDUhtjÆrEUjsX
    rFU†rGUjÁjJ†rHUjÁjš†rIUjÁjJ†rJUhtj~†rKUhtj~†rLUjÁjJ†rMUjÁj†rNUjÁjJ†rOUhtj{†rPUjsX
      rQU†rRUjJXResultrSU†rTUjsj¿†rUUhtj{†rVUhtjì†rWUjsj¿†rXUj-XByterYU†rZUj©jm†r[UhŒXHexr\U†r]Uj©jq†r^Ujsj¿†r_UhtjR†r`Ujsj¿†raUjŸX87rbU†rcUhtjÆrdUjsX
    reU†rfUjXelsergU†rhUjsX
      riU†rjUjJXResultrkU†rlUjsj¿†rmUhtj{†rnUhtjì†roUjsj¿†rpUjŸj®†rqUhtjÆrrUjsX
  rsU†rtUjXendruU†rvUhtjÆrwUjsj2†rxUjXendryU†rzUhtjÆr{UjsX

r|U†r}UjXfunctionr~U†rUjsj¿†r€UjtX	ByteOfHexrU†r‚Uj©jm†rƒUhŒXHexr„U†r…Uhtj{†r†Ujsj¿†r‡UhŒXTHexByteStrrˆU†r‰Uj©jq†rŠUhtj{†r‹Ujsj¿†rŒUj-XByterU†rŽUhtjÆrUjsj2†rUjXbeginr‘U†r’UjsX
  r“U†r”UjJXResultr•U†r–Ujsj¿†r—Uhtj{†r˜Uhtjì†r™Ujsj¿†ršUj©jm†r›UhŒXHexOrdrœU†rUj©jm†ržUhŒXHexrŸU†r Uj©j'†r¡UjŸj5†r¢Uj©X])r£U†r¤Ujsj¿†r¥UjXshlr¦U†r§Ujsj¿†r¨UjŸj½†r©Uj©jq†rªUjsj¿†r«UhtjÆr¬Ujsj¿†r­UhŒXHexOrdr®U†r¯Uj©jm†r°UhŒXHexr±U†r²Uj©j'†r³UjŸj³†r´Uj©X])rµU†r¶UhtjÆr·Ujsj2†r¸UjXendr¹U†rºUhtjÆr»UjsX

r¼U†r½UjXfunctionr¾U†r¿Ujsj¿†rÀUjtXDecOfHexrÁU†rÂUj©jm†rÃUjXconstrÄU†rÅUjsj¿†rÆUhŒXHexrÇU†rÈUhtj{†rÉUjsj¿†rÊUjXstringrËU†rÌUj©jq†rÍUhtj{†rÎUjsj¿†rÏUjXstringrÐU†rÑUhtjÆrÒUjsj2†rÓUjXbeginrÔU†rÕUjsX
  rÖU†r×UjJXResultrØU†rÙUjsj¿†rÚUhtj{†rÛUhtjì†rÜUjsj¿†rÝUjEXIntToStrrÞU†rßUj©jm†ràUhŒX	CardOfHexráU†râUj©jm†rãUhŒXHexräU†råUj©X))ræU†rçUhtjÆrèUjsj2†réUjXendrêU†rëUhtjÆrìUjsX

ríU†rîUjXfunctionrïU†rðUjsj¿†rñUjtX	HexOfByteròU†róUj©jm†rôUhŒj:†rõUhtj{†röUjsj¿†r÷Uj-XByterøU†rùUj©jq†rúUhtj{†rûUjsj¿†rüUhŒXTHexByteStrrýU†rþUhtjÆrÿUjsj2†rVjXbeginrV†rVjsX
  rV†rVjJXResultrV†rVjsj¿†rVhtj{†rVhtjì†r	Vjsj¿†r
VhŒXHexCharrV†rVj©X[(r
V†rVhŒj:†rVjsj¿†rVjXandrV†rVjsj¿†rVj—X$F0rV†rVj©jq†rVjsj¿†rVjXshrrV†rVjsj¿†rVjŸj½†rVj©j/†rVjsX
          rV†rVhtjÆrVjsj¿†r VhŒXHexCharr!V†r"Vj©j'†r#Vjsj¿†r$VhŒj:†r%Vjsj¿†r&VjXandr'V†r(Vjsj¿†r)Vj—X$0Fr*V†r+VjsX       r,V†r-Vj©j/†r.VhtjÆr/Vjsj2†r0VjXendr1V†r2VhtjÆr3VjsX

r4V†r5VhFX{function HexOfCard2(c: Cardinal): string;
var
  Data: array[0..(1 shl 4) - 1] of Char;
  i: Integer;
begin
  for i := 0 to (1 shl 4) - 1 do
    if i < 10 then
      Data[i] := Char(Ord('0') + i)
    else
      Data[i] := Char(Ord('A') + i - 10);

  Result := Data[(c and (((1 shl (1 shl 2)) - 1) shl (7 shl 2))) shr (7 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (6 shl 2))) shr (6 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (5 shl 2))) shr (5 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (4 shl 2))) shr (4 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (3 shl 2))) shr (3 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (2 shl 2))) shr (2 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (1 shl 2))) shr (1 shl 2)]
          + Data[(c and (((1 shl (1 shl 2)) - 1) shl (0 shl 2))) shr (0 shl 2)];
end; }r6V†r7VjsX

r8V†r9VjXfunctionr:V†r;Vjsj¿†r<VjtX	HexOfCardr=V†r>Vj©jm†r?VhŒj†r@Vhtj{†rAVjsj¿†rBVj-XCardinalrCV†rDVj©jq†rEVhtj{†rFVjsj¿†rGVjXstringrHV†rIVhtjÆrJVjsj2†rKVjXvarrLV†rMVjsX
  rNV†rOVhŒjš†rPVhtj{†rQVjsj¿†rRVj-XCardinalrSV†rTVhtjÆrUVjsj2†rVVjXbeginrWV†rXVjsX
  rYV†rZVjJXResultr[V†r\Vjsj¿†r]Vhtj{†r^Vhtjì†r_Vjsj¿†r`VjÁjJ†raVjÁjJ†rbVhtjÆrcVjsX
  rdV†reVjXwhilerfV†rgVjsj¿†rhVhŒj†riVjsj¿†rjVhtj‡†rkVjsj¿†rlVjŸj®†rmVjsj¿†rnVjXdoroV†rpVjsj¿†rqVjXbeginrrV†rsVjsX
    rtV†ruVhŒjš†rvVjsj¿†rwVhtj{†rxVhtjì†ryVjsj¿†rzVhŒj†r{Vjsj¿†r|VjXandr}V†r~Vjsj¿†rVj—X$Fr€V†rVhtjÆr‚VjsX
    rƒV†r„VjJXResultr…V†r†Vjsj¿†r‡Vhtj{†rˆVhtjì†r‰Vjsj¿†rŠVhŒXHexCharr‹V†rŒVj©j'†rVhŒjš†rŽVj©j/†rVjsj¿†rVhtjÆr‘Vjsj¿†r’VjJXResultr“V†r”VhtjÆr•VjsX
    r–V†r—VhŒj†r˜Vjsj¿†r™Vhtj{†ršVhtjì†r›Vjsj¿†rœVhŒj†rVjsj¿†ržVjXshrrŸV†r Vjsj¿†r¡VjŸj½†r¢VhtjÆr£VjsX
  r¤V†r¥VjXendr¦V†r§VhtjÆr¨Vjsj2†r©VjXendrªV†r«VhtjÆr¬VjsX

r­V†r®VjXfunctionr¯V†r°Vjsj¿†r±VjtX	HexOfCardr²V†r³Vj©jm†r´VhŒj†rµVhtj{†r¶Vjsj¿†r·Vj-XCardinalr¸V†r¹VhtjÆrºVjsj¿†r»VhŒXDigitsr¼V†r½Vhtj{†r¾Vjsj¿†r¿Vj-XIntegerrÀV†rÁVj©jq†rÂVhtj{†rÃVjsj¿†rÄVjXstringrÅV†rÆVhtjÆrÇVjsj2†rÈVjXvarrÉV†rÊVjsX
  rËV†rÌVhŒjš†rÍVhtj{†rÎVjsj¿†rÏVj-XCardinalrÐV†rÑVhtjÆrÒVjsj2†rÓVjXbeginrÔV†rÕVjsX
  rÖV†r×VjJXResultrØV†rÙVjsj¿†rÚVhtj{†rÛVhtjì†rÜVjsj¿†rÝVjÁjJ†rÞVjÁjJ†rßVhtjÆràVjsX
  ráV†râVjXwhilerãV†räVjsj¿†råVhŒj†ræVjsj¿†rçVhtj‡†rèVjsj¿†réVjŸj®†rêVjsj¿†rëVjXdorìV†ríVjsj¿†rîVjXbeginrïV†rðVjsX
    rñV†ròVhŒjš†róVjsj¿†rôVhtj{†rõVhtjì†röVjsj¿†r÷VhŒj†røVjsj¿†rùVjXandrúV†rûVjsj¿†rüVj—X$FrýV†rþVhtjÆrÿVjsX
    rW†rWjJXResultrW†rWjsj¿†rWhtj{†rWhtjì†rWjsj¿†rWhŒXHexCharrW†r	Wj©j'†r
WhŒjš†rWj©j/†rWjsj¿†r
WhtjÆrWjsj¿†rWjJXResultrW†rWhtjÆrWjsX
    rW†rWhŒj†rWjsj¿†rWhtj{†rWhtjì†rWjsj¿†rWhŒj†rWjsj¿†rWjXshrrW†rWjsj¿†rWjŸj½†rWhtjÆr WjsX
  r!W†r"WjXendr#W†r$WhtjÆr%WjsX
  r&W†r'WjJXResultr(W†r)Wjsj¿†r*Whtj{†r+Whtjì†r,Wjsj¿†r-WhŒXMulStrr.W†r/Wj©jm†r0WjÁjJ†r1WjÁj®†r2WjÁjJ†r3WhtjÕ†r4Wjsj¿†r5WhŒXDigitsr6W†r7Wjsj¿†r8WhtjR†r9Wjsj¿†r:WjEXLengthr;W†r<Wj©jm†r=WjJXResultr>W†r?Wj©X))r@W†rAWjsj¿†rBWhtjÆrCWjsj¿†rDWjJXResultrEW†rFWhtjÆrGWjsj2†rHWjXendrIW†rJWhtjÆrKWjsX

rLW†rMWjXfunctionrNW†rOWjsj¿†rPWjtXPascalHexArrayrQW†rRWj©jm†rSWhŒjš†rTWhtj{†rUWjsj¿†rVWhŒXTByteArWW†rXWhtjÆrYWjsj¿†rZWjRXNamer[W†r\Whtj{†r]Wjsj¿†r^WjXstringr_W†r`Wj©jq†raWhtj{†rbWjsj¿†rcWjXstringrdW†reWhtjÆrfWjsj2†rgWjXvarrhW†riWjsX
  rjW†rkWhŒj†rlWhtjÕ†rmWjsj¿†rnWhŒXlenroW†rpWhtj{†rqWjsj¿†rrWj-XIntegerrsW†rtWhtjÆruWjsj2†rvWjXbeginrwW†rxWjsX
  ryW†rzWjJXResultr{W†r|Wjsj¿†r}Whtj{†r~Whtjì†rWjsj¿†r€WjÁjJ†rWjÁXconstr‚W†rƒWjÁjJ†r„Wjsj¿†r…WhtjÆr†Wjsj¿†r‡WhŒXEOLrˆW†r‰Wjsj¿†rŠWhtjÆr‹WjsX
    rŒW†rWjÁjJ†rŽWjÁX  rW†rWjÁjJ†r‘Wjsj¿†r’WhtjÆr“Wjsj¿†r”WhŒXNamer•W†r–Wjsj¿†r—We(htjÆr˜Wjsj¿†r™WjÁjJ†ršWjÁX: array[0..r›W†rœWjÁjJ†rWjsj¿†ržWhtjÆrŸWjsj¿†r WjEXIntToStrr¡W†r¢Wj©jm†r£WjEXHighr¤W†r¥Wj©jm†r¦WhŒjš†r§Wj©X))r¨W†r©Wjsj¿†rªWhtjÆr«Wjsj¿†r¬WjÁjJ†r­WjÁX
] of Byte = (r®W†r¯WjÁjJ†r°WhtjÆr±WjsX

  r²W†r³WhŒXlenr´W†rµWjsj¿†r¶Whtj{†r·Whtjì†r¸Wjsj¿†r¹WjEXLengthrºW†r»Wj©jm†r¼WhŒjš†r½Wj©jq†r¾WhtjÆr¿WjsX
  rÀW†rÁWjXforrÂW†rÃWjsj¿†rÄWhŒj†rÅWjsj¿†rÆWhtj{†rÇWhtjì†rÈWjsj¿†rÉWjŸj®†rÊWjsj¿†rËWjXtorÌW†rÍWjsj¿†rÎWhŒXlenrÏW†rÐWhtjR†rÑWjŸj5†rÒWjsj¿†rÓWjXdorÔW†rÕWjsj¿†rÖWjXbeginr×W†rØWjsX
    rÙW†rÚWjXifrÛW†rÜWjsj¿†rÝWj©jm†rÞWhŒj†rßWjsj¿†ràWjXmodráW†râWjsj¿†rãWjŸX19räW†råWj©jq†ræWjsj¿†rçWhtjì†rèWjsj¿†réWjŸj®†rêWjsj¿†rëWjXthenrìW†ríWjsX
      rîW†rïWjJXResultrðW†rñWjsj¿†ròWhtj{†róWhtjì†rôWjsj¿†rõWjJXResultröW†r÷Wjsj¿†røWhtjÆrùWjsj¿†rúWhŒXEOLrûW†rüWjsj¿†rýWhtjÆrþWjsj¿†rÿWjÁjJ†rXjÁX  rX†rXjÁjJ†rXjsj¿†rXhtjÆrXjsj¿†rXjÁjJ†rXjÁX  rX†r	XjÁjJ†r
XhtjÆrXjsX
    rX†r
XjJXResultrX†rXjsj¿†rXhtj{†rXhtjì†rXjsj¿†rXjJXResultrX†rXjsj¿†rXhtjÆrXjsj¿†rXjÁjJ†rXjÁX$rX†rXjÁjJ†rXjsj¿†rXhtjÆrXjsj¿†rXhŒX	HexOfByter X†r!Xj©jm†r"XhŒjš†r#Xj©j'†r$XhŒj†r%Xj©X])r&X†r'XhtjÆr(XjsX
    r)X†r*XjXifr+X†r,Xjsj¿†r-XhŒj†r.Xjsj¿†r/Xhtj†r0Xjsj¿†r1XhŒXlenr2X†r3XhtjR†r4XjŸj5†r5Xjsj¿†r6XjXthenr7X†r8XjsX
      r9X†r:XjJXResultr;X†r<Xjsj¿†r=Xhtj{†r>Xhtjì†r?Xjsj¿†r@XjJXResultrAX†rBXjsj¿†rCXhtjÆrDXjsj¿†rEXjÁjJ†rFXjÁjÕ†rGXjÁjJ†rHXhtjÆrIXjsX
  rJX†rKXjXendrLX†rMXhtjÆrNXjsX
  rOX†rPXjJXResultrQX†rRXjsj¿†rSXhtj{†rTXhtjì†rUXjsj¿†rVXjJXResultrWX†rXXjsj¿†rYXhtjÆrZXjsj¿†r[XhŒXEOLr\X†r]Xjsj¿†r^XhtjÆr_Xjsj¿†r`XjÁjJ†raXjÁX  );rbX†rcXjÁjJ†rdXhtjÆreXjsj2†rfXjXendrgX†rhXhtjÆriXjsX

rjX†rkXjXfunctionrlX†rmXjsj¿†rnXjtX
HexOfByteAroX†rpXj©jm†rqXhŒjš†rrXhtj{†rsXjsj¿†rtXhŒXTByteAruX†rvXhtjÆrwXjsj¿†rxXhŒXBlocksryX†rzXhtj{†r{Xjsj¿†r|Xj-XIntegerr}X†r~Xjsj¿†rXhtjì†r€Xjsj¿†rXjŸj5†r‚XhtjÆrƒXjsX
  r„X†r…XjXconstr†X†r‡Xjsj¿†rˆXhŒXSplitterr‰X†rŠXhtj{†r‹Xjsj¿†rŒXjXstringrX†rŽXjsj¿†rXhtjì†rXjsj¿†r‘XjÁjJ†r’XjÁj¿†r“XjÁjJ†r”Xj©jq†r•Xhtj{†r–Xjsj¿†r—XjXstringr˜X†r™XhtjÆršXjsj2†r›XjXvarrœX†rXjsX
  ržX†rŸXhŒj†r Xhtj{†r¡Xjsj¿†r¢Xj-XIntegerr£X†r¤XhtjÆr¥Xjsj2†r¦XjXbeginr§X†r¨XjsX
  r©X†rªXjJXResultr«X†r¬Xjsj¿†r­Xhtj{†r®Xhtjì†r¯Xjsj¿†r°XjÁjJ†r±XjÁjJ†r²XhtjÆr³XjsX

  r´X†rµXjXifr¶X†r·Xjsj¿†r¸XhŒXBlocksr¹X†rºXjsj¿†r»Xhtj‡†r¼Xjsj¿†r½XjŸj®†r¾Xjsj¿†r¿XjXthenrÀX†rÁXjsX
    rÂX†rÃXjXforrÄX†rÅXjsj¿†rÆXhŒj†rÇXjsj¿†rÈXhtj{†rÉXhtjì†rÊXjsj¿†rËXjŸj®†rÌXjsj¿†rÍXjXtorÎX†rÏXjsj¿†rÐXjEXHighrÑX†rÒXj©jm†rÓXhŒjš†rÔXj©jq†rÕXjsj¿†rÖXjXdor×X†rØXjsj¿†rÙXjXbeginrÚX†rÛXjsX
      rÜX†rÝXjJXResultrÞX†rßXjsj¿†ràXhtj{†ráXhtjì†râXjsj¿†rãXjJXResulträX†råXjsj¿†ræXhtjÆrçXjsj¿†rèXhŒX	HexOfByteréX†rêXj©jm†rëXhŒjš†rìXj©j'†ríXhŒj†rîXj©X])rïX†rðXhtjÆrñXjsX
      ròX†róXjXifrôX†rõXjsj¿†röXhŒj†r÷Xjsj¿†røXhtj†rùXjsj¿†rúXjEXHighrûX†rüXj©jm†rýXhŒjš†rþXj©jq†rÿXjsj¿†rYjXthenrY†rYjsX	
        rY†rYjXifrY†rYjsj¿†rYj©X((rY†r	YhŒj†r
YhtjÆrYjŸj5†rYj©jq†r
Yjsj¿†rYjXmodrY†rYjsj¿†rYhŒXBlocksrY†rYj©jq†rYjsj¿†rYhtjì†rYjsj¿†rYjŸj®†rYjsj¿†rYjXthenrY†rYjsX
          rY†rYjJXResultrY†rYjsj¿†r Yhtj{†r!Yhtjì†r"Yjsj¿†r#YjJXResultr$Y†r%Yjsj¿†r&YhtjÆr'Yjsj¿†r(YhŒXSplitterr)Y†r*YhtjÆr+YjsX
    r,Y†r-YjXendr.Y†r/YjsX
  r0Y†r1YjXelser2Y†r3YjsX
    r4Y†r5YjXforr6Y†r7Yjsj¿†r8YhŒj†r9Yjsj¿†r:Yhtj{†r;Yhtjì†r<Yjsj¿†r=YjŸj®†r>Yjsj¿†r?YjXtor@Y†rAYjsj¿†rBYjEXHighrCY†rDYj©jm†rEYhŒjš†rFYj©jq†rGYjsj¿†rHYjXdorIY†rJYjsX
      rKY†rLYjJXResultrMY†rNYjsj¿†rOYhtj{†rPYhtjì†rQYjsj¿†rRYjJXResultrSY†rTYjsj¿†rUYhtjÆrVYjsj¿†rWYhŒX	HexOfByterXY†rYYj©jm†rZYhŒjš†r[Yj©j'†r\YhŒj†r]Yj©X])r^Y†r_YhtjÆr`Yjsj2†raYjXendrbY†rcYhtjÆrdYjsX

reY†rfYjXfunctionrgY†rhYjsj¿†riYjtX
BinOfByteArjY†rkYj©jm†rlYhŒjš†rmYhtj{†rnYjsj¿†roYhŒXTByteArpY†rqYhtjÆrrYjsj¿†rsYhŒXBlocksrtY†ruYhtj{†rvYjsj¿†rwYj-XIntegerrxY†ryYjsj¿†rzYhtjì†r{Yjsj¿†r|YjŸj½†r}YhtjÆr~YjsX
  rY†r€YjXconstrY†r‚Yjsj¿†rƒYhŒXSplitterr„Y†r…Yhtj{†r†Yjsj¿†r‡YjXstringrˆY†r‰Yjsj¿†rŠYhtjì†r‹Yjsj¿†rŒYjÁjJ†rYjÁj¿†rŽYjÁjJ†rYj©jq†rYhtj{†r‘Yjsj¿†r’YjXstringr“Y†r”YhtjÆr•Yjsj2†r–YjXvarr—Y†r˜YjsX
  r™Y†ršYhŒj†r›YhtjÕ†rœYjsj¿†rYjEXmaxržY†rŸYhtj{†r Yjsj¿†r¡Yj-XIntegerr¢Y†r£YhtjÆr¤YjsX
  r¥Y†r¦YhŒXBitr§Y†r¨Yhtj{†r©Yjsj¿†rªYj-XBooleanr«Y†r¬YhtjÆr­Yjsj2†r®YjXbeginr¯Y†r°YjsX
  r±Y†r²YjJXResultr³Y†r´Yjsj¿†rµYhtj{†r¶Yhtjì†r·Yjsj¿†r¸YjÁjJ†r¹YjÁjJ†rºYhtjÆr»YjsX

  r¼Y†r½YjXifr¾Y†r¿Yjsj¿†rÀYhŒXBlocksrÁY†rÂYjsj¿†rÃYhtj‡†rÄYjsj¿†rÅYjŸj®†rÆYjsj¿†rÇYjXthenrÈY†rÉYjsj¿†rÊYjXbeginrËY†rÌYjsX
    rÍY†rÎYjEXmaxrÏY†rÐYjsj¿†rÑYhtj{†rÒYhtjì†rÓYjsj¿†rÔYjŸjІrÕYjsj¿†rÖYhtjW†r×Yjsj¿†rØYj©jm†rÙYjEXHighrÚY†rÛYj©jm†rÜYhŒjš†rÝYj©X))rÞY†rßYjsj¿†ràYhtjÆráYjsj¿†râYjŸj"†rãYhtjÆräYjsX
    råY†ræYjXforrçY†rèYjsj¿†réYhŒj†rêYjsj¿†rëYhtj{†rìYhtjì†ríYjsj¿†rîYjŸj®†rïYjsj¿†rðYjXtorñY†ròYjsj¿†róYjEXmaxrôY†rõYjsj¿†röYjXdor÷Y†røYjsj¿†rùYjXbeginrúY†rûYjsX
      rüY†rýYhŒXBitrþY†rÿYjsj¿†rZhtj{†rZhtjì†rZjsj¿†rZjŸj"†rZhtjR†rZj©jm†rZhŒj†rZjsj¿†rZjXmodr	Z†r
Zjsj¿†rZjŸjІrZj©jq†r
Zjsj¿†rZjXinrZ†rZjsj¿†rZhŒXTBitSetrZ†rZj©jm†rZhŒjš†rZj©j'†rZhŒj†rZjsj¿†rZjXdivrZ†rZjsj¿†rZjŸjІrZj©X])rZ†rZhtjÆrZjsX
      r Z†r!ZjJXResultr"Z†r#Zjsj¿†r$Zhtj{†r%Zhtjì†r&Zjsj¿†r'ZjJXResultr(Z†r)Zjsj¿†r*ZhtjÆr+Zjsj¿†r,Zj-XCharr-Z†r.Zj©jm†r/Zj-XByter0Z†r1Zj©jm†r2ZjÁjJ†r3ZjÁj®†r4ZjÁjJ†r5Zj©jq†r6Zjsj¿†r7ZhtjÆr8Zjsj¿†r9Zj-XByter:Z†r;Zj©jm†r<ZhŒXBitr=Z†r>Zj©X))r?Z†r@ZhtjÆrAZjsX
      rBZ†rCZjXifrDZ†rEZjsj¿†rFZhŒj†rGZjsj¿†rHZhtj†rIZjsj¿†rJZjEXmaxrKZ†rLZjsj¿†rMZjXthenrNZ†rOZjsX	
        rPZ†rQZjXifrRZ†rSZjsj¿†rTZj©X((rUZ†rVZhŒj†rWZhtjÆrXZjŸj5†rYZj©jq†rZZjsj¿†r[ZjXmodr\Z†r]Zjsj¿†r^ZhŒXBlocksr_Z†r`Zj©jq†raZjsj¿†rbZhtjì†rcZjsj¿†rdZjŸj®†reZjsj¿†rfZjXthenrgZ†rhZjsX
          riZ†rjZjJXResultrkZ†rlZjsj¿†rmZhtj{†rnZhtjì†roZjsj¿†rpZjJXResultrqZ†rrZjsj¿†rsZhtjÆrtZjsj¿†ruZhŒXSplitterrvZ†rwZhtjÆrxZjsX
    ryZ†rzZjXendr{Z†r|ZhtjÆr}ZjsX
  r~Z†rZjXendr€Z†rZjsj¿†r‚ZjXelserƒZ†r„ZjsX
    r…Z†r†ZjXforr‡Z†rˆZjsj¿†r‰ZhŒj†rŠZjsj¿†r‹Zhtj{†rŒZhtjì†rZjsj¿†rŽZjŸj®†rZjsj¿†rZjXtor‘Z†r’Zjsj¿†r“ZjEXHighr”Z†r•Zj©jm†r–ZhŒjš†r—Zj©jq†r˜Zjsj¿†r™ZjXdoršZ†r›ZjsX
      rœZ†rZjJXResultržZ†rŸZjsj¿†r Zhtj{†r¡Zhtjì†r¢Zjsj¿†r£ZjJXResultr¤Z†r¥Zjsj¿†r¦ZhtjÆr§Zjsj¿†r¨Zj-XCharr©Z†rªZj©jm†r«Zj-XByter¬Z†r­Zj©jm†r®ZjÁjJ†r¯ZjÁj®†r°ZjÁjJ†r±Zj©jq†r²Zjsj¿†r³ZhtjÆr´Zjsj¿†rµZhŒjš†r¶Zj©j'†r·ZhŒj†r¸Zj©j/†r¹Zjsj¿†rºZjXshrr»Z†r¼Zjsj¿†r½Zj©jm†r¾ZhŒj†r¿Zjsj¿†rÀZjXandrÁZ†rÂZjsj¿†rÃZjŸjІrÄZj©X))rÅZ†rÆZhtjÆrÇZjsj2†rÈZjXendrÉZ†rÊZhtjÆrËZjsX

rÌZ†rÍZjXfunctionrÎZ†rÏZjsj¿†rÐZjtX	CardOfHexrÑZ†rÒZj©jm†rÓZhŒXHexrÔZ†rÕZhtj{†rÖZjsj¿†r×ZjXstringrØZ†rÙZj©jq†rÚZhtj{†rÛZjsj¿†rÜZj-XCardinalrÝZ†rÞZhtjÆrßZjsj2†ràZjXvarráZ†râZjsX
  rãZ†räZhŒj†råZhtj{†ræZjsj¿†rçZj-XIntegerrèZ†réZhtjÆrêZjsj2†rëZjXbeginrìZ†ríZjsX
  rîZ†rïZjJXResultrðZ†rñZjsj¿†ròZhtj{†róZhtjì†rôZjsj¿†rõZjŸj®†röZhtjÆr÷ZjsX
  røZ†rùZhŒXHexrúZ†rûZjsj¿†rüZhtj{†rýZhtjì†rþZjsj¿†rÿZjEXCopyr[†r[j©jm†r[hŒXExtractCharsr[†r[j©jm†r[hŒXHexr[†r[htjÕ†r[jsj¿†r	[hŒXHexadecimalCharsr
[†r[j©jq†r[htjÕ†r
[jsj¿†r[jŸj5†r[htjÕ†r[jsj¿†r[jŸjІr[j©jq†r[htjÆr[jsX

  r[†r[jXforr[†r[jsj¿†r[hŒj†r[jsj¿†rtj{†r[htjì†r[jsj¿†r[jŸj5†r[jsj¿†r [jXtor![†r"[jsj¿†r#[jEXLengthr$[†r%[j©jm†r&[hŒXHexr'[†r([j©jq†r)[jsj¿†r*[jXdor+[†r,[jsX
    r-[†r.[jXifr/[†r0[jsj¿†r1[hŒXHexr2[†r3[j©j'†r4[hŒj†r5[j©j/†r6[jsj¿†r7[htj†r8[htj‡†r9[jsj¿†r:[jÁjJ†r;[jÁj®†r<[jÁjJ†r=[jsj¿†r>[jXthenr?[†r@[jsX
      rA[†rB[jEXIncrC[†rD[j©jm†rE[jJXResultrF[†rG[htjÕ†rH[jsj¿†rI[hŒXHexOrdrJ[†rK[j©jm†rL[hŒXHexrM[†rN[j©j'†rO[hŒj†rP[j©X])rQ[†rR[jsj¿†rS[jXshlrT[†rU[jsj¿†rV[j©X((rW[†rX[jEXLengthrY[†rZ[j©jm†r[[hŒXHexr\[†r][j©jq†r^[jsj¿†r_[htjR†r`[jsj¿†ra[hŒj†rb[j©jq†rc[jsj¿†rd[jXshlre[†rf[jsj¿†rg[jŸj³†rh[j©X))ri[†rj[htjÆrk[jsj2†rl[jXendrm[†rn[htjÆro[jsX

rp[†rq[jXfunctionrr[†rs[jsj¿†rt[jtXIntOfBinru[†rv[j©jm†rw[hŒXBinrx[†ry[htj{†rz[jsj¿†r{[jXstringr|[†r}[j©jq†r~[htj{†r[jsj¿†r€[j-XCardinalr[†r‚[htjÆrƒ[jsj2†r„[jXvarr…[†r†[jsX
  r‡[†rˆ[hŒj†r‰[htj{†rŠ[jsj¿†r‹[j-XIntegerrŒ[†r[htjÆrŽ[jsj2†r[jXbeginr[†r‘[jsX
  r’[†r“[jJXResultr”[†r•[jsj¿†r–[htj{†r—[htjì†r˜[jsj¿†r™[jŸj®†rš[htjÆr›[jsX
  rœ[†r[hŒXBinrž[†rŸ[jsj¿†r [htj{†r¡[htjì†r¢[jsj¿†r£[jEXCopyr¤[†r¥[j©jm†r¦[hŒXExtractCharsr§[†r¨[j©jm†r©[hŒXBinrª[†r«[htjÕ†r¬[jsj¿†r­[hŒXBinaryCharsr®[†r¯[j©jq†r°[htjÕ†r±[jsj¿†r²[jŸj5†r³[htjÕ†r´[jsj¿†rµ[jŸX32r¶[†r·[j©jq†r¸[htjÆr¹[jsX

  rº[†r»[jXforr¼[†r½[jsj¿†r¾[hŒj†r¿[jsj¿†rÀ[htj{†rÁ[htjì†rÂ[jsj¿†rÃ[jEXLengthrÄ[†rÅ[j©jm†rÆ[hŒXBinrÇ[†rÈ[j©jq†rÉ[jsj¿†rÊ[jXdowntorË[†rÌ[jsj¿†rÍ[jŸj5†rÎ[jsj¿†rÏ[jXdorÐ[†rÑ[jsX
    rÒ[†rÓ[jXifrÔ[†rÕ[jsj¿†rÖ[hŒXBinr×[†rØ[j©j'†rÙ[hŒj†rÚ[j©j/†rÛ[jsj¿†rÜ[htjì†rÝ[jsj¿†rÞ[jÁjJ†rß[jÁj5†rà[jÁjJ†rá[jsj¿†râ[jXthenrã[†rä[jsX
      rå[†ræ[jEXIncrç[†rè[j©jm†ré[jJXResultrê[†rë[htjÕ†rì[jsj¿†rí[jŸj5†rî[jsj¿†rï[jXshlrð[†rñ[jsj¿†rò[j©jm†ró[jEXLengthrô[†rõ[j©jm†rö[hŒXBinr÷[†rø[j©jq†rù[jsj¿†rú[htjR†rû[jsj¿†rü[hŒj†rý[j©X))rþ[†rÿ[htjÆr\jsj2†r\jXendr\†r\htjÆr\jsX

r\†r\jXfunctionr\†r\jsj¿†r	\jtXBinOfIntr
\†r\j©jm†r\hŒj†r
\htj{†r\jsj¿†r\j-XCardinalr\†r\j©jq†r\htj{†r\jsj¿†r\jXstringr\†r\htjÆr\jsj2†r\jXvarr\†r\jsX
  r\†r\hŒjš†r\htj{†r\jsj¿†r\j-XIntegerr \†r!\htjÆr"\jsj2†r#\jXbeginr$\†r%\jsX
  r&\†r'\jXifr(\†r)\jsj¿†r*\hŒj†r+\jsj¿†r,\htjì†r-\jsj¿†r.\jŸj®†r/\jsj¿†r0\jXthenr1\†r2\jsj¿†r3\jXbeginr4\†r5\jsX
    r6\†r7\jJXResultr8\†r9\jsj¿†r:\htj{†r;\htjì†r<\jsj¿†r=\jÁjJ†r>\jÁj®†r?\jÁjJ†r@\htjÆrA\jsX
  rB\†rC\jXexitrD\†rE\htjÆrF\jsj¿†rG\jXendrH\†rI\htjÆrJ\jsX

  rK\†rL\jJXResultrM\†rN\jsj¿†rO\htj{†rP\htjì†rQ\jsj¿†rR\jÁjJ†rS\jÁjJ†rT\htjÆrU\jsX
  rV\†rW\jXwhilerX\†rY\jsj¿†rZ\hŒj†r[\jsj¿†r\\htj‡†r]\jsj¿†r^\jŸj®†r_\jsj¿†r`\jXdora\†rb\jsj¿†rc\jXbeginrd\†re\jsX
    rf\†rg\hŒjš†rh\jsj¿†ri\htj{†rj\htjì†rk\jsj¿†rl\hŒj†rm\jsj¿†rn\jXandro\†rp\jsj¿†rq\jŸj5†rr\htjÆrs\jsX
    rt\†ru\jJXResultrv\†rw\jsj¿†rx\htj{†ry\htjì†rz\jsj¿†r{\j-XCharr|\†r}\j©jm†r~\hŒjš†r\jsj¿†r€\htjÆr\jsj¿†r‚\j-XByterƒ\†r„\j©jm†r…\jÁjJ†r†\jÁj®†r‡\jÁjJ†rˆ\j©X))r‰\†rŠ\jsj¿†r‹\htjÆrŒ\jsj¿†r\jJXResultrŽ\†r\htjÆr\jsX
    r‘\†r’\hŒj†r“\jsj¿†r”\htj{†r•\htjì†r–\jsj¿†r—\hŒj†r˜\jsj¿†r™\jXshrrš\†r›\jsj¿†rœ\jŸj5†r\htjÆrž\jsX
  rŸ\†r \jXendr¡\†r¢\htjÆr£\jsj2†r¤\jXendr¥\†r¦\htjÆr§\jsX

r¨\†r©\jXfunctionrª\†r«\jsj¿†r¬\jtXBinOfIntFillr­\†r®\j©jm†r¯\hŒj†r°\htj{†r±\jsj¿†r²\j-XCardinalr³\†r´\htjÆrµ\e(jsj¿†r¶\hŒXMinCountr·\†r¸\htj{†r¹\jsj¿†rº\j-XIntegerr»\†r¼\jsj¿†r½\htjì†r¾\jsj¿†r¿\jŸjІrÀ\j©jq†rÁ\htj{†rÂ\jsj¿†rÃ\jXstringrÄ\†rÅ\htjÆrÆ\jsj2†rÇ\jXvarrÈ\†rÉ\jsX
  rÊ\†rË\hŒjš†rÌ\htj{†rÍ\jsj¿†rÎ\j-XIntegerrÏ\†rÐ\htjÆrÑ\jsj2†rÒ\jXbeginrÓ\†rÔ\jsX
  rÕ\†rÖ\jXifr×\†rØ\jsj¿†rÙ\hŒj†rÚ\jsj¿†rÛ\htjì†rÜ\jsj¿†rÝ\jŸj®†rÞ\jsj¿†rß\jXthenrà\†rá\jsj¿†râ\jXbeginrã\†rä\jsX
    rå\†ræ\jJXResultrç\†rè\jsj¿†ré\htj{†rê\htjì†rë\jsj¿†rì\hŒXMulStrrí\†rî\j©jm†rï\jÁjJ†rð\jÁj®†rñ\jÁjJ†rò\htjÕ†ró\jsj¿†rô\hŒXMinCountrõ\†rö\j©jq†r÷\htjÆrø\jsX
  rù\†rú\jXExitrû\†rü\htjÆrý\jsj¿†rþ\jXendrÿ\†r]htjÆr]jsX

  r]†r]jJXResultr]†r]jsj¿†r]htj{†r]htjì†r]jsj¿†r	]jÁjJ†r
]jÁjJ†r]htjÆr]jsX
  r
]†r]jXwhiler]†r]jsj¿†r]hŒj†r]jsj¿†r]htj‡†r]jsj¿†r]jŸj®†r]jsj¿†r]jXdor]†r]jsj¿†r]jXbeginr]†r]jsX
    r]†r]hŒjš†r]jsj¿†r ]htj{†r!]htjì†r"]jsj¿†r#]hŒj†r$]jsj¿†r%]jXandr&]†r']jsj¿†r(]jŸj5†r)]htjÆr*]jsX
    r+]†r,]jJXResultr-]†r.]jsj¿†r/]htj{†r0]htjì†r1]jsj¿†r2]j-XCharr3]†r4]j©jm†r5]hŒjš†r6]jsj¿†r7]htjÆr8]jsj¿†r9]j-XByter:]†r;]j©jm†r<]jÁjJ†r=]jÁj®†r>]jÁjJ†r?]j©X))r@]†rA]jsj¿†rB]htjÆrC]jsj¿†rD]jJXResultrE]†rF]htjÆrG]jsX
    rH]†rI]hŒj†rJ]jsj¿†rK]htj{†rL]htjì†rM]jsj¿†rN]hŒj†rO]jsj¿†rP]jXshrrQ]†rR]jsj¿†rS]jŸj5†rT]htjÆrU]jsX
  rV]†rW]jXendrX]†rY]htjÆrZ]jsX
  r[]†r\]jJXResultr]]†r^]jsj¿†r_]htj{†r`]htjì†ra]jsj¿†rb]hŒXMulStrrc]†rd]j©jm†re]jÁjJ†rf]jÁj®†rg]jÁjJ†rh]htjÕ†ri]jsj¿†rj]hŒXMinCountrk]†rl]jsj¿†rm]htjR†rn]jsj¿†ro]jEXLengthrp]†rq]j©jm†rr]jJXResultrs]†rt]j©X))ru]†rv]jsj¿†rw]htjÆrx]jsj¿†ry]jJXResultrz]†r{]htjÆr|]jsj2†r}]jXendr~]†r]htjÆr€]jsX

r]†r‚]jXfunctionrƒ]†r„]jsj¿†r…]jtX
BaseNOfIntr†]†r‡]j©jm†rˆ]hŒj·†r‰]htj{†rŠ]jsj¿†r‹]j-XCardinalrŒ]†r]htjÆrŽ]jsj¿†r]hŒj݆r]htj{†r‘]jsj¿†r’]hŒXTBaseNr“]†r”]j©jq†r•]htj{†r–]jsj¿†r—]jXstringr˜]†r™]htjÆrš]jsj2†r›]jXvarrœ]†r]jsX
  rž]†rŸ]hŒjš†r ]htj{†r¡]jsj¿†r¢]j-XIntegerr£]†r¤]htjÆr¥]jsj2†r¦]jXbeginr§]†r¨]jsX
  r©]†rª]jXifr«]†r¬]jsj¿†r­]j©jm†r®]hŒj݆r¯]jsj¿†r°]htj†r±]jsj¿†r²]jŸj³†r³]j©jq†r´]jsj¿†rµ]jXorr¶]†r·]jsj¿†r¸]j©jm†r¹]hŒj†rº]jsj¿†r»]htjì†r¼]jsj¿†r½]jŸj®†r¾]j©jq†r¿]jsj¿†rÀ]jXthenrÁ]†rÂ]jsj¿†rÃ]jXbeginrÄ]†rÅ]jsX
    rÆ]†rÇ]jJXResultrÈ]†rÉ]jsj¿†rÊ]htj{†rË]htjì†rÌ]jsj¿†rÍ]jÁjJ†rÎ]jÁj®†rÏ]jÁjJ†rÐ]htjÆrÑ]jsX
  rÒ]†rÓ]jXExitrÔ]†rÕ]htjÆrÖ]jsj¿†r×]jXendrØ]†rÙ]htjÆrÚ]jsX

  rÛ]†rÜ]jJXResultrÝ]†rÞ]jsj¿†rß]htj{†rà]htjì†rá]jsj¿†râ]jÁjJ†rã]jÁjJ†rä]htjÆrå]jsX
  ræ]†rç]jXwhilerè]†ré]jsj¿†rê]hŒj†rë]jsj¿†rì]htj‡†rí]jsj¿†rî]jŸj®†rï]jsj¿†rð]jXdorñ]†rò]jsj¿†ró]jXbeginrô]†rõ]jsX
    rö]†r÷]hŒjš†rø]jsj¿†rù]htj{†rú]htjì†rû]jsj¿†rü]hŒj†rý]jsj¿†rþ]jXmodrÿ]†r^jsj¿†r^hŒj݆r^htjÆr^jsX
    r^†r^jJXResultr^†r^jsj¿†r^htj{†r	^htjì†r
^jsj¿†r^hŒX	BaseNCharr^†r
^j©j'†r^hŒjš†r^j©j/†r^jsj¿†r^htjÆr^jsj¿†r^jJXResultr^†r^htjÆr^jsX
    r^†r^hŒj†r^jsj¿†r^htj{†r^htjì†r^jsj¿†r^hŒj†r^jsj¿†r^jXdivr ^†r!^jsj¿†r"^hŒj݆r#^htjÆr$^jsX
  r%^†r&^jXendr'^†r(^htjÆr)^jsj2†r*^jXendr+^†r,^htjÆr-^jsX

r.^†r/^jXfunctionr0^†r1^jsj¿†r2^jtX
IntOfBaseNr3^†r4^j©jm†r5^hŒjø†r6^htj{†r7^jsj¿†r8^jXstringr9^†r:^htjÆr;^jsj¿†r<^hŒj݆r=^htj{†r>^jsj¿†r?^hŒXTBaseNr@^†rA^j©jq†rB^htj{†rC^jsj¿†rD^j-XCardinalrE^†rF^htjÆrG^jsj2†rH^jXvarrI^†rJ^jsX
  rK^†rL^hŒj†rM^htj{†rN^jsj¿†rO^j-XIntegerrP^†rQ^htjÆrR^jsX
  rS^†rT^hŒj†rU^htj{†rV^jsj¿†rW^j-XCardinalrX^†rY^htjÆrZ^jsX
  r[^†r\^hŒj?†r]^htj{†r^^jsj¿†r_^j-XByter`^†ra^htjÆrb^jsj2†rc^jXbeginrd^†re^jsX
  rf^†rg^jJXResultrh^†ri^jsj¿†rj^htj{†rk^htjì†rl^jsj¿†rm^jŸj®†rn^htjÆro^jsX
  rp^†rq^hŒjø†rr^jsj¿†rs^htj{†rt^htjì†ru^jsj¿†rv^hŒXTrimAllrw^†rx^j©jm†ry^hŒjø†rz^j©jq†r{^htjÆr|^jsX
  r}^†r~^hŒj†r^jsj¿†r€^htj{†r^htjì†r‚^jsj¿†rƒ^jŸj5†r„^htjÆr…^jsX
  r†^†r‡^jXforrˆ^†r‰^jsj¿†rŠ^hŒj†r‹^jsj¿†rŒ^htj{†r^htjì†rŽ^jsj¿†r^jEXLengthr^†r‘^j©jm†r’^hŒjø†r“^j©jq†r”^jsj¿†r•^jXdowntor–^†r—^jsj¿†r˜^jŸj5†r™^jsj¿†rš^jXdor›^†rœ^jsj¿†r^jXbeginrž^†rŸ^jsX
    r ^†r¡^hŒj?†r¢^jsj¿†r£^htj{†r¤^htjì†r¥^jsj¿†r¦^j-XByter§^†r¨^j©jm†r©^jEXUpCaserª^†r«^j©jm†r¬^hŒjø†r­^j©j'†r®^hŒj†r¯^j©X]))r°^†r±^htjÆr²^jsX
    r³^†r´^jXcaserµ^†r¶^jsj¿†r·^j-XCharr¸^†r¹^j©jm†rº^hŒj?†r»^j©jq†r¼^jsj¿†r½^jXofr¾^†r¿^jsX
      rÀ^†rÁ^jÁjJ†rÂ^jÁj®†rÃ^jÁjJ†rÄ^htj~†rÅ^htj~†rÆ^jÁjJ†rÇ^jÁj´†rÈ^jÁjJ†rÉ^htj{†rÊ^jsj¿†rË^hŒj?†rÌ^jsj¿†rÍ^htj{†rÎ^htjì†rÏ^jsj¿†rÐ^hŒj?†rÑ^jsj¿†rÒ^htjR†rÓ^jsj¿†rÔ^jŸX48rÕ^†rÖ^htjÆr×^jsX
      rØ^†rÙ^jÁjJ†rÚ^jÁjކrÛ^jÁjJ†rÜ^htj~†rÝ^htj~†rÞ^jÁjJ†rß^jÁj”†rà^jÁjJ†rá^htj{†râ^jsj¿†rã^hŒj?†rä^jsj¿†rå^htj{†ræ^htjì†rç^jsj¿†rè^hŒj?†ré^jsj¿†rê^htjR†rë^jsj¿†rì^jŸX55rí^†rî^htjÆrï^jsX
    rð^†rñ^jXendrò^†ró^htjÆrô^jsX
    rõ^†rö^jXifr÷^†rø^jsj¿†rù^hŒj?†rú^jsj¿†rû^htj†rü^jsj¿†rý^hŒj݆rþ^jsj¿†rÿ^jXthenr_†r_jsX
      r_†r_jJXResultr_†r_jsj¿†r_htj{†r_htjì†r_jsj¿†r	_jJXResultr
_†r_jsj¿†r_htjÆr
_jsj¿†r_j-XByter_†r_j©jm†r_hŒj?†r_j©jq†r_jsj¿†r_htjW†r_jsj¿†r_hŒj†r_htjÆr_jsX
    r_†r_hŒj†r_jsj¿†r_htj{†r_htjì†r_jsj¿†r_hŒj†r _jsj¿†r!_htjW†r"_jsj¿†r#_hŒj݆r$_htjÆr%_jsX
  r&_†r'_jXendr(_†r)_htjÆr*_jsj2†r+_jXendr,_†r-_htjÆr._jsX

r/_†r0_jXfunctionr1_†r2_jsj¿†r3_jtXKeepInr4_†r5_j©jm†r6_hŒj†r7_htjÕ†r8_jsj¿†r9_hŒXBottomr:_†r;_htjÕ†r<_jsj¿†r=_hŒXTopr>_†r?_htj{†r@_jsj¿†rA_j-XVariantrB_†rC_j©jq†rD_htj{†rE_jsj¿†rF_j-XVariantrG_†rH_htjÆrI_jsj2†rJ_jXbeginrK_†rL_jsX
  rM_†rN_jJXResultrO_†rP_jsj¿†rQ_htj{†rR_htjì†rS_jsj¿†rT_hŒj†rU_htjÆrV_jsX
  rW_†rX_jXifrY_†rZ_jsj¿†r[_jJXResultr\_†r]_jsj¿†r^_htj‡†r__jsj¿†r`_hŒXTopra_†rb_jsj¿†rc_jXthenrd_†re_jsX
    rf_†rg_jJXResultrh_†ri_jsj¿†rj_htj{†rk_htjì†rl_jsj¿†rm_hŒXToprn_†ro_jsX
  rp_†rq_jXelserr_†rs_jsj¿†rt_jXifru_†rv_jsj¿†rw_jJXResultrx_†ry_jsj¿†rz_htj†r{_jsj¿†r|_hŒXBottomr}_†r~_jsj¿†r_jXthenr€_†r_jsX
    r‚_†rƒ_jJXResultr„_†r…_jsj¿†r†_htj{†r‡_htjì†rˆ_jsj¿†r‰_hŒXBottomrŠ_†r‹_htjÆrŒ_jsj2†r_jXendrŽ_†r_htjÆr_jsX

r‘_†r’_jXfunctionr“_†r”_jsj¿†r•_jtXInRanger–_†r—_j©jm†r˜_hŒXValuer™_†rš_htjÕ†r›_jsj¿†rœ_hŒXBottomr_†rž_htjÕ†rŸ_jsj¿†r _hŒXTopr¡_†r¢_htj{†r£_jsj¿†r¤_j-XVariantr¥_†r¦_j©jq†r§_htj{†r¨_jsj¿†r©_j-XBooleanrª_†r«_htjÆr¬_jsj2†r­_jXbeginr®_†r¯_jsX
  r°_†r±_jJXResultr²_†r³_jsj¿†r´_htj{†rµ_htjì†r¶_jsj¿†r·_j©jm†r¸_hŒXValuer¹_†rº_jsj¿†r»_htj‡†r¼_htjì†r½_jsj¿†r¾_hŒXBottomr¿_†rÀ_j©jq†rÁ_jsj¿†rÂ_jXandrÃ_†rÄ_jsj¿†rÅ_j©jm†rÆ_hŒXValuerÇ_†rÈ_jsj¿†rÉ_htj†rÊ_htjì†rË_jsj¿†rÌ_hŒXToprÍ_†rÎ_j©jq†rÏ_htjÆrÐ_jsj2†rÑ_jXendrÒ_†rÓ_htjÆrÔ_jsX

rÕ_†rÖ_jXfunctionr×_†rØ_jsj¿†rÙ_jtX
InStrictRangerÚ_†rÛ_j©jm†rÜ_hŒXValuerÝ_†rÞ_htjÕ†rß_jsj¿†rà_hŒXBottomrá_†râ_htjÕ†rã_jsj¿†rä_hŒXToprå_†ræ_htj{†rç_jsj¿†rè_j-XVariantré_†rê_j©jq†rë_htj{†rì_jsj¿†rí_j-XBooleanrî_†rï_htjÆrð_jsj2†rñ_jXbeginrò_†ró_jsX
  rô_†rõ_jJXResultrö_†r÷_jsj¿†rø_htj{†rù_htjì†rú_jsj¿†rû_j©jm†rü_hŒXValuerý_†rþ_jsj¿†rÿ_htj‡†r`jsj¿†r`hŒXBottomr`†r`j©jq†r`jsj¿†r`jXandr`†r`jsj¿†r`j©jm†r	`hŒXValuer
`†r`jsj¿†r`htj†r
`jsj¿†r`hŒXTopr`†r`j©jq†r`htjÆr`jsj2†r`jXendr`†r`htjÆr`jsX

r`†r`jXfunctionr`†r`jsj¿†r`jtXMinr`†r`j©jm†r`jXconstr`†r `jsj¿†r!`hŒjކr"`htjÕ†r#`jsj¿†r$`hŒj݆r%`htj{†r&`jsj¿†r'`j-XIntegerr(`†r)`j©jq†r*`htj{†r+`jsj¿†r,`j-XIntegerr-`†r.`htjÆr/`jsj2†r0`jXbeginr1`†r2`jsX
  r3`†r4`jXifr5`†r6`jsj¿†r7`hŒjކr8`jsj¿†r9`htj†r:`jsj¿†r;`hŒj݆r<`jsj¿†r=`jXthenr>`†r?`jsX
    r@`†rA`jJXResultrB`†rC`jsj¿†rD`htj{†rE`htjì†rF`jsj¿†rG`hŒjކrH`jsX
  rI`†rJ`jXelserK`†rL`jsX
    rM`†rN`jJXResultrO`†rP`jsj¿†rQ`htj{†rR`htjì†rS`jsj¿†rT`hŒj݆rU`htjÆrV`jsj2†rW`jXendrX`†rY`htjÆrZ`jsX

r[`†r\`jXfunctionr]`†r^`jsj¿†r_`jtXMinr``†ra`j©jm†rb`jXconstrc`†rd`jsj¿†re`hŒjކrf`htj{†rg`jsj¿†rh`hŒXTIntAri`†rj`j©jq†rk`htj{†rl`jsj¿†rm`j-XIntegerrn`†ro`htjÆrp`jsj2†rq`jXvarrr`†rs`jsX
  rt`†ru`hŒj†rv`htj{†rw`jsj¿†rx`j-XIntegerry`†rz`htjÆr{`jsj2†r|`jXbeginr}`†r~`jsX
  r`†r€`jJXResultr`†r‚`jsj¿†rƒ`htj{†r„`htjì†r…`jsj¿†r†`jŸj®†r‡`htjÆrˆ`jsX
  r‰`†rŠ`jXifr‹`†rŒ`jsj¿†r`jEXLengthrŽ`†r`j©jm†r`hŒjކr‘`j©jq†r’`jsj¿†r“`htjì†r”`jsj¿†r•`jŸj®†r–`jsj¿†r—`jXthenr˜`†r™`jsX
    rš`†r›`jXExitrœ`†r`htjÆrž`jsX

  rŸ`†r `jJXResultr¡`†r¢`jsj¿†r£`htj{†r¤`htjì†r¥`jsj¿†r¦`hŒjކr§`j©j'†r¨`jŸj®†r©`j©j/†rª`htjÆr«`jsX
  r¬`†r­`jXforr®`†r¯`jsj¿†r°`hŒj†r±`jsj¿†r²`htj{†r³`htjì†r´`jsj¿†rµ`jŸj5†r¶`jsj¿†r·`jXtor¸`†r¹`jsj¿†rº`jEXHighr»`†r¼`j©jm†r½`hŒjކr¾`j©jq†r¿`jsj¿†rÀ`jXdorÁ`†rÂ`jsX
    rÃ`†rÄ`jXifrÅ`†rÆ`jsj¿†rÇ`hŒjކrÈ`j©j'†rÉ`hŒj†rÊ`j©j/†rË`jsj¿†rÌ`htj†rÍ`jsj¿†rÎ`jJXResultrÏ`†rÐ`jsj¿†rÑ`jXthenrÒ`†rÓ`jsX
      rÔ`†rÕ`jJXResultrÖ`†r×`jsj¿†rØ`htj{†rÙ`htjì†rÚ`jsj¿†rÛ`hŒjކrÜ`j©j'†rÝ`hŒj†rÞ`j©j/†rß`htjÆrà`jsj2†rá`jXendrâ`†rã`htjÆrä`jsX

rå`†ræ`jXfunctionrç`†rè`jsj¿†ré`jtXMaxrê`†rë`j©jm†rì`jXconstrí`†rî`jsj¿†rï`hŒjކrð`htjÕ†rñ`jsj¿†rò`hŒj݆ró`htj{†rô`jsj¿†rõ`j-XIntegerrö`†r÷`j©jq†rø`htj{†rù`jsj¿†rú`j-XIntegerrû`†rü`htjÆrý`jsj2†rþ`jXbeginrÿ`†rajsX
  ra†rajXifra†rajsj¿†rahŒjކrajsj¿†rahtj‡†rajsj¿†r	ahŒj݆r
ajsj¿†rajXthenra†r
ajsX
    ra†rajJXResultra†rajsj¿†rahtj{†rahtjì†rajsj¿†rahŒjކrajsX
  ra†rajXelsera†rajsX
    ra†rajJXResultra†rajsj¿†rahtj{†r ahtjì†r!ajsj¿†r"ahŒj݆r#ahtjÆr$ajsj2†r%ajXendr&a†r'ahtjÆr(ajsX

r)a†r*ajXfunctionr+a†r,ajsj¿†r-ajtXMaxr.a†r/aj©jm†r0ajXconstr1a†r2ajsj¿†r3ahŒjކr4ahtj{†r5ajsj¿†r6ahŒXTIntAr7a†r8aj©jq†r9ahtj{†r:ajsj¿†r;aj-XIntegerr<a†r=ahtjÆr>ajsj2†r?ajXvarr@a†rAajsX
  rBa†rCahŒj†rDahtj{†rEajsj¿†rFaj-XIntegerrGa†rHahtjÆrIajsj2†rJajXbeginrKa†rLajsX
  rMa†rNajJXResultrOa†rPajsj¿†rQahtj{†rRahtjì†rSajsj¿†rTajŸj®†rUahtjÆrVajsX
  rWa†rXajXifrYa†rZajsj¿†r[ajEXLengthr\a†r]aj©jm†r^ahŒjކr_aj©jq†r`ajsj¿†raahtjì†rbajsj¿†rcajŸj®†rdajsj¿†reajXthenrfa†rgajsX
    rha†riajXExitrja†rkahtjÆrlajsX

  rma†rnajJXResultroa†rpajsj¿†rqahtj{†rrahtjì†rsajsj¿†rtahŒjކruaj©j'†rvajŸj®†rwaj©j/†rxahtjÆryajsX
  rza†r{ajXforr|a†r}ajsj¿†r~ahŒj†rajsj¿†r€ahtj{†rahtjì†r‚ajsj¿†rƒajŸj5†r„ajsj¿†r…ajXtor†a†r‡ajsj¿†rˆajEXHighr‰a†rŠaj©jm†r‹ahŒjކrŒaj©jq†rajsj¿†rŽajXdora†rajsX
    r‘a†r’ajXifr“a†r”ajsj¿†r•ahŒjކr–aj©j'†r—ahŒj†r˜aj©j/†r™ajsj¿†ršahtj‡†r›ajsj¿†rœajJXResultra†ržajsj¿†rŸajXthenr a†r¡ajsX
      r¢a†r£ajJXResultr¤a†r¥ajsj¿†r¦ahtj{†r§ahtjì†r¨ajsj¿†r©ahŒjކrªaj©j'†r«ahŒj†r¬aj©j/†r­ahtjÆr®ajsj2†r¯ajXendr°a†r±ahtjÆr²ajsX

r³a†r´ajXfunctionrµa†r¶ajsj¿†r·ajtXRangesOfStrr¸a†r¹aj©jm†rºajXconstr»a†r¼ajsj¿†r½ahŒjé†r¾ahtj{†r¿ajsj¿†rÀajXstringrÁa†rÂaj©jq†rÃahtj{†rÄajsj¿†rÅahŒXTRangesrÆa†rÇae(htjÆrÈajsj2†rÉajXvarrÊa†rËajsX
  rÌa†rÍahŒXSLrÎa†rÏahtj{†rÐajsj¿†rÑahŒXTStringListrÒa†rÓahtjÆrÔajsX
  rÕa†rÖahŒjŽH†r×ahtjÕ†rØajsj¿†rÙahŒj:†rÚahtjÕ†rÛajsj¿†rÜahŒXtrÝa†rÞahtj{†rßajsj¿†ràajXstringráa†râahtjÆrãajsX
  räa†råahŒj†ræahtjÕ†rçajsj¿†rèahŒj÷'†réahtj{†rêajsj¿†rëaj-XIntegerrìa†ríahtjÆrîajsX

  rïa†rðajXfunctionrña†ròajsj¿†róajtXTryStrToCardrôa†rõaj©jm†röajXconstr÷a†røajsj¿†rùahŒjé†rúahtj{†rûajsj¿†rüajXstringrýa†rþahtjÆrÿajsj¿†rbhŒXoutrb†rbjsj¿†rbhŒXValuerb†rbhtj{†rbjsj¿†rbj-XCardinalrb†r	bj©jq†r
bhtj{†rbjsj¿†rbj-XBooleanr
b†rbhtjÆrbjsX
  rb†rbjXvarrb†rbjsX
    rb†rbhŒjì†rbhtj{†rbjsj¿†rbj-XIntegerrb†rbhtjÆrbjsX
  rb†rbjXbeginrb†rbjsX
    r b†r!bjEXValr"b†r#bj©jm†r$bhŒjé†r%bhtjÕ†r&bjsj¿†r'bhŒXValuer(b†r)bhtjÕ†r*bjsj¿†r+bhŒjì†r,bj©jq†r-bhtjÆr.bjsX
    r/b†r0bjJXResultr1b†r2bjsj¿†r3bhtj{†r4bhtjì†r5bjsj¿†r6bhŒjì†r7bjsj¿†r8bhtjì†r9bjsj¿†r:bjŸj®†r;bhtjÆr<bjsX
  r=b†r>bjXendr?b†r@bhtjÆrAbjsX

rBb†rCbjXbeginrDb†rEbjsX
  rFb†rGbjJXResultrHb†rIbjsj¿†rJbhtj{†rKbhtjì†rLbjsj¿†rMbjXnilrNb†rObhtjÆrPbjsX
  rQb†rRbhŒXSLrSb†rTbjsj¿†rUbhtj{†rVbhtjì†rWbjsj¿†rXbhŒXTStringListrYb†rZbhtj~†r[bhŒXCreater\b†r]bhtjÆr^bjsX
  r_b†r`bjXtryrab†rbbjsX
    rcb†rdbhŒXSplitreb†rfbj©jm†rgbhŒjé†rhbhtjÕ†ribjsj¿†rjbhŒXRangesSeparatorrkb†rlbhtjÕ†rmbjsj¿†rnbhŒXSLrob†rpbj©jq†rqbhtjÆrrbjsX
    rsb†rtbjEX	SetLengthrub†rvbj©jm†rwbjJXResultrxb†rybhtjÕ†rzbjsj¿†r{bhŒXSLr|b†r}bhtj~†r~bhŒXCountrb†r€bj©jq†rbhtjÆr‚bjsX
    rƒb†r„bjXforr…b†r†bjsj¿†r‡bhŒj†rˆbjsj¿†r‰bhtj{†rŠbhtjì†r‹bjsj¿†rŒbjŸj®†rbjsj¿†rŽbjXtorb†rbjsj¿†r‘bhŒXSLr’b†r“bhtj~†r”bhŒXCountr•b†r–bhtjR†r—bjŸj5†r˜bjsj¿†r™bjXdoršb†r›bjsj¿†rœbjXbeginrb†ržbjsX
      rŸb†r bhŒjŽH†r¡bjsj¿†r¢bhtj{†r£bhtjì†r¤bjsj¿†r¥bhŒXSLr¦b†r§bj©j'†r¨bhŒj†r©bj©j/†rªbhtjÆr«bjsX
      r¬b†r­bjXwithr®b†r¯bjsj¿†r°bjJXResultr±b†r²bj©j'†r³bhŒj†r´bj©j/†rµbjsj¿†r¶bjXdor·b†r¸bjsj¿†r¹bjXbeginrºb†r»bjsX	
        r¼b†r½bhŒj÷'†r¾bjsj¿†r¿bhtj{†rÀbhtjì†rÁbjsj¿†rÂbhŒXCharPosrÃb†rÄbj©jm†rÅbhŒXRangeInnerSeparatorrÆb†rÇbhtjÕ†rÈbjsj¿†rÉbhŒjŽH†rÊbj©jq†rËbhtjÆrÌbjsX	
        rÍb†rÎbhŒXSimplerÏb†rÐbjsj¿†rÑbhtj{†rÒbhtjì†rÓbjsj¿†rÔbhŒj÷'†rÕbjsj¿†rÖbhtjì†r×bjsj¿†rØbjŸj®†rÙbhtjÆrÚbjsj¿†rÛbhX// no '-' foundrÜb†rÝbjsX	
        rÞb†rßbjXifràb†rábjsj¿†râbhŒXSimplerãb†räbjsj¿†råbjXthenræb†rçbjsj¿†rèbjXbeginréb†rêbjsX
          rëb†rìbjXifríb†rîbjsj¿†rïbhŒjŽH†rðbjsj¿†rñbhtjì†ròbjsj¿†róbhŒX
RangeInfiniterôb†rõbjsj¿†röbjXthenr÷b†røbjsj¿†rùbjXbeginrúb†rûbjsj¿†rübhX// * --> *-*rýb†rþbjsX

            rÿb†rchŒXSimplerc†rcjsj¿†rchtj{†rchtjì†rcjsj¿†rcjXFalserc†rchtjÆr	cjsX

            r
c†rchŒXBottomrc†r
cjsj¿†rchtj{†rchtjì†rcjsj¿†rcjEXLowrc†rcj©jm†rchŒXBottomrc†rcj©jq†rchtjÆrcjsX

            rc†rchŒXToprc†rcjsj¿†rchtj{†rchtjì†rcjsj¿†r cjEXHighr!c†r"cj©jm†r#chŒXTopr$c†r%cj©jq†r&chtjÆr'cjsX
          r(c†r)cjXendr*c†r+cjsj¿†r,cjXelser-c†r.cjsj¿†r/cjXifr0c†r1cjsj¿†r2cjXnotr3c†r4cjsj¿†r5chŒXTryStrToCardr6c†r7cj©jm†r8chŒjŽH†r9chtjÕ†r:cjsj¿†r;chŒXValuer<c†r=cj©jq†r>cjsj¿†r?cjXthenr@c†rAcjsX

            rBc†rCcjXBreakrDc†rEchtjÆrFcjsX


        rGc†rHcjXendrIc†rJcjsj¿†rKcjXelserLc†rMcjsj¿†rNcjXbeginrOc†rPcjsX
          rQc†rRchŒXTileStrrSc†rTcj©jm†rUchŒjŽH†rVchtjÕ†rWcjsj¿†rXchŒj÷'†rYchtjÕ†rZcjsj¿†r[chŒj÷'†r\chtjÕ†r]cjsj¿†r^chŒj:†r_chtjÕ†r`cjsj¿†rachŒjÝa†rbcj©jq†rcchtjÆrdcjsX

          rec†rfcjXifrgc†rhcjsj¿†richŒj:†rjcjsj¿†rkchtjì†rlcjsj¿†rmchŒX
RangeInfiniternc†rocjsj¿†rpcjXthenrqc†rrcjsX

            rsc†rtchŒXBottomruc†rvcjsj¿†rwchtj{†rxchtjì†rycjsj¿†rzcjEXLowr{c†r|cj©jm†r}chŒXBottomr~c†rcj©jq†r€cjsX
          rc†r‚cjXelserƒc†r„cjsj¿†r…cjXifr†c†r‡cjsj¿†rˆcjXnotr‰c†rŠcjsj¿†r‹chŒXTryStrToCardrŒc†rcj©jm†rŽchŒj:†rchtjÕ†rcjsj¿†r‘chŒXBottomr’c†r“cj©jq†r”cjsj¿†r•cjXthenr–c†r—cjsX

            r˜c†r™cjXBreakršc†r›chtjÆrœcjsX

          rc†ržcjXifrŸc†r cjsj¿†r¡chŒjÝa†r¢cjsj¿†r£chtjì†r¤cjsj¿†r¥chŒX
RangeInfiniter¦c†r§cjsj¿†r¨cjXthenr©c†rªcjsX

            r«c†r¬chŒXTopr­c†r®cjsj¿†r¯chtj{†r°chtjì†r±cjsj¿†r²cjEXHighr³c†r´cj©jm†rµchŒXTopr¶c†r·cj©jq†r¸cjsX
          r¹c†rºcjXelser»c†r¼cjsj¿†r½cjXifr¾c†r¿cjsj¿†rÀcjXnotrÁc†rÂcjsj¿†rÃchŒXTryStrToCardrÄc†rÅcj©jm†rÆchŒjÝa†rÇchtjÕ†rÈcjsj¿†rÉchŒXToprÊc†rËcj©jq†rÌcjsj¿†rÍcjXthenrÎc†rÏcjsX

            rÐc†rÑcjXBreakrÒc†rÓchtjÆrÔcjsX
          rÕc†rÖcjXifr×c†rØcjsj¿†rÙchŒXBottomrÚc†rÛcjsj¿†rÜchtj‡†rÝcjsj¿†rÞchŒXToprßc†ràcjsj¿†rácjXthenrâc†rãcjsj¿†räcjXbeginråc†ræcjsX

            rçc†rèchŒj÷'†récjsj¿†rêchtj{†rëchtjì†rìcjsj¿†ríchŒXBottomrîc†rïchtjÆrðcjsj¿†rñchŒXBottomròc†rócjsj¿†rôchtj{†rõchtjì†röcjsj¿†r÷chŒXToprøc†rùchtjÆrúcjsj¿†rûchŒXToprüc†rýcjsj¿†rþchtj{†rÿchtjì†rdjsj¿†rdhŒj÷'†rdhtjÆrdjsX
          rd†rdjXendrd†rdhtjÆrdjsX	
        r	d†r
djXendrd†rdhtjÆr
djsX
      rd†rdjXendrd†rdhtjÆrdjsX
    rd†rdjXendrd†rdhtjÆrdjsX

    rd†rdjXifrd†rdjsj¿†rdhŒj†rdjsj¿†rdhtj†rdhtj‡†r djsj¿†r!dhŒXSLr"d†r#dhtj~†r$dhŒXCountr%d†r&djsj¿†r'djXthenr(d†r)djsX
      r*d†r+djJXResultr,d†r-djsj¿†r.dhtj{†r/dhtjì†r0djsj¿†r1djXnilr2d†r3dhtjÆr4djsX

  r5d†r6djXfinallyr7d†r8djsX
    r9d†r:dhŒXSLr;d†r<dhtj~†r=dhŒXFreer>d†r?dhtjÆr@djsX
  rAd†rBdjXendrCd†rDdhtjÆrEdjsj2†rFdjXendrGd†rHdhtjÆrIdjsX

rJd†rKdjXfunctionrLd†rMdjsj¿†rNdjtXInRangesrOd†rPdj©jm†rQdhŒXRangesrRd†rSdhtj{†rTdjsj¿†rUdhŒXTRangesrVd†rWdhtjÆrXdjsj¿†rYdhŒX	TestValuerZd†r[dhtj{†r\djsj¿†r]dj-XCardinalr^d†r_dj©jq†r`dhtj{†radjsj¿†rbdj-XBooleanrcd†rddhtjÆredjsj2†rfdjXvarrgd†rhdjsX
  rid†rjdhŒj†rkdhtj{†rldjsj¿†rmdj-XIntegerrnd†rodhtjÆrpdjsj2†rqdjXbeginrrd†rsdjsX
  rtd†rudjJXResultrvd†rwdjsj¿†rxdhtj{†rydhtjì†rzdjsj¿†r{djXTruer|d†r}dhtjÆr~djsX

  rd†r€djXforrd†r‚djsj¿†rƒdhŒj†r„djsj¿†r…dhtj{†r†dhtjì†r‡djsj¿†rˆdjŸj®†r‰djsj¿†rŠdjXtor‹d†rŒdjsj¿†rdjEXHighrŽd†rdj©jm†rdhŒXRangesr‘d†r’dj©jq†r“djsj¿†r”djXdor•d†r–djsX
    r—d†r˜djXwithr™d†ršdjsj¿†r›dhŒXRangesrœd†rdj©j'†rždhŒj†rŸdj©j/†r djsj¿†r¡djXdor¢d†r£djsX
      r¤d†r¥djXifr¦d†r§djsj¿†r¨dhŒXSimpler©d†rªdjsj¿†r«djXthenr¬d†r­djsj¿†r®djXbeginr¯d†r°djsX	
        r±d†r²djXifr³d†r´djsj¿†rµdhŒX	TestValuer¶d†r·djsj¿†r¸dhtjì†r¹djsj¿†rºdhŒXValuer»d†r¼djsj¿†r½djXthenr¾d†r¿djsX
          rÀd†rÁdjXExitrÂd†rÃdhtjÆrÄdjsX
      rÅd†rÆdjXendrÇd†rÈdjsj¿†rÉdjXelserÊd†rËdjsj¿†rÌdjXbeginrÍd†rÎdjsX	
        rÏd†rÐdjXifrÑd†rÒdjsj¿†rÓdjEXInRangerÔd†rÕdj©jm†rÖdhŒX	TestValuer×d†rØdhtjÕ†rÙdjsj¿†rÚdhŒXBottomrÛd†rÜdhtjÕ†rÝdjsj¿†rÞdhŒXToprßd†ràdj©jq†rádjsj¿†râdjXthenrãd†rädjsX
          råd†rædjXExitrçd†rèdhtjÆrédjsX
      rêd†rëdjXendrìd†rídhtjÆrîdjsX

  rïd†rðdjJXResultrñd†ròdjsj¿†ródhtj{†rôdhtjì†rõdjsj¿†rödjXFalser÷d†rødhtjÆrùdjsj2†rúdjXendrûd†rüdhtjÆrýdjsX

rþd†rÿdjX	procedurere†rejsj¿†rejtXWriteSLre†rej©jm†rehŒXStringsre†rehtj{†rejsj¿†r	ehŒXTStringsr
e†rehtjÆrejsj¿†r
ejXconstre†rejsj¿†rehŒXPrefixre†rehtj{†rejsj¿†rejXstringre†rejsj¿†rehtjì†rejsj¿†rejÁjJ†rejÁjJ†rehtjÆrejsX
  re†rejXconstre†r ejsj¿†r!ehŒXSuffixr"e†r#ehtj{†r$ejsj¿†r%ejXstringr&e†r'ejsj¿†r(ehtjì†r)ejsj¿†r*ejÁjJ†r+ejÁjJ†r,ej©jq†r-ehtjÆr.ejsj2†r/ejXvarr0e†r1ejsX
  r2e†r3ehŒj†r4ehtj{†r5ejsj¿†r6ej-XIntegerr7e†r8ehtjÆr9ejsj2†r:ejXbeginr;e†r<ejsX
  r=e†r>ejXforr?e†r@ejsj¿†rAehŒj†rBejsj¿†rCehtj{†rDehtjì†rEejsj¿†rFejŸj®†rGejsj¿†rHejXtorIe†rJejsj¿†rKehŒXStringsrLe†rMehtj~†rNehŒXCountrOe†rPehtjR†rQejŸj5†rRejsj¿†rSejXdorTe†rUejsX
    rVe†rWejEXWriteLnrXe†rYej©jm†rZehŒXPrefixr[e†r\ejsj¿†r]ehtjÆr^ejsj¿†r_ehŒXStringsr`e†raej©j'†rbehŒj†rcej©j/†rdejsj¿†reehtjÆrfejsj¿†rgehŒXSuffixrhe†riej©jq†rjehtjÆrkejsj2†rlejXendrme†rnehtjÆroejsX

rpe†rqejXfunctionrre†rsejsj¿†rtejtXSuccessrue†rvej©jm†rwehŒXResrxe†ryehtj{†rzejsj¿†r{ej-XIntegerr|e†r}ehtjÆr~ejsj¿†rehŒXResultOnSuccessr€e†rehtj{†r‚ejsj¿†rƒej-XIntegerr„e†r…ejsj¿†r†ehtjì†r‡ejsj¿†rˆehŒX
ERROR_SUCCESSr‰e†rŠej©jq†r‹ehtj{†rŒejsj¿†rej-XBooleanrŽe†rehtjÆrejsj2†r‘ejXbeginr’e†r“ejsX
  r”e†r•ejJXResultr–e†r—ejsj¿†r˜ehtj{†r™ehtjì†ršejsj¿†r›ej©jm†rœehŒXResre†ržejsj¿†rŸehtjì†r ejsj¿†r¡ehŒXResultOnSuccessr¢e†r£ej©jq†r¤ehtjÆr¥ejsX
  r¦e†r§ehŒXLastSuccessResr¨e†r©ejsj¿†rªehtj{†r«ehtjì†r¬ejsj¿†r­ehŒXResr®e†r¯ehtjÆr°ejsj2†r±ejXendr²e†r³ehtjÆr´ejsX

rµe†r¶ejXfunctionr·e†r¸ejsj¿†r¹ejtXFailurerºe†r»ej©jm†r¼ehŒXResr½e†r¾ehtj{†r¿ejsj¿†rÀej-XIntegerrÁe†rÂehtjÆrÃejsj¿†rÄehŒXResultOnSuccessrÅe†rÆehtj{†rÇejsj¿†rÈej-XIntegerrÉe†rÊejsj¿†rËehtjì†rÌejsj¿†rÍehŒX
ERROR_SUCCESSrÎe†rÏej©jq†rÐehtj{†rÑejsj¿†rÒej-XBooleanrÓe†rÔehtjÆrÕejsj2†rÖejXbeginr×e†rØejsX
  rÙe†rÚejJXResultrÛe†rÜejsj¿†rÝehtj{†rÞehtjì†rßejsj¿†ràejXnotráe†râejsj¿†rãehŒXSuccessräe†råej©jm†ræehŒXResrçe†rèehtjÕ†réejsj¿†rêehŒXResultOnSuccessrëe†rìej©jq†ríehtjÆrîejsj2†rïejXendrðe†rñehtjÆròejsX

róe†rôejXfunctionrõe†röejsj¿†r÷ejtXExpandStringrøe†rùej©jm†rúejXconstrûe†rüejsj¿†rýehŒjé†rþehtj{†rÿejsj¿†rfjXstringrf†rfj©jq†rfhtj{†rfjsj¿†rfjXstringrf†rfhtjÆrfjsj2†r	fjXvarr
f†rfjsX
  rf†r
fhŒXLenrf†rfhtj{†rfjsj¿†rfj-XIntegerrf†rfhtjÆrfjsX
  rf†rfhŒjÚ†rfhtjÕ†rfjsj¿†rfhŒXResrf†rfhtj{†rfjsj¿†rfj-XPCharrf†rfhtjÆr fjsj2†r!fjXbeginr"f†r#fjsX
  r$f†r%fjJXResultr&f†r'fjsj¿†r(fhtj{†r)fhtjì†r*fjsj¿†r+fjÁjJ†r,fjÁjJ†r-fhtjÆr.fjsX
  r/f†r0fhŒjÚ†r1fjsj¿†r2fhtj{†r3fhtjì†r4fjsj¿†r5fj-XPCharr6f†r7fj©jm†r8fhŒjé†r9fj©jq†r:fhtjÆr;fjsX
  r<f†r=fhŒXLenr>f†r?fjsj¿†r@fhtj{†rAfhtjì†rBfjsj¿†rCfhŒXExpandEnvironmentStringsrDf†rEfj©jm†rFfhŒjÚ†rGfhtjÕ†rHfjsj¿†rIfjXnilrJf†rKfhtjÕ†rLfjsj¿†rMfjŸj®†rNfj©jq†rOfhtjÆrPfjsX
  rQf†rRfjXifrSf†rTfjsj¿†rUfhŒXLenrVf†rWfjsj¿†rXfhtjì†rYfjsj¿†rZfjŸj®†r[fjsj¿†r\fjXthenr]f†r^fjsX
    r_f†r`fjXExitraf†rbfhtjÆrcfjsX

  rdf†refjEXGetMemrff†rgfj©jm†rhfhŒXResrif†rjfhtjÕ†rkfjsj¿†rlfhŒXLenrmf†rnfj©jq†rofhtjÆrpfjsX
  rqf†rrfhŒXExpandEnvironmentStringsrsf†rtfj©jm†rufhŒjÚ†rvfhtjÕ†rwfjsj¿†rxfhŒXResryf†rzfhtjÕ†r{fjsj¿†r|fhŒXLenr}f†r~fj©jq†rfhtjÆr€fjsX

  rf†r‚fjJXResultrƒf†r„fjsj¿†r…fhtj{†r†fhtjì†r‡fjsj¿†rˆfhŒXResr‰f†rŠfhtjÆr‹fjsX
  rŒf†rfjEXFreeMemrŽf†rfj©jm†rfhŒXResr‘f†r’fhtjÕ†r“fjsj¿†r”fhŒXLenr•f†r–fj©jq†r—fhtjÆr˜fjsj2†r™fjXendršf†r›fhtjÆrœfjsX

rf†ržfjXfunctionrŸf†r fjsj¿†r¡fjtXFindAllr¢f†r£fj©jm†r¤fhŒXStringsr¥f†r¦fhtj{†r§fjsj¿†r¨fhŒXTStringsr©f†rªfhtjÆr«fjsj¿†r¬fjXconstr­f†r®fjsj¿†r¯fhŒXMaskr°f†r±fhtj{†r²fjsj¿†r³fjXstringr´f†rµfhtjÆr¶fjsX
  r·f†r¸fhŒXScanSubDirsr¹f†rºfhtj{†r»fjsj¿†r¼fj-XBooleanr½f†r¾fjsj¿†r¿fhtjì†rÀfjsj¿†rÁfjXTruerÂf†rÃfhtjÆrÄfjsj¿†rÅfhŒX
AttributesrÆf†rÇfhtj{†rÈfjsj¿†rÉfj-XIntegerrÊf†rËfjsj¿†rÌfhtjì†rÍfjsj¿†rÎfhŒXfaFindEveryFilerÏf†rÐfhtjÆrÑfjsX
  rÒf†rÓfhŒX
FileReturnrÔf†rÕfhtj{†rÖfjsj¿†r×fhŒX
TFileNameFuncrØf†rÙfjsj¿†rÚfhtjì†rÛfjsj¿†rÜfjXnilrÝf†rÞfj©jq†rßfhtj{†ràfjsj¿†ráfj-XBooleanrâf†rãfhtjÆräfjsj2†råfjXvarræf†rçfjsX
  rèf†réfhŒXPathrêf†rëfhtjÕ†rìfjsj¿†rífhŒXFileNamerîf†rïfhtj{†rðfjsj¿†rñfjXstringròf†rófhtjÆrôfjsX

  rõf†röfjX	procedurer÷f†røfjsj¿†rùfjtXScanDirrúf†rûfj©jm†rüfjXconstrýf†rþfjsj¿†rÿfhŒXPathrg†rghtjÕ†rgjsj¿†rghŒXFileNamerg†rghtj{†rgjsj¿†rgjXstringrg†r	gj©jq†r
ghtjÆrgjsX
  rg†r
gjXvarrg†rgjsX
    rg†rghŒXPSRrg†rghtj{†rgjsj¿†rghŒX
TSearchRecrg†rghtjÆrgjsX
    rg†rghŒXResrg†rghtj{†rgjsj¿†rgj-XIntegerrg†r ghtjÆr!gjsX

    r"g†r#gjX	procedurer$g†r%gjsj¿†r&gjtXAddr'g†r(gj©jm†r)gjXconstr*g†r+gjsj¿†r,ghŒjé†r-ghtj{†r.gjsj¿†r/gjXstringr0g†r1ge(j©jq†r2ghtjÆr3gjsX
    r4g†r5gjXbeginr6g†r7gjsX
      r8g†r9gjXifr:g†r;gjsj¿†r<ghŒjé†r=gjsj¿†r>ghtj†r?ghtj‡†r@gjsj¿†rAgjÁjJ†rBgjÁjJ†rCgjsj¿†rDgjXthenrEg†rFgjsX	
        rGg†rHghŒXStringsrIg†rJghtj~†rKghŒXAddrLg†rMgj©jm†rNghŒjé†rOgj©jq†rPghtjÆrQgjsX
    rRg†rSgjXendrTg†rUghtjÆrVgjsX

  rWg†rXgjXbeginrYg†rZgjsX
    r[g†r\ghŒXResr]g†r^gjsj¿†r_ghtj{†r`ghtjì†ragjsj¿†rbgjEX	FindFirstrcg†rdgj©jm†reghŒXPathrfg†rggjsj¿†rhghtjÆrigjsj¿†rjghŒXFileNamerkg†rlghtjÕ†rmgjsj¿†rnghŒX
Attributesrog†rpghtjÕ†rqgjsj¿†rrghŒXPSRrsg†rtgj©jq†rughtjÆrvgjsX
    rwg†rxgjXwhileryg†rzgjsj¿†r{ghŒXSuccessr|g†r}gj©jm†r~ghŒXResrg†r€ghtjÕ†rgjsj¿†r‚gjŸj®†rƒgj©jq†r„gjsj¿†r…gjXdor†g†r‡gjsj¿†rˆgjXbeginr‰g†rŠgjsX
      r‹g†rŒgjXifrg†rŽgjsj¿†rgjEXAssignedrg†r‘gj©jm†r’ghŒX
FileReturnr“g†r”gj©jq†r•gjsj¿†r–gjXthenr—g†r˜gjsX	
        r™g†ršghŒXAddr›g†rœgj©jm†rghŒX
FileReturnržg†rŸgj©jm†r ghŒXPathr¡g†r¢gjsj¿†r£ghtjÆr¤gjsj¿†r¥ghŒXPSRr¦g†r§ghtj~†r¨ghŒXNamer©g†rªgj©X))r«g†r¬gjsX
      r­g†r®gjXelser¯g†r°gjsX	
        r±g†r²ghŒXAddr³g†r´gj©jm†rµghŒXPathr¶g†r·gjsj¿†r¸ghtjÆr¹gjsj¿†rºghŒXPSRr»g†r¼ghtj~†r½ghŒXNamer¾g†r¿gj©jq†rÀghtjÆrÁgjsX
      rÂg†rÃghŒXResrÄg†rÅgjsj¿†rÆghtj{†rÇghtjì†rÈgjsj¿†rÉgjEXFindNextrÊg†rËgj©jm†rÌghŒXPSRrÍg†rÎgj©jq†rÏghtjÆrÐgjsX
    rÑg†rÒgjXendrÓg†rÔghtjÆrÕgjsX
    rÖg†r×gjEX	FindCloserØg†rÙgj©jm†rÚghŒXPSRrÛg†rÜgj©jq†rÝghtjÆrÞgjsX
    rßg†ràgjXifrág†râgjsj¿†rãgjXnoträg†rågjsj¿†ræghŒXScanSubDirsrçg†règjsj¿†régjXthenrêg†rëgjsX
      rìg†rígjXExitrîg†rïghtjÆrðgjsX

    rñg†ròghŒXResróg†rôgjsj¿†rõghtj{†röghtjì†r÷gjsj¿†røgjEX	FindFirstrùg†rúgj©jm†rûghŒXPathrüg†rýgjsj¿†rþghtjÆrÿgjsj¿†rhjÁjJ†rhjÁjW†rhjÁjJ†rhhtjÕ†rhjsj¿†rhhŒXfaDirectoryrh†rhhtjÕ†rhjsj¿†r	hhŒXPSRr
h†rhj©jq†rhhtjÆr
hjsX
    rh†rhjXwhilerh†rhjsj¿†rhhŒXSuccessrh†rhj©jm†rhhŒXResrh†rhhtjÕ†rhjsj¿†rhjŸj®†rhj©jq†rhjsj¿†rhjXdorh†rhjsj¿†rhjXbeginr h†r!hjsX
      r"h†r#hjXifr$h†r%hjsj¿†r&hj©jm†r'hhŒXPSRr(h†r)hhtj~†r*hhŒXAttrr+h†r,hjsj¿†r-hjXandr.h†r/hjsj¿†r0hhŒXfaDirectoryr1h†r2hjsj¿†r3hhtj‡†r4hjsj¿†r5hjŸj®†r6hj©jq†r7hjsX
       r8h†r9hjXandr:h†r;hjsj¿†r<hj©jm†r=hhŒXPSRr>h†r?hhtj~†r@hhŒXNamerAh†rBhjsj¿†rChhtj†rDhhtj‡†rEhjsj¿†rFhjÁjJ†rGhjÁj~†rHhjÁjJ†rIhj©jq†rJhjsj¿†rKhjXandrLh†rMhjsj¿†rNhj©jm†rOhhŒXPSRrPh†rQhhtj~†rRhhŒXNamerSh†rThjsj¿†rUhhtj†rVhhtj‡†rWhjsj¿†rXhjÁjJ†rYhjÁX..rZh†r[hjÁjJ†r\hj©jq†r]hjsj¿†r^hjXthenr_h†r`hjsX	
        rah†rbhhŒXScanDirrch†rdhj©jm†rehhŒXPathrfh†rghjsj¿†rhhhtjÆrihjsj¿†rjhhŒXPSRrkh†rlhhtj~†rmhhŒXNamernh†rohjsj¿†rphhtjÆrqhjsj¿†rrhjÁjJ†rshjÁjp†rthjÁjJ†ruhhtjÕ†rvhjsj¿†rwhhŒXFileNamerxh†ryhj©jq†rzhhtjÆr{hjsX
      r|h†r}hhŒXResr~h†rhjsj¿†r€hhtj{†rhhtjì†r‚hjsj¿†rƒhjEXFindNextr„h†r…hj©jm†r†hhŒXPSRr‡h†rˆhj©jq†r‰hhtjÆrŠhjsX
    r‹h†rŒhjXendrh†rŽhhtjÆrhjsX
    rh†r‘hjEX	FindCloser’h†r“hj©jm†r”hhŒXPSRr•h†r–hj©jq†r—hhtjÆr˜hjsX
  r™h†ršhjXendr›h†rœhhtjÆrhjsX

ržh†rŸhjXbeginr h†r¡hjsX
  r¢h†r£hhŒXStringsr¤h†r¥hhtj~†r¦hhŒXClearr§h†r¨hhtjÆr©hjsX
  rªh†r«hhŒXPathr¬h†r­hjsj¿†r®hhtj{†r¯hhtjì†r°hjsj¿†r±hhŒXExtractPathr²h†r³hj©jm†r´hhŒXMaskrµh†r¶hj©jq†r·hhtjÆr¸hjsX
  r¹h†rºhhŒXFileNamer»h†r¼hjsj¿†r½hhtj{†r¾hhtjì†r¿hjsj¿†rÀhjEXExtractFileNamerÁh†rÂhj©jm†rÃhhŒXMaskrÄh†rÅhj©jq†rÆhhtjÆrÇhjsX
  rÈh†rÉhhŒXScanDirrÊh†rËhj©jm†rÌhhŒXPathrÍh†rÎhhtjÕ†rÏhjsj¿†rÐhhŒXFileNamerÑh†rÒhj©jq†rÓhhtjÆrÔhjsX
  rÕh†rÖhjJXResultr×h†rØhjsj¿†rÙhhtj{†rÚhhtjì†rÛhjsj¿†rÜhhŒXStringsrÝh†rÞhhtj~†rßhhŒXCountràh†ráhjsj¿†râhhtj‡†rãhjsj¿†rähjŸj®†råhhtjÆræhjsj2†rçhjXendrèh†réhhtjÆrêhjsX

rëh†rìhjXfunctionríh†rîhjsj¿†rïhjtXFindAllFirstrðh†rñhj©jm†ròhjXconstróh†rôhjsj¿†rõhhŒXMaskröh†r÷hhtj{†røhjsj¿†rùhjXstringrúh†rûhhtjÆrühjsj¿†rýhhŒXScanSubDirsrþh†rÿhhtj{†rijsj¿†rij-XBooleanri†rijsj¿†rihtjì†rijsj¿†rijXTrueri†rihtjÆr	ijsX
  r
i†rihŒX
Attributesri†r
ihtj{†rijsj¿†rij-XIntegerri†rijsj¿†rihtjì†rijsj¿†rihŒXfaFindEveryFileri†rij©jq†rihtj{†rijsj¿†rijXstringri†rihtjÆrijsj2†rijXvarri†rijsX
  r i†r!ihŒXPathr"i†r#ihtjÕ†r$ijsj¿†r%ihŒXFileNamer&i†r'ihtj{†r(ijsj¿†r)ijXstringr*i†r+ihtjÆr,ijsX

  r-i†r.ijXfunctionr/i†r0ijsj¿†r1ijtXScanDirr2i†r3ij©jm†r4ijXconstr5i†r6ijsj¿†r7ihŒXPathr8i†r9ihtjÕ†r:ijsj¿†r;ihŒXFileNamer<i†r=ihtj{†r>ijsj¿†r?ijXstringr@i†rAij©jq†rBihtj{†rCijsj¿†rDij-XBooleanrEi†rFihtjÆrGijsX
  rHi†rIijXvarrJi†rKijsX
    rLi†rMihŒXPSRrNi†rOihtj{†rPijsj¿†rQihŒX
TSearchRecrRi†rSihtjÆrTijsX
    rUi†rVihŒXResrWi†rXihtj{†rYijsj¿†rZij-XIntegerr[i†r\ihtjÆr]ijsX
  r^i†r_ijXbeginr`i†raijsX
    rbi†rcijJXResultrdi†reijsj¿†rfihtj{†rgihtjì†rhijsj¿†riijXFalserji†rkihtjÆrlijsX
    rmi†rnijXifroi†rpijsj¿†rqihŒXSuccessrri†rsij©jm†rtijEX	FindFirstrui†rvij©jm†rwihŒXPathrxi†ryijsj¿†rzihtjÆr{ijsj¿†r|ihŒXFileNamer}i†r~ihtjÕ†rijsj¿†r€ihŒX
Attributesri†r‚ihtjÕ†rƒijsj¿†r„ihŒXPSRr…i†r†ij©jq†r‡ihtjÕ†rˆijsj¿†r‰ijŸj®†rŠij©jq†r‹ijsj¿†rŒijXthenri†rŽijsj¿†rijXbeginri†r‘ijsX
      r’i†r“ihŒXFindAllFirstr”i†r•ijsj¿†r–ihtj{†r—ihtjì†r˜ijsj¿†r™ihŒXPathrši†r›ijsj¿†rœihtjÆrijsj¿†ržihŒXPSRrŸi†r ihtj~†r¡ihŒXNamer¢i†r£ihtjÆr¤ijsX
      r¥i†r¦ijJXResultr§i†r¨ijsj¿†r©ihtj{†rªihtjì†r«ijsj¿†r¬ijXTruer­i†r®ihtjÆr¯ijsX
      r°i†r±ijEX	FindCloser²i†r³ij©jm†r´ihŒXPSRrµi†r¶ij©jq†r·ihtjÆr¸ijsX
    r¹i†rºijXExitr»i†r¼ihtjÆr½ijsj¿†r¾ijXendr¿i†rÀihtjÆrÁijsX
    rÂi†rÃijXifrÄi†rÅijsj¿†rÆijXnotrÇi†rÈijsj¿†rÉihŒXScanSubDirsrÊi†rËijsj¿†rÌijXthenrÍi†rÎijsX
      rÏi†rÐijXExitrÑi†rÒihtjÆrÓijsX

    rÔi†rÕihŒXResrÖi†r×ijsj¿†rØihtj{†rÙihtjì†rÚijsj¿†rÛijEX	FindFirstrÜi†rÝij©jm†rÞihŒXPathrßi†ràijsj¿†ráihtjÆrâijsj¿†rãijÁjJ†räijÁjW†råijÁjJ†ræihtjÕ†rçijsj¿†rèihŒXfaDirectoryréi†rêihtjÕ†rëijsj¿†rìihŒXPSRríi†rîij©jq†rïihtjÆrðijsX
    rñi†ròijXwhilerói†rôijsj¿†rõijXnotröi†r÷ijsj¿†røijJXResultrùi†rúijsj¿†rûijXandrüi†rýijsj¿†rþihŒXSuccessrÿi†rjj©jm†rjhŒXResrj†rjhtjÕ†rjjsj¿†rjjŸj®†rjj©jq†rjjsj¿†rjjXdor	j†r
jjsj¿†rjjXbeginrj†r
jjsX
      rj†rjjXifrj†rjjsj¿†rjj©jm†rjhŒXPSRrj†rjhtj~†rjhŒXAttrrj†rjjsj¿†rjjXandrj†rjjsj¿†rjhŒXfaDirectoryrj†rjjsj¿†rjhtj‡†r jjsj¿†r!jjŸj®†r"jj©jq†r#jjsX
       r$j†r%jjXandr&j†r'jjsj¿†r(jj©jm†r)jhŒXPSRr*j†r+jhtj~†r,jhŒXNamer-j†r.jjsj¿†r/jhtj†r0jhtj‡†r1jjsj¿†r2jjÁjJ†r3jjÁj~†r4jjÁjJ†r5jj©jq†r6jjsj¿†r7jjXandr8j†r9jjsj¿†r:jj©jm†r;jhŒXPSRr<j†r=jhtj~†r>jhŒXNamer?j†r@jjsj¿†rAjhtj†rBjhtj‡†rCjjsj¿†rDjjÁjJ†rEjjÁX..rFj†rGjjÁjJ†rHjj©jq†rIjjsj¿†rJjjXthenrKj†rLjjsX	
        rMj†rNjjJXResultrOj†rPjjsj¿†rQjhtj{†rRjhtjì†rSjjsj¿†rTjhŒXScanDirrUj†rVjj©jm†rWjhŒXPathrXj†rYjjsj¿†rZjhtjÆr[jjsj¿†r\jhŒXPSRr]j†r^jhtj~†r_jhŒXNamer`j†rajjsj¿†rbjhtjÆrcjjsj¿†rdjjÁjJ†rejjÁjp†rfjjÁjJ†rgjhtjÕ†rhjjsj¿†rijhŒXFileNamerjj†rkjj©jq†rljhtjÆrmjjsX
      rnj†rojhŒXResrpj†rqjjsj¿†rrjhtj{†rsjhtjì†rtjjsj¿†rujjEXFindNextrvj†rwjj©jm†rxjhŒXPSRryj†rzjj©jq†r{jhtjÆr|jjsX
    r}j†r~jjXendrj†r€jhtjÆrjjsX
    r‚j†rƒjjEX	FindCloser„j†r…jj©jm†r†jhŒXPSRr‡j†rˆjj©jq†r‰jhtjÆrŠjjsX
  r‹j†rŒjjXendrj†rŽjhtjÆrjjsj2†rjjXbeginr‘j†r’jjsX
  r“j†r”jjJXResultr•j†r–jjsj¿†r—jhtj{†r˜jhtjì†r™jjsj¿†ršjjÁjJ†r›jjÁjJ†rœjhtjÆrjjsX
  ržj†rŸjhŒXPathr j†r¡jjsj¿†r¢jhtj{†r£jhtjì†r¤jjsj¿†r¥jhŒXExtractPathr¦j†r§jj©jm†r¨jhŒXMaskr©j†rªjj©jq†r«jhtjÆr¬jjsX
  r­j†r®jhŒXFileNamer¯j†r°jjsj¿†r±jhtj{†r²jhtjì†r³jjsj¿†r´jjEXExtractFileNamerµj†r¶jj©jm†r·jhŒXMaskr¸j†r¹jj©jq†rºjhtjÆr»jjsX
  r¼j†r½jhŒXScanDirr¾j†r¿jj©jm†rÀjhŒXPathrÁj†rÂjhtjÕ†rÃjjsj¿†rÄjhŒXFileNamerÅj†rÆjj©jq†rÇjhtjÆrÈjjsj2†rÉjjXendrÊj†rËjhtjÆrÌjjsX

rÍj†rÎjjX	procedurerÏj†rÐjjsj¿†rÑjjtXDeleteFilesrÒj†rÓjj©jm†rÔjjXconstrÕj†rÖjjsj¿†r×jhŒXMaskrØj†rÙjhtj{†rÚjjsj¿†rÛjjXstringrÜj†rÝjhtjÆrÞjjsj¿†rßjhŒXScanSubDirsràj†rájhtj{†râjjsj¿†rãjj-XBooleanräj†råjjsj¿†ræjhtjì†rçjjsj¿†rèjjXTrueréj†rêjhtjÆrëjjsX
  rìj†ríjhŒX
Attributesrîj†rïjhtj{†rðjjsj¿†rñjj-XIntegerròj†rójjsj¿†rôjhtjì†rõjjsj¿†röjhŒXfaFindEveryFiler÷j†røjj©jq†rùjhtjÆrújjsj2†rûjjXvarrüj†rýjjsX
  rþj†rÿjhŒXPathrk†rkhtjÕ†rkjsj¿†rkhŒXFileNamerk†rkhtj{†rkjsj¿†rkjXstringrk†r	khtjÆr
kjsX

  rk†rkjX	procedurer
k†rkjsj¿†rkjtXScanDirrk†rkj©jm†rkjXconstrk†rkjsj¿†rkhŒXPathrk†rkhtjÕ†rkjsj¿†rkhŒXFileNamerk†rkhtj{†rkjsj¿†rkjXstringrk†rkj©jq†r khtjÆr!kjsX
  r"k†r#kjXvarr$k†r%kjsX
    r&k†r'khŒXPSRr(k†r)khtj{†r*kjsj¿†r+khŒX
TSearchRecr,k†r-khtjÆr.kjsX
    r/k†r0khŒXResr1k†r2khtj{†r3kjsj¿†r4kj-XIntegerr5k†r6khtjÆr7kjsX

    r8k†r9kjX	procedurer:k†r;kjsj¿†r<kjtX
TryDeleteFiler=k†r>kj©jm†r?kjXconstr@k†rAkjsj¿†rBkhŒXFileNamerCk†rDkhtj{†rEkjsj¿†rFkjXstringrGk†rHkj©jq†rIkhtjÆrJkjsX
    rKk†rLkjXbeginrMk†rNkjsX
      rOk†rPkjXtryrQk†rRkjsX	
        rSk†rTkjEX
DeleteFilerUk†rVkj©jm†rWkhŒXPathrXk†rYkjsj¿†rZkhtjÆr[kjsj¿†r\khŒXPSRr]k†r^khtj~†r_khŒXNamer`k†rakj©jq†rbkhtjÆrckjsX
      rdk†rekjXexceptrfk†rgkjsX
      rhk†rikjXendrjk†rkkhtjÆrlkjsX
    rmk†rnkjXendrok†rpkhtjÆrqkjsX

  rrk†rskjXbeginrtk†rukjsX
    rvk†rwkhŒXResrxk†rykjsj¿†rzkhtj{†r{khtjì†r|kjsj¿†r}kjEX	FindFirstr~k†rkj©jm†r€khŒXPathrk†r‚kjsj¿†rƒkhtjÆr„kjsj¿†r…khŒXFileNamer†k†r‡khtjÕ†rˆkjsj¿†r‰khŒX
AttributesrŠk†r‹khtjÕ†rŒkjsj¿†rkhŒXPSRrŽk†rkj©jq†rkhtjÆr‘kjsX
    r’k†r“kjXwhiler”k†r•kjsj¿†r–khŒXSuccessr—k†r˜kj©jm†r™khŒXResršk†r›khtjÕ†rœkjsj¿†rkjŸj®†ržkj©jq†rŸkjsj¿†r kjXdor¡k†r¢kjsj¿†r£kjXbeginr¤k†r¥kjsX
      r¦k†r§khŒX
TryDeleteFiler¨k†r©kj©jm†rªkhŒXPathr«k†r¬kjsj¿†r­khtjÆr®kjsj¿†r¯khŒXPSRr°k†r±khtj~†r²khŒXNamer³k†r´kj©jq†rµkhtjÆr¶kjsX
      r·k†r¸khŒXResr¹k†rºkjsj¿†r»khtj{†r¼khtjì†r½kjsj¿†r¾kjEXFindNextr¿k†rÀkj©jm†rÁkhŒXPSRrÂk†rÃkj©jq†rÄkhtjÆrÅkjsX
    rÆk†rÇkjXendrÈk†rÉkhtjÆrÊkjsX
    rËk†rÌkjEX	FindCloserÍk†rÎkj©jm†rÏkhŒXPSRrÐk†rÑkj©jq†rÒkhtjÆrÓkjsX
    rÔk†rÕkjXifrÖk†r×kjsj¿†rØkjXnotrÙk†rÚkjsj¿†rÛkhŒXScanSubDirsrÜk†rÝkjsj¿†rÞkjXthenrßk†ràkjsX
      rák†râkjXExitrãk†räkhtjÆråkjsX

    ræk†rçkhŒXResrèk†rékjsj¿†rêkhtj{†rëkhtjì†rìkjsj¿†ríkjEX	FindFirstrîk†rïkj©jm†rðkhŒXPathrñk†ròkjsj¿†rókhtjÆrôkjsj¿†rõkjÁjJ†rökjÁjW†r÷kjÁjJ†røkhtjÕ†rùkjsj¿†rúkhŒXfaDirectoryrûk†rükhtjÕ†rýkjsj¿†rþkhŒXPSRrÿk†rlj©jq†rlhtjÆrljsX
    rl†rljXwhilerl†rljsj¿†rlhŒXSuccessrl†r	lj©jm†r
lhŒXResrl†rlhtjÕ†r
ljsj¿†rljŸj®†rlj©jq†rljsj¿†rljXdorl†rljsj¿†rljXbeginrl†rljsX
      rl†rljXifrl†rljsj¿†rlj©jm†rlhŒXPSRrl†rlhtj~†rlhŒXAttrr l†r!ljsj¿†r"ljXandr#l†r$ljsj¿†r%lhŒXfaDirectoryr&l†r'ljsj¿†r(lhtj‡†r)ljsj¿†r*ljŸj®†r+lj©jq†r,ljsX
       r-l†r.ljXandr/l†r0ljsj¿†r1lj©jm†r2lhŒXPSRr3l†r4lhtj~†r5lhŒXNamer6l†r7ljsj¿†r8lhtj†r9lhtj‡†r:ljsj¿†r;ljÁjJ†r<ljÁj~†r=ljÁjJ†r>lj©jq†r?ljsj¿†r@ljXandrAl†rBljsj¿†rClj©jm†rDlhŒXPSRrEl†rFlhtj~†rGlhŒXNamerHl†rIljsj¿†rJlhtj†rKlhtj‡†rLljsj¿†rMljÁjJ†rNljÁX..rOl†rPljÁjJ†rQlj©jq†rRljsj¿†rSljXthenrTl†rUljsj¿†rVljXbeginrWl†rXljsX	
        rYl†rZlhŒXScanDirr[l†r\lj©jm†r]lhŒXPathr^l†r_ljsj¿†r`lhtjÆraljsj¿†rblhŒXPSRrcl†rdlhtj~†relhŒXNamerfl†rgljsj¿†rhlhtjÆriljsj¿†rjljÁjJ†rkljÁjp†rlljÁjJ†rmlhtjÕ†rnljsj¿†rolhŒXFileNamerpl†rqlj©jq†rrlhtjÆrsljsX	
        rtl†rulhŒX
TryDeleteFilervl†rwlj©jm†rxlhŒXPathryl†rzljsj¿†r{lhtjÆr|ljsj¿†r}lhŒXPSRr~l†rlhtj~†r€lhŒXNamerl†r‚lj©jq†rƒlhtjÆr„ljsX
      r…l†r†ljXendr‡l†rˆlhtjÆr‰ljsX
      rŠl†r‹lhŒXResrŒl†rljsj¿†rŽlhtj{†rlhtjì†rljsj¿†r‘ljEXFindNextr’l†r“lj©jm†r”lhŒXPSRr•l†r–lj©jq†r—lhtjÆr˜ljsX
    r™l†ršljXendr›l†rœlhtjÆrljsX
    ržl†rŸljEX	FindCloser l†r¡lj©jm†r¢lhŒXPSRr£l†r¤lj©jq†r¥lhtjÆr¦ljsX
  r§l†r¨ljXendr©l†rªlhtjÆr«ljsj2†r¬le(jXbeginr­l†r®ljsX
  r¯l†r°lhŒXPathr±l†r²ljsj¿†r³lhtj{†r´lhtjì†rµljsj¿†r¶lhŒXExtractPathr·l†r¸lj©jm†r¹lhŒXMaskrºl†r»lj©jq†r¼lhtjÆr½ljsX
  r¾l†r¿lhŒXFileNamerÀl†rÁljsj¿†rÂlhtj{†rÃlhtjì†rÄljsj¿†rÅljEXExtractFileNamerÆl†rÇlj©jm†rÈlhŒXMaskrÉl†rÊlj©jq†rËlhtjÆrÌljsX
  rÍl†rÎlhŒXScanDirrÏl†rÐlj©jm†rÑlhŒXPathrÒl†rÓlhtjÕ†rÔljsj¿†rÕlhŒXFileNamerÖl†r×lj©jq†rØlhtjÆrÙljsj2†rÚljXendrÛl†rÜlhtjÆrÝljsX

rÞl†rßljXfunctionràl†ráljsj¿†râljtX
GetFileNewrãl†rälj©jm†rålhŒXFileNameræl†rçlhtj{†rèljsj¿†réljXstringrêl†rëlhtjÆrìljsj¿†rílhŒXNoFloppyDrivesrîl†rïlhtj{†rðljsj¿†rñlj-XBooleanròl†róljsj¿†rôlhtjì†rõljsj¿†röljXTruer÷l†rølj©jq†rùlhtj{†rúljsj¿†rûljXstringrül†rýlhtjÆrþljsj2†rÿljXvarrm†rmjsX
  rm†rmhŒXDriverm†rmhtj{†rmjsj¿†rmjXstringrm†r	mhtjÆr
mjsX
  rm†rmhŒXpfr
m†rmhtjÕ†rmjsj¿†rmhŒXpdrm†rmhtjÕ†rmjsj¿†rmhŒXLenrm†rmhtj{†rmjsj¿†rmj-XIntegerrm†rmhtjÆrmjsX
  rm†rmhŒXPSRrm†rmhtj{†r mjsj¿†r!mhŒX
TSearchRecr"m†r#mhtjÆr$mjsj2†r%mjXbeginr&m†r'mjsX
  r(m†r)mjJXResultr*m†r+mjsj¿†r,mhtj{†r-mhtjì†r.mjsj¿†r/mjÁjJ†r0mjÁjJ†r1mhtjÆr2mjsX
  r3m†r4mhŒXFileNamer5m†r6mjsj¿†r7mhtj{†r8mhtjì†r9mjsj¿†r:mjEXTrimr;m†r<mj©jm†r=mhŒXFileNamer>m†r?mj©jq†r@mhtjÆrAmjsX
  rBm†rCmjXifrDm†rEmjsj¿†rFmjEXLengthrGm†rHmj©jm†rImhŒXFileNamerJm†rKmj©jq†rLmjsj¿†rMmhtj†rNmjsj¿†rOmjŸj³†rPmjsj¿†rQmjXthenrRm†rSmjsX
    rTm†rUmjXExitrVm†rWmhtjÆrXmjsX

  rYm†rZmhŒXDriver[m†r\mjsj¿†r]mhtj{†r^mhtjì†r_mjsj¿†r`mhŒXExtractDriveram†rbmj©jm†rcmhŒXFileNamerdm†remj©jq†rfmhtjÆrgmjsX
  rhm†rimjXifrjm†rkmjsj¿†rlmjXnotrmm†rnmjsj¿†romjEXDirectoryExistsrpm†rqmj©jm†rrmhŒXDriversm†rtmj©jq†rumjsj¿†rvmjXthenrwm†rxmjsX
    rym†rzmjXExitr{m†r|mhtjÆr}mjsX

  r~m†rmjXifr€m†rmjsj¿†r‚mhŒXNoFloppyDrivesrƒm†r„mjsj¿†r…mjXandr†m†r‡mjsj¿†rˆmj©jm†r‰mhŒXDriverŠm†r‹mj©j'†rŒmjŸj5†rmj©j/†rŽmjsj¿†rmjXinrm†r‘mjsj¿†r’mj©j'†r“mjÁjJ†r”mjÁjކr•mjÁjJ†r–mhtjÕ†r—mjsj¿†r˜mjÁjJ†r™mjÁj݆ršmjÁjJ†r›mj©X])rœm†rmjsj¿†ržmjXthenrŸm†r mjsX
    r¡m†r¢mjXExitr£m†r¤mhtjÆr¥mjsX

  r¦m†r§mhŒXLenr¨m†r©mjsj¿†rªmhtj{†r«mhtjì†r¬mjsj¿†r­mjEXLengthr®m†r¯mj©jm†r°mhŒXFileNamer±m†r²mj©jq†r³mhtjÆr´mjsX
  rµm†r¶mjJXResultr·m†r¸mjsj¿†r¹mhtj{†rºmhtjì†r»mjsj¿†r¼mhŒXDriver½m†r¾mhtjÆr¿mjsX
  rÀm†rÁmhŒXpfrÂm†rÃmjsj¿†rÄmhtj{†rÅmhtjì†rÆmjsj¿†rÇmjEXLengthrÈm†rÉmj©jm†rÊmhŒXDriverËm†rÌmj©jq†rÍmjsj¿†rÎmhtjÆrÏmjsj¿†rÐmjŸj5†rÑmhtjÆrÒmjsX
  rÓm†rÔmjXwhilerÕm†rÖmjsj¿†r×mhŒXpfrØm†rÙmjsj¿†rÚmhtj†rÛmhtjì†rÜmjsj¿†rÝmhŒXLenrÞm†rßmjsj¿†ràmjXdorám†râmjsj¿†rãmjXbeginräm†råmjsX
    ræm†rçmjXifrèm†rémjsj¿†rêmhŒXFileNamerëm†rìmj©j'†rímhŒXpfrîm†rïmj©j/†rðmjsj¿†rñmhtjì†ròmjsj¿†rómjÁjJ†rômjÁjp†rõmjÁjJ†römjsj¿†r÷mjXthenrøm†rùmjsj¿†rúmjXbeginrûm†rümjsX
      rým†rþmjJXResultrÿm†rnjsj¿†rnhtj{†rnhtjì†rnjsj¿†rnjJXResultrn†rnjsj¿†rnhtjÆrnjsj¿†r	njÁjJ†r
njÁjp†rnjÁjJ†rnhtjÆr
njsX
      rn†rnjEXIncrn†rnj©jm†rnhŒXpfrn†rnj©jq†rnhtjÆrnjsX
    rn†rnjXContinuern†rnhtjÆrnjsj¿†rnjXendrn†rnhtjÆrnjsX

    r n†r!nhŒXpdr"n†r#njsj¿†r$nhtj{†r%nhtjì†r&njsj¿†r'nhŒXCharPosr(n†r)nj©jm†r*njÁjJ†r+njÁjp†r,njÁjJ†r-nhtjÕ†r.njsj¿†r/nhŒXFileNamer0n†r1nhtjÕ†r2njsj¿†r3nhŒXpfr4n†r5nj©jq†r6nhtjÆr7njsX
    r8n†r9njXifr:n†r;njsj¿†r<nhŒXpdr=n†r>njsj¿†r?nhtjì†r@njsj¿†rAnjŸj®†rBnjsj¿†rCnjXthenrDn†rEnjsj¿†rFnjXbeginrGn†rHnjsX
      rIn†rJnjXifrKn†rLnjsj¿†rMnjŸj®†rNnhtjì†rOnjEX	FindFirstrPn†rQnj©jm†rRnjJXResultrSn†rTnjsj¿†rUnhtjÆrVnjsj¿†rWnjEXCopyrXn†rYnj©jm†rZnhŒXFileNamer[n†r\nhtjÕ†r]njsj¿†r^nhŒXpfr_n†r`nhtjÕ†ranjsj¿†rbnhŒXMaxIntrcn†rdnj©jq†renhtjÕ†rfnjsj¿†rgnhŒXfaFindEveryFilerhn†rinhtjÕ†rjnjsj¿†rknhŒXPSRrln†rmnj©jq†rnnjsj¿†ronjXthenrpn†rqnjsj¿†rrnjXbeginrsn†rtnjsX	
        run†rvnjJXResultrwn†rxnjsj¿†rynhtj{†rznhtjì†r{njsj¿†r|njJXResultr}n†r~njsj¿†rnhtjÆr€njsj¿†rnhŒXPSRr‚n†rƒnhtj~†r„nhŒXNamer…n†r†nhtjÆr‡njsX
      rˆn†r‰njXBreakrŠn†r‹nhtjÆrŒnjsj¿†rnjXendrŽn†rnjsj¿†rnjXelser‘n†r’njsj¿†r“njXbeginr”n†r•njsX	
        r–n†r—njEX	FindCloser˜n†r™nj©jm†ršnhŒXPSRr›n†rœnj©jq†rnhtjÆržnjsX	
        rŸn†r njXifr¡n†r¢njsj¿†r£njŸj®†r¤nhtjì†r¥njEX	FindFirstr¦n†r§nj©jm†r¨njJXResultr©n†rªnjsj¿†r«nhtjÆr¬njsj¿†r­njEXCopyr®n†r¯nj©jm†r°nhŒXFileNamer±n†r²nhtjÕ†r³njsj¿†r´nhŒXpfrµn†r¶nhtjÕ†r·njsj¿†r¸nhŒXMaxIntr¹n†rºnj©jq†r»nhtjÕ†r¼njsj¿†r½nhŒXfaDirectoryr¾n†r¿nhtjÕ†rÀnjsj¿†rÁnhŒXPSRrÂn†rÃnj©jq†rÄnjsj¿†rÅnjXthenrÆn†rÇnjsX
          rÈn†rÉnjJXResultrÊn†rËnjsj¿†rÌnhtj{†rÍnhtjì†rÎnjsj¿†rÏnjJXResultrÐn†rÑnjsj¿†rÒnhtjÆrÓnjsj¿†rÔnhŒXPSRrÕn†rÖnhtj~†r×nhŒXNamerØn†rÙnjsj¿†rÚnhtjÆrÛnjsj¿†rÜnjÁjJ†rÝnjÁjp†rÞnjÁjJ†rßnjsX	
        ràn†ránjXelserân†rãnjsX
          rän†rånjJXResultræn†rçnjsj¿†rènhtj{†rénhtjì†rênjsj¿†rënjÁjJ†rìnjÁjJ†rínhtjÆrînjsX	
        rïn†rðnjEX	FindCloserñn†rònj©jm†rónhŒXPSRrôn†rõnj©jq†rönhtjÆr÷njsX	
        røn†rùnjXifrún†rûnjsj¿†rünjJXResultrýn†rþnjsj¿†rÿnhtjì†rojsj¿†rojÁjJ†rojÁjJ†rojsj¿†rojXthenro†rojsX
          ro†rojXBreakr	o†r
ohtjÆrojsX
      ro†r
ojXendro†rohtjÆrojsX
    ro†rojXendro†rohtjÆrojsX

    ro†rojXifro†rojsj¿†rojŸj®†rohtjì†rojEX	FindFirstro†roj©jm†rojJXResultr o†r!ojsj¿†r"ohtjÆr#ojsj¿†r$ojEXCopyr%o†r&oj©jm†r'ohŒXFileNamer(o†r)ohtjÕ†r*ojsj¿†r+ohŒXpfr,o†r-ohtjÕ†r.ojsj¿†r/ohŒXpdr0o†r1ojsj¿†r2ohtjR†r3ojsj¿†r4ohŒXpfr5o†r6oj©jq†r7ohtjÕ†r8ojsj¿†r9ohŒXfaDirectoryr:o†r;ohtjÕ†r<ojsj¿†r=ohŒXPSRr>o†r?oj©jq†r@ojsj¿†rAojXthenrBo†rCojsX
      rDo†rEojJXResultrFo†rGojsj¿†rHohtj{†rIohtjì†rJojsj¿†rKojJXResultrLo†rMojsj¿†rNohtjÆrOojsj¿†rPohŒXPSRrQo†rRohtj~†rSohŒXNamerTo†rUojsj¿†rVohtjÆrWojsj¿†rXojÁjJ†rYojÁjp†rZojÁjJ†r[ojsX
    r\o†r]ojXelser^o†r_ojsX
      r`o†raojJXResultrbo†rcojsj¿†rdohtj{†reohtjì†rfojsj¿†rgojÁjJ†rhojÁjJ†riohtjÆrjojsX
    rko†rlojEX	FindClosermo†rnoj©jm†roohŒXPSRrpo†rqoj©jq†rrohtjÆrsojsX
    rto†ruojXifrvo†rwojsj¿†rxojJXResultryo†rzojsj¿†r{ohtjì†r|ojsj¿†r}ojÁjJ†r~ojÁjJ†rojsj¿†r€ojXthenro†r‚ojsX
      rƒo†r„ojXBreakr…o†r†ohtjÆr‡ojsX

    rˆo†r‰ohŒXpfrŠo†r‹ojsj¿†rŒohtj{†rohtjì†rŽojsj¿†rohŒXpdro†r‘ojsj¿†r’ohtjÆr“ojsj¿†r”ojŸj5†r•ohtjÆr–ojsX
  r—o†r˜ojXendr™o†ršohtjÆr›ojsX

  rœo†rojXifržo†rŸojsj¿†r oj©jm†r¡ojJXResultr¢o†r£ojsj¿†r¤ohtj†r¥ohtj‡†r¦ojsj¿†r§ojÁjJ†r¨ojÁjJ†r©oj©jq†rªojsj¿†r«ojXandr¬o†r­ojsj¿†r®ojXnotr¯o†r°ojsj¿†r±ohŒXFileExr²o†r³oj©jm†r´ojJXResultrµo†r¶ohtjÕ†r·ojsj¿†r¸ojXTruer¹o†rºoj©jq†r»ojsj¿†r¼ojXthenr½o†r¾ojsX
    r¿o†rÀojJXResultrÁo†rÂojsj¿†rÃohtj{†rÄohtjì†rÅojsj¿†rÆojÁjJ†rÇojÁjJ†rÈohtjÆrÉojsj2†rÊojXendrËo†rÌohtjÆrÍojsX

rÎo†rÏojXfunctionrÐo†rÑojsj¿†rÒojtXDateTimeOfFileTimerÓo†rÔoj©jm†rÕojXconstrÖo†r×ojsj¿†rØohŒXFileTimerÙo†rÚohtj{†rÛojsj¿†rÜohŒX	TFileTimerÝo†rÞoj©jq†rßohtj{†ràojsj¿†ráoj-X	TDateTimerâo†rãohtjÆräojsj2†råojXvarræo†rçojsX
  rèo†réohŒX
LocalFileTimerêo†rëohtj{†rìojsj¿†ríohŒX	TFileTimerîo†rïohtjÆrðojsX
  rño†ròohŒXResróo†rôohtj{†rõojsj¿†röoj-XIntegerr÷o†røohtjÆrùojsj2†rúojXbeginrûo†rüojsX
  rýo†rþojJXResultrÿo†rpjsj¿†rphtj{†rphtjì†rpjsj¿†rpjŸj®†rphtjÆrpjsX

  rp†rphŒXFileTimeToLocalFileTimer	p†r
pj©jm†rphŒXFileTimerp†r
phtjÕ†rpjsj¿†rphŒX
LocalFileTimerp†rpj©jq†rphtjÆrpjsX
  rp†rpjXifrp†rpjsj¿†rpjXnotrp†rpjsj¿†rphŒXFileTimeToDosDateTimerp†rpj©jm†rphŒX
LocalFileTimerp†r phtjÕ†r!pjsj¿†r"phŒXLongRecr#p†r$pj©jm†r%phŒXResr&p†r'pj©jq†r(phtj~†r)phŒXHir*p†r+phtjÕ†r,pjsX
   r-p†r.phŒXLongRecr/p†r0pj©jm†r1phŒXResr2p†r3pj©jq†r4phtj~†r5phŒXLor6p†r7pj©jq†r8pjsj¿†r9pjXthenr:p†r;pjsX
    r<p†r=phŒXResr>p†r?pjsj¿†r@phtj{†rAphtjì†rBpjsj¿†rCphtjR†rDpjŸj5†rEphtjÆrFpjsX

  rGp†rHpjXifrIp†rJpjsj¿†rKpj©jm†rLphŒXResrMp†rNpjsj¿†rOphtjì†rPpjsj¿†rQphtjR†rRpjŸj5†rSpj©jq†rTpjsj¿†rUpjXorrVp†rWpjsj¿†rXpj©jm†rYphŒXResrZp†r[pjsj¿†r\phtjì†r]pjsj¿†r^pjŸj®†r_pj©jq†r`pjsj¿†rapjXthenrbp†rcpjsX
    rdp†repjXExitrfp†rgphtjÆrhpjsX
  rip†rjpjXtryrkp†rlpjsX
    rmp†rnpjJXResultrop†rppjsj¿†rqphtj{†rrphtjì†rspjsj¿†rtpjEXFileDateToDateTimerup†rvpj©jm†rwphŒXResrxp†rypj©jq†rzphtjÆr{pjsX
  r|p†r}pjXexceptr~p†rpjsX
  r€p†rpjXendr‚p†rƒphtjÆr„pjsj2†r…pjXendr†p†r‡phtjÆrˆpjsX

r‰p†rŠpjX	procedurer‹p†rŒpjsj¿†rpjtXFileNewrŽp†rpj©jm†rpjXconstr‘p†r’pjsj¿†r“phŒXFileNamer”p†r•phtj{†r–pjsj¿†r—pjXstringr˜p†r™pj©jq†ršphtjÆr›pjsj2†rœpjXvarrp†ržpjsX
  rŸp†r phŒXHandler¡p†r¢phtj{†r£pjsj¿†r¤pj-XIntegerr¥p†r¦phtjÆr§pjsj2†r¨pjXbeginr©p†rªpjsX
  r«p†r¬phŒXHandler­p†r®pjsj¿†r¯phtj{†r°phtjì†r±pjsj¿†r²pjEX
FileCreater³p†r´pj©jm†rµphŒXFileNamer¶p†r·pj©jq†r¸phtjÆr¹pjsX
  rºp†r»pjEX	FileCloser¼p†r½pj©jm†r¾phŒXHandler¿p†rÀpj©jq†rÁphtjÆrÂpjsj2†rÃpjXendrÄp†rÅphtjÆrÆpjsX

rÇp†rÈpjXfunctionrÉp†rÊpjsj¿†rËpjtXWin32PlatformStrrÌp†rÍphtj{†rÎpjsj¿†rÏpjXstringrÐp†rÑphtjÆrÒpjsj2†rÓpjXconstrÔp†rÕpjsX
  rÖp†r×phŒXPlatformStringsrØp†rÙphtj{†rÚpjsj¿†rÛpjXarrayrÜp†rÝpj©j'†rÞphŒXVER_PLATFORM_WIN32srßp†ràphtj~†ráphtj~†râphŒXVER_PLATFORM_WIN32_NTrãp†räpj©j/†råpjsj¿†ræpjXofrçp†rèpjsj¿†répjXstringrêp†rëpjsj¿†rìphtjì†rípjsX
    rîp†rïpj©jm†rðpjÁjJ†rñpjÁXVER_PLATFORM_WIN32sròp†rópjÁjJ†rôphtjÕ†rõpjsj¿†röpjÁjJ†r÷pjÁXVER_PLATFORM_WIN32_WINDOWSrøp†rùpjÁjJ†rúphtjÕ†rûpjsj¿†rüpjÁjJ†rýpjÁXVER_PLATFORM_WIN32_NTrþp†rÿpjÁjJ†rqj©jq†rqhtjÆrqjsj2†rqjXbeginrq†rqjsX
  rq†rqjJXResultrq†r	qjsj¿†r
qhtj{†rqhtjì†rqjsj¿†r
qhŒXPlatformStringsrq†rqj©j'†rqhŒX
Win32Platformrq†rqj©j/†rqhtjÆrqjsj2†rqjXendrq†rqhtjÆrqjsX

rq†rqjXfunctionrq†rqjsj¿†rqjtX
FullOSInforq†rqhtj{†r qjsj¿†r!qjXstringr"q†r#qhtjÆr$qjsj2†r%qjXbeginr&q†r'qjsX
  r(q†r)qjJXResultr*q†r+qjsj¿†r,qhtj{†r-qhtjì†r.qjsj¿†r/qjEXFormatr0q†r1qj©jm†r2qjsX
    r3q†r4qjÁjJ†r5qjÁXPlatform: %sr6q†r7qjÁjJ†r8qjsj¿†r9qhtjÆr:qjsj¿†r;qhŒXEOLr<q†r=qjsj¿†r>qhtjÆr?qjsX
    r@q†rAqjÁjJ†rBqjÁXVersion: %d.%d Build %drCq†rDqjÁjJ†rEqjsj¿†rFqhtjÆrGqjsj¿†rHqhŒXEOLrIq†rJqjsj¿†rKqhtjÆrLqjsX
    rMq†rNqjÁjJ†rOqjÁXCSD: %srPq†rQqjÁjJ†rRqhtjÕ†rSqjsX
    rTq†rUqj©j'†rVqjsX
      rWq†rXqhŒXWin32PlatformStrrYq†rZqhtjÕ†r[qjsX
      r\q†r]qhŒXWin32MajorVersionr^q†r_qhtjÕ†r`qjsj¿†raqhŒXWin32MinorVersionrbq†rcqhtjÕ†rdqjsj¿†reqhŒXWin32BuildNumberrfq†rgqhtjÕ†rhqjsX
      riq†rjqhŒXWin32CSDVersionrkq†rlqjsX
    rmq†rnqj©j/†roqjsX
  rpq†rqqj©jq†rrqhtjÆrsqjsj2†rtqjXendruq†rvqhtjÆrwqjsX

rxq†ryqjXfunctionrzq†r{qjsj¿†r|qjtXWin9xr}q†r~qhtj{†rqjsj¿†r€qj-XBooleanrq†r‚qhtjÆrƒqjsj2†r„qjXbeginr…q†r†qjsX
  r‡q†rˆqjJXResultr‰q†rŠqjsj¿†r‹qhtj{†rŒqhtjì†rqjsj¿†rŽqhŒX
Win32Platformrq†rqjsj¿†r‘qhtjì†r’qjsj¿†r“qhŒXVER_PLATFORM_WIN32_WINDOWSr”q†r•qhtjÆr–qjsj2†r—qjXendr˜q†r™qhtjÆršqjsX

r›q†rœqjXfunctionrq†ržqjsj¿†rŸqjtXWinNTr q†r¡qhtj{†r¢qjsj¿†r£qj-XBooleanr¤q†r¥qhtjÆr¦qjsj2†r§qjXbeginr¨q†r©qjsX
  rªq†r«qjJXResultr¬q†r­qjsj¿†r®qhtj{†r¯qhtjì†r°qjsj¿†r±qhŒX
Win32Platformr²q†r³qjsj¿†r´qhtjì†rµqjsj¿†r¶qhŒXVER_PLATFORM_WIN32_NTr·q†r¸qhtjÆr¹qjsj2†rºqjXendr»q†r¼qhtjÆr½qjsX

r¾q†r¿qjXfunctionrÀq†rÁqjsj¿†rÂqjtXWin2000rÃq†rÄqhtj{†rÅqjsj¿†rÆqj-XBooleanrÇq†rÈqhtjÆrÉqjsj2†rÊqjXbeginrËq†rÌqjsX
  rÍq†rÎqjJXResultrÏq†rÐqjsj¿†rÑqhtj{†rÒqhtjì†rÓqjsj¿†rÔqj©jm†rÕqhŒX
Win32PlatformrÖq†r×qjsj¿†rØqhtjì†rÙqjsj¿†rÚqhŒXVER_PLATFORM_WIN32_NTrÛq†rÜqj©jq†rÝqjsX

            rÞq†rßqjXandràq†ráqjsj¿†râqj©jm†rãqhŒXWin32MajorVersionräq†råqjsj¿†ræqhtjì†rçqjsj¿†rèqjŸj½†réqj©jq†rêqhtjÆrëqjsj2†rìqjXendríq†rîqhtjÆrïqjsX

rðq†rñqjXfunctionròq†róqjsj¿†rôqjtXWinXPrõq†röqhtj{†r÷qjsj¿†røqj-XBooleanrùq†rúqhtjÆrûqjsj2†rüqjXbeginrýq†rþqjsX
  rÿq†rrjJXResultrr†rrjsj¿†rrhtj{†rrhtjì†rrjsj¿†rrhŒXWin32MajorVersionrr†rrjsj¿†r	rhtj‡†r
rhtjì†rrjsj¿†rrjŸj†r
rhtjÆrrjsj2†rrjXendrr†rrhtjÆrrjsX

rr†rrjXinitializationrr†rre(jsX
  rr†rrhŒXMyDirrr†rrjsj¿†rrhtj{†rrhtjì†rrjsj¿†rrhŒXGetMyDirrr†r rhtjÆr!rjsX

r"r†r#rjXendr$r†r%rhtj~†r&rjsX

r'r†r(rjXunitr)r†r*rjsj¿†r+rhŒX
FifoStreamr,r†r-rhtjÆr.rjsX

r/r†r0rjX	interfacer1r†r2rjsX

r3r†r4rjXusesr5r†r6rjsj¿†r7rhŒXClassesr8r†r9rhtjÕ†r:rjsj¿†r;rhŒXwindowsr<r†r=rhtjÕ†r>rjsj¿†r?rhŒXDialogsr@r†rArhtjÆrBrjsX

rCr†rDrjXconstrEr†rFrjsX
  rGr†rHrhŒXDefaultChunksizerIr†rJrjsj¿†rKrhtjì†rLrjsj¿†rMrjŸX32768rNr†rOrhtjÆrPrjsj¿†rQrhX// 32kb per chunk as default.rRr†rSrjsX

rTr†rUrjXtyperVr†rWrjsX
  rXr†rYrhŒX	PMemChunkrZr†r[rjsj¿†r\rhtjì†r]rjsj¿†r^rhtjÞ4†r_rhŒX	TMemChunkr`r†rarhtjÆrbrjsX
  rcr†rdrhŒX	TMemChunkrer†rfrjsj¿†rgrhtjì†rhrjsj¿†rirjXrecordrjr†rkrjsX
    rlr†rmrhŒXFilledrnr†rorhtj{†rprjsj¿†rqrj-XLongwordrrr†rsrhtjÆrtrjsX
    rur†rvrjEXReadrwr†rxrhtj{†ryrjsj¿†rzrj-XLongwordr{r†r|rhtjÆr}rjsX
    r~r†rrhŒXDatar€r†rrhtj{†r‚rjsj¿†rƒrj-Xpointerr„r†r…rhtjÆr†rjsX
  r‡r†rˆrjXendr‰r†rŠrhtjÆr‹rjsX

  rŒr†rrhŒXTFiforŽr†rrjsj¿†rrhtjì†r‘rjsj¿†r’rjXclassr“r†r”rjsX
  r•r†r–rjRXprivater—r†r˜rjsX
    r™r†ršrhŒXFBuffersr›r†rœrhtj{†rrjsj¿†ržrhŒXTListrŸr†r rhtjÆr¡rjsX
    r¢r†r£rhŒX
FChunksizer¤r†r¥rhtj{†r¦rjsj¿†r§rj-XLongwordr¨r†r©rhtjÆrªrjsX
    r«r†r¬rhŒX	FCritSectr­r†r®rhtj{†r¯rjsj¿†r°rhŒXTRTLCriticalSectionr±r†r²rhtjÆr³rjsX
    r´r†rµrhŒXFIsWinNTr¶r†r·rhtj{†r¸rjsj¿†r¹rj-Xbooleanrºr†r»rhtjÆr¼rjsX
    r½r†r¾rhŒXFBytesInFifor¿r†rÀrhtj{†rÁrjsj¿†rÂrj-XLongWordrÃr†rÄrhtjÆrÅrjsX
  rÆr†rÇrjRX	protectedrÈr†rÉrjsX
    rÊr†rËrjXfunctionrÌr†rÍrjsj¿†rÎrjtXGetBytesInFiforÏr†rÐrhtj{†rÑrjsj¿†rÒrj-XLongWordrÓr†rÔrhtjÆrÕrjsX
  rÖr†r×rjRXpublicrØr†rÙrjsX
    rÚr†rÛrjXconstructorrÜr†rÝrjsj¿†rÞrjtXCreaterßr†ràrhtjÆrárjsX
    râr†rãrjX
destructorrär†rårjsj¿†rærjtXDestroyrçr†rèrhtjÆrérjsj¿†rêrjRXoverriderër†rìrhtjÆrírjsX
    rîr†rïrjX	procedurerðr†rñrjsj¿†ròrjtXWriterór†rôrj©jm†rõrhŒXDatarör†r÷rhtj{†rørjsj¿†rùrj-Xpointerrúr†rûrhtjÆrürjsj¿†rýrhŒXSizerþr†rÿrhtj{†rsjsj¿†rsj-XLongWordrs†rsj©jq†rshtjÆrsjsX
    rs†rsjX	procedurers†r	sjsj¿†r
sjtXReadrs†rsj©jm†r
shŒXBuffrs†rshtj{†rsjsj¿†rsj-Xpointerrs†rshtjÆrsjsj¿†rsjXvarrs†rsjsj¿†rshŒXReqSizers†rshtj{†rsjsj¿†rsj-XLongWordrs†rsj©jq†rshtjÆr sjsX
    r!s†r"sjX	procedurer#s†r$sjsj¿†r%sjtXPeekDatar&s†r'sj©jm†r(shŒXBuffr)s†r*shtj{†r+sjsj¿†r,sj-Xpointerr-s†r.shtjÆr/sjsj¿†r0sjXvarr1s†r2sjsj¿†r3shŒXReqSizer4s†r5shtj{†r6sjsj¿†r7sj-XLongWordr8s†r9sj©jq†r:shtjÆr;sjsX
  r<s†r=sjRX	publishedr>s†r?sjsX
    r@s†rAsjXpropertyrBs†rCsjsj¿†rDsjXBytesInFiforEs†rFshtj{†rGsjsj¿†rHsj-XLongWordrIs†rJsjsj¿†rKsjRXreadrLs†rMsjsj¿†rNsjtXFBytesInFiforOs†rPshtjÆrQsjsX
  rRs†rSsjXendrTs†rUshtjÆrVsjsX

rWs†rXsjXimplementationrYs†rZsjsX

r[s†r\sjXconstructorr]s†r^sjsj¿†r_sh¹XTFifor`s†rashtj~†rbsjtXCreatercs†rdshtjÆresjsj2†rfsjXbeginrgs†rhsjsX
  ris†rjsjX	inheritedrks†rlshtjÆrmsjsX
  rns†roshŒXFBuffersrps†rqsjsj¿†rrshtj{†rsshtjì†rtsjsj¿†rushŒXTListrvs†rwshtj~†rxshŒXCreaterys†rzshtjÆr{sjsX
  r|s†r}shX// set default chunksize...r~s†rsjsX
  r€s†rshŒX
FChunksizer‚s†rƒsjsj¿†r„shtj{†r…shtjì†r†sjsj¿†r‡shŒXDefaultChunksizerˆs†r‰shtjÆrŠsjsX
  r‹s†rŒshŒXInitializeCriticalSectionrs†rŽsj©jm†rshŒX	FCritSectrs†r‘sj©jq†r’shtjÆr“sjsj2†r”sjXendr•s†r–shtjÆr—sjsX

r˜s†r™sjX
destructorršs†r›sjsj¿†rœsh¹XTFifors†ržshtj~†rŸsjtXDestroyr s†r¡shtjÆr¢sjsj2†r£sjXvarr¤s†r¥sjsX
  r¦s†r§shŒj·†r¨shtj{†r©sjsj¿†rªsj-XIntegerr«s†r¬shtjÆr­sjsj2†r®sjXbeginr¯s†r°sjsX
  r±s†r²shŒXEnterCriticalSectionr³s†r´sj©jm†rµshŒX	FCritSectr¶s†r·sj©jq†r¸shtjÆr¹sjsX
  rºs†r»sjXforr¼s†r½sjsj¿†r¾shŒj·†r¿sjsj¿†rÀshtj{†rÁshtjì†rÂsjsj¿†rÃsjŸj®†rÄsjsj¿†rÅsjXtorÆs†rÇsjsj¿†rÈshŒXFBuffersrÉs†rÊshtj~†rËshŒXcountrÌs†rÍsjsj¿†rÎshtjR†rÏsjsj¿†rÐsjŸj5†rÑsjsj¿†rÒsjXdorÓs†rÔsjsX
  rÕs†rÖsjXbeginr×s†rØsjsX
    rÙs†rÚsjEXFreeMemrÛs†rÜsj©jm†rÝshŒX	PMemChunkrÞs†rßsj©jm†ràshŒXFbuffersrás†râsj©j'†rãshŒj·†räsj©X])rås†ræshtj~†rçshŒXDatarès†résj©jq†rêshtjÆrësjsX
    rìs†rísjXDisposerîs†rïsj©jm†rðshŒX	PMemChunkrñs†ròsj©jm†róshŒXFbuffersrôs†rõsj©j'†röshŒj·†r÷sj©X]))røs†rùshtjÆrúsjsX
  rûs†rüsjXendrýs†rþshtjÆrÿsjsX
  rt†rthŒXFBuffersrt†rthtj~†rthŒXClearrt†rthtjÆrtjsX
  rt†r	thŒXFBuffersr
t†rthtj~†rthŒXFreer
t†rthtjÆrtjsX
  rt†rthŒXLeaveCriticalSectionrt†rtj©jm†rthŒX	FCritSectrt†rtj©jq†rthtjÆrtjsX

  rt†rthŒXDeleteCriticalSectionrt†rtj©jm†rthŒX	FCritSectrt†rtj©jq†r thtjÆr!tjsX
  r"t†r#tjX	inheritedr$t†r%thtjÆr&tjsj2†r'tjXendr(t†r)thtjÆr*tjsX

r+t†r,tjXfunctionr-t†r.tjsj¿†r/th¹XTFifor0t†r1thtj~†r2tjtXGetBytesInFifor3t†r4thtj{†r5tjsj¿†r6tj-XLongWordr7t†r8thtjÆr9tjsj2†r:tjXbeginr;t†r<tjsX
  r=t†r>tjJXResultr?t†r@tjsj¿†rAthtj{†rBthtjì†rCtjsj¿†rDtjŸj®†rEthtjÆrFtjsX
  rGt†rHtjXifrIt†rJtjsj¿†rKthŒXFBuffersrLt†rMthtj~†rNthŒXCountrOt†rPtjsj¿†rQthtjì†rRtjsj¿†rStjŸj®†rTtjsj¿†rUtjXthenrVt†rWtjsX
  rXt†rYtjXbeginrZt†r[tjsX
    r\t†r]tjXexitr^t†r_thtjÆr`tjsX
  rat†rbtjXendrct†rdtjsX
  ret†rftjXelsergt†rhtjsX
  rit†rjtjXbeginrkt†rltjsX
    rmt†rntjXifrot†rptjsj¿†rqthŒXFBuffersrrt†rsthtj~†rtthŒXCountrut†rvtjsj¿†rwthtj‡†rxtjsj¿†rytjŸj5†rztjsj¿†r{tjXthenr|t†r}tjsX
      r~t†rtjEXIncr€t†rtj©jm†r‚tjJXResultrƒt†r„thtjÕ†r…tjsj¿†r†tj©jm†r‡thŒXFBuffersrˆt†r‰thtj~†rŠthŒXCountr‹t†rŒtjsj¿†rthtjR†rŽtjsj¿†rtjŸj5†rtj©jq†r‘tjsj¿†r’thtjW†r“tjsj¿†r”thŒX
FChunkSizer•t†r–tj©jq†r—thtjÆr˜tjsX
    r™t†rštjEXIncr›t†rœtj©jm†rtjJXResultržt†rŸthtjÕ†r tjsj¿†r¡thŒX	PMemChunkr¢t†r£tj©jm†r¤thŒXFBuffersr¥t†r¦tj©j'†r§thŒXFbuffersr¨t†r©thtj~†rªthŒXCountr«t†r¬tjsj¿†r­thtjR†r®tjsj¿†r¯tjŸj5†r°tj©X])r±t†r²thtj~†r³thŒXFilledr´t†rµtj©jq†r¶thtjÆr·tjsX
    r¸t†r¹tjEXDecrºt†r»tj©jm†r¼tjJXResultr½t†r¾thtjÕ†r¿tjsj¿†rÀthŒX	PMemChunkrÁt†rÂtj©jm†rÃthŒXFBuffersrÄt†rÅtj©j'†rÆtjŸj®†rÇtj©X])rÈt†rÉthtj~†rÊthŒXReadrËt†rÌtj©jq†rÍthtjÆrÎtjsX
  rÏt†rÐtjXendrÑt†rÒthtjÆrÓtjsj2†rÔtjXendrÕt†rÖthtjÆr×tjsX

rØt†rÙtjX	procedurerÚt†rÛtjsj¿†rÜth¹XTFiforÝt†rÞthtj~†rßtjtXWriteràt†rátj©jm†râthŒXDatarãt†räthtj{†råtjsj¿†rætj-Xpointerrçt†rèthtjÆrétjsj¿†rêthŒXSizerët†rìthtj{†rítjsj¿†rîtj-XLongWordrït†rðtj©jq†rñthtjÆròtjsj2†rótjXvarrôt†rõtjsX
  röt†r÷thŒXPrivpointerrøt†rùthtj{†rútjsj¿†rûtj-Xpointerrüt†rýthtjÆrþtjsX
  rÿt†ruhŒXPrivSizeru†ruhtj{†rujsj¿†ruj-XLongWordru†ruhtjÆrujsX
  ru†r	uhŒXChunkr
u†ruhtj{†rujsj¿†r
uhŒX	PMemChunkru†ruhtjÆrujsX
  ru†ruhŒX
PosInChunkru†ruhtj{†rujsj¿†ruj-Xpointerru†ruhtjÆrujsj2†rujXbeginru†rujsX
  ru†rujXifru†r ujsj¿†r!uj-XLongWordr"u†r#uj©jm†r$uhŒXDatar%u†r&uj©jq†r'ujsj¿†r(uhtjì†r)ujsj¿†r*ujŸj®†r+ujsj¿†r,ujXthenr-u†r.ujsX
  r/u†r0ujXbeginr1u†r2ujsX
    r3u†r4uhX:// null pointer? somebody is trying to fool us, get out...r5u†r6ujsX
    r7u†r8ujXExitr9u†r:uhtjÆr;ujsX
  r<u†r=ujXendr>u†r?uhtjÆr@ujsX
  rAu†rBuhŒXEnterCriticalSectionrCu†rDuj©jm†rEuhŒX	FCritSectrFu†rGuj©jq†rHuhtjÆrIujsX
  rJu†rKuhŒXPrivPointerrLu†rMujsj¿†rNuhtj{†rOuhtjì†rPujsj¿†rQuhŒXDatarRu†rSuhtjÆrTujsX
  rUu†rVuhŒXPrivSizerWu†rXujsj¿†rYuhtj{†rZuhtjì†r[ujsj¿†r\ujŸj®†r]uhtjÆr^ujsX
  r_u†r`uhX// are already buffers there?rau†rbujsX
  rcu†rdujXifreu†rfujsj¿†rguhŒXFBuffersrhu†riuhtj~†rjuhŒXcountrku†rlujsj¿†rmuhtj‡†rnujsj¿†roujŸj®†rpujsj¿†rqujXthenrru†rsujsX
  rtu†ruujXbeginrvu†rwujsX
    rxu†ryuhX1// is the last one of them not completely filled?rzu†r{ujsX
    r|u†r}ujXifr~u†rujsj¿†r€uhŒX	PMemChunkru†r‚uj©jm†rƒuhŒXFBuffersr„u†r…uj©j'†r†uhŒXFBuffersr‡u†rˆuhtj~†r‰uhŒXcountrŠu†r‹ujsj¿†rŒuhtjR†rujsj¿†rŽujŸj5†ruj©X])ru†r‘uhtj~†r’uhŒXfilledr“u†r”ujsj¿†r•uhtj†r–ujsj¿†r—uhŒX
FChunksizer˜u†r™ujsj¿†ršujXthenr›u†rœujsX
      ru†ržuhX0// not completely filled, so fill up the buffer.rŸu†r ujsX
    r¡u†r¢ujXbeginr£u†r¤ujsX
      r¥u†r¦uhŒXChunkr§u†r¨ujsj¿†r©uhtj{†rªuhtjì†r«ujsj¿†r¬uhŒX	PMemChunkr­u†r®uj©jm†r¯uhŒXFBuffersr°u†r±uj©j'†r²uhŒXFBuffersr³u†r´uhtj~†rµuhŒXcountr¶u†r·ujsj¿†r¸uhtjR†r¹ujsj¿†rºujŸj5†r»uj©X])r¼u†r½uhtjÆr¾ujsX
      r¿u†rÀuhX// fetch chunkdata.rÁu†rÂujsX
      rÃu†rÄuhŒX
PosInChunkrÅu†rÆujsj¿†rÇuhtj{†rÈuhtjì†rÉujsj¿†rÊuhŒXChunkrËu†rÌuhtj~†rÍuhŒXDatarÎu†rÏuhtjÆrÐujsX
      rÑu†rÒuhX// move to current fill pos...rÓu†rÔujsX
      rÕu†rÖujEXIncr×u†rØuj©jm†rÙuj-XLongWordrÚu†rÛuj©jm†rÜuhŒX
PosInChunkrÝu†rÞuj©jq†rßuhtjÕ†ràujsj¿†ráuhŒXChunkrâu†rãuhtj~†räuhŒXFilledråu†ræuj©jq†rçuhtjÆrèujsX
      réu†rêuhX$// can we fill the chunk completely?rëu†rìujsX
      ríu†rîujXifrïu†rðujsj¿†rñuhŒXSizeròu†róujsj¿†rôuhtj‡†rõujsj¿†röuhŒX
FChunksizer÷u†røujsj¿†rùuhtjR†rúujsj¿†rûuhŒXChunkrüu†rýuhtj~†rþuhŒXFilledrÿu†rvjsj¿†rvjXthenrv†rvjsX
      rv†rvjXbeginrv†rvjsX	
        rv†r	vhX// yes we can.r
v†rvjsX	
        rv†r
vjEXMoverv†rvj©jm†rvhŒXPrivPointerrv†rvhtjÞ4†rvhtjÕ†rvjsj¿†rvhŒX
PosInChunkrv†rvhtjÞ4†rvhtjÕ†rvjsj¿†rvhŒX
FChunksizerv†rvjsj¿†rvhtjR†rvjsj¿†rvhŒXChunkr v†r!vhtj~†r"vhŒXFilledr#v†r$vj©jq†r%vhtjÆr&vjsX	
        r'v†r(vjEXIncr)v†r*vj©jm†r+vhŒXPrivSizer,v†r-vhtjÕ†r.vjsj¿†r/vhŒX
FChunksizer0v†r1vjsj¿†r2vhtjR†r3vjsj¿†r4vhŒXChunkr5v†r6vhtj~†r7vhŒXFilledr8v†r9vj©jq†r:vhtjÆr;vjsX	
        r<v†r=vjEXIncr>v†r?vj©jm†r@vj-XLongWordrAv†rBvj©jm†rCvhŒXPrivPointerrDv†rEvj©jq†rFvhtjÕ†rGvjsj¿†rHvhŒX
FChunksizerIv†rJvjsj¿†rKvhtjR†rLvjsj¿†rMvhŒXChunkrNv†rOvhtj~†rPvhŒXFilledrQv†rRvj©jq†rSvhtjÆrTvjsX	
        rUv†rVvhŒXChunkrWv†rXvhtj~†rYvhŒXFilledrZv†r[vjsj¿†r\vhtj{†r]vhtjì†r^vjsj¿†r_vhŒX
FChunkSizer`v†ravhtjÆrbvjsX
      rcv†rdvjXendrev†rfvjsX
      rgv†rhvjXelseriv†rjvjsX	
        rkv†rlvhX9// we have to less data for filling the chunk completely,rmv†rnvjsX	
        rov†rpvhX// just put everything in.rqv†rrvjsX
      rsv†rtvjXbeginruv†rvvjsX	
        rwv†rxvjEXMoveryv†rzvj©jm†r{vhŒXPrivPointerr|v†r}vhtjÞ4†r~vhtjÕ†rvjsj¿†r€vhŒX
PosInChunkrv†r‚vhtjÞ4†rƒvhtjÕ†r„vjsj¿†r…vhŒXSizer†v†r‡vj©jq†rˆvhtjÆr‰vjsX	
        rŠv†r‹vjEXIncrŒv†rvj©jm†rŽvhŒXPrivSizerv†rvhtjÕ†r‘vjsj¿†r’vhŒXSizer“v†r”vj©jq†r•vhtjÆr–vjsX	
        r—v†r˜vjEXIncr™v†ršvj©jm†r›vhŒXChunkrœv†rvhtj~†ržvhŒXFilledrŸv†r vhtjÕ†r¡vjsj¿†r¢vhŒXSizer£v†r¤vj©jq†r¥vhtjÆr¦vjsX
      r§v†r¨vjXendr©v†rªvhtjÆr«vjsX
    r¬v†r­vjXendr®v†r¯vhtjÆr°vjsX
  r±v†r²vjXendr³v†r´vhtjÆrµvjsX
  r¶v†r·vhX=// as long as we have remaining stuff put it into new chunks.r¸v†r¹vjsX
  rºv†r»vjXwhiler¼v†r½vjsj¿†r¾vj©jm†r¿vhŒXPrivSizerÀv†rÁvjsj¿†rÂvhtj†rÃvjsj¿†rÄvhŒXSizerÅv†rÆvj©jq†rÇvjsj¿†rÈvjXdorÉv†rÊvjsX
  rËv†rÌvjXbeginrÍv†rÎvjsX
    rÏv†rÐvjXnewrÑv†rÒvj©jm†rÓvhŒXChunkrÔv†rÕvj©jq†rÖvhtjÆr×vjsX
    rØv†rÙvjEXGetMemrÚv†rÛvj©jm†rÜvhŒXChunkrÝv†rÞvhtj~†rßvhŒXDataràv†rávhtjÕ†râvjsj¿†rãvhŒX
FChunksizeräv†råvj©jq†rævhtjÆrçvjsX
    rèv†révhŒXChunkrêv†rëvhtj~†rìvhŒXReadrív†rîvjsj¿†rïvhtj{†rðvhtjì†rñvjsj¿†ròvjŸj®†róvhtjÆrôvjsX
    rõv†rövhX7// can we fill an entire chunk with the remaining data?r÷v†røvjsX
    rùv†rúvjXifrûv†rüvjsj¿†rývhŒXPrivsizerþv†rÿvjsj¿†rwhtjÆrwjsj¿†rwhŒX
FChunksizerw†rwjsj¿†rwhtj†rwjsj¿†rwhŒXSizerw†r	wjsj¿†r
wjXthenrw†rwjsX
    r
w†rwjXbeginrw†rwjsX
      rw†rwhX#// yes we can, so put the stuff in.rw†rwjsX
      rw†rwjEXMoverw†rwj©jm†rwhŒXPrivpointerrw†rwhtjÞ4†rwhtjÕ†rwjsj¿†rwhŒXChunkrw†r whtj~†r!whŒXDatar"w†r#whtjÞ4†r$whtjÕ†r%wjsj¿†r&whŒX
FChunksizer'w†r(wj©jq†r)whtjÆr*wjsX
      r+w†r,wjEXIncr-w†r.wj©jm†r/wj-XLongWordr0w†r1wj©jm†r2whŒXPrivPointerr3w†r4wj©jq†r5whtjÕ†r6wjsj¿†r7whŒX
FChunksizer8w†r9wj©jq†r:whtjÆr;wjsX
      r<w†r=wjEXIncr>w†r?wj©jm†r@whŒXPrivSizerAw†rBwhtjÕ†rCwjsj¿†rDwhŒX
FChunksizerEw†rFwj©jq†rGwhtjÆrHwjsX
      rIw†rJwhŒXChunkrKw†rLwhtj~†rMwhŒXFilledrNw†rOwjsj¿†rPwhtj{†rQwhtjì†rRwjsj¿†rSwhŒX
FChunksizerTw†rUwhtjÆrVwjsX
    rWw†rXwjXendrYw†rZwjsX
    r[w†r\wjXelser]w†r^wjsj¿†r_whXR// we have to less data to fill the entire chunk, just put the remaining stuff in.r`w†rawjsX
    rbw†rcwjXbeginrdw†rewjsX
      rfw†rgwjEXMoverhw†riwj©jm†rjwhŒXPrivpointerrkw†rlwhtjÞ4†rmwhtjÕ†rnwjsj¿†rowhŒXChunkrpw†rqwhtj~†rrwhŒXDatarsw†rtwhtjÞ4†ruwhtjÕ†rvwjsj¿†rwwhŒXSizerxw†rywjsj¿†rzwhtjR†r{wjsj¿†r|whŒXPrivsizer}w†r~wj©jq†rwhtjÆr€wjsX
      rw†r‚whŒXChunkrƒw†r„whtj~†r…whŒXFilledr†w†r‡wjsj¿†rˆwhtj{†r‰whtjì†rŠwjsj¿†r‹whŒXSizerŒw†rwjsj¿†rŽwhtjR†rwjsj¿†rwhŒXPrivsizer‘w†r’whtjÆr“wjsX
      r”w†r•wjEXIncr–w†r—wj©jm†r˜whŒXPrivSizer™w†ršwhtjÕ†r›wjsj¿†rœwhŒXSizerw†ržwjsj¿†rŸwhtjR†r wjsj¿†r¡whŒXPrivsizer¢w†r£wj©jq†r¤whtjÆr¥wjsX
    r¦w†r§wjXendr¨w†r©whtjÆrªwjsX
    r«w†r¬whŒXFbuffersr­w†r®whtj~†r¯whŒXAddr°w†r±wj©jm†r²whŒXChunkr³w†r´wj©jq†rµwhtjÆr¶wjsX
  r·w†r¸wjXendr¹w†rºwhtjÆr»wjsX
  r¼w†r½wjXifr¾w†r¿wjsj¿†rÀwhŒXSizerÁw†rÂwjsj¿†rÃwhtj†rÄwhtj‡†rÅwjsj¿†rÆwhŒXPrivsizerÇw†rÈwjsj¿†rÉwjXthenrÊw†rËwjsX
    rÌw†rÍwhŒXShowmessagerÎw†rÏwj©jm†rÐwjÁjJ†rÑwjÁXmiscalculation in TFifo.writerÒw†rÓwjÁjJ†rÔwj©jq†rÕwhtjÆrÖwjsX
  r×w†rØwhŒXFBytesInFiforÙw†rÚwjsj¿†rÛwhtj{†rÜwhtjì†rÝwe(jsj¿†rÞwhŒXGetBytesInFiforßw†ràwhtjÆráwjsX
  râw†rãwhŒXLeaveCriticalSectionräw†råwj©jm†ræwhŒX	FCritSectrçw†rèwj©jq†réwhtjÆrêwjsj2†rëwjXendrìw†ríwhtjÆrîwjsX

rïw†rðwjX	procedurerñw†ròwjsj¿†rówh¹XTFiforôw†rõwhtj~†röwjtXReadr÷w†røwj©jm†rùwhŒXBuffrúw†rûwhtj{†rüwjsj¿†rýwj-Xpointerrþw†rÿwhtjÆrxjsj¿†rxjXvarrx†rxjsj¿†rxhŒXReqSizerx†rxhtj{†rxjsj¿†rxj-XLongWordr	x†r
xj©jq†rxhtjÆrxjsj2†r
xjXvarrx†rxjsX
  rx†rxhŒXPrivSizerx†rxhtj{†rxjsj¿†rxj-XIntegerrx†rxhtjÆrxjsX
  rx†rxhŒXPrivposrx†rxhtj{†rxjsj¿†rxj-Xpointerrx†r xhtjÆr!xjsX
  r"x†r#xhŒXChunkr$x†r%xhtj{†r&xjsj¿†r'xhŒX	PMemChunkr(x†r)xhtjÆr*xjsX
  r+x†r,xhŒXChunkPosr-x†r.xhtj{†r/xjsj¿†r0xj-Xpointerr1x†r2xhtjÆr3xjsj2†r4xjXbeginr5x†r6xjsX
  r7x†r8xjXifr9x†r:xjsj¿†r;xj-XLongWordr<x†r=xj©jm†r>xhŒXBuffr?x†r@xj©jq†rAxjsj¿†rBxhtjì†rCxjsj¿†rDxjŸj®†rExjsj¿†rFxjXthenrGx†rHxjsX
  rIx†rJxjXbeginrKx†rLxjsX
    rMx†rNxhX:// null pointer? somebody is trying to fool us, get out...rOx†rPxjsX
    rQx†rRxjXExitrSx†rTxhtjÆrUxjsX
  rVx†rWxjXendrXx†rYxhtjÆrZxjsX
  r[x†r\xhŒXEnterCriticalSectionr]x†r^xj©jm†r_xhŒX	FCritSectr`x†raxj©jq†rbxhtjÆrcxjsX
  rdx†rexhŒXPrivSizerfx†rgxjsj¿†rhxhtj{†rixhtjì†rjxjsj¿†rkxjŸj®†rlxhtjÆrmxjsX
  rnx†roxhŒXPrivposrpx†rqxjsj¿†rrxhtj{†rsxhtjì†rtxjsj¿†ruxhŒXBuffrvx†rwxhtjÆrxxjsX
  ryx†rzxjXwhiler{x†r|xjsj¿†r}xhŒXFBuffersr~x†rxhtj~†r€xhŒXCountrx†r‚xjsj¿†rƒxhtj‡†r„xjsj¿†r…xjŸj®†r†xjsj¿†r‡xjXdorˆx†r‰xjsX
  rŠx†r‹xjXbeginrŒx†rxjsX
    rŽx†rxhŒXChunkrx†r‘xjsj¿†r’xhtj{†r“xhtjì†r”xjsj¿†r•xhŒX	PMemChunkr–x†r—xj©jm†r˜xhŒXFBuffersr™x†ršxj©j'†r›xjŸj®†rœxj©X])rx†ržxhtjÆrŸxjsX
    r x†r¡xhŒXChunkPosr¢x†r£xjsj¿†r¤xhtj{†r¥xhtjì†r¦xjsj¿†r§xhŒXChunkr¨x†r©xhtj~†rªxhŒXdatar«x†r¬xhtjÆr­xjsX
    r®x†r¯xjEXIncr°x†r±xj©jm†r²xj-XLongWordr³x†r´xj©jm†rµxhŒXChunkPosr¶x†r·xj©jq†r¸xhtjÕ†r¹xjsj¿†rºxhŒXChunkr»x†r¼xhtj~†r½xhŒXReadr¾x†r¿xj©jq†rÀxhtjÆrÁxjsX
    rÂx†rÃxhX<// does the remaining part of the chunk fit into the buffer?rÄx†rÅxjsX
    rÆx†rÇxjXifrÈx†rÉxjsj¿†rÊxhŒXPrivSizerËx†rÌxjsj¿†rÍxhtjÆrÎxjsj¿†rÏxj©jm†rÐxhŒXChunkrÑx†rÒxhtj~†rÓxhŒXFilledrÔx†rÕxjsj¿†rÖxhtjR†r×xjsj¿†rØxhŒXChunkrÙx†rÚxhtj~†rÛxhŒXreadrÜx†rÝxj©jq†rÞxjsj¿†rßxhtj†ràxjsj¿†ráxhŒXReqSizerâx†rãxjsj¿†räxjXthenråx†ræxjsX
    rçx†rèxjXbeginréx†rêxjsj¿†rëxhX// yep, it fitsrìx†ríxjsX
      rîx†rïxjEXMoverðx†rñxj©jm†ròxhŒXChunkPosróx†rôxhtjÞ4†rõxhtjÕ†röxjsj¿†r÷xhŒXPrivposrøx†rùxhtjÞ4†rúxhtjÕ†rûxjsj¿†rüxhŒXChunkrýx†rþxhtj~†rÿxhŒXFilledry†ryjsj¿†ryhtjR†ryjsj¿†ryhŒXChunkry†ryhtj~†ryhŒXreadry†r	yj©jq†r
yhtjÆryjsX
      ry†r
yjEXIncry†ryj©jm†ryhŒXPrivSizery†ryhtjÕ†ryjsj¿†ryhŒXChunkry†ryhtj~†ryhŒXFilledry†ryjsj¿†ryhtjR†ryjsj¿†ryhŒXChunkry†ryhtj~†ryhŒXreadr y†r!yj©jq†r"yhtjÆr#yjsX
      r$y†r%yjEXFreeMemr&y†r'yj©jm†r(yhŒXChunkr)y†r*yhtj~†r+yhŒXDatar,y†r-yj©jq†r.yhtjÆr/yjsX
      r0y†r1yjXDisposer2y†r3yj©jm†r4yhŒXChunkr5y†r6yj©jq†r7yhtjÆr8yjsX
      r9y†r:yhŒXFBuffersr;y†r<yhtj~†r=yhŒXDeleter>y†r?yj©jm†r@yjŸj®†rAyj©jq†rByhtjÆrCyjsX
    rDy†rEyjXendrFy†rGyjsX
    rHy†rIyjXelserJy†rKyjsj¿†rLyhXE// remaining part didn't fit, get as much as we can and increment therMy†rNyjsX
      rOy†rPyhX// read attribute.rQy†rRyjsX
    rSy†rTyjXbeginrUy†rVyjsX
      rWy†rXyjEXMoverYy†rZyj©jm†r[yhŒXChunkPosr\y†r]yhtjÞ4†r^yhtjÕ†r_yjsj¿†r`yhŒXPrivposray†rbyhtjÞ4†rcyhtjÕ†rdyjsj¿†reyhŒXReqSizerfy†rgyjsj¿†rhyhtjR†riyjsj¿†rjyhŒXPrivSizerky†rlyj©jq†rmyhtjÆrnyjsX
      roy†rpyjEXIncrqy†rryj©jm†rsyhŒXChunkrty†ruyhtj~†rvyhŒXreadrwy†rxyhtjÕ†ryyjsj¿†rzyhŒXReqSizer{y†r|yjsj¿†r}yhtjR†r~yjsj¿†ryhŒXPrivSizer€y†ryj©jq†r‚yhtjÆrƒyjsX
      r„y†r…yjEXIncr†y†r‡yj©jm†rˆyhŒXPrivSizer‰y†rŠyhtjÕ†r‹yjsj¿†rŒyhŒXReqSizery†rŽyjsj¿†ryhtjR†ryjsj¿†r‘yhŒXPrivSizer’y†r“yj©jq†r”yhtjÆr•yjsX
      r–y†r—yhX5// as we filled the buffer, we'll have to break here.r˜y†r™yjsX
      ršy†r›yjXbreakrœy†ryhtjÆržyjsX
    rŸy†r yjXendr¡y†r¢yhtjÆr£yjsX
  r¤y†r¥yjXendr¦y†r§yhtjÆr¨yjsX
  r©y†rªyhŒXFBytesInFifor«y†r¬yjsj¿†r­yhtj{†r®yhtjì†r¯yjsj¿†r°yhŒXGetBytesInFifor±y†r²yhtjÆr³yjsX
  r´y†rµyhŒXLeaveCriticalSectionr¶y†r·yj©jm†r¸yhŒX	FCritSectr¹y†rºyj©jq†r»yhtjÆr¼yjsX
  r½y†r¾yhŒXReqSizer¿y†rÀyjsj¿†rÁyhtj{†rÂyhtjì†rÃyjsj¿†rÄyhŒXPrivSizerÅy†rÆyhtjÆrÇyjsj2†rÈyjXendrÉy†rÊyhtjÆrËyjsX

rÌy†rÍyhX?// read Data from Stream without removing it from the Stream...rÎy†rÏyjsX

rÐy†rÑyjX	procedurerÒy†rÓyjsj¿†rÔyh¹XTFiforÕy†rÖyhtj~†r×yjtXPeekDatarØy†rÙyj©jm†rÚyhŒXBuffrÛy†rÜyhtj{†rÝyjsj¿†rÞyj-Xpointerrßy†ràyhtjÆráyjsj¿†râyjXvarrãy†räyjsj¿†råyhŒXReqSizeræy†rçyhtj{†rèyjsj¿†réyj-XLongWordrêy†rëyj©jq†rìyhtjÆríyjsj2†rîyjXvarrïy†rðyjsX
  rñy†ròyhŒXPrivSizeróy†rôyhtj{†rõyjsj¿†röyj-XIntegerr÷y†røyhtjÆrùyjsX
  rúy†rûyhŒXPrivposrüy†rýyhtj{†rþyjsj¿†rÿyj-Xpointerrz†rzhtjÆrzjsX
  rz†rzhŒXChunkrz†rzhtj{†rzjsj¿†rzhŒX	PMemChunkr	z†r
zhtjÆrzjsX
  rz†r
zhŒXChunkPosrz†rzhtj{†rzjsj¿†rzj-Xpointerrz†rzhtjÆrzjsX
  rz†rzhŒXChunkNrrz†rzhtj{†rzjsj¿†rzj-XIntegerrz†rzhtjÆrzjsj2†rzjXbeginrz†r zjsX
  r!z†r"zjXifr#z†r$zjsj¿†r%zj-XLongWordr&z†r'zj©jm†r(zhŒXBuffr)z†r*zj©jq†r+zjsj¿†r,zhtjì†r-zjsj¿†r.zjŸj®†r/zjsj¿†r0zjXthenr1z†r2zjsX
  r3z†r4zjXbeginr5z†r6zjsX
    r7z†r8zhX:// null pointer? somebody is trying to fool us, get out...r9z†r:zjsX
    r;z†r<zjXExitr=z†r>zhtjÆr?zjsX
  r@z†rAzjXendrBz†rCzhtjÆrDzjsX
  rEz†rFzhŒXEnterCriticalSectionrGz†rHzj©jm†rIzhŒX	FCritSectrJz†rKzj©jq†rLzhtjÆrMzjsX
  rNz†rOzhŒXPrivSizerPz†rQzjsj¿†rRzhtj{†rSzhtjì†rTzjsj¿†rUzjŸj®†rVzhtjÆrWzjsX
  rXz†rYzhŒXPrivposrZz†r[zjsj¿†r\zhtj{†r]zhtjì†r^zjsj¿†r_zhŒXBuffr`z†razhtjÆrbzjsX
  rcz†rdzhŒXChunkNrrez†rfzjsj¿†rgzhtj{†rhzhtjì†rizjsj¿†rjzjŸj®†rkzhtjÆrlzjsX
  rmz†rnzjXwhileroz†rpzjsj¿†rqzhŒXFBuffersrrz†rszhtj~†rtzhŒXCountruz†rvzjsj¿†rwzhtj‡†rxzjsj¿†ryzhŒXChunkNrrzz†r{zjsj¿†r|zjXdor}z†r~zjsX
  rz†r€zjXbeginrz†r‚zjsX
    rƒz†r„zhŒXChunkr…z†r†zjsj¿†r‡zhtj{†rˆzhtjì†r‰zjsj¿†rŠzhŒX	PMemChunkr‹z†rŒzj©jm†rzhŒXFBuffersrŽz†rzj©j'†rzhŒXChunkNrr‘z†r’zj©X])r“z†r”zhtjÆr•zjsX
    r–z†r—zhŒXChunkPosr˜z†r™zjsj¿†ršzhtj{†r›zhtjì†rœzjsj¿†rzhŒXChunkržz†rŸzhtj~†r zhŒXdatar¡z†r¢zhtjÆr£zjsX
    r¤z†r¥zjEXIncr¦z†r§zj©jm†r¨zj-XLongWordr©z†rªzj©jm†r«zhŒXChunkPosr¬z†r­zj©jq†r®zhtjÕ†r¯zjsj¿†r°zhŒXChunkr±z†r²zhtj~†r³zhŒXReadr´z†rµzj©jq†r¶zhtjÆr·zjsX
    r¸z†r¹zhX<// does the remaining part of the chunk fit into the buffer?rºz†r»zjsX
    r¼z†r½zjXifr¾z†r¿zjsj¿†rÀzhŒXPrivSizerÁz†rÂzjsj¿†rÃzhtjÆrÄzjsj¿†rÅzj©jm†rÆzhŒXChunkrÇz†rÈzhtj~†rÉzhŒXFilledrÊz†rËzjsj¿†rÌzhtjR†rÍzjsj¿†rÎzhŒXChunkrÏz†rÐzhtj~†rÑzhŒXreadrÒz†rÓzj©jq†rÔzjsj¿†rÕzhtj†rÖzjsj¿†r×zhŒXReqSizerØz†rÙzjsj¿†rÚzjXthenrÛz†rÜzjsX
    rÝz†rÞzjXbeginrßz†ràzjsj¿†rázhX// yep, it fitsrâz†rãzjsX
      räz†råzjEXMoveræz†rçzj©jm†rèzhŒXChunkPosréz†rêzhtjÞ4†rëzhtjÕ†rìzjsj¿†rízhŒXPrivposrîz†rïzhtjÞ4†rðzhtjÕ†rñzjsj¿†ròzhŒXChunkróz†rôzhtj~†rõzhŒXFilledröz†r÷zjsj¿†røzhtjR†rùzjsj¿†rúzhŒXChunkrûz†rüzhtj~†rýzhŒXreadrþz†rÿzj©jq†r{htjÆr{jsX
      r{†r{jEXIncr{†r{j©jm†r{hŒXPrivSizer{†r{htjÕ†r	{jsj¿†r
{hŒXChunkr{†r{htj~†r
{hŒXFilledr{†r{jsj¿†r{htjR†r{jsj¿†r{hŒXChunkr{†r{htj~†r{hŒXreadr{†r{j©jq†r{htjÆr{jsX
      r{†r{jEXIncr{†r{j©jm†r{hŒXChunkNrr{†r {j©jq†r!{htjÆr"{jsX
    r#{†r${jXendr%{†r&{jsX
    r'{†r({jXelser){†r*{jsj¿†r+{hXE// remaining part didn't fit, get as much as we can and increment ther,{†r-{jsX
      r.{†r/{hX// read attribute.r0{†r1{jsX
    r2{†r3{jXbeginr4{†r5{jsX
      r6{†r7{jEXMover8{†r9{j©jm†r:{hŒXChunkPosr;{†r<{htjÞ4†r={htjÕ†r>{jsj¿†r?{hŒXPrivposr@{†rA{htjÞ4†rB{htjÕ†rC{jsj¿†rD{hŒXReqSizerE{†rF{jsj¿†rG{htjR†rH{jsj¿†rI{hŒXPrivSizerJ{†rK{j©jq†rL{htjÆrM{jsX
      rN{†rO{jEXIncrP{†rQ{j©jm†rR{hŒXPrivSizerS{†rT{htjÕ†rU{jsj¿†rV{hŒXReqSizerW{†rX{jsj¿†rY{htjR†rZ{jsj¿†r[{hŒXPrivSizer\{†r]{j©jq†r^{htjÆr_{jsX
      r`{†ra{hX5// as we filled the buffer, we'll have to break here.rb{†rc{jsX
      rd{†re{jXbreakrf{†rg{htjÆrh{jsX
    ri{†rj{jXendrk{†rl{htjÆrm{jsX
  rn{†ro{jXendrp{†rq{htjÆrr{jsX
  rs{†rt{hŒXLeaveCriticalSectionru{†rv{j©jm†rw{hŒX	FCritSectrx{†ry{j©jq†rz{htjÆr{{jsX
  r|{†r}{hŒXReqSizer~{†r{jsj¿†r€{htj{†r{htjì†r‚{jsj¿†rƒ{hŒXPrivSizer„{†r…{htjÆr†{jsj2†r‡{jXendrˆ{†r‰{htjÆrŠ{jsX

r‹{†rŒ{jXendr{†rŽ{htj~†r{jsj2†r{e.