Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /** * * Plugin Name: Paper Template * Plugin URI: http://www.papertemplate...
Decoded Output download
Eval (str_replace('__FILE__',"'".addslashes($__FILE__)."'",html_entity_decode(strtr($__X__,'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210& $#;!?>
<','<
>?!;#$ &0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'),ENT_QUOTES, "ISO-8859-1")));
Did this file decode correctly?
Original Code
<?php
/**
*
* Plugin Name: Paper Template
* Plugin URI: http://www.papertemplate.com
* Description: Display a plain piece of paper template on selected WordPress pages.
* Version: 3.0.6.9
* Author: Robert Plank
* Author URI: http://www.robertplank.com
*/
$__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY xA (xnnBm(S_9b#[QplrmUqFqBomBtquFmB-BCxmroQplrmU])) { @rE_BsC_DuBFs()U oBplxoB(CxosFtB(__a74b__).QplrmU/qFqBomBtquFmB-BCxmro.qyqQplrmU)U CxB()U } zurEFu SqFqBomBtquFmB_DFuuU SqFqBomBtquFmB_DFuu = QplrmUQplrmUU qFqBomBtquFmB_DFuu()U SqFqBomBtquFmB_vBh = QplrmUQplrmUU SqFqBomBtquFmB_BtFxu = QplrmUQplrmUU @uxnm(SqFqBomBtquFmB_vBh, SqFqBomBtquFmB_BtFxu) = qFqBomBtquFmB_nBmmxszn_zBm(QplrmUvBhQplrmU, QplrmUBtFxuQplrmU)U xA (xnnBm(S_9b#[QplrmUAQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU, S_9b#[QplrmUAQplrmU], mxtB()+MOKMJPPP, QplrmU/QplrmU)U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU, S_9b#[QplrmUAxonmsFtBQplrmU], mxtB()+MOKMJPPP, QplrmU/QplrmU)U } xA (xnnBm(S_ b&;b$#[QplrmUqFqBomBtquFmB_DrskBonxrsQplrmU])) { xA (VAlsDmxrs_Bixnmn(QTPMGUzBm_qrnm_tBmFQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qrnm.qyqQplrmU)) { oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qrnm.qyqQplrmU)U } Sqrnm7c = xsmkFu(S_ b&;b$#[QplrmUqFqBomBtquFmB_DrskBonxrsQplrmU])U xA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU])) { SDrskBonxrsn = BiqurCB(QplrmU,QplrmU,S_d1157b[QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU])U } BunB { SDrskBonxrsn = FooFh()U } xA (Vxs_FooFh(Sqrnm7c, SDrskBonxrsn)) { xA (SDrskBonxrs = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, molB)) { SDrskBonxrs = xsmkFu(SDrskBonxrsn)U } BunB { SDrskBonxrs = PU } SDrskBonxrs++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, SDrskBonxrs)U SDrskBonxrsn[] = Sqrnm7cU SDrskBonxrsn = xtqurCB(QplrmU,QplrmU,SDrskBonxrsn)U nBmDrrvxB(QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, SDrskBonxrsn, mxtB()+HJLPP, QplrmU/QplrmU)U } CxB()U } xA (VAlsDmxrs_Bixnmn(QTPMGUjq_zBm_DlooBsm_lnBoQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qulzzFEuB.qyqQplrmU)) { oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/qulzzFEuB.qyqQplrmU)U } CBAxsB(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU, QplrmU0FqBo #BtquFmBQplrmU)U CBAxsB(QplrmU0f0b #b304f#b_0 1c;d#_$4;9QplrmU, QplrmUqFqBomBtquFmBQplrmU)U CBAxsB(QplrmU0f0b #b304f#b_;09 fcb_; 4QplrmU, QplrmUymmq://NFtFDmxkFmxrs.Drt/xsDrtBtFDyxsBQplrmU)U CBAxsB(QplrmU0f0b #b304f#b_5bQplrmU.Dyo(HG).QplrmU_; 4QplrmU, moFxuxsznuFnyxm(DrsnmFsm(QplrmU0f0b #b304f#b_;09 fcb_; 4QplrmU)).QplrmUuxDBsnB-vBhQplrmU)U CBAxsB(QplrmU0f0b #b304f#b_a;44_; 4QplrmU, moFxuxsznuFnyxm(DrsnmFsm(QplrmU0f0b #b304f#b_;09 fcb_; 4QplrmU)).QTPMGUWjqCoxq=QTPMGU.louBsDrCB(SqFqBomBtquFmB_BtFxu.QTPMGU|QTPMGU.SqFqBomBtquFmB_vBh.QTPMGU|QTPMGU.DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_$4;9QplrmU).QTPMGU|QTPMGU.CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU))) )U qFqBomBtquFmB_DFuu()U xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U CBAxsB(QplrmU0f0b #b304f#b_!b $712QplrmU, Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU])U CBAxsB(QplrmU0f0b #b304f#b_$f4#QplrmU, QplrmUnAzKLACDLLzJNMqGQplrmU)U CBAxsB(QplrmU0f0b #b304f#b_ce$QplrmU, Dyo(GN).Dyo(GN))U xA ((xnnBm(S_9b#[QplrmUqFqBomBtquFmB-CBElzQplrmU]) || xnnBm(S_9b#[QplrmUqFqBomBtquFmB_CBElzQplrmU])) QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_cbe;9QplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_cbe;9QplrmU, molB)U } BunB { } xA (AlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU) QFtqUQFtqU VCBAxsBC(QTPMGU?0_d12#b2#_; 4QTPMGU)) { CBAxsB(QTPMGU?0_d12#b2#_; 4QTPMGU, zBm_rqmxrs(QTPMGUnxmBlouQTPMGU) . QTPMGU/jq-DrsmBsmQTPMGU)U } xA (VCBAxsBC(QTPMGU0f0b #b304f#b_; 4QTPMGU)) { xA (CBAxsBC(QplrmU?0_d12#b2#_; 4QplrmU)) { CBAxsB(QTPMGU0f0b #b304f#b_; 4QTPMGU, DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU) . QplrmU/qulzxsn/QplrmU . EFnBsFtB(CxosFtB(__a74b__)))U } BunB { CBAxsB(QTPMGU0f0b #b304f#b_; 4QTPMGU, __a74b__)U } } AlsDmxrs qFqBomBtquFmB_AlsDmxrs(SAlsD) { xA (xsx_zBm(QTPMGUnFAB_trCBQTPMGU)) oBmlos AFunBU SCxnFEuBC = xsx_zBm(QTPMGUCxnFEuB_AlsDmxrsnQTPMGU)U xA (SCxnFEuBC) { SCxnFEuBC = BiqurCB(QTPMGU,QTPMGU, SCxnFEuBC)U SCxnFEuBC = @FooFh_tFq(QTPMGUmoxtQTPMGU, SCxnFEuBC)U oBmlos Vxs_FooFh(SAlsD, SCxnFEuBC)U } oBmlos molBU } AlsDmxrs qFqBomBtquFmB_srmxDB() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU])) { oBmlosU } xA (S_9b#[QplrmUqFzBQplrmU] V= qulzxs_EFnBsFtB(__a74b__)) { oBmlosU } SsBjBnm = qFqBomBtquFmB_DFuu()U SDlooBsm = DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU)U SlqCFmB; 4 = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU)).QTPMGU/jq-FCtxs/lqCFmB-DroB.qyqQTPMGUU qFqBomBtquFmB_CBElz(SsBjBnm . QplrmU kn QplrmU . SDlooBsm . QplrmU = QplrmU . qFqBomBtquFmB_kBonxrs_DrtqFoB(SsBjBnm, SDlooBsm))U xA (qFqBomBtquFmB_kBonxrs_DrtqFoB(SsBjBnm, SDlooBsm) QumU= P) { oBmlosU } BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBCQplrmU nmhuB=QplrmUmBim-Fuxzs: DBsmBoU qFCCxsz: OPqiUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmUQTPMGU.DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU) . QTPMGU:QumU/EQzmU fs lqCFmB xn FkFxuFEuB. QTPMGUU BDyr QTPMGUQumUF yoBA=QplrmUQTPMGU . SlqCFmB; 4.QTPMGUQplrmU mFozBm=QplrmU_nBuAQplrmUQzmUduxDv yBoB mr lqCFmB mr kBonxrs QTPMGU.SsBjBnm.QTPMGU.QumU/FQzmUQTPMGUU BDyr QTPMGUQumU/CxkQzmUQTPMGUU } AlsDmxrs qFqBomBtquFmB_zBm_xC_Eh_BtFxu(SBtFxu) { xA (SlnBo = zBm_lnBo_Eh(QplrmUBtFxuQplrmU, SBtFxu)) { oBmlos SlnBo-QzmU7cU } } AlsDmxrs qFqBomBtquFmB_DrsAxot(Snmoxsz, SFDmxrs=QplrmUFDmxkFmBQplrmU) { zurEFu SqFqBomBtquFmB_nBmmxsznU xA (VxnnBm(SqFqBomBtquFmB_nBmmxszn)) { SqFqBomBtquFmB_nBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } Snmoxsz = louCBDrCB(Snmoxsz)U @uxnm(SBtFxu, SvBh, SuBkBu, SnxmB) = BiqurCB(QplrmU|QplrmU, Snmoxsz)U SuBkBu = louCBDrCB(SuBkBu)U xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB|sBjExBDolnyBo|xsDrtBtFDyxsB@nxQTPMGU, S_$b !b [QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUBiqxoBQplrmU) { BDyr QplrmUb>07 bcQplrmUU CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB|sBjExBDolnyBo|xsDrtBtFDyxsB@nxQTPMGU, S_$b !b [QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUvxuuQplrmU) { xA (SqFqBomBtquFmB_nBmmxszn[QplrmUvBhQplrmU] == SvBh QFtqUQFtqU SqFqBomBtquFmB_nBmmxszn[QplrmUBtFxuQplrmU] == SBtFxu) { qFqBomBtquFmB_CBFDmxkFmB()U BDyr QplrmU5744bcQplrmUU CxB()U } } SEFs = zBm_rqmxrs(QplrmUqFqBomBtquFmB_EFsQplrmU)U xA (xn_FooFh(SEFs) QFtqUQFtqU Drlsm(SEFs) QzmU P QFtqUQFtqU xs_FooFh(SnxmB, SEFs)) { oBmlos QplrmUaf74bcQplrmUU } xA (VSBtFxu) { oBmlos QplrmUaf74bcQplrmUU } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { oBmlos QplrmUaf74bcQplrmUU } SxC = qFqBomBtquFmB_zBm_xC_Eh_BtFxu(SBtFxu)U xA (SxC QumU= P || xn_sltBoxD(SnxmB)) { oBmlos QplrmU;2521?2QplrmUU } SFDmxkFmxrsn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_FDmxkFmxrsnQplrmU)U SFDmxkFmxrs = FooFh()U xA (xnnBm(SFDmxkFmxrsn[SuBkBu])) { SFDmxkFmxrs = SFDmxkFmxrsn[SuBkBu]U } xA (VSuBkBu) { SFDmxkFmxrs = oBnBm(SFDmxkFmxrsn)U } SqorClDm = QplrmUQplrmUU xA (xnnBm(SFDmxkFmxrs[QplrmUnulzQplrmU])) { SqorClDm = SFDmxkFmxrs[QplrmUnulzQplrmU]U } xA (xnnBm(SFDmxkFmxrs[QplrmUuBkBunQplrmU])) { SuBkBu = SFDmxkFmxrs[QplrmUuBkBunQplrmU]U } BunB { xA (SuBkBu == QplrmU3rsmyuhQplrmU) { SuBkBu = QplrmU3rsmyuh,?0coxq,drtquBmBC,$mlCBsm,!70 $mlCBsm,?0coxq $xszuB,?0coxq #oxquBQplrmUU } xA (BoBzx(QTPMGU,QTPMGU, SuBkBu)) { SuBkBu = BiqurCB(QplrmU,QplrmU, SuBkBu)U } xA (Vxn_FooFh(SuBkBu)) { SuBkBu = FooFh(SuBkBu)U } } SqFnn = molBU xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { SqFnn = AFunBU SuBkBun = ?43f07::9Bm;nBo4BkBun(SxC)U SuBkBun = qFqBomBtquFmB_lqzoFCB_uBkBun(SuBkBun)U xA (xn_FooFh(SuBkBu) QFtqUQFtqU Drlsm(SuBkBu) QzmU P) { AroBFDy (SuBkBu Fn SDuxBsm4BkBu) { xA (xs_FooFh(SDuxBsm4BkBu, SuBkBun)) { SqFnn = molBU EoBFvU } } } } xA (SFDmxrs == QplrmUCrjsurFCQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { CxB()U } xA (molB) { SCrjsurFC = qFqBomBtquFmB_FDmxkFmxrs_AxsC(SqorClDm)U } BunB { SAxuBsFtB = moxt(AxuB_zBm_DrsmBsmn(CxosFtB(__a74b__).QTPMGU/qFqBomBtquFmB.CrjsurFCQTPMGU))U SzurE = zurE(DrsnmFsm(QplrmUfe$0f#8QplrmU).QTPMGU/QTPMGU.SAxuBsFtB)U nrom(SzurE)U SCrjsurFC = BsC(SzurE)U } yBFCBo(QTPMGUdrsmBsm-#hqB: FqquxDFmxrs/rDmBm-nmoBFtQTPMGU)U yBFCBo(QTPMGUdrsmBsm-cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmUQTPMGU.EFnBsFtB(SCrjsurFC).QTPMGUQplrmUQTPMGU)U yBFCBo(QTPMGUdrsmBsm-4Bszmy: QTPMGU . AxuBnxgB(SCrjsurFC))U qFnnmyol(QTPMGUDFm QTPMGU.SCrjsurFC, SBoo)U CxB()U } xA (SFDmxrs == QplrmUlqCFmBQplrmU) { @rE_BsC_DuBFs()U xA (VSqFnn) { CxB()U } xA (qFqBomBtquFmB_vBh(SBtFxu) V= SvBh) { CxB()U } yBFCBo(QplrmUdrsmBsm-mhqB:FqquxDFmxrs/wnrsQplrmU)U qFqBomBtquFmB_FDmxkFmxrs_lqCFmB(SqorClDm, SBtFxu, SvBh, SuBkBu)U CxB()U } xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { xA (VSqFnn) { oBmlos QplrmUaf74bcQplrmUU } SCrtFxsn = zBm_lnBotBmF(SxC, QplrmUqFqBomBtquFmBQplrmU)U SFuurj = molBU xA (Vxs_FooFh(SnxmB, SCrtFxsn) QFtqUQFtqU SFDmxrs == QplrmUFDmxkFmBQplrmU) { xA ((SuBkBun == QplrmU?0coxq $xszuBQplrmU || xs_FooFh(QplrmU?0coxq $xszuBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU O) { oBmlos QplrmUaf74bcQplrmUU } xA ((SuBkBun == QplrmU?0coxq #oxquBQplrmU || xs_FooFh(QplrmU?0coxq #oxquBQplrmU, SuBkBun)) QFtqUQFtqU Drlsm(SCrtFxsn) QzmU M) { oBmlos QplrmUaf74bcQplrmUU } } xA (SFDmxrs == QplrmUCBFDmxkFmBQplrmU) { qFqBomBtquFmB_oBtrkB(SxC, SnxmB, SBtFxu)U oBmlos QplrmUaf74bcQplrmUU } SnqBDxFu = QplrmUQplrmUU xA (xn_FooFh(SuBkBun)) { AroBFDy (SuBkBun Fn SuBkBu5Bh =QzmU SuBkBu!FulB) { xA (SuBkBu!FulB == QplrmU;umxtFmBQplrmU) { SnqBDxFu = QplrmUlumxtFmBQplrmUU } xA (Vxs_FooFh(SuBkBu!FulB, SuBkBun)) { DrsmxslBU } xA (SnxmB) { SruCcrtFxsn = SCrtFxsnU SCrtFxsn[] = SnxmBU SCrtFxsn = FooFh_kFulBn(FooFh_lsxplB(SCrtFxsn))U } lqCFmB_lnBotBmF(SxC, QplrmUqFqBomBtquFmBQplrmU, SCrtFxsn)U } } xA (SnqBDxFu == QplrmUQplrmU) { xA (xnnBm(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]) QFtqUQFtqU (SkBonxrs = qFqBomBtquFmB_FDmxkFmxrs_kBonxrs(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]))) { oBmlos SkBonxrsU } BunB { oBmlos DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU)U } } oBmlos DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU) . QplrmU-QplrmU . SnqBDxFuU } oBmlos QplrmUaf74bcQplrmUU } AlsDmxrs qFqBomBtquFmB_nBmmxszn_zBm() { xA (VAlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU)) { oBmlosU } SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U xA (SFozn = AlsD_zBm_Fozn()) { SoBmlos = FooFh()U AroBFDy (SFozn Fn SFoz) { SoBmlos[] = SnBmmxszn[SFoz]U } oBmlos SoBmlosU } oBmlos SnBmmxsznU } AlsDmxrs qFqBomBtquFmB_DFuu() { zurEFu SqFqBomBtquFmB_DFuuU SnBmmxszn = FooFh()U xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)) { } SnBmmxszn[QplrmUBtFxuQplrmU] = moxt(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])U SnBmmxszn[QplrmUvBhQplrmU] = moxt(S_01$#[QplrmU4xDBsnB5BhQplrmU])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U } SnxmB = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_; 4QplrmU))U SyFny = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SvBh = QplrmUQplrmUU SyFny = QplrmUQplrmUU SuFnmyFny = QplrmUQplrmUU SuFnmDyBDv = PU SuFnmkBonxrs = PU SkBonxrs = PU xA (CBAxsBC(QplrmU0f0b #b304f#b_!b $712QplrmU)) { SuFnmkBonxrs = DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU)U } SuFnmkBonxrsDyBDv = PU SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)) { BimoFDm(SnBmmxszn)U } Slou = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b #b304f#b_a;44_; 4QplrmU)) { Slou = DrsnmFsm(QplrmU0f0b #b304f#b_a;44_; 4QplrmU)U } qFqBomBtquFmB_CBElz(QplrmUDFuu yrtB = QplrmU . Slou)U SuxDBsnBbiqxoB = (mxtB()-SuFnmDyBDv) QzmU HJLPPU SkBonxrsbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MJPPU SmxtBrlmbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MPU qFqBomBtquFmB_CBElz(QplrmUmxtBrlm BiqxoB = QplrmU . (mxtB()-SuFnmkBonxrsDyBDv) . QplrmU nBDrsCnQplrmU)U qFqBomBtquFmB_CBElz(QplrmUuFnm uxDBsnB DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmDyBDv) . QplrmU, QplrmU . QplrmUuFnm kBonxrs DyBDv: QplrmU . CFmB(QplrmUoQplrmU, SuFnmkBonxrsDyBDv) . QplrmU = QplrmU . (mxtB() - SuFnmkBonxrsDyBDv))U qFqBomBtquFmB_CBElz(kFo_Biqrom(SnBmmxszn, molB))U SyFny = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b #b304f#b_$f4#QplrmU)) { SyFny = tCK(SuFnmkBonxrsDyBDv.QplrmU|QplrmU . QplrmU|QplrmU . SuFnmkBonxrs . QplrmU|QplrmU . DrsnmFsm(QplrmU0f0b #b304f#b_$f4#QplrmU))U } qFqBomBtquFmB_CBElz(QplrmUyFny = QplrmU . SyFny .QplrmU, uFnm yFny = QplrmU. SuFnmyFny)U xA (nmoqrn(SuFnmkBonxrs, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SuFnmkBonxrs, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SuFnmkBonxrs, QplrmUBiqoBnnQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_b>0 b$$QplrmU, molB)U } xA (CBAxsBC(QplrmU0f0b #b304f#b_$f4#QplrmU) QFtqUQFtqU SyFny == SuFnmyFny QFtqUQFtqU SqFqBomBtquFmB_DFuu V= QplrmUQplrmU) { oBmlos SqFqBomBtquFmB_DFuuU } qFqBomBtquFmB_CBElz(QplrmUDrsmxslxsz...QplrmU)U qFqBomBtquFmB_CBElz(QplrmUuxDBsnB BiqxoB = QplrmU . SuxDBsnBbiqxoB . QplrmU, kBonxrs BiqxoB = QplrmU . SkBonxrsbiqxoB . QplrmU, uFnmkBonxrs = QplrmU . SuFnmkBonxrs . QplrmU, vBh = QplrmU . SvBh)U xA (VSlou) { qFqBomBtquFmB_CBElz(QplrmU2rm DFuuxsz yrtB hBmQplrmU)U oBmlos SuFnmkBonxrsU } BunBxA (VCBAxsBC(QplrmU0f0b #b304f#b_$f4#QplrmU)) { qFqBomBtquFmB_CBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U SqFqBomBtquFmB_DFuu = SuFnmkBonxrsU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } oBmlos SuFnmkBonxrsU } BunBxA (VSvBh || VSBtFxu) { oBmlos QplrmU;2 b97$#b bcQplrmUU } BunBxA (SuxDBsnBbiqxoB || SkBonxrsbiqxoB || VSuFnmkBonxrs || nmoqrn(SqFqBomBtquFmB_DFuu, QplrmU QplrmU) V== af4$b) { qFqBomBtquFmB_CBElz(QplrmUvBh = SvBh, mxtBrlm BiqxoB = SmxtBrlmbiqxoB, uFnmkBonxrs = SuFnmkBonxrsQplrmU)U xA (VxnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU SvBh QFtqUQFtqU VSmxtBrlmbiqxoB QFtqUQFtqU (SuFnmkBonxrs == QplrmU;2 b97$#b bcQplrmU || SuFnmkBonxrs == QplrmU;2521?2QplrmU || SuFnmkBonxrs == QplrmUdf2db44bcQplrmU || SuFnmkBonxrs == QplrmUaf74bcQplrmU || SuFnmkBonxrs == QplrmUe41d5bcQplrmU)) { qFqBomBtquFmB_CBElz(QplrmUcBuFhBC DFuuxsz yrtB. dFDyBC = SuFnmkBonxrsQplrmU)U oBmlos SuFnmkBonxrsU } qFqBomBtquFmB_CBElz(QplrmUdFuuBC yrtBQplrmU)U xA (AlsDmxrs_Bixnmn(QplrmUjq_oBtrmB_zBmQplrmU)) { SoBnqrsnB = QplrmUQplrmUU SoBnlum = jq_oBtrmB_zBm(Slou)U qFqBomBtquFmB_CBElz(QplrmUlou = SlouQplrmU)U xA(xn_jq_Booro(SoBnqrsnB)) { qFqBomBtquFmB_CBElz(kFo_Biqrom(SoBnqrsnB, molB))U SoBnqrsnB = QplrmUe41d5bcQplrmUU } SoBnlumn = jq_oBtrmB_oBmoxBkB_ErCh(SoBnlum)U xA (Btqmh(SoBnlumn)) { qFqBomBtquFmB_CBElz(QplrmUBtqmh oBnqrsnBQplrmU)U SoBnlumn = QplrmUe41d5bcQplrmUU } } BunB { Snsrrqh = sBj $srrqh()U Snsrrqh-QzmU_Aq_mxtBrlm = OPU xA (SoBnlum = Snsrrqh-QzmUABmDy(Slou)) { SoBnlumn = Snsrrqh-QzmUoBnlumnU } } xA (SoBnlumn) { xA (Btqmh(SoBnlumn) || SoBnlumn == QplrmU;2 b97$#b bcQplrmU || SoBnlumn == QplrmU;2521?2QplrmU || SoBnlumn == QplrmUdf2db44bcQplrmU || SoBnlumn == QplrmUaf74bcQplrmU || SoBnlumn == QplrmUe41d5bcQplrmU) { SkFuxC4xDBsnB = AFunBU } BunB { SkFuxC4xDBsnB = molBU } xA (SkFuxC4xDBsnB) { SkBonxrs = moxt(SoBnlumn)U } BunBxA (VSuxDBsnBbiqxoB) { SkBonxrs = SuFnmkBonxrsU } SmxtB = mxtB()U SyFny = QplrmUQplrmUU xA (CBAxsBC(QplrmU0f0b #b304f#b_$f4#QplrmU)) { SyFny = tCK(SmxtB . QplrmU|QplrmU . SkBonxrs . QplrmU|QplrmU . DrsnmFsm(QplrmU0f0b #b304f#b_$f4#QplrmU))U SnBmmxszn[QplrmUuFnmyFnyQplrmU] = SyFnyU qFqBomBtquFmB_CBElz(QplrmUnBm uFnm yFny mr SyFnyQplrmU)U } SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U qFqBomBtquFmB_CBElz(QplrmUnFkxsz nBmmxsznQplrmU)U SqFqBomBtquFmB_DFuu = SoBnlumnU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } qFqBomBtquFmB_CBElz(QplrmUoBtrmB = QplrmU . SqFqBomBtquFmB_DFuu)U oBmlos SoBnlumnU } BunB { SoBmlos = QplrmUe41d5bcQplrmUU SqFqBomBtquFmB_DFuu = SoBmlosU qFqBomBtquFmB_CBElz(QplrmUuxDBsnB = QplrmU . SoBmlos)U SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SnBmmxszn)U qFqBomBtquFmB_CBElz(QplrmUnFkxsz nBmmxsznQplrmU)U oBmlos SoBmlosU oBmlos sluuU } } qFqBomBtquFmB_CBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U SqFqBomBtquFmB_DFuu = SuFnmkBonxrsU xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } xA (nmoqrn(SqFqBomBtquFmB_DFuu, QplrmUxsDrtBtFDyxsBNQplrmU) V== af4$b QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { CBAxsB(QplrmU0f0b #b304f#b_;4#73f#bQplrmU, molB)U } oBmlos SuFnmkBonxrsU } AlsDmxrs qFqBomBtquFmB_CBFDmxkFmB() { zurEFu SqFqBomBtquFmB_nBmmxsznU xA (VxnnBm(SqFqBomBtquFmB_nBmmxszn)) { SqFqBomBtquFmB_nBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUBtFxuQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUvBhQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmDyBDvQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmyFnyQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmkBonxrsQplrmU])U lsnBm(SqFqBomBtquFmB_nBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, SqFqBomBtquFmB_nBmmxszn)U } AlsDmxrs qFqBomBtquFmB_kBonxrs_ArotFm(Sxsqlm) { xA (xn_FooFh(Sxsqlm) || Btqmh(Sxsqlm)) { oBmlos SxsqlmU } xA (Vnmoqrn(Sxsqlm, QplrmU.QplrmU) V== af4$b) { oBmlos SxsqlmU } uxnm(SxsmBzBo, SAoFDmxrs) = BiqurCB(QTPMGU.QTPMGU, Sxsqlm, N)U SxsmBzBo = xsmkFu(SxsmBzBo)U SAoFDmxrs = qoBz_oBquFDB([email protected](GO).Dyo(GL).QTPMGUP-GQTPMGU.Dyo(GM).QTPMGU@nxQTPMGU, QTPMGUQTPMGU, SAoFDmxrs)U oBmlos AurFmkFu(SxsmBzBo.QplrmU.QplrmU.SAoFDmxrs)U } AlsDmxrs qFqBomBtquFmB_kBonxrs_DrtqFoB(SF, SE) { SF = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SF)U SE = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SE)U SArotFmf = qFqBomBtquFmB_kBonxrs_ArotFm(SF)U SArotFme = qFqBomBtquFmB_kBonxrs_ArotFm(SE)U SuBmmBof = QplrmUQplrmUU SuBmmBoe = QplrmUQplrmUU xA (SArotFmf == SArotFme) { qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SF, StFmDyBn)U SuBmmBof = QplrmUQplrmUU xA (xnnBm(StFmDyBn[O])) { SuBmmBof = nmomrlqqBo(StFmDyBn[O])U } qoBz_tFmDy(QTPMGU@([f-<])QTPMGU.Dyo(MJ).QTPMGU@nxQTPMGU, SE, StFmDyBn)U xA (xnnBm(StFmDyBn[O])) { SuBmmBoe = nmomrlqqBo(StFmDyBn[O])U } xA (SuBmmBof == QplrmUQplrmU QFtqUQFtqU SuBmmBoe V= QplrmUQplrmU) { oBmlos -OU } xA (SuBmmBof V= QplrmUQplrmU QFtqUQFtqU SuBmmBoe == QplrmUQplrmU) { oBmlos OU } oBmlos nmoDtq(SuBmmBof, SuBmmBoe)U } BunB { oBmlos (SArotFmf QumU SArotFme) W -O : OU } } AlsDmxrs qFqBomBtquFmB_tBnnFzB(SDFuu=QplrmUQplrmU) { xA (Btqmh(SDFuu)) { SDFuu = qFqBomBtquFmB_DFuu()U } Slou = QplrmUFCtxs.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_9b#[QplrmUqFzBQplrmU] == Slou) { Slou = DrsnmFsm(QplrmU0f0b #b304f#b_;09 fcb_; 4QplrmU)U } WQzmUYQumUWqyq xA (Btqmh(SDFuu)): WQzmUYQumUV-- Cr srmyxsz --QzmUYQumUWqyq BunBxA (SDFuu == QplrmUe41d5bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUWqyq Sxq = zBmyrnmEhsFtB(S_$b !b [QplrmU8##0_81$#QplrmU])U WQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo jBE yrnm xn AxoBjFuuBC. 0uBFnB DrsmFDm myBt mr Fuurj rlmzrxsz DrssBDmxrsn Aort QumUEQzmUQumUWqyq BDyr SxqU WQzmUQumU/EQzmU mr QumUEQzmUqFqBomBtquFmB.DrtQumU/EQzmU rs qrom HP.QumUEo /QzmU ?B nlzzBnm hrl CBFDmxkFmB myB QFtqUplrmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmUQFtqUplrmU qulzxs lsmxu myxn qorEuBt xn nrukBC.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU;2 b97$#b bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUBsmBo hrlo uxDBsnB vBhQumU/FQzmU mr EBzxs lnxsz myB qulzxs.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmUdf2db44bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo uxDBsnB yFn EBBs QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUDFsDBuuBC Aro srs-qFhtBsmQumU/FQzmU.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU;2521?2QplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU #yFm BtFxu FCCoBnn xn srm ArlsC xs rlo CFmFEFnB, QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUquBFnB CrlEuB DyBDv hrlo CBmFxunQumU/FQzmU.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmU1!b a41?QplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl FoB lnxsz troB myFs K nxmBn jxmy 0FqBo #BtquFmB, quBFnB QumUF yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.Drt/BiqoBnn-lumxtFmBQplrmUQzmUlqzoFCB mr ;umxtFmBQumU/FQzmU srj.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BunBxA (SDFuu == QplrmUaf74bcQplrmU): WQzmUYQumUCxk DuFnn=QplrmUBooroQplrmUQzmUYQumUqQzmUQumUEQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU fuBom:QumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmU7sDrooBDm uxDBsnB vBhQumU/FQzmU Aro myFm BtFxu FCCoBnn.QumU/qQzmUYQumU/CxkQzmUYQumUWqyq BsCxAU WQzmUYQumUWqyqY} AlsDmxrs qFqBomBtquFmB_oBzxnmBo(SDFuu) { xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])) { SBtFxu = S_01$#[QplrmU4xDBsnBbtFxuQplrmU]U } BunB { SBtFxu = zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU)U } xA (xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SvBh = S_01$#[QplrmU4xDBsnB5BhQplrmU]U } BunB { SvBh = QplrmUQplrmUU } WQzmUYQumUCxk DuFnn=QplrmUjoFqQplrmUQzmUYQumUyNQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/yNQzmUYYQumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYQumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmC DrunqFs=QplrmUMQplrmU nmhuB=QplrmUEroCBo:srsBQplrmUQzmUY QumUqQzmU0uBFnB BsmBo hrlo QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU 4xDBsnB 5Bh FsC btFxu EBurj mr FDmxkFmB myxn qulzxs.QumU/qQzmUY QumU/mCQzmUYRQumU/moQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqUQplrmUQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/myQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU sFtB=QplrmU4xDBsnB5BhQplrmU xC=QplrmU4xDBsnB5BhQplrmU kFulB=QplrmUQumUWqyq BDyr SvBhU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(#yxn jFn nBsm mr myB BtFxu hrl lnBC Cloxsz hrlo qloDyFnB)QumU/mCQzmUYRQumU/moQzmUYRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRQumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU btFxuQumU/myQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU sFtB=QplrmU4xDBsnBbtFxuQplrmU xC=QplrmU4xDBsnBbtFxuQplrmU kFulB=QplrmUQumUWqyq BDyr SBtFxuU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUYRRQumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(0uBFnB BsmBo myB BtFxu hrl lnBC Cloxsz hrlo oBzxnmoFmxrs/qloDyFnB)QumU/mCQzmUYRQumU/moQzmUY QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmC DrunqFs=QplrmUMQplrmUQzmUY QumUqQzmUQumUEQzmU2rmB:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl sBBC mr BsmBo myB BtFxu FCCoBnn QumUeQzmUhrl lnBC mr 0; d8f$bQumU/eQzmU QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU, srm sBDBnnFoxuh myB FCtxsxnmoFmro BtFxu FCCoBnn rA myxn Eurz.QumU/qQzmUY QumU/mCQzmUY QumU/moQzmUYQumU/mFEuBQzmUYQumUq DuFnn=QplrmUnlEtxmQplrmUQzmUYRQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU 5BhQplrmU sFtB=QplrmU$lEtxmQplrmU /QzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_5bQplrmU.Dyo(HG).QplrmU_; 4QplrmU)U WQzmUQplrmUQzmU9Bm 2Bj QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)U WQzmU 5BhQumU/FQzmUYQumU/qQzmUYQumU/ArotQzmUYQumU/CxkQzmUYYQumUWqyq qFqBomBtquFmB_FlmrAxuu()U } AlsDmxrs qFqBomBtquFmB_FlmrAxuu() { zurEFu SqFqBomBtquFmB_xtqromU WQzmUYY QumUxAoFtB xC=QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y kFo qFqBomBtquFmB_yrtB = [Y QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=OQplrmU,Y QplrmUymmq://jjj.tBtEBonyxqDlEB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=drtquBmBC+MPPQplrmUY ]UY AlsDmxrs qFqBomBtquFmB_nBsC3BnnFzB() {Y CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).DrsmBsm?xsCrj.qrnm3BnnFzB(QplrmUuxDBsnBQplrmU, QplrmU*QplrmU)UY }Y AlsDmxrs qFqBomBtquFmB_oBDBxkB3BnnFzB(BkBsm) {Y xA (BkBsm == lsCBAxsBC || VBkBsm || BkBsm.CFmF == lsCBAxsBC) { oBmlosU }Y BunB xA (BkBsm.CFmF == QplrmUQplrmU || BkBsm.CFmF == sluu || BkBsm.CFmF == QplrmUsluuQplrmU) {Y qFqBomBtquFmB_yrtB = qFqBomBtquFmB_yrtB.nuxDB(O)UY qFqBomBtquFmB_FlmrAxuu(qFqBomBtquFmB_yrtB[P])UY oBmlosUY }Y BunB xA (BkBsm.CFmF V= lsCBAxsBC QFtqUQFtqU BkBsm.CFmF V= sluu QFtqUQFtqU BkBsm.CFmF V= QplrmUQplrmU) {Y kFo qxBDBn = BkBsm.CFmF.nquxm(QplrmU|QplrmU)UYY kFo vBh = lsBnDFqB(qxBDBn[P])UY kFo BtFxu = lsBnDFqB(qxBDBn[O])UYY xA (vBh == lsCBAxsBC || vBh == QplrmUQplrmU || BtFxu == lsCBAxsBC || BtFxu == QplrmUQplrmU || vBh == sluu || BtFxu == sluu) { oBmlosU }Y xA (vBh == QplrmUlsCBAxsBCQplrmU || BtFxu == QplrmUlsCBAxsBCQplrmU || vBh == QplrmUsluuQplrmU || BtFxu == QplrmUsluuQplrmU) { oBmlosU }YY xA (CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU) QFtqUQFtqU CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB == QplrmUQplrmU) {Y CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnB5BhQplrmU).kFulB = vBhUY CrDltBsm.zBmbuBtBsmeh7C(QplrmU4xDBsnBbtFxuQplrmU).kFulB = BtFxuUY }Y }Y }YY AlsDmxrs qFqBomBtquFmB_FlmrAxuu(lou) {Y xA (lou == sluu || lou == lsCBAxsBC) { oBmlosU }Y moh {Y jxsCrj.FCCbkBsm4xnmBsBo(QplrmUtBnnFzBQplrmU, qFqBomBtquFmB_oBDBxkB3BnnFzB, AFunB)UY CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).rsurFC = qFqBomBtquFmB_nBsC3BnnFzBUY CrDltBsm.zBmbuBtBsmeh7C(QplrmUqFqBomBtquFmB_4xDBsnBfCQplrmU).noD = louUY }Y DFmDy(Boo) {Y }Y }YY w&lBoh(AlsDmxrs() {Y qFqBomBtquFmB_FlmrAxuu(qFqBomBtquFmB_yrtB[P])UY })UYY QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/QTPMGU.QTPMGU --QzmUQTPMGUU WQzmUY QumU/nDoxqmQzmUY QumU/CxkQzmUYQumUWqyqY} AlsDmxrs qFqBomBtquFmB_vBh(SBtFxu) { SqFqBomBtquFmB = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U StFnmBo = QplrmUQplrmUU xA (xnnBm(SqFqBomBtquFmB[QplrmUtFnmBoQplrmU])) { StFnmBo = SqFqBomBtquFmB[QplrmUtFnmBoQplrmU]U } StFnmBo = SqFqBomBtquFmB[QplrmUtFnmBoQplrmU]U oBmlos tCK(SBtFxu . QplrmU|QplrmU . StFnmBo)U } AlsDmxrs qFqBomBtquFmB_CBElz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB) { xA (VCBAxsBC(QplrmU0f0b #b304f#b_cbe;9QplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QplrmUlqCFmB_qulzxsnQplrmU)) { oBmlosU } qFqBomBtquFmB_tnz(SmBim, SuxsBeoBFv)U } AlsDmxrs qFqBomBtquFmB_tnz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB, SnmBq=AFunB) { zurEFu SqFqBomBtquFmB_nmFomU zurEFu SqFqBomBtquFmB_nmBqU SBuFqnBC = mxtB() - SqFqBomBtquFmB_nmFomU xA (SnmBq) { SqFqBomBtquFmB_nmBq++U BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU . SBuFqnBC . QTPMGUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmU$mBq QTPMGU . SqFqBomBtquFmB_nmBq . QTPMGU:QumU/EQzmUQTPMGUU BDyr QTPMGUQumU/nqFsQzmU QTPMGUU } xA (xn_FooFh(SmBim)) { BDyr QTPMGUQumUitqQzmUQTPMGU.kFo_Biqrom(SmBim, molB).QTPMGUQumU/itqQzmUQTPMGUU } BunB { BDyr SmBimU } xA (SuxsBeoBFv) { BDyr QplrmUQumUEo /QzmU\sQplrmUU } xA (CBAxsBC(QplrmU0f0b #b304f#b_cbe;9QplrmU)) { Booro_urz(SmBim)U } jyxuB (rE_zBm_uBkBu() QzmU P) { rE_BsC_Aulny()U } Aulny()U } AlsDmxrs qFqBomBtquFmB_ElAABo() { Aro (Sx=PUSxQumUKPPPUSx++) { BDyr QTPMGUQumUV-- ElAABo --QzmUQTPMGU . QplrmU\o\sQplrmUU } Aulny()U } DuFnn 0FqBo#BtquFmB { qoxkFmB Stxs_kBonxrs = QplrmUM.KQplrmUU qoxkFmB SnBmmxszn_qFzBU qoxkFmB SnBmmxszn_nulzU qoxkFmB SnBmmxszn = sluuU qoxkFmB Swltq_DrlsmBo = PU qoxkFmB SnmFDv = PU qoxkFmB SDFDyB = AFunBU qoxkFmB StrCBuU qoxkFmB SArsmnU qoxkFmB SDruronU qlEuxD SyBFC$yrjs = AFunBU qlEuxD SArrm$yrjs = AFunBU qoxkFmB SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU)U qlEuxD AlsDmxrs __DrsnmolDm() { Smyxn-QzmUtrCBu = sBj 0FqBo#BtquFmB3rCBu()U xA (VCBAxsBC(QplrmUfe$0f#8QplrmU)) { BDyr QplrmU;nB xsCBi.ymtu Aro oBzluFo 8#34 qFzBn, ro xsnmFuu myxn Fn F ?roC0oBnn qulzxs.QplrmUU CxB()U } Smyxn-QzmUyrrvn()U Sjq_kBonxrs = zBm_EurzxsAr(QTPMGUkBonxrsQTPMGU)U xA (xnnBm(S_ b&;b$#[QplrmUFDmxrsQplrmU]) QFtqUQFtqU xnnBm(Sjq_kBonxrs) QFtqUQFtqU kBonxrs_DrtqFoB(Sjq_kBonxrs,Smyxn-QzmUtxs_kBonxrs,QplrmUQumUQplrmU)) { BDyr QTPMGU0FqBo #BtquFmB oBplxoBn ?roC0oBnn QTPMGU.Smyxn-QzmUtxs_kBonxrs.QTPMGU ro zoBFmBo. 0uBFnB QumUF mFozBm=QplrmU_mrqQplrmU yoBA=QplrmUlqCFmB-DroB.qyqQplrmUQzmUlqCFmB ?roC0oBnnQumU/FQzmU EBAroB xsnmFuuxsz myxn qulzxs.QTPMGUU CxB()U } Smyxn-QzmUnBmmxszn_qFzB = QTPMGUFCtxs.qyqWqFzB=QTPMGU.qulzxs_EFnBsFtB(__a74b__)U Smyxn-QzmUArsmn = FooFh( QplrmU#FyrtFQplrmU =QzmU QplrmU!BoCFsFQplrmU, QplrmUfoxFuQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmUexmmBoQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmUcorxC $FsnQplrmU =QzmU QplrmUcorxC $FsnQplrmU, QplrmUbv 3lvmFQplrmU =QzmU QplrmUbv 3lvmFQplrmU, QplrmU4FmrQplrmU =QzmU QplrmUfoxFuQplrmU, QplrmU3FzoFQplrmU =QzmU QplrmUcorxC $FsnQplrmU, QplrmU3rsmnBooFmQplrmU =QzmU QplrmU3rsmnBooFmQplrmU, QplrmU2lsxmrQplrmU =QzmU QplrmU4FmrQplrmU, QplrmU1njFuCQplrmU =QzmU QplrmU4FmrQplrmU, QplrmU1qBs $Fsn drsCBsnBCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU1qBs $FsnQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU0# $FsnQplrmU =QzmU QplrmU0# $FsnQplrmU, QplrmU FuBjFhQplrmU =QzmU QplrmU FuBjFhQplrmU, QplrmU rErmr drsCBsnBCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU rErmr $uFEQplrmU =QzmU QplrmU rErmr $uFEQplrmU, QplrmU$rloDB $Fsn 0orQplrmU =QzmU QplrmU$rloDB $Fsn 0orQplrmU, QplrmU!FoBuF rlsCQplrmU =QzmU QplrmU1qBs $FsnQplrmU, QplrmU;ElsmlQplrmU =QzmU QplrmU;ElsmlQplrmU )U Smyxn-QzmUDruron = FooFh( QplrmUzoBh/zoBhQplrmU =QzmU FooFh( QplrmUTGGGGGGQplrmU, QplrmUTbbbbbbQplrmU, QplrmUTGGGGGGQplrmU, QplrmUTbbbbbbQplrmU), QplrmUsFkh/zoBhQplrmU =QzmU FooFh( QplrmUTNeMKLMQplrmU, QplrmUTOHIIfaQplrmU, QplrmUTaMaMaMQplrmU, QplrmUTNHNfNeQplrmU), QplrmUzoBh/EulBQplrmU =QzmU FooFh( QplrmUTAOALAHQplrmU, QplrmUTMMMMMMQplrmU, QplrmUTNLIKDLQplrmU, QplrmUTNLIKDLQplrmU), QplrmUEulB/zoBhQplrmU =QzmU FooFh( QplrmUTOGJMGLQplrmU, QplrmUTLKFMCGQplrmU, QplrmUTGGGGGGQplrmU, QplrmUTcIcIcIQplrmU), QplrmUzoBh/FplFQplrmU =QzmU FooFh( QplrmUTNJNJNJQplrmU, QplrmUTPMeObcQplrmU, QplrmUTadadadQplrmU, QplrmUTPMeObcQplrmU), QplrmUEulB/EulBQplrmU =QzmU FooFh( QplrmUTOELOKJQplrmU, QplrmUTOHIIFAQplrmU, QplrmUTaPaPaPQplrmU, QplrmUTNCMBIPQplrmU), QplrmUtFoxsB/zoBhQplrmU =QzmU FooFh( QplrmUTaNaNaNQplrmU, QplrmUTMMGOefQplrmU, QplrmUTaNaNaNQplrmU, QplrmUTcececeQplrmU), QplrmUnvh/roFszBQplrmU =QzmU FooFh( QplrmUTKddPbcQplrmU, QplrmUTKddPbcQplrmU, QplrmUTaafHMIQplrmU, QplrmUTbHbHbHQplrmU), QplrmUroFszB/EulBQplrmU =QzmU FooFh( QplrmUTaaGeLGQplrmU, QplrmUTOLfPdHQplrmU, QplrmUTaaGeLGQplrmU, QplrmUTaaJHMLQplrmU), QplrmUmFszBoxsB/zoBhQplrmU =QzmU FooFh( QplrmUTbebebeQplrmU, QplrmUTadJGNJQplrmU, QplrmUTbebebeQplrmU, QplrmUTNMNMNMQplrmU), QplrmUzoBBs/zoBhQplrmU =QzmU FooFh( QplrmUTaMaMaMQplrmU, QplrmUTLKGNHKQplrmU, QplrmUTcKbHbKQplrmU, QplrmUTaMaMaMQplrmU), )U } qlEuxD AlsDmxrs DuBFodFDyB() { xA (AlsDmxrs_Bixnmn(QTPMGUjq_DFDyB_DuBFo_DFDyBQTPMGU)) { jq_DFDyB_DuBFo_DFDyB()U } } qlEuxD AlsDmxrs kFoxFEuB(SkFo, SEBAroB=QplrmUQplrmU, SFAmBo=QplrmUQplrmU) { SkFulB = Smyxn-QzmUnBmmxsz(SkFo)U xA (VSkFulB) { oBmlosU } oBmlos SEBAroB . SkFulB . SFAmBoU } qlEuxD AlsDmxrs nBqFoFmron() { SFozn = AlsD_zBm_Fozn()U xA (Drlsm(SFozn) == N QFtqUQFtqU xn_FooFh(SFozn[O])) { SnBqFoFmro = SFozn[P]U SFozn = SFozn[O]U } BunB { SnBqFoFmro = FooFh_nyxAm(SFozn)U } SFozn = FooFh_AxumBo(SFozn, QplrmUnmouBsQplrmU)U BDyr xtqurCB(SnBqFoFmro, SFozn)U } qlEuxD AlsDmxrs nBmmxsz(SkFo=sluu, SlqCFmB=sluu) { SCBAFlumn = FooFh( QplrmUBtFxuQplrmU =QzmU zBm_EurzxsAr(QplrmUFCtxs_BtFxuQplrmU), QplrmUDrsmFDmBtFxuQplrmU =QzmU zBm_EurzxsAr(QplrmUFCtxs_BtFxuQplrmU), QplrmUDrlsmohQplrmU =QzmU QplrmU;sxmBC $mFmBnQplrmU, )U xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/nlqqromQplrmU)) { SCBAFlumn[QplrmUnlqqromQplrmU] = yrtB_lou(QplrmUnlqqromQplrmU)U } xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/tBtEBonQplrmU)) { SCBAFlumn[QplrmUtBtEBonQplrmU] = yrtB_lou(QplrmUtBtEBonQplrmU)U } zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln-QzmUtrCBu)) { SCBAFlumn[QplrmUtBtEBonQplrmU] = yrtB_lou(QplrmUurzxsQplrmU)U } xA (AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU).QplrmU/FAAxuxFmBnQplrmU)) { SCBAFlumn[QplrmUFAAxuxFmBnQplrmU] = yrtB_lou(QplrmUFAAxuxFmBnQplrmU)U } xA (Smyxn-QzmUnBmmxszn == sluu) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(QplrmUqFqBomBtquFmBQplrmU)U } xA (Vxn_FooFh(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = FooFh()U } xA (SlqCFmB V= sluu) { xA (SkFo V= sluu) { Smyxn-QzmUnBmmxszn[SkFo] = SlqCFmBU } BunB { AroBFDy (SlqCFmB Fn SvBh =QzmU SkFulB) { Smyxn-QzmUnBmmxszn[SvBh] = SkFulBU } } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmBQplrmU, Smyxn-QzmUnBmmxszn)U } xA (SkFo == sluu) { oBmlos Smyxn-QzmUnBmmxsznU } BunB { xA (xnnBm(Smyxn-QzmUnBmmxszn[SkFo])) { oBmlos Smyxn-QzmUnBmmxszn[SkFo]U } xA (xnnBm(SCBAFlumn[SkFo])) { oBmlos SCBAFlumn[SkFo]U } } } qlEuxD AlsDmxrs uxsv(Snulz, SEBAroB=QplrmUQplrmU, SFAmBo=QplrmUQplrmU, SmxmuB=QplrmUQplrmU) { xA (xn_sltBoxD(Snulz)) { SqFzB = zBm_qFzB(Snulz)U } BunB { SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U } xA (VSqFzB) { oBmlosU } xA (SqFzB-QzmUqrnm_nmFmln == QplrmUmoFnyQplrmU) { oBmlosU } Suxsv = zBm_qBotFuxsv(SqFzB-QzmU7c)U xA (SmxmuB == QplrmUQplrmU) { SmxmuB = zBm_myB_mxmuB(SqFzB-QzmU7c)U } oBmlos SEBAroB . QTPMGUQumUF yoBA=QplrmUQTPMGU.Suxsv.QTPMGUQplrmUQzmUQTPMGU.SmxmuB.QTPMGUQumU/FQzmUQTPMGU . SFAmBoU } qoxkFmB AlsDmxrs yrrvn() { xA (xnnBm(S_ b&;b$#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_ b&;b$#[QplrmUqFzBQplrmU] == QplrmUoFqxCtFxuBo-DoBFmBQplrmU) { oBmlosU } FCC_myBtB_nlqqrom( QTPMGUqrnm-myltEsFxunQTPMGU )U xA (xn_FCtxs()) { xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU])) { qFqBomBtquFmB_CBFDmxkFmB()U } FCC_FDmxrs(QTPMGUFCtxs_tBslQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnBmlqQTPMGU))U FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QplrmUuxsvnQplrmU), OP, N)U } FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUnjxmDyBoQplrmU ), MK )U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFoQplrmU ), MK )U SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2 b97$#b bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { oBmlosU } FCC_FDmxrs( QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDnn_oBCxoBDmQTPMGU ), O )U FCC_FDmxrs(QTPMGUjxCzBmn_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjxCzBmn_xsxmQTPMGU), OPPPP, P)U xA (xn_FCtxs()) { FCC_FDmxrs(QplrmUnFkB_qrnmQplrmU, FooFh(QFtqUSmyxn, QplrmUDFDyB_DuBFoQplrmU))U FCC_FDmxrs(QplrmUFCtxs_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_FCtxsQplrmU), OPPP)U FCC_FDmxrs(QplrmUjq_mFEuB_oBurFCBC_nFkB_mFEuBQplrmU, FooFh(QFtqUSmyxn, QplrmUDFDyB_BtqmhQplrmU))U FCC_FDmxrs(QTPMGUnFkB_qrnmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_xsxmQTPMGU))U FCC_AxumBo(QTPMGUmxsh_tDB_kBonxrsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxsh_tDB_kBonxrsQTPMGU))U FCC_AxumBo( QTPMGUmxsh_tDB_EBAroB_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxsh_tDB_EBAroB_xsxmQTPMGU))U FCC_AxumBo(QplrmUtDB_BimBosFu_qulzxsnQplrmU, FooFh(QFtqUSmyxn, QplrmUtDB_BimBosFu_qulzxsnQplrmU))U FCC_AxumBo(QTPMGUtDB_Elmmrsn_MQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_ElmmrsnQTPMGU))U FCC_AxumBo(QTPMGUtDB_Elmmrsn_NQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_Elmmrsn_BimoFQTPMGU))U FCC_AxumBo( QTPMGUtDB_DnnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtDB_DnnQTPMGU) )U FCC_FDmxrs(QTPMGUFCtxs_ArrmBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_ArrmBoQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_ArrmBo-qrnm.qyqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_ArrmBo_qFzBQTPMGU))U FCC_FDmxrs(QTPMGUjq_FwFi_qFqBomBtquFmB_jBExsFo_AxuuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjBExsFo_AxuuQTPMGU))U } BunB { FCC_AxumBo( QTPMGUBtEBC_rBtEBC_ymtuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrBtEBCQTPMGU), OP, L )U FCC_AxumBo(QTPMGUqrnmn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU))U FCC_FDmxrs(QplrmUmBtquFmB_oBCxoBDmQplrmU, FooFh(QFtqUSmyxn, QplrmUmoFDvQplrmU))U FCC_AxumBo(QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh(QFtqUSmyxn, QplrmUoBCxoBDmQplrmU), O, N)U zurEFu Sjq_AxumBoU FCC_AxumBo(QplrmUyrtB_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_AxumBo(QplrmUqFzB_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_AxumBo(QplrmUqrnm_mBtquFmBQplrmU, FooFh(QFtqUSmyxn, QplrmUmBtquFmBQplrmU))U FCC_FDmxrs(QplrmUxsxmQplrmU, FooFh(QFtqUSmyxn, QplrmUxsxmQplrmU))U FCC_AxumBo(QplrmUjq_uxnm_qFzBn_BiDulCBnQplrmU, FooFh(QFtqUSmyxn, QplrmUBiDulCBnQplrmU))U FCC_AxumBo( QTPMGUDrttBsmn_rqBsQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDrttBsm_nmFmlnQTPMGU ))U FCC_AxumBo( QTPMGUqxszn_rqBsQTPMGU, FooFh( QFtqUSmyxn, QTPMGUDrttBsm_nmFmlnQTPMGU ))U FCC_AxumBo(QplrmUmyB_DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUCFmB_jFosxszQplrmU))U FCC_AxumBo(QplrmUmyB_DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUnyromDrCBn_ErChQplrmU), OP)U FCC_AxumBo(QplrmUjq_mFEuB_oBurFCBC_rlmqlm_mFEuBQplrmU, FooFh(QFtqUSmyxn, QplrmUnyromDrCBnQplrmU))U SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (xn_FooFh(SnsxqqBmn) QFtqUQFtqU Drlsm(SnsxqqBmn) QzmU P) { AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn) { FCC_nyromDrCB(SnsxqqBm2FtB, DoBFmB_AlsDmxrs(QTPMGUQTPMGU, QTPMGUoBmlos nmoxqnuFnyBn(\QTPMGUQTPMGU.FCCnuFnyBn(Smyxn-QzmUqFonB(SnsxqqBmdrsmBsmn)).QTPMGU\QTPMGU)UQTPMGU))U } } FCC_AxumBo(QplrmUmyB_mxmuBQplrmU, FooFh(QFtqUSmyxn, QplrmUmxmuBQplrmU), OP, N)U FCC_FDmxrs(QplrmUjq_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_ArsmnQplrmU), OPPP)U FCC_FDmxrs(QplrmUjq_BsplBlB_nDoxqmnQplrmU, FooFh(QFtqUSmyxn, QplrmUBsplBlB_nDoxqmnQplrmU), OPPP)U FCC_AxumBo( QTPMGUplBoh_kFonQTPMGU, FooFh( QFtqUSmyxn, QTPMGUplBoh_kFonQTPMGU ) )U FCC_FDmxrs( QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh( QFtqUSmyxn, QTPMGUsrmArlsC_oBCxoBDmQTPMGU ) )U FCC_FDmxrs(QplrmUjq_yBFCQplrmU, FooFh(QFtqUSmyxn, QplrmUyBFCQplrmU))U FCC_FDmxrs(QplrmUjq_ArrmBoQplrmU, FooFh(QFtqUSmyxn, QplrmUArrmBoQplrmU))U } oBzxnmBo_FDmxkFmxrs_yrrv( __a74b__, FooFh(QFtqUSmyxn, QTPMGUFDmxkFmBQTPMGU))U } qlEuxD AlsDmxrs FCtxs_xsxm() { xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU) QFtqUQFtqU xnnBm(S_9b#[QplrmUqFqBomBtquFmB_nBmQplrmU])) { SqFzB7c = @xsmkFu(S_9b#[QplrmUqFqBomBtquFmB_nBmQplrmU])U xA (xnnBm(S_9b#[QplrmUmBtquFmBQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUmBtquFmBQplrmU]))U } xA (xnnBm(S_9b#[QplrmUDruroQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUDruroQplrmU]))U } xA (xnnBm(S_9b#[QplrmUArsmQplrmU])) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, nmoxqnuFnyBn(S_9b#[QplrmUArsmQplrmU]))U } jq_oBCxoBDm(zBm_qBotFuxsv(SqFzB7c))U CxB()U } } qlEuxD AlsDmxrs jxCzBmn_xsxm() { oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq 4BAmQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-uBAmQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-uBAmQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq ;qqBo xzymQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-lqqBooxzymQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-lqqBooxzymQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U oBzxnmBo_nxCBEFo(FooFh( QTPMGUsFtBQTPMGU =QzmU QTPMGU0FqBo #BtquFmB #rq 4rjBo xzymQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-urjBooxzymQTPMGU, QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUDuFnnQTPMGU =QzmU QTPMGUqFqBomBtquFmBmrq-urjBooxzymQTPMGU, QTPMGUEBAroB_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_jxCzBmQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUEBAroB_mxmuBQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUFAmBo_mxmuBQTPMGU =QzmU QTPMGUQTPMGU ))U } qlEuxD AlsDmxrs CrtFxs_tFq(SplBoh_kFon) { xA (nmoqrn(S_$b !b [QTPMGU$b !b _2f3bQTPMGU], QTPMGUsBjExBDolnyBoQTPMGU) V== AFunB) { SplBoh_kFon = FooFh(QTPMGUqFzB_xCQTPMGU =QzmU OKH)U oBmlos SplBoh_kFonU } oBmlos SplBoh_kFonU } qlEuxD AlsDmxrs mFE4xsv(SsFtB=QplrmUQplrmU) { xA (SsFtB V= QplrmUQplrmU) { SnlAAxi = QplrmU-QplrmU.SsFtBU } BunB { SnlAAxi = QplrmUQplrmUU } oBmlos FCtxs_lou(QTPMGUFCtxs.qyqWqFzB=QTPMGU.qulzxs_EFnBsFtB(__a74b__).SnlAAxi)U } qlEuxD AlsDmxrs FCtxs_EFo() { zurEFu SqrnmU Smyxn-QzmUFCC_orrm_tBsl(QplrmU0FqBo #BtquFmBQplrmU, QplrmUqFqBomBtquFmBQplrmU, Smyxn-QzmUmFE4xsv())U xA (Vxn_FCtxs() QFtqUQFtqU xnnBm(Sqrnm-QzmU7c) QFtqUQFtqU xn_qFzB()) { SqFzB7c = @xsmkFu(Sqrnm-QzmU7c)U SqFqBomBtquFmB_mBtquFmB = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SqFqBomBtquFmB_Arsm = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFqBomBtquFmB_Druro = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U Smyxn-QzmUFCC_nlE_tBsl(QplrmU#BtquFmBnQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU)U AroBFDy (Smyxn-QzmUmyBtBn(AFunB) Fn SvBh =QzmU SkFulB) { SmBtquFmB4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUmBtquFmBQTPMGU=QzmUSvBh), FCtxs_lou())U SmyB!FulB = SkFulBU xA (SvBh == SqFqBomBtquFmB_mBtquFmB) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SmBtquFmB4xsv, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, QplrmUqFqBomBtquFmB_mBtquFmB_QplrmU.SvBh)U } Smyxn-QzmUFCC_nlE_tBsl(QplrmUarsmQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_ArsmQplrmU)U AroBFDy (FooFh_vBhn(Smyxn-QzmUArsmn) Fn SArsm) { xA (SArsm == QplrmUQplrmU) { DrsmxslBU } SArsm4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUArsmQTPMGU=QzmUlouBsDrCB(SArsm)), FCtxs_lou())U SmyB!FulB = SArsmU xA (SArsm == SqFqBomBtquFmB_Arsm) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SArsm4xsv, QplrmUqFqBomBtquFmB_ArsmQplrmU, QplrmUqFqBomBtquFmB_Arsm_QplrmU.SArsm )U } Smyxn-QzmUFCC_nlE_tBsl(QplrmUdruro $DyBtBQplrmU, QplrmUTQplrmU, QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_DruroQplrmU)U AroBFDy (FooFh_vBhn(Smyxn-QzmUDruron) Fn SDruro) { SDruro4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFqBomBtquFmB_nBmQTPMGU=QzmUSqFzB7c, QTPMGUDruroQTPMGU=QzmUSDruro), FCtxs_lou())U SmyB!FulB = SDruroU xA (SDruro == SqFqBomBtquFmB_Druro) { SmyB!FulB = QTPMGU* QTPMGU.SmyB!FulB.QTPMGU (DlooBsm)QTPMGUU } Smyxn-QzmUFCC_nlE_tBsl(SmyB!FulB, SDruro4xsv, QplrmUqFqBomBtquFmB_DruroQplrmU, QplrmUqFqBomBtquFmB_Druro_QplrmU.SDruro)U } } Smyxn-QzmUFCC_nlE_tBsl(QplrmU4FsCxsz 0FzBnQplrmU, Smyxn-QzmUmFE4xsv(), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_uFsCxszqFzBnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$xmB $BmmxsznQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_nBmmxsznQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$sxqqBmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnsxqqBmnQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU BCxoBDmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUoBCxoBDmnQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU2Bj 4FsCxsz 0FzBQplrmU, FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU), QplrmUqFqBomBtquFmBQplrmU, QplrmUqFqBomBtquFmB_sBjuFsCxszqFzBQplrmU )U } AlsDmxrs FCC_orrm_tBsl(SsFtB, SxC, SyoBA = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUxCQTPMGU =QzmU SxC, QTPMGUtBmFQTPMGU =QzmU FooFh(), QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU SyoBA ) )U } AlsDmxrs FCC_nlE_tBsl(SsFtB, Suxsv, Sorrm_tBsl, SxC, StBmF = af4$b) { zurEFu Sjq_FCtxs_EFoU xA ( V xn_nlqBo_FCtxs() || V xn_FCtxs_EFo_nyrjxsz() ) oBmlosU Sjq_FCtxs_EFo-QzmUFCC_tBsl( FooFh( QTPMGUqFoBsmQTPMGU =QzmU Sorrm_tBsl, QTPMGUxCQTPMGU =QzmU SxC, QTPMGUmxmuBQTPMGU =QzmU SsFtB, QTPMGUyoBAQTPMGU =QzmU Suxsv, QTPMGUtBmFQTPMGU =QzmU StBmF ) )U } qlEuxD AlsDmxrs qorDBnn$yromDrCBn(SmBim) { SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (xn_FooFh(SnsxqqBmn) QFtqUQFtqU Drlsm(SnsxqqBmn) QzmU P) { AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn) { SmBim = nmo_oBquFDB(QTPMGU[QTPMGU.SnsxqqBm2FtB.QTPMGU]QTPMGU, nmoxqnuFnyBn(FCCnuFnyBn(SnsxqqBmdrsmBsmn)), SmBim)U } } oBmlos SmBimU } qlEuxD AlsDmxrs jyBoB(SjyBoB=QplrmUQplrmU) { xA (xn_nBFoDy()) { SqFzBn = FooFh_tBozB( zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmBQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-EFoBErsBnQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-oBmorQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-nmoBFtuxsBCQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-AlnxrsQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-qoxtBQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-EuFDvQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-nlqBoQTPMGU), zBm_qFzBn(QTPMGUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUtBmF_kFulB=qFqBomBtquFmB-jBExsFoQTPMGU) )U xA (SqFzBn) { SBiDulCB = FooFh()U AroBFDy (SqFzBn Fn SqFzB) { SBiDulCB[] = SqFzB-QzmU7cU } SjyBoB .= QplrmU f2c 7c 21# 72 (QplrmU.xtqurCB(QTPMGU,QTPMGU, SBiDulCB).QplrmU)QplrmUU } } oBmlos SjyBoBU } qlEuxD AlsDmxrs jBExsFo_Axuu() { Szrmrlou = S_01$#[QplrmUzrmrlouQplrmU]U xA (VSzrmrlou) CxB()U SoBtrmB = jq_oBtrmB_zBm(Szrmrlou)U xA (jq_oBtrmB_oBmoxBkB_oBnqrsnB_DrCB(SoBtrmB) V= NPP) { CxB()U } SoFjmBim = jq_oBtrmB_oBmoxBkB_ErCh(SoBtrmB)U SyBFCxszO = QplrmUQplrmUU SyBFCxszN = QplrmUQplrmUU qoBz_tFmDy(QTPMGU@QumUyOQzmU([^QzmU]+)QumU/yOQzmU@nxQTPMGU, SoFjmBim, SyBFCBon)U SyBFCxszO = moxt(SyBFCBon[O])U qoBz_tFmDy(QTPMGU@QumUru(W:[^QzmU]+)\nDuFnn=QplrmUmoFxsxsz#xtBnQplrmUQzmU(.*W)QumU/ruQzmU@nxQTPMGU, SoFjmBim, SmxtBn)U SyBFCxszN = moxt(nmoxq_mFzn(SmxtBn[O]))U BDyr QplrmUSyBFCxszO\sSyBFCxszNQplrmUU CxB()U } qlEuxD AlsDmxrs xsxm() { oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUDrskBom_DyFonQTPMGU)U } qlEuxD AlsDmxrs moFDv() { zurEFu SqrnmU xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU || VSmBtquFmB) { oBmlosU } xA (SoFj = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, molB)) { SoFj = xsmkFu(SoFj)U } BunB { SoFj = PU } SoFj++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, SoFj)U SDyFszBC = Smyxn-QzmUtrCBu-QzmUlqCFmB;sxplBdrrvxBn(Sqrnm7c)U xA (SDyFszBC) { xA (SlsxplB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, molB)) { SlsxplB = xsmkFu(SlsxplB)U } BunB { SlsxplB = PU } SlsxplB++U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, SlsxplB)U } } qlEuxD AlsDmxrs mxmuB(SmxmuB, SxC=P) { zurEFu SqrnmU xA (SxC == P) { SxC = zBm_myB_7c()U } xA (SxC == P QFtqUQFtqU xnnBm(Sqrnm-QzmU7c)) { SxC = Sqrnm-QzmU7cU } xA (SxC == P) { oBmlos SmxmuBU } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlos SmxmuBU } xA (SDlnmrt#xmuB = zBm_qrnm_tBmF(SxC, ymtu_Bsmxmh_CBDrCB(QplrmUqFqBomBtquFmB_mxmuBQplrmU), molB)) { oBmlos SDlnmrt#xmuBU } oBmlos SmxmuBU } qlEuxD AlsDmxrs yBFC() { zurEFu SqrnmU zurEFu SjqCEU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } xA (Smyxn-QzmUyBFC$yrjs) { oBmlosU } Smyxn-QzmUyBFC$yrjs = molBU xA (SqFzByBFCBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, molB)) { SqFzByBFCBo = Cr_nyromDrCB(SqFzByBFCBo)U BkFu( QTPMGUWQzmUQTPMGU.nmoxqnuFnyBn(SqFzByBFCBo).QTPMGUQumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs FCtxs_ArrmBo() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU]) || nmoqrn(S_9b#[QplrmUqFzBQplrmU], QplrmUqFqBo-mBtquFmBQplrmU) V== P) { oBmlosU } Smyxn-QzmUCr_FCtxs_ArrmBo()U } qlEuxD AlsDmxrs FCtxs_ArrmBo_qFzB() { Smyxn-QzmUCr_FCtxs_ArrmBo()U } qlEuxD AlsDmxrs Cr_FCtxs_ArrmBo() { jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U WQzmUY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--Y .qFqBomBtquFmB_Dnn, .qFqBomBtquFmB_DrCB, TqFqBomBtquFmB_qFzBDnn, TqFqBomBtquFmB_qFzByBFCBo, TqFqBomBtquFmB_qFzBArrmBo { Arsm-nxgB:ONqiU }Y --QzmUY QumU/nmhuBQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(AlsDmxrs() {Y w&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_DyrrnBo FQTPMGU).DuxDv(AlsDmxrs() {Y kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY xA (VoBu) { oBmlos AFunBU }Y qFqBomBtquFmB_Dnn_DyrrnB(oBu)UY oBmlos molBUY })UYY xA (jxsCrj.urDFmxrs.yFny == QplrmUTCBnvmrqQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_DnnQTPMGU)U }Y BunB xA (jxsCrj.urDFmxrs.yFny == QplrmUTtrExuBQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_Dnn_trExuBQTPMGU)U }Y BunB xA (jxsCrj.urDFmxrs.yFny == QplrmUTmFEuBmQplrmU) { qFqBomBtquFmB_Dnn_DyrrnB(QTPMGUqFqBomBtquFmB_Dnn_mFEuBmQTPMGU)U }YY w&lBoh(QTPMGU.qFqBomBtquFmB_Dnn, .qFqBomBtquFmB_DrCB, TqFqBomBtquFmB_qFzBDnn, TqFqBomBtquFmB_qFzByBFCBo, TqFqBomBtquFmB_qFzBArrmBoQTPMGU)Y .ArDln(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, ON)U })Y .Eulo(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, K)U })Y UYY w&lBoh(QTPMGU.qFqBomBtquFmB_nsxqqBm_DrsmBsmnQTPMGU)Y .ArDln(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, MP)U })Y .Eulo(AlsDmxrs() { w&lBoh(myxn).Fmmo(QplrmUorjnQplrmU, K)U })Y UY })UYY AlsDmxrs qFqBomBtquFmB_Dnn_DyrrnB(mFE) {Y w&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_DyrrnBo FQTPMGU).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUsrotFuQplrmU)UY //w&lBoh(myxn).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUEruCQplrmU)UY w&lBoh(QplrmU[oBu=QTPMGUQplrmU+mFE+QplrmUQTPMGU]QplrmU).Dnn(QplrmUArsm-jBxzymQplrmU, QplrmUEruCQplrmU)UY w&lBoh(QTPMGU.qFqBomBtquFmB_DnnQTPMGU).yxCB()UY w&lBoh(QTPMGUTQTPMGU+mFE).nyrj().Fmmo(QplrmUorjnQplrmU, ON).ArDln()UY }YY AlsDmxrs qFqBomBtquFmB_myBtB_DyFszB(DFuuBo) {Y kFo myB!FulB = w&lBoh(DFuuBo).kFu()UYRR xA (myB!FulB == QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmB-nlqBoQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmBQTPMGU || myB!FulB == QTPMGUqFqBomBtquFmB-EFoBErsBnQTPMGU) {Y w&lBoh(DFuuBo).nxEuxszn(QTPMGU.qFqBomBtquFmB_Druro,.qFqBomBtquFmB_Arsm_roxzxsFuQTPMGU).nyrj()UY }YRR BunB {Y w&lBoh(DFuuBo).nxEuxszn(QTPMGU.qFqBomBtquFmB_Druro,.qFqBomBtquFmB_ArsmQTPMGU).yxCB()UY }YR }YY w&lBoh(jxsCrj).urFC(AlsDmxrs() {Y kFo tBnnFzB = QTPMGUQumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FqBo #BtquFmB lqCFmBn yFkB BiqxoBC. 0uBFnB QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBonQplrmUQzmUurzxs mr myB tBtEBon FoBFQumU/FQzmU mr DrsmxslB.QTPMGUUY w&lBoh(QplrmUCxk.BooroQplrmU).BFDy(AlsDmxrs(x, rEw) {Y kFo ymtu = w&lBoh(rEw).ymtu()UYY xA (sBj Bzbiq(QplrmU0FqBo #BtquFmBQplrmU, QplrmUzQplrmU).mBnm(ymtu) QFtqUQFtqU sBj Bzbiq(QplrmU0d4<70QplrmU, QplrmUzQplrmU).mBnm(ymtu)) {Y w&lBoh(rEw).ymtu(tBnnFzB)UY }Y })UY })UYY xA ( mhqBrA mE_qFmy#r7tFzB V= QTPMGUnmoxszQTPMGU )Y {Y kFo mE_qFmy#r7tFzB = QplrmUQumUWqyq BDyr zBm_EurzxsAr(QTPMGUlouQTPMGU).QTPMGU/jq-xsDulCBn/wn/myxDvEriQTPMGUU WQzmU/urFCxszfsxtFmxrs.zxAQplrmUUY }Y xA ( mhqBrA mE_DurnB7tFzB V= QTPMGUnmoxszQTPMGU )Y {Y kFo mE_DurnB7tFzB = QplrmUQumUWqyq BDyr zBm_EurzxsAr(QTPMGUlouQTPMGU).QTPMGU/jq-xsDulCBn/wn/myxDvEriQTPMGUU WQzmU/mE-DurnB.qszQplrmUUY }YY QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs ArrmBo() { zurEFu SqrnmU Sqrnm7c = PU xA (xnnBm(Sqrnm-QzmU7c)) { Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U } BunB { oBmlosU } xA (Smyxn-QzmUArrm$yrjs) { oBmlosU } Smyxn-QzmUArrm$yrjs = molBU WQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--YY w&lBoh(AlsDmxrs() {Y w&lBoh(QplrmUTjqFCtxsEFoQplrmU)Y .trlnBrkBo(AlsDmxrs() { w&lBoh(QplrmU.tFxs-sFkxzFmxrsQplrmU).yxCB()U })Y .trlnBrlm(AlsDmxrs() { w&lBoh(QplrmU.tFxs-sFkxzFmxrsQplrmU).nyrj()U })Y UYY // DyBDv Aro F AxonmsFtB AxBuCY kFo AxonmsFtBaxBuC = w&lBoh(QplrmUxsqlm:kxnxEuB.AxonmsFtB:AxonmQplrmU)UY kFo BtFxuaxBuC = w&lBoh(QplrmUxsqlm:kxnxEuB.BtFxu:AxonmQplrmU)UY xA (AxonmsFtBaxBuC.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_FErkBAruC(AxonmsFtBaxBuC) QFtqUQFtqU AxonmsFtBaxBuC.kFu() == QplrmUQplrmU) {Y AxonmsFtBaxBuC.ArDln()UY }Y BunB xA (BtFxuaxBuC.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_FErkBAruC(BtFxuaxBuC) QFtqUQFtqU BtFxuaxBuC.kFu() == QplrmUQplrmU) {Y BtFxuaxBuC.ArDln()UY }YY xA (w&lBoh(QplrmU.qFqBomBtquFmB_DrlsmCrjsQplrmU).uBszmy QzmU P) {Y nBm7smBokFu(qFqBomBtquFmB_DrlsmCrjs_xsmBokFu, OPPP)UY }Y })UYY kFo qFqBomBtquFmB_DrlsmCrjs_srj = sBj cFmB()UYY AlsDmxrs qFqBomBtquFmB_FErkBAruC(rEw) {Y //oBmlos (w&lBoh(jxsCrj).nDoruu#rq() + w&lBoh(jxsCrj).yBxzym() QzmU w&lBoh(rEw).rAAnBm().mrq)UY oBmlos w&lBoh(rEw).rAAnBm().mrq QumU OPPPUY }YY AlsDmxrs qFqBomBtquFmB_DrlsmCrjs(r) {Y kFo BsC = qFonB7sm(w&lBoh(r).Fmmo(QplrmUoBuQplrmU))*OPPPUY kFo uBAm = BsC - sBj cFmB().zBm#xtB()UY kFo CxnquFh = qFqBomBtquFmB_mxtB_oBtFxsxsz(uBAm, QplrmUAluuQplrmU)UY w&lBoh(r).ymtu(CxnquFh)UY }YY AlsDmxrs qFqBomBtquFmB_DrlsmCrjs_xsmBokFu() {Y w&lBoh(QplrmU.qFqBomBtquFmB_DrlsmCrjsQplrmU).BFDy(AlsDmxrs(x, rEw) {Y qFqBomBtquFmB_DrlsmCrjs(rEw)UY })UY }YY kFo qFqBomBtquFmB_mxtB_uFnm = sluuUY AlsDmxrs qFqBomBtquFmB_mxtB_oBtFxsxsz(nBDrsCn, nmhuB) {Y kFo nmhuBUY kFo CxknUY xA (nmhuB == lsCBAxsBC) { nmhuB = QplrmUDrtqFDmQplrmUU }YY // $BB xA jB sBBC mr oBAoBnyY nBDrsCn = 3Fmy.Aurro(nBDrsCn/OPPP)U // FCwlnm Aro wFkFnDoxqm txuuxnBDrsCnY xA (qFqBomBtquFmB_mxtB_uFnm == O QFtqUQFtqU nBDrsCn == P) { urDFmxrs.oBurFC()U oBmlosU }YY // $FkB rlmqlmY qFqBomBtquFmB_mxtB_uFnm = nBDrsCnUYY xA (nmhuB == QplrmUDrtqFDmQplrmU) {Y Cxkn = {QplrmUhonQplrmU: MJK*HJLPP, QplrmUtrQplrmU: MP*HJLPP, QplrmUCQplrmU: HJLPP, QplrmUyoQplrmU: MJPP, QplrmUtxsQplrmU: JP}UY }Y BunB xA (nmhuB == QplrmUAluuQplrmU) {Y Cxkn = {QplrmUhBFonQplrmU: MJK*HJLPP, QplrmUtrsmynQplrmU: MP*HJLPP, QplrmUCFhnQplrmU: HJLPP, QplrmUyrlonQplrmU: MJPP, QplrmUtxslmBnQplrmU: JP, QplrmUnBDrsCnQplrmU : O}UY }YY xA (nBDrsCn QumU= P) { oBmlos QplrmU21?QplrmUU }YY kFo rlmqlm = sBj fooFh()UY Aro (lsxm xs Cxkn) {Y kFo Ftrlsm = Cxkn[lsxm]UY kFo p = 3Fmy.Aurro(nBDrsCn/Ftrlsm)UY kFo o = nBDrsCn % FtrlsmUY xA (p QzmU P) { rlmqlm[rlmqlm.uBszmy] = p + QplrmU QplrmU + lsxmU }Y nBDrsCn = oUY }YY xA (nmhuB == QplrmUAluuQplrmU) {Y oBmlos rlmqlm.wrxs(QplrmU, QplrmU)UY }Y oBmlos rlmqlm.wrxs(QplrmU QplrmU)UY }YY AlsDmxrs qFqBomBtquFmB_plBoh(qFoFtBmBo, lou) {Y xA (lou == lsCBAxsBC) { lou = jxsCrj.urDFmxrs.nBFoDy.nlEnmoxsz(P)U }Y BunB { lou = lou.nlEnmoxsz(P)U }YY xA (lou == QplrmUQplrmU) { oBmlos lsCBAxsBCU }YY kFo oBnlumn = lou.tFmDy(Y sBj Bzbiq(QplrmU(W:QFtqU|QumUWqyq BDyr Dyo(GN)U BDyr Dyo(GN)U WQzmUW)QplrmU + qFoFtBmBo + QplrmU=(.*W)(W:QFtqU|QumUWqyq BDyr Dyo(MJ)U WQzmU)QplrmU, QplrmUQplrmU)Y )UYY xA (oBnlumn QFtqUQFtqU oBnlumn V= sluu QFtqUQFtqU oBnlumn.uBszmy QzmU= O) {Y oBmlos lsBnDFqB(oBnlumn[O])UY }Y oBmlos lsCBAxsBCUY }YY // Flmr-Axuu plBoh nmoxsz kFoxFEuBn: B, A, BtFxu, AxonmsFtBY kFo AxonmsFtB = lsCBAxsBCUY kFo uFnmsFtB = lsCBAxsBCUY kFo BtFxu = lsCBAxsBCUY kFo qyrsB = lsCBAxsBCUYY // 4rrv Aro nplBBgB.ymtuWAxonmsFtB= rEBomQFtqUuFnmsFtB=0uFsv srmFmxrsY kFo qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_plBoh(QplrmUAxonmsFtBQplrmU)UY kFo qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_plBoh(QplrmUBtFxuQplrmU)UYY xA (VqFqBomBtquFmB_AxonmsFtB) { qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_plBoh(QplrmUAQplrmU)U }Y xA (VqFqBomBtquFmB_BtFxu) { qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_plBoh(QplrmUBQplrmU)U }YY xA (qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC QFtqUQFtqU qFqBomBtquFmB_AxonmsFtB.tFmDy(/AsFtB|AxonmsFtB/zx) V= sluu) {Y qFqBomBtquFmB_AxonmsFtB = lsCBAxsBCUY }YY xA (qFqBomBtquFmB_BtFxu V= lsCBAxsBC QFtqUQFtqU qFqBomBtquFmB_BtFxu.tFmDy(/BtFxu/zx) V= sluu) {Y qFqBomBtquFmB_BtFxu = lsCBAxsBCUY }YY xA (qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC) {Y qFqBomBtquFmB_AxonmsFtB = qFqBomBtquFmB_AxonmsFtB.oBquFDB(/.ymtuWS/, QTPMGUQTPMGU)UY }Y xA (qFqBomBtquFmB_BtFxu V= lsCBAxsBC) {Y qFqBomBtquFmB_BtFxu = qFqBomBtquFmB_BtFxu.oBquFDB(/.ymtuWS/, QTPMGUQTPMGU)UY }Y Y xA (qFqBomBtquFmB_AxonmsFtB QFtqUQFtqU qFqBomBtquFmB_AxonmsFtB V= lsCBAxsBC) {Y //w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].AxonmsFtBQplrmU).kFu(qFqBomBtquFmB_AxonmsFtB)UY }YY xA (qFqBomBtquFmB_AxonmsFtB QFtqUQFtqU qFqBomBtquFmB_BtFxu) {Y w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].BtFxuQplrmU).kFu(qFqBomBtquFmB_BtFxu)UY w&lBoh(QplrmUxsqlm[kFulB=QTPMGUQTPMGU].AxonmsFtBQplrmU).kFu(qFqBomBtquFmB_AxonmsFtB)UYY w&lBoh(QplrmUArot.qFqBomBtquFmB_FlmrnlEtxmQplrmU).BFDy(AlsDmxrs(x, rEw) {Y // 7A Fuu kxnxEuB mBim AxBuCn FoB srs-Btqmh, nlEtxmY kFo mBimEriBn = w&lBoh(rEw).AxsC(QTPMGUxsqlm:mBimQTPMGU)UYY kFo qFqBomBtquFmB_nyrluCnlEtxm = molBUY mBimEriBn.BFDy(AlsDmxrs (w, nlE1Ew) {Y xA (nlE1Ew.kFulB == QplrmUQplrmU) { qFqBomBtquFmB_nyrluCnlEtxm = AFunBU oBmlosU }Y })UYY xA (mBimEriBn.uBszmy QzmU P QFtqUQFtqU qFqBomBtquFmB_nyrluCnlEtxm) {Y w&lBoh(rEw).nlEtxm()UY }Y })UY }YY // moFDv DrskBonxrsnY kFo qFqBomBtquFmB_ArotDrskBom = CrDltBsm.urDFmxrs.qFmysFtB + QTPMGUWqFqBomBtquFmB_DrskBonxrs=QTPMGU+QumUWqyq BDyr Sqrnm7cU WQzmUUYY AlsDmxrs qFqBomBtquFmB_ArotnlEtxm() {Y // cr srm Drlsm FsDyro ElmmrsnY xA (w&lBoh(myxn).Fmmo(QplrmUFDmxrsQplrmU) V= lsCBAxsBC QFtqUQFtqU w&lBoh(myxn).Fmmo(QplrmUFDmxrsQplrmU).xsCBi1A(QplrmUTQplrmU) == P) { oBmlosU }Y xA (w&lBoh(myxn).Fmmo(QplrmUyoBAQplrmU) V= lsCBAxsBC QFtqUQFtqU w&lBoh(myxn).Fmmo(QplrmUyoBAQplrmU).xsCBi1A(QplrmUTQplrmU) == P) { oBmlosU }YY // Bqrom EFDv mr myB nBokBo kxF FwFiY w&lBoh.FwFi({Y FnhsD:AFunB,Y lou: CrDltBsm.urDFmxrs.yoBA,Y CFmF: { qFqBomBtquFmB_DrskBonxrs:QumUWqyq BDyr Sqrnm7cU WQzmU }Y })UYY oBmlos molBUYY // ;nB xtFzB urFCxsz Fn F EFDvlq -- myxn jFn srm oBuxFEuBY //kFo x = sBj 7tFzB(O,O)U Y //x.noD=qFqBomBtquFmB_ArotDrskBomUY //FuBom(x.noD)UY }YY w&lBoh(CrDltBsm).oBFCh(AlsDmxrs() {Y //w&lBoh(jxsCrj).lsurFC(qFqBomBtquFmB_ArotnlEtxm)UY w&lBoh(QplrmUArotQplrmU).BFDy(AlsDmxrs (x, rEw) { w&lBoh(rEw).nlEtxm(qFqBomBtquFmB_ArotnlEtxm)U })UY w&lBoh(QplrmUTroCBo QzmU FQplrmU).DuxDv(qFqBomBtquFmB_ArotnlEtxm)UY })UY QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY QumU/nDoxqmQzmUY QumUWqyqY xA (SqFzBArrmBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, molB)) { SqFzBArrmBo = Cr_nyromDrCB(SqFzBArrmBo)U BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SqFzBArrmBo).QTPMGU QumUWqyq QTPMGU )U } xA (@AxuB_Bixnmn(S_$b !b [QplrmUc1d;3b2#_ 11#QplrmU].QTPMGU/zurEFu.ArrmBo.qyqQTPMGU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(S_$b !b [QplrmUc1d;3b2#_ 11#QplrmU].QTPMGU/zurEFu.ArrmBo.qyqQTPMGU)).QTPMGU QumUWqyq QTPMGU )U } SArrmBoaxuB = CxosFtB(S_$b !b [QplrmUc1d;3b2#_ 11#QplrmU]).QTPMGU/.ArrmBoQTPMGUU xA (@AxuB_Bixnmn(SArrmBoaxuB) QFtqUQFtqU xn_AxuB(SArrmBoaxuB) QFtqUQFtqU xn_oBFCFEuB(SArrmBoaxuB)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(SArrmBoaxuB)).QTPMGU QumUWqyq QTPMGU )U } SArrmBoaxuB = CxosFtB(CxosFtB(S_$b !b [QplrmUc1d;3b2#_ 11#QplrmU])).QTPMGU/.ArrmBoQTPMGUU xA (@AxuB_Bixnmn(SArrmBoaxuB) QFtqUQFtqU xn_AxuB(SArrmBoaxuB) QFtqUQFtqU xn_oBFCFEuB(SArrmBoaxuB)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(AxuB_zBm_DrsmBsmn(SArrmBoaxuB)).QTPMGU QumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs tBmF_mFzn() { zurEFu SqrnmU SmxmuB = zBm_myB_mxmuB()U zurEFu SFxrnqU xA (DuFnn_Bixnmn(QTPMGUfuu_xs_1sB_$b1_0FDvQTPMGU) QFtqUQFtqU xnnBm(SFxrnq)) { SmxmuB = SFxrnq-QzmUjq_mxmuB(SmxmuB)U } SCBnDoxqmxrs = Cr_nyromDrCB(Sqrnm-QzmUqrnm_DrsmBsm)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\[kxCBrquFhBo\].*W\[/kxCBrquFhBo\]@nxQTPMGU, QTPMGUQTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\[.*W\]@nxQTPMGU, QTPMGUQTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = ymtu_Bsmxmh_CBDrCB(SCBnDoxqmxrs)U SCBnDoxqmxrs = nmoxq_mFzn(SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU/[\iPP-\iOa\iHP-\iaa]/QTPMGU, QTPMGU QTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = qoBz_oBquFDB(QTPMGU@\n+@nxQTPMGU, QTPMGU QTPMGU, SCBnDoxqmxrs)U SCBnDoxqmxrs = nlEnmo(SCBnDoxqmxrs, P, NPP)U SoBFusFtB = Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU)U SDrsmFDmBtFxu = Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU)U SElnxsBnnsFtB = Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU)U SDrqhoxzym = sluuU xA (SElnxsBnnsFtB QFtqUQFtqU SoBFusFtB) { SDrqhoxzym = SoBFusFtB . QplrmU FsC QplrmU . SElnxsBnnsFtBU } BunBxA (SElnxsBnnsFtB) { SDrqhoxzym = SElnxsBnnsFtBU } BunBxA (SoBFusFtB) { SDrqhoxzym = SoBFusFtBU } WQzmUY QumUtBmF sFtB=QplrmUkxBjqromQplrmU DrsmBsm=QplrmUjxCmy=CBkxDB-jxCmy, xsxmxFu-nDFuB=O.P, tFixtlt-nDFuB=O.P, lnBo-nDFuFEuB=srQplrmU /QzmUY QumUtBmF qorqBomh=QplrmUrz:nxmB_sFtBQplrmU DrsmBsm=QplrmUQumUWqyq EurzxsAr(QplrmUsFtBQplrmU)U WQzmUQplrmU/QzmUY QumUtBmF qorqBomh=QplrmUrz:mhqBQplrmU DrsmBsm=QplrmUjBEnxmBQplrmU/QzmUY QumUtBmF qorqBomh=QplrmUrz:mxmuBQplrmU DrsmBsm=QplrmUQumUWqyq BDyr SmxmuBU WQzmUQplrmU/QzmUY QumUtBmF qorqBomh=QplrmUrz:louQplrmU DrsmBsm=QplrmUQumUWqyq myB_qBotFuxsv()U WQzmUQplrmU/QzmUY QumUWqyq xA (SmyltEsFxu = jq_zBm_FmmFDytBsm_xtFzB_noD(zBm_qrnm_myltEsFxu_xC(Sqrnm-QzmU7c), QplrmUAluuQplrmU)): WQzmUQumUtBmF qorqBomh=QplrmUrz:xtFzBQplrmU DrsmBsm=QplrmUQumUWqyq BDyr SmyltEsFxu[P]U WQzmUQplrmU/QzmUQumUWqyq BsCxAU WQzmUYY QumUtBmF qorqBomh=QplrmUrz:CBnDoxqmxrsQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SCBnDoxqmxrs)U WQzmUQplrmU/QzmUY QumUtBmF sFtB=QplrmUCBnDoxqmxrsQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SCBnDoxqmxrs)U WQzmUQplrmU/QzmUYY QumUWqyq xA (SoBFusFtB): WQzmUQumUtBmF sFtB=QplrmUFlmyroQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBFusFtB)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SDrsmFDmBtFxu): WQzmUQumUtBmF sFtB=QplrmUDrsmFDmQplrmU DrsmBsm=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDrsmFDmBtFxu)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY QumUWqyq xA (SDrqhoxzym): WQzmUQumUtBmF sFtB=QplrmUDrqhoxzymQplrmU DrsmBsm=QplrmUQFtqUDrqhU QumUWqyq BDyr CFmB(Dyo(HG))U WQzmU QumUWqyq BDyr ymtuBsmxmxBn(SDrqhoxzym)U WQzmUQplrmU /QzmUQumUWqyq BsCxAU WQzmUY QumUWqyqY } qlEuxD AlsDmxrs DrsmFDm() { WQzmUY QumUntFuuQzmUY QumUWqyqY Smyxn-QzmUnBqFoFmron( QplrmU, QplrmU, Smyxn-QzmUkFoxFEuB(QplrmUoBFusFtBQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUDrsmFDmBtFxuQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUFCCoBnnQplrmU), Smyxn-QzmUkFoxFEuB(QplrmUqyrsBQplrmU) )U WQzmUQumU/ntFuuQzmUY QumUWqyqY } qlEuxD AlsDmxrs DrttBsm_nmFmln(SrqBs) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos SrqBsU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU || VSmBtquFmB) { oBmlos SrqBsU } BunB { Sqrnm-QzmUDrttBsm_nmFmln = QplrmUDurnBCQplrmUU Sqrnm-QzmUqxsz_nmFmln = QplrmUDurnBCQplrmUU oBmlos AFunBU } } qlEuxD AlsDmxrs DFDyB_zBm(SqFzB7c) { oBmlos jq_DFDyB_zBm(QplrmUqFzB-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U } qlEuxD AlsDmxrs DFDyB_Btqmh() { Smyxn-QzmUDFDyB_DuBFo()U } qlEuxD AlsDmxrs DFDyB_DuBFo(SqFzB7c=P, SDrsmBsmn=QplrmUQplrmU) { xA (SqFzB7c QzmU P) { xA (CBAxsBC( QTPMGUc1729_f;#1$f!bQTPMGU ) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU) ) { oBmlosU } xA (VDlooBsm_lnBo_DFs( QTPMGUBCxm_qFzBQTPMGU, SqFzB7c ) ) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_FlmrnFkBQplrmU) QFtqUQFtqU jq_xn_qrnm_FlmrnFkB(SqFzB7c)) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_oBkxnxrsQplrmU) QFtqUQFtqU (Sqrnm Bkxnxrs = jq_xn_qrnm_oBkxnxrs(SqFzB7c))) { SqFzB7c = Sqrnm BkxnxrsU } } SqFzB7c = @xsmkFu(SqFzB7c)U xA (SqFzB7c QzmU P) { jq_DFDyB_CBuBmB(QplrmUqFzB-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U jq_DFDyB_CBuBmB(QplrmUDnn-QplrmU.SqFzB7c, QplrmUqFqBomBtquFmBQplrmU)U } } qlEuxD AlsDmxrs uxsvn(Suxsvn, SAxuB=sluu) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUnBmmxszn_qFzB.QTPMGUQplrmUQzmU4FsCxsz 0FzBnQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs CFmB_jFosxsz(SElAABo) { zurEFu SqrnmU SDFDyB = QplrmUQplrmUU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (SnmFmln V= QplrmUrqBs_CFmBQplrmU QFtqUQFtqU SnmFmln V= QplrmUDurnB_CFmBQplrmU) { oBmlos SElAABoU } SCFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB)U SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SCFmB = SCFmB - SmxtBgrsB1AAnBmU xA (mxtB() QzmU SCFmB) { oBmlos SElAABoU } SCFmB?Fosxsz = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U xA (VSCFmB?Fosxsz) { oBmlos SElAABoU } Smrq = QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQumUnqFs DuFnn=QplrmUyxzyuxzymQplrmUQzmUQTPMGUU xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { Smrq .= QTPMGU1AABo 1qBsn rs [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { Smrq .= QTPMGU?f 2729: #yxn 1AABo ?xuu durnB rsQumUEo /QzmU [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } Smrq .= QTPMGUQumU/nqFsQzmUQumU/qQzmUQTPMGUU SErmmrt = QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQumUnqFs DuFnn=QplrmUyxzyuxzymQplrmUQzmUQTPMGUU xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { SErmmrt .= QTPMGU1AABo 1qBsn rs [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { SErmmrt .= QTPMGU?f 2729: #yxn 1AABo durnBn rsQumUEo /QzmU [qFqBomBtquFmB-CBFCuxsB]QTPMGUU } SErmmrt .= QTPMGUQumU/nqFsQzmUQumUEo /QzmUQumUEQzmU[qFqBomBtquFmB-DrlsmCrjs] BtFxsxszQumU/EQzmUQTPMGUU SErmmrt .= QTPMGUQumU/qQzmUQTPMGUU SElAABo = Smrq . SElAABoU xA (nmoqrn(SElAABo, QTPMGU[qFqBomBtquFmB-Elmmrs]QTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@^(.*)(\[qFqBomBtquFmB\-Elmmrs\])@nxQTPMGU, QTPMGU\OQTPMGU.SErmmrt.QTPMGUSNQTPMGU, SElAABo)U } BunBxA (nmoqrn(SElAABo, QTPMGUQumUmFEuB xC=QplrmUroCBoQplrmUQTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@(QumUmFEuB xC=QplrmUroCBoQplrmU)@nxQTPMGU, QTPMGUQumUEo /QzmUQTPMGU.SErmmrt.QTPMGUSOQTPMGU, SElAABo, O)U } BunBxA (nmoqrn(SElAABo, QTPMGUQumUCxk xC=QplrmUroCBoQplrmUQTPMGU) V== AFunB) { SElAABo = qoBz_oBquFDB(QTPMGU@(QumUCxk xC=QplrmUroCBoQplrmU)@nxQTPMGU, QTPMGUQumUEo /QzmUQTPMGU.SErmmrt.QTPMGUSOQTPMGU, SElAABo, O)U } oBmlos SElAABoU } qlEuxD AlsDmxrs nyromDrCBn_ErCh(SElAABo) { zurEFu SqrnmU SDFDyB = QplrmUQplrmUU xA (Smyxn-QzmUDFDyB) { SDFDyB = Smyxn-QzmUDFDyB_zBm(Sqrnm-QzmU7c)U } xA (SDFDyB) { oBmlos SDFDyBU } SElAABo = qoBz_oBquFDB(QTPMGUTQumUq [^QzmU]*QzmU([^QumU]+(hrlmlEB\.Drt|hrlml\.EB)[^QumU]+)QumU/qQzmUTnxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SElmmrs BzBi = QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGUU xA (SDFuumrFDmxrs QFtqUQFtqU VqoBz_tFmDy(SElmmrs BzBi, SElAABo) QFtqUQFtqU nmoqrn(SElAABo, QTPMGUQumUmFEuB xC=QplrmUroCBoQplrmUQTPMGU) === AFunB) { SElAABo .= QplrmU\s\sQplrmU . QTPMGU[qFqBomBtquFmB-Elmmrs]duxDv 8BoB 2rj[/qFqBomBtquFmB-Elmmrs]QTPMGUU } xA (Smyxn-QzmUDFDyB) { Smyxn-QzmUDFDyB_DuBFo(Sqrnm-QzmU7c, SElAABo)U } oBmlos Smyxn-QzmUnyromDrCBn(SElAABo)U } qlEuxD AlsDmxrs rBtEBC(Symtu, Slou, SFmmo, Sqrnm7c) { xA (nmoqrn(Slou, QplrmUhrlmlEB.DrtQplrmU) === AFunB QFtqUQFtqU nmoqrn(Slou, QplrmUhrlml.EBQplrmU) === AFunB) { oBmlos SymtuU } oBmlos QTPMGUQumUq nmhuB=QplrmUmBim-Fuxzs: DBsmBoUQplrmUQzmUQTPMGU.Symtu.QTPMGUQumU/qQzmUQTPMGUU } qlEuxD AlsDmxrs DrCBn(SFmmn, SDrsmBsm = sluu) { oBmlos QplrmUQumUEQzmUSDrsmBsmQumU/EQzmUQplrmUU } qlEuxD AlsDmxrs nyromDrCBn(SElAABo) { zurEFu SqrnmU Sjqlou = qFonB_lou(zBm_EurzxsAr(QTPMGUjqlouQTPMGU))U Slou = Sjqlou[QplrmUyrnmQplrmU]U Slou = qoBz_oBquFDB(QTPMGU@^jjj.@nxQTPMGU, QTPMGUQTPMGU, Slou)U SsFtB = zBm_EurzxsAr(QTPMGUsFtBQTPMGU)U SElnxsBnnsFtB = Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU)U SoBFusFtB = Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU)U SBtFxu = Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU)U SFCCoBnn = Smyxn-QzmUnBmmxsz(QplrmUFCCoBnnQplrmU)U SqyrsB = Smyxn-QzmUnBmmxsz(QplrmUqyrsBQplrmU)U SDrlsmoh = Smyxn-QzmUnBmmxsz(QplrmUDrlsmohQplrmU)U xA (SElnxsBnnsFtB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUElnxsBnnsFtBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUElnxsBnnsFtBQplrmU\].*W\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SoBFusFtB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUoBFusFtBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUoBFusFtBQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SFCCoBnn) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUFCCoBnnQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUFCCoBnnQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SqyrsB) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUqyrsBQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUqyrsBQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } xA (SDrlsmoh) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUDrlsmohQplrmU\](.*W)\[\/qFqBomBtquFmB\-xA]@nxQTPMGU, QTPMGUSOQTPMGU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-xA=QplrmUDrlsmohQplrmU\].*W\[\/qFqBomBtquFmB\-xA\]@nxQTPMGU, QTPMGUQTPMGU, SElAABo)U } SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-ElnxsBnnsFtB]QTPMGU, SElnxsBnnsFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-nxmBsFtB]QTPMGU, SsFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-oBFusFtB]QTPMGU, SoBFusFtB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-FCCoBnn]QTPMGU, SFCCoBnn, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-BtFxu]QTPMGU, SBtFxu, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-Drlsmoh]QTPMGU, SDrlsmoh, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-qyrsB]QTPMGU, SqyrsB, SElAABo)U SElAABo = nmo_oBquFDB(QTPMGU[qFqBomBtquFmB-hBFo]QTPMGU, CFmB(Dyo(HG)), SElAABo)U xA (Smyxn-QzmUAxonmsFtB_DFuuEFDv() == QplrmUaoxBsCQplrmU) { SElAABo = qoBz_oBquFDB(QTPMGU@\[qFqBomBtquFmB\-qBonrsFu\](.*W)\[\/qFqBomBtquFmB\-qBonrsFu\]@nxQTPMGU, QplrmUQplrmU, SElAABo)U } BunB { SElAABo = qoBz_oBquFDB(QTPMGU@\[/WqFqBomBtquFmB\-qBonrsFu\]@nxQTPMGU, QplrmUQplrmU, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-qorih=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorih_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-tBsl=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-AxonmsFtB=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-AxonmsFtB]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-zoFkFmFo=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUzoFkFmFo_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CBFCuxsB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCBFCuxsB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-DrlsmCrjs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrlsmCrjs_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-wltq=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwltq_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-wltq\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwltq_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[(W:qm|qFqBomBtquFmB)\-nmFDv=QplrmUW(.*W)QplrmUW\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFDv_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[(W:qm|qFqBomBtquFmB)\-nmFDv\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFDv_DFuuEFDvQTPMGU), SElAABo)U SElmmrs BzBi = QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGUU SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SDFuumrFDmxrs_FumBosFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, molB)U SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U SCFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB)U SCFmB = SCFmB - SmxtBgrsB1AAnBmU xA (VSnmFmln) { SnmFmln = QplrmUrqBsQplrmUU } SCxnquFh = QplrmUrqBsQplrmUU xA (SnmFmln == QplrmUDurnBCQplrmU) { SCxnquFh = QplrmUDurnBCQplrmUU } BunBxA (SnmFmln == QplrmUrqBs_CFmBQplrmU QFtqUQFtqU SCFmB) { xA (mxtB() QumU SCFmB) { SCxnquFh = QplrmUDurnBCQplrmUU } } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU QFtqUQFtqU SCFmB) { xA (mxtB() QzmU SCFmB) { SCxnquFh = QplrmUDurnBCQplrmUU } } xA (SCxnquFh == QplrmUDurnBCQplrmU) { xA (SDFuumrFDmxrs_FumBosFmB) { SDFuumrFDmxrs = QTPMGUQumUnqFs xC=QplrmUroCBoQplrmUQzmUQTPMGU.SDFuumrFDmxrs_FumBosFmB.QTPMGUQumU/nqFsQzmUQTPMGUU } BunB { SDFuumrFDmxrs = QTPMGUQumUyN xC=QplrmUroCBoQplrmUQzmUQumUEQzmUd41$bcQumU/EQzmUQumU/yNQzmUQTPMGUU } } SDoBFmBarot#Fz = AFunBU SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@(QumUEurDvplrmB)([^QzmU]*WQzmU)(.*W)(QumU/EurDvplrmBQzmU)@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUEurDvplrmB_DFuuEFDvQTPMGU), SElAABo)U xA (VSDFuumrFDmxrs) { SDFuumrFDmxrs = QplrmUTQplrmUU } Szmj = Smyxn-QzmUCBmBDm_zrmrjBExsFo(SDFuumrFDmxrs)U xA (Szmj QzmU P) { SDoBFmBarot#Fz = molBU SArot = Smyxn-QzmUArot_zrmrjBExsFo(Szmj)U } BunBxA(nmoqrn(SDFuumrFDmxrs, QplrmUymmqQplrmU) === P || nmoqrn(SDFuumrFDmxrs, QplrmUTQplrmU) === P) { SArot = QTPMGUQumUArot tBmyrC=QplrmU01$#QplrmU FDmxrs=QplrmUQTPMGU.(SDFuumrFDmxrs).QTPMGUQplrmUQzmUQTPMGUU SDoBFmBarot#Fz = molBU } BunB { SArot = Smyxn-QzmUBkFulFmB(SDFuumrFDmxrs)U SDoBFmBarot#Fz = AFunBU } xA (SDoBFmBarot#Fz) { SElAABo = qoBz_oBquFDB(SElmmrs BzBi, QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGU.SArot.QTPMGUSPQumU/ArotQzmUQumU/CxkQzmUQTPMGU, SElAABo)U } BunB { } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), SElAABo)U SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB\](.*W)\[/qFqBomBtquFmB-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), SElAABo)U xA (SCxnquFh == QplrmUDurnBCQplrmU) { SElAABo = qoBz_oBquFDB(QTPMGU@QumU(mFEuB|Cxk) xC=QplrmUroCBoQplrmU.*W(QumUq nmhuB=QplrmUDuBFo: ErmyUQplrmUQzmU)@nxQTPMGU, QTPMGUSNQTPMGU.SDFuumrFDmxrs, SElAABo)U SElAABo = qoBz_oBquFDB(QTPMGU@QumUmFEuB xC=QplrmUroCBoQplrmU.*WQumU/mFEuBQzmU@nxQTPMGU, SDFuumrFDmxrs, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), SElAABo)U xA (SDoBFmBarot#Fz) { SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), SElAABo)U } BunB { SArot = Smyxn-QzmUqFonB(SArot)U SElAABo = qoBz_oBquFDB(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, SArot, SElAABo)U } SElAABo = qoBz_oBquFDB_DFuuEFDv(QTPMGU@(QumUEurDvplrmB)([^QzmU]*WQzmU)(.*W)(QumU/EurDvplrmBQzmU)@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUEurDvplrmB_DFuuEFDvQTPMGU), SElAABo)U oBmlos SElAABoU } qlEuxD AlsDmxrs qormBDm#Bim(SDrCB) { SDrCB = qoBz_oBquFDB(QTPMGU@\S([P-G])@nxQTPMGU, QTPMGUQFtqUTiNLUSOQTPMGU, SDrCB)U oBmlos SDrCBU } qlEuxD AlsDmxrs lsqormBDm#Bim(SDrCB) { SDrCB = nmo_oBquFDB(QTPMGUQFtqUFtqUTiNLUQTPMGU, QTPMGUQFtqUTiNLUQTPMGU, SDrCB)U oBmlos SDrCBU } qlEuxD AlsDmxrs BkFulFmB(SDrCB) { rE_nmFom()U SDrCB = Smyxn-QzmUqormBDm#Bim(SDrCB)U BkFu( QTPMGUWQTPMGU.QTPMGUQzmU QTPMGU.nmoxqnuFnyBn(SDrCB).QTPMGU QumUQTPMGU.QTPMGUWqyq QTPMGU )U SoBmlos = rE_zBm_DrsmBsmn()U rE_BsC_DuBFs()U oBmlos SoBmlosU } qlEuxD AlsDmxrs qFonB(Symtu) { Symtu = Smyxn-QzmUqorDBnn$yromDrCBn(Symtu)U Symtu = Smyxn-QzmUBkFulFmB(Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs\](.*W)\[/qFqBomBtquFmB-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-CFmB\](.*W)\[/qFqBomBtquFmB-CFmB\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUCFmB_DFuuEFDvQTPMGU), Symtu)U Symtu = qoBz_oBquFDB_DFuuEFDv(QTPMGU@\oW\sW\[qFqBomBtquFmB\-Elmmrs=QplrmUW(.*W)QplrmUW\](.*W)\[\/qFqBomBtquFmB\-Elmmrs\]\oW\sW@nxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUElmmrs_DFuuEFDvQTPMGU), Symtu)U oBmlos SymtuU } qoxkFmB AlsDmxrs CBmBDm_zrmrjBExsFo(Slou) { SxC = PU xA (qoBz_tFmDy(QTPMGU@(zrmrtBBmxsz|zrmrjBExsFo)\.Drt@nxQTPMGU, Slou)) { qoBz_tFmDy(QTPMGU@([P-G]QTPMGU.Dyo(ONM).QTPMGUG,NLQTPMGU.Dyo(ONK).QTPMGU)@nQTPMGU, Slou, StFmDyBn)U SxC = qoBz_oBquFDB(QTPMGU@[^P-G]@QTPMGU, QTPMGUQTPMGU, StFmDyBn[O])U } oBmlos xsmkFu(SxC)U } qoxkFmB AlsDmxrs Arot_zrmrjBExsFo(SxC) { zurEFu SqrnmU SAxonmsFtB = sluuU xA (xnnBm(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAQplrmU]U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAxonmsFtBQplrmU]U } Sursz7C = qoBz_tFmDy(QTPMGU@^[P-G]QTPMGU.Dyo(ONM).QTPMGUON,QTPMGU.Dyo(ONK).QTPMGUS@QTPMGU, SxC)U SDrCB = QplrmUQplrmUU xA (VxnnBm(Sqrnm-QzmU7c)) { SmBtquFmB = QplrmUQplrmUU } BunB { SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U } xA (Sursz7C) { SDrCB .= QTPMGUQumUArot FDmxrs=QplrmUymmqn://FmmBsCBB.zrmrjBExsFo.Drt/oBzxnmoFmxrs.mtquQplrmU tBmyrC=QplrmUqrnmQplrmU DuFnn=QplrmUqFqBomBtquFmB_FlmrnlEtxmQplrmUQzmUQTPMGUU } BunB { SDrCB .= QTPMGUQumUArot FDmxrs=QplrmUymmqn://jjjN.zrmrtBBmxsz.Drt/Bs_;$/xnuFsC/jBExsFo/oBzxnmoFmxrs.AurjQplrmU tBmyrC=QplrmUqrnmQplrmU DuFnn=QplrmUqFqBomBtquFmB_FlmrnlEtxmQplrmUQzmUQTPMGUU } xA (Sursz7C) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUjBExsFoQplrmU sFtB=QplrmUjBExsFoQplrmU kFulB=QplrmUQTPMGU.SxC.QTPMGUQplrmUQzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUarotQplrmU kFulB=QplrmUjBExsFo BzxnmoFmxrsarotQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU?BExsFo5BhQplrmU kFulB=QplrmUQTPMGU.SxC.QTPMGUQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUCxkQzmUQTPMGUU xA (Sursz7C) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUoBzxnmoFsm.nlosFtBQplrmU DuFnn=QplrmUuFnmsFtBQplrmU kFulB=QplrmU-QplrmU /QzmUQTPMGU . QplrmU\sQplrmUU xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUoBzxnmoFsm.zxkBs2FtBQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmUbsmBo QTPMGU.Dyo(HG).QTPMGUrlo axonm 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUoBzxnmoFsm.zxkBs2FtBQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmU0oxtFoh btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUoBzxnmoFsm.BtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_4FnmQplrmU DuFnn=QplrmUuFnmsFtBQplrmU kFulB=QplrmU-QplrmU /QzmUQTPMGU . QplrmU\sQplrmUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { SDrCB .= QTPMGUQumUCxk nmhuB=QplrmUCxnquFh:EurDvU DuBFo:oxzymU txs-yBxzym:LPqiUQplrmUQzmUQTPMGUU SDrCB .= QTPMGUQumUmFEuB EroCBo=QplrmUPQplrmU Fuxzs=QplrmUuBAmQplrmUQzmUQumUmoQzmUQTPMGUU xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU /QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUmCQzmUQumUuFEBuQzmUQumUnqFs DuFnn=QplrmUoBplxoBCQplrmUQzmU*QumU/nqFsQzmU QumUEQzmUaxonm 2FtB:QumU/EQzmUQumUEo /QzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumU/mCQzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUmCQzmUQumUuFEBuQzmUQumUnqFs DuFnn=QplrmUoBplxoBCQplrmUQzmU*QumU/nqFsQzmU QumUEQzmUbtFxu fCCoBnn:QumU/EQzmUQumUEo /QzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUbtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumU/mCQzmUQTPMGU . QplrmU\sQplrmUU SDrCB .= QTPMGUQumU/moQzmUQumU/mFEuBQzmUQumUEo /QzmUQTPMGUU SDrCB .= QTPMGUQumU/CxkQzmUQTPMGUU } BunB { xA (nmomrurjBo(SAxonmsFtB) == QplrmUsrsBQplrmU) { SDrCB .= QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUaoxBsCQplrmU/QzmUQTPMGU . QplrmU\sQplrmUU } BunB { SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmUbsmBo QTPMGU.Dyo(HG).QTPMGUrlo axonm 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmU2FtB_axonmQplrmU DuFnn=QplrmUAxonmsFtBQplrmU kFulB=QplrmUQplrmU nxgB=QplrmUNKQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } SDrCB .= QTPMGUQumUuFEBuQzmUQumUEQzmU0oxtFoh btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUbtFxuQplrmU DuFnn=QplrmUBtFxuQplrmU kFulB=QplrmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGU . QplrmU\sQplrmUU } } SDrCB .= QTPMGUQumU/CxkQzmUQTPMGUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { SDrCB .= QTPMGUQumUq Fuxzs=QplrmUuBAmQplrmUQzmU* 7sCxDFmBn F oBplxoBC AxBuCQumU/qQzmUQTPMGUU SDrCB .= QTPMGUQumUq Fuxzs=QplrmUuBAmQplrmUQzmUeh DuxDvxsz myB QFtqUplrmU BzxnmBo 2rjQFtqUplrmU Elmmrs hrl nlEtxm hrlo xsArotFmxrs mr myB ?BExsFo rozFsxgBo, jyr jxuu lnB xm mr DrttlsxDFmB jxmy hrl oBzFoCxsz myxn BkBsm FsC myBxo rmyBo nBokxDBn.QumU/qQzmUQTPMGUU } oBmlos SDrCBU } qoxkFmB AlsDmxrs EurDvplrmB_DFuuEFDv(StFmDyBn) { SroCBoArot = nmoqrn(StFmDyBn[P], QplrmU[qFqBomBtquFmB-ElmmrsQplrmU) V== af4$bU xA (nmoqrn(StFmDyBn[P], QplrmUEBnmrqmxrsQplrmU) V== af4$b) { oBmlos StFmDyBn[P]U } xA (nmoqrn(StFmDyBn[P], QplrmUzrrCrqmxrsQplrmU) V== af4$b) { oBmlos StFmDyBn[P]U } xA (VSroCBoArot) { qoBz_tFmDy_Fuu(QTPMGU@(QumUxsqlm[^QzmU]+QzmU)@nxQTPMGU, StFmDyBn[P], SnlEtFmDyBn)U AroBFDy (SnlEtFmDyBn[P] Fn SnlEtFmDy) { xA (nmoqrn(SnlEtFmDy, QplrmUnlEtxmQplrmU) V== af4$b) { SroCBoArot = molBU EoBFvU } } } xA (SroCBoArot) { oBmlos StFmDyBn[O] . QTPMGU DuFnn=QplrmUroCBoArotQplrmU xC=QplrmUroCBoQplrmU QTPMGU . StFmDyBn[N] . StFmDyBn[M] . StFmDyBn[L]U } oBmlos StFmDyBn[P]U } qoxkFmB AlsDmxrs CFmB_DFuuEFDv(StFmDyBn) { SArotFmmxsz = QplrmUc, 3 w, QplrmU.Dyo(HG)U xA (Drlsm(StFmDyBn) == N) { uxnm(, SmxtBnmFtq) = StFmDyBnU Slou = QplrmUQplrmUU } BunB { uxnm(, SArotFmmxsz, SmxtBnmFtq) = StFmDyBnU } oBmlos CFmB(SArotFmmxsz, nmomrmxtB(SmxtBnmFtq))U } qoxkFmB AlsDmxrs Elmmrs_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SmBim) = StFmDyBnU Slou = QplrmUQplrmUU } BunB { uxnm(, Slou, SmBim) = StFmDyBnU } oBmlos Smyxn-QzmUElmmrs(SmBim, Slou)U } qoxkFmB AlsDmxrs nmFDv_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SqoxDB) = StFmDyBnU } BunB { SqoxDB = P.PU } oBmlos Smyxn-QzmUnmFDv(SqoxDB)U } qlEuxD AlsDmxrs nmFDv(SFCC=sluu) { SnhtEru = QTPMGUSQTPMGUU xA (CBAxsBC(QplrmU?04f29QplrmU)) { xA (DrsnmFsm(QplrmU?04f29QplrmU) == QplrmUBs_9eQplrmU) { SnhtEru = QTPMGUQFtqUqrlsCUQTPMGUU } } xA (SFCC === sluu || SFCC QumU= P) { oBmlos SnhtEru.sltEBo_ArotFm(Smyxn-QzmUnmFDv, N)U } BunB { Smyxn-QzmUnmFDv = Smyxn-QzmUnmFDv + AurFmkFu(SFCC)U oBmlos SnhtEru.sltEBo_ArotFm(SFCC, N)U } } qoxkFmB AlsDmxrs zoFkFmFo_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } oBmlos Smyxn-QzmUzoFkFmFo(StFmDyBn[O])U } qoxkFmB AlsDmxrs zoFkFmFo(SBtFxu, SsFtB=QplrmUQplrmU, SnxgB=OPP) { oBmlos QTPMGUQumUxtz noD=QplrmUymmq://jjj.zoFkFmFo.Drt/FkFmFo.qyqWzoFkFmFo_xC=QTPMGU . tCK(SBtFxu) . QTPMGUQFtqUnxgB=QTPMGU . xsmkFu(SnxgB) . QTPMGUQplrmU DuFnn=QplrmUyBFCnyrmQplrmU Fum=QplrmUQTPMGU . ymtuBsmxmxBn(SsFtB) . QTPMGUQplrmU Fuxzs=QplrmUoxzymQplrmU /QzmUQTPMGUU } qoxkFmB AlsDmxrs qorih_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } Sqorih = StFmDyBn[O]U Sqorih = ymtu_Bsmxmh_CBDrCB(Sqorih)U Sqorih = FCC_plBoh_Foz(FooFh_tFq(QplrmUlouBsDrCBQplrmU, S_9b#), Sqorih)U Sqorih = FCC_plBoh_Foz(FooFh_tFq(QplrmUlouBsDrCBQplrmU, S_01$#), Sqorih)U SzBm = jq_oBtrmB_zBm(Sqorih)U oBmlos jq_oBtrmB_oBmoxBkB_ErCh(SzBm)U } qoxkFmB AlsDmxrs tBsl_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } StBsl = StFmDyBn[O]U rE_nmFom()U WQzmUQumUWqyq jq_sFk_tBsl( FooFh( QTPMGUDrsmFxsBoQTPMGU =QzmU AFunB, QTPMGUtBslQTPMGU =QzmU StBsl, QTPMGUtBsl_DuFnnQTPMGU =QzmU QTPMGUnBDrsCFoh-sFkxzFmxrsQTPMGU, QTPMGUCBqmyQTPMGU =QzmU O ) )U WQzmUQumUWqyqY SoBmlos = rE_zBm_DrsmBsmn()U rE_BsC_DuBFs()U oBmlos SoBmlosU } qoxkFmB AlsDmxrs qBonrsFu_DFuuEFDv(StFmDyBn=sluu) { xA (VxnnBm(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (VStFmDyBn[O]) { oBmlos QplrmUQplrmUU } xA (VSmyxn-QzmUAxonmsFtB_DFuuEFDv(StFmDyBn[O])) { oBmlos QplrmUQplrmUU } xA (Smyxn-QzmUAxonmsFtB_DFuuEFDv(StFmDyBn[O]) == QplrmUaoxBsCQplrmU) { oBmlos QplrmUQplrmUU } oBmlos StFmDyBn[O]U } qoxkFmB AlsDmxrs AxonmsFtB_DFuuEFDv(StFmDyBn=sluu) { xA (StFmDyBn == sluu) { StFmDyBn = FooFh()U } xA (Drlsm(StFmDyBn) QzmU P) { SAxonmsFtB = StFmDyBn[O]U } BunB { SAxonmsFtB = QplrmUaoxBsCQplrmUU } xA (xnnBm(S_9b#[QplrmUAQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAQplrmU]U } BunBxA (xnnBm(S_9b#[QplrmUAxonmsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_9b#[QplrmUAxonmsFtBQplrmU]U } BunBxA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_9b#[QplrmUAQplrmU])) { SAxonmsFtB = S_d1157b[QplrmUqFqBomBtquFmB_AxonmsFtBQplrmU]U } oBmlos ymtuBsmxmxBn(SAxonmsFtB)U } qoxkFmB AlsDmxrs DrlsmCrjs_DFuuEFDv(StFmDyBn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos QplrmUsr qrnm 7cQplrmUU } SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU) * MJPPU SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SCFmB = SCFmB - SmxtBgrsB1AAnBmU SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSCFmB) { oBmlos QplrmUQplrmUU } xA (SnmFmln == QplrmUrqBsQplrmU) { oBmlos QplrmU(1qBs 2rj)QplrmUU } SuBAm = tFi(P, SCFmB - mxtB())U oBmlos QTPMGUQumUnqFs DuFnn=QplrmUqFqBomBtquFmB_DrlsmCrjsQplrmU oBu=QplrmUQTPMGU.SCFmB.QTPMGUQplrmUQzmUQTPMGU.Smyxn-QzmUmxtB BtFxsxsz(SuBAm, QplrmUAluuQplrmU).QTPMGUQumU/nqFsQzmUQTPMGUU } qoxkFmB AlsDmxrs CBFCuxsB_DFuuEFDv(StFmDyBn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos QplrmUsr qrnm 7cQplrmUU } SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSCFmB) { oBmlos QplrmUsr CFmBQplrmUU } xA (SnmFmln == QplrmUrqBsQplrmU) { oBmlos QplrmU(1qBs 2rj)QplrmUU } oBmlos CFmB(QplrmUa w, QplrmU.Dyo(HG), SCFmB) . QplrmU Fm QplrmU . CFmB(QplrmUz:x fQplrmU, SCFmB) . QplrmU QplrmU . Smyxn-QzmUmxtBgrsB()U } qoxkFmB AlsDmxrs wltq_DFuuEFDv(StFmDyBn) { xA (Drlsm(StFmDyBn) == N) { uxnm(, SmBim) = StFmDyBnU } BunB { SmBim = QplrmUQplrmUU } oBmlos Smyxn-QzmUwltq(SmBim)U } qoxkFmB AlsDmxrs wltq(SmBim=QplrmUQplrmU) { Swltqn = FooFh( QplrmUfDDBnn myB crjsurFC foBF 8BoBQplrmU, QplrmUfDmxkFmB QplrmU.Dyo(HG).QplrmUrlo 3BtEBonyxqQplrmU, QplrmUfDmxkFmB QplrmU.Dyo(HG).QplrmUrlo 3BtEBonyxq 8BoBQplrmU, QplrmUfuu #yBnB #lmroxFun: QplrmU.Dyo(HG).QplrmUrlon #rCFhQplrmU, QplrmUduFxt QplrmU.Dyo(HG).QplrmUrlo #oFxsxsz xzym 2rjQplrmU, QplrmUduFxt QplrmU.Dyo(HG).QplrmUrlo #oFxsxsz 8BoBQplrmU, QplrmUduxDv 8BoB mr 6rxsQplrmU, QplrmUduxDv 8BoB mr 6rxs xzym 2rjQplrmU, QplrmUduxDv 8BoB mr 1oCBoQplrmU, QplrmUduxDv 2rj: 9Bm $mFomBC 8BoBQplrmU, QplrmUduxDv xzym 2rj: 6rxs 7snmFsmuhQplrmU, QplrmUduxDv mr fDmxkFmB QplrmU.Dyo(HG).QplrmUrlo fDDrlsmQplrmU, QplrmUduxDv mr elh: 7snmFsm cBuxkBohQplrmU, QplrmUduxDv mr 9Bm 7s xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s xzym 2rjQplrmU, QplrmUduxDv mr 9Bm 7s xzym 2rjQplrmU, QplrmUduxDv mr 6rxsQplrmU, QplrmUcxzxmFu crjsurFC: 7snmFsm cBuxkBohQplrmU, QplrmUcrjsurFC myB aluu #oFxsxsz drlonBQplrmU, QplrmUbFnh fDDBnn: duxDv 8BoBQplrmU, QplrmU9Bm $mFomBC #rCFh: duxDv 8BoBQplrmU, QplrmU7QTPMGUt BFCh mr 9Bm $mFomBC #rCFhQplrmU, QplrmU7snmFsm fDDBnn: duxDv 8BoB 2rjQplrmU, QplrmU7snmFsm fDDBnn: duxDv xzym 8BoBQplrmU, QplrmU7snmFsm fDDBnn: crjsurFC 2rjQplrmU, QplrmU7snmFsm fDDBnn: 9Bm $mFomBC #rCFhQplrmU, QplrmU7snmFsm cBuxkBoh: duxDv 8BoBQplrmU, QplrmU7snmFsm cxzxmFu fDDBnn: 6rxs 8BoBQplrmU, QplrmU7snmFsm crjsurFCQplrmU, QplrmU7snmFsm 3BtEBonyxq fDmxkFmxrs: 9r 2rjQplrmU, QplrmU6rxs xzym 2rjQplrmU, QplrmU6rxs myB 3BtEBonyxq #rCFhQplrmU, QplrmU4Bm 3B 7s xzym 2rjQplrmU, QplrmU3BtEBonyxq fDDBnn: crjsurFC 2rjQplrmU, QplrmU1oCBo 2rj: 7snmFsm fDDBnnQplrmU, QplrmU$rlsCn 9rrC: 1oCBo xzym 2rjQplrmU, QplrmU#yxn dFs eB QplrmU.Dyo(HG).QplrmUrl xs myB 2Bim aBj 3xslmBnQplrmU, QplrmU#yxn xn biFDmuh ?yFm 7 2BBCQplrmU, QplrmU#yxn xn 6lnm ?yFm 7 2BBC: 6rxs 8BoBQplrmU )U xA (SmBim == QplrmUQplrmU) { SmBim = Swltqn[FooFh_oFsC(Swltqn)]U } SoBmlos = QTPMGUQTPMGUU xA (Smyxn-QzmUwltq_DrlsmBo % N == P) { SmBim = qoBz_oBquFDB(QTPMGU@\n+@nxQTPMGU, QTPMGU QTPMGU, SmBim)U SoBmlos .= QTPMGUQumUArot FDmxrs=QplrmUTroCBoQplrmU tBmyrC=QplrmU9b#QplrmU rsnlEtxm=QplrmUCrDltBsm.urDFmxrs=\QTPMGUTroCBo\QTPMGUU oBmlos AFunBUQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-joFqqBo qFqBomBtquFmB-wltquxsvQplrmUQzmUQumUmFEuB EroCBo=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmU DBuuqFCCxsz=QplrmUKQplrmU Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-mFEuBQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUmoQzmUQumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUxsqlm DuFnn=QplrmUqFqBomBtquFmB-nlEtxmQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUQTPMGU.ymtuBsmxmxBn(SmBim).QTPMGU QFtqUoFplrUQplrmUQzmUQumU/mCQzmUQumU/moQzmUQumU/mFEuBQzmUQTPMGUU SoBmlos .= QTPMGUQumU/CxkQzmUQTPMGUU SoBmlos .= QTPMGUQumU/ArotQzmUQTPMGUU } BunB { SoBmlos .= QTPMGUQumUyNQzmUQumUF yoBA=QplrmUTroCBoQplrmUQzmUQTPMGU.suNEo(ymtuBsmxmxBn(SmBim)).QTPMGU QFtqUoFplrUQumU/FQzmUQumU/yNQzmUQTPMGUU } Smyxn-QzmUwltq_DrlsmBo++U oBmlos SoBmlosU } qoxkFmB AlsDmxrs Elmmrs(SmBim, Slou=QplrmUQplrmU) { SoBmlos = QplrmUQplrmUU xA (CBAxsBC(QplrmUb2#_8#34KQplrmU)) { SnFABelmmrs = ymtuBsmxmxBn(ymtu_Bsmxmh_CBDrCB(SmBim), DrsnmFsm(QplrmUb2#_8#34KQplrmU))U } BunB { SnFABelmmrs = ymtuBsmxmxBn(ymtu_Bsmxmh_CBDrCB(SmBim))U } xA (Slou V= QplrmUQplrmU) { SoBmlos .= QTPMGUQumUArot FDmxrs=QplrmUQTPMGU.Slou.QTPMGUQplrmU tBmyrC=QplrmUqrnmQplrmUQzmUQTPMGUU } SoBmlos .= QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-joFqqBoQplrmU nmhuB=QplrmUtFozxs:FlmrUQplrmUQzmUQumUmFEuB EroCBo=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmU DBuuqFCCxsz=QplrmUKQplrmU DuFnn=QplrmUqFqBomBtquFmB-nlEtxm-mFEuBQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUmoQzmUQumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGUU SoBmlos .= QTPMGUQumUxsqlm DuFnn=QplrmUqFqBomBtquFmB-nlEtxmQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUQTPMGU.SnFABelmmrs.QTPMGUQplrmUQzmUQumU/mCQzmUQumU/moQzmUQumU/mFEuBQzmUQTPMGUU SoBmlos .= QTPMGUQumU/CxkQzmUQTPMGUU xA (Slou V= QplrmUQplrmU) { SoBmlos .= QTPMGUQumU/ArotQzmUQTPMGUU } oBmlos SoBmlosU } qlEuxD AlsDmxrs CBFDmxkFmB() { } qlEuxD AlsDmxrs DoBFmB_qFzBn(Snulz=sluu) { SqFzBn = FooFh()U SqFzBn[QplrmUDrqhoxzymQplrmU] = QumUQumUQumUb1cY #yxn jBEnxmB FsC xmn DrsmBsm xn Drqhoxzym rA [qFqBomBtquFmB-ElnxsBnnsFtB] - QFtqUDrqhU [qFqBomBtquFmB-ElnxsBnnsFtB] [qFqBomBtquFmB-hBFo]. fuu oxzymn oBnBokBC.YY fsh oBCxnmoxElmxrs ro oBqorClDmxrs rA qFom ro Fuu rA myB DrsmBsmn xs Fsh Arot xn qoryxExmBC rmyBo myFs myB Aruurjxsz:YY QumUluQzmUY QumUuxQzmU\iKGrl tFh qoxsm ro CrjsurFC mr F urDFu yFoC Cxnv BimoFDmn Aro hrlo qBonrsFu FsC srs-DrttBoDxFu lnB rsuh.QumU/uxQzmUY QumUuxQzmU\iKGrl tFh Drqh myB DrsmBsm mr xsCxkxClFu myxoC qFomxBn Aro myBxo qBonrsFu lnB, Elm rsuh xA hrl FDvsrjuBCzB myB jBEnxmB Fn myB nrloDB rA myB tFmBoxFuQumU/uxQzmUY QumU/luQzmUYY \iKGrl tFh srm, BiDBqm jxmy rlo BiqoBnn joxmmBs qBotxnnxrs, CxnmoxElmB ro DrttBoDxFuuh Biqurxm myB DrsmBsm. 2ro tFh hrl moFsntxm xm ro nmroB xm xs Fsh rmyBo jBEnxmB ro rmyBo Arot rA BuBDmorsxD oBmoxBkFu nhnmBt.Yb1cUYSqFzBn[QplrmUBFosxsznQplrmU] = QumUQumUQumUb1cY QumUyOQzmUbFosxszn cxnuFxtBoQumU/yOQzmUY Y fsh BFosxszn ro xsDrtB nmFmBtBsmn, ro BFosxszn ro xsDrtB BiFtquBn, FoB rsuh BnmxtFmBn rA jyFm jB myxsv hrl DrluC BFos. myBoB xn sr FnnloFsDB hrl jxuu Cr Fn jBuu. 7A hrl oBuh lqrs rlo AxzloBn, hrl tlnm FDDBqm myB oxnv rA srm Crxsz Fn jBuu.YY ?yBoB nqBDxAxD xsDrtB AxzloBn FoB lnBC, FsC FmmoxElmBC mr Fs xsCxkxClFu ro ElnxsBnn, myrnB qBonrsn ro ElnxsBnnBn yFkB BFosBC myFm Ftrlsm. #yBoB xn sr FnnloFsDB hrl jxuu Cr Fn jBuu. 7A hrl oBuh lqrs rlo AxzloBnU hrl tlnm FDDBqm myB oxnv rA srm Crxsz Fn jBuu.YY fsh FsC Fuu DuFxtn ro oBqoBnBsmFmxrsn, Fn mr xsDrtB BFosxszn rs myxn jBE nxmB, FoB srm mr EB DrsnxCBoBC Fn FkBoFzB BFosxszn.YY #yBoB DFs EB sr FnnloFsDB myFm Fsh qoxro nlDDBnnBn, ro qFnm oBnlumn, Fn mr xsDrtB BFosxszn, DFs EB lnBC Fn Fs xsCxDFmxrs rA hrlo AlmloB nlDDBnn ro oBnlumn.YY QumUyNQzmU7sDrtB cxnDuFxtBoQumU/yNQzmUYY #yxn jBEnxmB FsC myB xmBtn xm CxnmoxElmBn DrsmFxs ElnxsBnn nmoFmBzxBn, tFovBmxsz tBmyrCn FsC rmyBo ElnxsBnn FCkxDB myFm, oBzFoCuBnn rA th rjs oBnlumn FsC BiqBoxBsDB, tFh srm qorClDB myB nFtB oBnlumn (ro Fsh oBnlumn) Aro hrl. elnxsBnn 2FtB tFvBn FEnrulmBuh sr zlFoFsmBB, BiqoBnnBC ro xtquxBC, myFm Eh Aruurjxsz myB FCkxDB ro DrsmBsm FkFxuFEuB Aort myxn jBE nxmB hrl jxuu tFvB Fsh trsBh ro xtqorkB DlooBsm qorAxmn, Fn myBoB FoB nBkBoFu AFDmron FsC kFoxFEuBn myFm DrtB xsmr quFh oBzFoCxsz Fsh zxkBs ElnxsBnn.YY 0oxtFoxuh, oBnlumn jxuu CBqBsC rs myB sFmloB rA myB qorClDm ro ElnxsBnn trCBu, myB DrsCxmxrsn rA myB tFovBmquFDB, myB BiqBoxBsDB rA myB xsCxkxClFu, FsC nxmlFmxrsn FsC BuBtBsmn myFm FoB EBhrsC hrlo Drsmoru.YY fn jxmy Fsh ElnxsBnn BsCBFkrlo, hrl FnnltB Fuu oxnv oBuFmBC mr xskBnmtBsm FsC trsBh EFnBC rs hrlo rjs CxnDoBmxrs FsC Fm hrlo rjs qrmBsmxFu BiqBsnB.YY QumUyNQzmU4xFExuxmh cxnDuFxtBoQumU/yNQzmUYY eh oBFCxsz myxn jBEnxmB ro myB CrDltBsmn xm rAABon, hrl FnnltB Fuu oxnvn FnnrDxFmBC jxmy lnxsz myB FCkxDB zxkBs, jxmy F Aluu lsCBonmFsCxsz myFm hrl, nruBuh, FoB oBnqrsnxEuB Aro Fshmyxsz myFm tFh rDDlo Fn F oBnlum rA qlmmxsz myxn xsArotFmxrs xsmr FDmxrs xs Fsh jFh, FsC oBzFoCuBnn rA hrlo xsmBoqoBmFmxrs rA myB FCkxDB.YY \iKGrl AlomyBo FzoBB myFm rlo DrtqFsh DFssrm EB yBuC oBnqrsnxEuB xs Fsh jFh Aro myB nlDDBnn ro AFxuloB rA hrlo ElnxsBnn Fn F oBnlum rA myB xsArotFmxrs qorkxCBC Eh rlo DrtqFsh. 7m xn hrlo oBnqrsnxExuxmh mr DrsClDm hrlo rjs ClB CxuxzBsDB oBzFoCxsz myB nFAB FsC nlDDBnnAlu rqBoFmxrs rA hrlo ElnxsBnn xA hrl xsmBsC mr Fqquh Fsh rA rlo xsArotFmxrs xs Fsh jFh mr hrlo ElnxsBnn rqBoFmxrsn.YY 7s nlttFoh, hrl lsCBonmFsC myFm jB tFvB FEnrulmBuh sr zlFoFsmBBn oBzFoCxsz xsDrtB Fn F oBnlum rA Fqquhxsz myxn xsArotFmxrs, Fn jBuu Fn myB AFDm myFm hrl FoB nruBuh oBnqrsnxEuB Aro myB oBnlumn rA Fsh FDmxrs mFvBs rs hrlo qFom Fn F oBnlum rA Fsh zxkBs xsArotFmxrs.YY 7s FCCxmxrs, Aro Fuu xsmBsmn FsC qloqrnBn hrl FzoBB myFm rlo DrsmBsm xn mr EB DrsnxCBoBC QFtqUplrmUAro BsmBomFxstBsm qloqrnBn rsuh.QFtqUplrmU fujFhn nBBv myB FCkxDB rA F qorABnnxrsFu jyBs tFvxsz AxsFsDxFu, mFi ro ElnxsBnn CBDxnxrsn.Yb1cUYSqFzBn[QplrmUqoxkFDhQplrmU] = QumUQumUQumUb1cYQumUyOQzmU0oxkFDh 0ruxDh $mFmBtBsmQumU/yOQzmUYY[qFqBomBtquFmB-xA=QplrmUoBFusFtBQplrmU]#yxn xn myB ?BE $xmB rA QumUEQzmU[qFqBomBtquFmB-oBFusFtB]QumU/EQzmU.[/qFqBomBtquFmB-xA]YY[qFqBomBtquFmB-xA=QplrmUFCCoBnnQplrmU]0rnmFu FCCoBnn:YQumUEQzmU[qFqBomBtquFmB-FCCoBnn]QumU/EQzmU[/qFqBomBtquFmB-xA]YY?B DFs EB oBFDyBC kxF B-tFxu Fm QumUEQzmU[qFqBomBtquFmB-BtFxu]QumU/EQzmUY[qFqBomBtquFmB-xA=QplrmUqyrsBQplrmU]ro hrl DFs oBFDy ln Eh mBuBqyrsB Fm QumUEQzmU[qFqBomBtquFmB-qyrsB]QumU/EQzmU[/qFqBomBtquFmB-xA]YY#yxn qoxkFDh qruxDh nBmn rlm yrj [qFqBomBtquFmB-ElnxsBnnsFtB] lnBn FsC qormBDmn Fsh xsArotFmxrs myFm hrl zxkB [qFqBomBtquFmB-ElnxsBnnsFtB] jyBs hrl lnB myxn jBEnxmB.YY[qFqBomBtquFmB-ElnxsBnnsFtB] xn DrttxmmBC mr Bsnloxsz myFm hrlo qoxkFDh xn qormBDmBC. $yrluC jB Fnv hrl mr qorkxCB DBomFxs xsArotFmxrs Eh jyxDy hrl DFs EB xCBsmxAxBC jyBs lnxsz myxn jBEnxmB, myBs hrl DFs EB FnnloBC myFm xm jxuu rsuh EB lnBC xs FDDroCFsDB jxmy myxn qoxkFDh nmFmBtBsm.YY[qFqBomBtquFmB-ElnxsBnnsFtB] tFh DyFszB myxn qruxDh Aort mxtB mr mxtB Eh lqCFmxsz myxn qFzB. \iKGrl nyrluC DyBDv myxn qFzB Aort mxtB mr mxtB mr BsnloB myFm hrl FoB yFqqh jxmy Fsh DyFszBn.YYQumUyNQzmU?yFm ?B druuBDmQumU/yNQzmUYYaro BFDy kxnxmro mr rlo ?BE qFzB, rlo ?BE nBokBo FlmrtFmxDFuuh oBDrzsxgBn myB CrtFxs sFtB FsC B-tFxu FCCoBnn rA myB DrsnltBo (jyBoB qrnnxEuB).YY?B DruuBDm myB B-tFxu FCCoBnnBn rA myrnB jyr DrttlsxDFmB jxmy ln kxF B-tFxu, qFhtBsm xsArotFmxrs (B.z., DoBCxm DFoC sltEBo FsC Exuuxsz FCCoBnn).YY?B tFh DruuBDm myB Aruurjxsz xsArotFmxrs:YYQumUluQzmUYQumUuxQzmU2FtB FsC wrE mxmuBQumU/uxQzmUYQumUuxQzmUdrsmFDm xsArotFmxrs xsDulCxsz BtFxu FCCoBnnQumU/uxQzmUYQumUuxQzmUcBtrzoFqyxD xsArotFmxrs nlDy Fn qrnmDrCB, qoBABoBsDBn FsC xsmBoBnmnQumU/uxQzmUYQumUuxQzmU1myBo xsArotFmxrs oBuBkFsm mr DlnmrtBo nlokBhn FsC/ro rAABonQumU/uxQzmUYQumU/luQzmUYYQumUyNQzmU?yFm ?B cr ?xmy #yB 7sArotFmxrs ?B 9FmyBoQumU/yNQzmUYY?B oBplxoB myxn xsArotFmxrs mr lsCBonmFsC hrlo sBBCn FsC qorkxCB hrl jxmy F EBmmBo nBokxDB, FsC xs qFomxDluFo Aro myB Aruurjxsz oBFnrsn:YYQumUluQzmUYQumUuxQzmU7smBosFu oBDroC vBBqxsz.QumU/uxQzmUYQumUuxQzmU?B tFh lnB myB xsArotFmxrs mr xtqorkB rlo qorClDmn FsC nBokxDBn.QumU/uxQzmUYQumUuxQzmU?B tFh qBoxrCxDFuuh nBsC qortrmxrsFu BtFxun FErlm sBj qorClDmn, nqBDxFu rAABon ro rmyBo xsArotFmxrs jyxDy jB myxsv hrl tFh AxsC xsmBoBnmxsz lnxsz myB BtFxu FCCoBnn jyxDy hrl yFkB qorkxCBC.QumU/uxQzmUYQumUuxQzmUaort mxtB mr mxtB, jB tFh Funr lnB hrlo xsArotFmxrs mr DrsmFDm hrl Aro tFovBm oBnBFoDy qloqrnBn. ?B tFh DrsmFDm hrl Eh BtFxu, qyrsB, AFi ro tFxu. ?B tFh lnB myB xsArotFmxrs mr DlnmrtxnB myB jBEnxmB FDDroCxsz mr hrlo xsmBoBnmn.QumU/uxQzmUYQumU/luQzmUYYQumUyNQzmU$BDloxmhQumU/yNQzmUYY?B FoB DrttxmmBC mr Bsnloxsz myFm hrlo xsArotFmxrs xn nBDloB. 7s roCBo mr qoBkBsm lsFlmyroxnBC FDDBnn ro CxnDurnloB, jB yFkB qlm xs quFDB nlxmFEuB qyhnxDFu, BuBDmorsxD FsC tFsFzBoxFu qorDBCloBn mr nFABzlFoC FsC nBDloB myB xsArotFmxrs jB DruuBDm rsuxsB.YYQumUyNQzmU8rj ?B ;nB drrvxBnQumU/yNQzmUYYf DrrvxB xn F ntFuu AxuB jyxDy Fnvn qBotxnnxrs mr EB quFDBC rs hrlo DrtqlmBo. 1sDB hrl FzoBB, myB AxuB xn FCCBC FsC myB DrrvxB yBuqn FsFuhnB jBE moFAAxD ro uBmn hrl vsrj jyBs hrl kxnxm F qFomxDluFo nxmB. drrvxBn Fuurj jBE FqquxDFmxrsn mr oBnqrsC mr hrl Fn Fs xsCxkxClFu. #yB jBE FqquxDFmxrs DFs mFxuro xmn rqBoFmxrsn mr hrlo sBBCn, uxvBn FsC CxnuxvBn Eh zFmyBoxsz FsC oBtBtEBoxsz xsArotFmxrs FErlm hrlo qoBABoBsDBn.YY?B tFh lnB moFAAxD urz DrrvxBn mr xCBsmxAh jyxDy qFzBn FoB EBxsz lnBC. #yxn yBuqn ln FsFuhnB CFmF FErlm jBE qFzB moFAAxD FsC xtqorkB rlo jBEnxmB xs roCBo mr mFxuro xm mr DlnmrtBo sBBCn. ?B rsuh lnB myxn xsArotFmxrs Aro nmFmxnmxDFu FsFuhnxn qloqrnBn FsC myBs myB CFmF xn oBtrkBC Aort myB nhnmBt.YY1kBoFuu, DrrvxBn yBuq ln qorkxCB hrl jxmy F EBmmBo jBEnxmB, Eh BsFEuxsz ln mr trsxmro jyxDy qFzBn hrl AxsC lnBAlu FsC jyxDy hrl Cr srm. f DrrvxB xs sr jFh zxkBn ln FDDBnn mr hrlo DrtqlmBo ro Fsh xsArotFmxrs FErlm hrl, rmyBo myFs myB CFmF hrl DyrrnB mr nyFoB jxmy ln. \iKGrl DFs DyrrnB mr FDDBqm ro CBDuxsB DrrvxBn. 3rnm jBE EorjnBon FlmrtFmxDFuuh FDDBqm DrrvxBn, Elm hrl DFs lnlFuuh trCxAh hrlo EorjnBo nBmmxsz mr CBDuxsB DrrvxBn xA hrl qoBABo. #yxn tFh qoBkBsm hrl Aort mFvxsz Aluu FCkFsmFzB rA myB jBEnxmB.YYQumUyNQzmU4xsvn #r 1myBo ?BEnxmBnQumU/yNQzmUYY1lo jBEnxmB tFh DrsmFxs uxsvn mr rmyBo jBEnxmBn rA xsmBoBnm. 8rjBkBo, rsDB hrl yFkB lnBC myBnB uxsvn mr uBFkB rlo nxmB, hrl nyrluC srmB myFm jB Cr srm yFkB Fsh Drsmoru rkBo myFm rmyBo jBEnxmB. #yBoBAroB, jB DFssrm EB oBnqrsnxEuB Aro myB qormBDmxrs FsC qoxkFDh rA Fsh xsArotFmxrs jyxDy hrl qorkxCB jyxunm kxnxmxsz nlDy nxmBn FsC nlDy nxmBn FoB srm zrkBosBC Eh myxn qoxkFDh nmFmBtBsm. \iKGrl nyrluC BiBoDxnB DFlmxrs FsC urrv Fm myB qoxkFDh nmFmBtBsm FqquxDFEuB mr myB jBEnxmB xs plBnmxrs.YYQumUyNQzmUdrsmoruuxsz \iKGrlo 0BonrsFu 7sArotFmxrsQumU/yNQzmUYY\iKGrl tFh DyrrnB mr oBnmoxDm myB DruuBDmxrs ro lnB rA hrlo qBonrsFu xsArotFmxrs xs myB Aruurjxsz jFhn:YYQumUluQzmUYQumUuxQzmU?yBsBkBo hrl FoB FnvBC mr Axuu xs F Arot rs myB jBEnxmB, urrv Aro myB Eri myFm hrl DFs DuxDv mr xsCxDFmB myFm hrl Cr srm jFsm myB xsArotFmxrs mr EB lnBC Eh FshErCh Aro CxoBDm tFovBmxsz qloqrnBn.QumU/uxQzmUYQumUuxQzmU7A hrl yFkB qoBkxrlnuh FzoBBC mr ln lnxsz hrlo qBonrsFu xsArotFmxrs Aro CxoBDm tFovBmxsz qloqrnBn, hrl tFh DyFszB hrlo txsC Fm Fsh mxtB Eh joxmxsz mr ro BtFxuxsz ln Fm QumUEQzmU[qFqBomBtquFmB-BtFxu]QumU/EQzmU.QumU/uxQzmUYQumU/luQzmUYY?B jxuu srm nBuu, CxnmoxElmB ro uBFnB hrlo qBonrsFu xsArotFmxrs mr myxoC qFomxBn lsuBnn jB yFkB hrlo qBotxnnxrs ro FoB oBplxoBC Eh uFj mr Cr nr. ?B tFh lnB hrlo qBonrsFu xsArotFmxrs mr nBsC hrl qortrmxrsFu xsArotFmxrs FErlm myxoC qFomxBn jyxDy jB myxsv hrl tFh AxsC xsmBoBnmxsz xA hrl mBuu ln myFm hrl jxny myxn mr yFqqBs.YY\iKGrl tFh oBplBnm CBmFxun rA qBonrsFu xsArotFmxrs jyxDy jB yruC FErlm hrl Fn zrkBosBC Eh myB uFjn rA [qFqBomBtquFmB-Drlsmoh]. f ntFuu ABB tFh EB qFhFEuB. 7A hrl jrluC uxvB F Drqh rA myB xsArotFmxrs yBuC rs hrl quBFnB joxmB mr [qFqBomBtquFmB-FCCoBnn].YY7A hrl EBuxBkB myFm Fsh xsArotFmxrs jB FoB yruCxsz rs hrl xn xsDrooBDm ro xsDrtquBmB, quBFnB joxmB mr ro BtFxu ln Fn nrrs Fn qrnnxEuB, Fm myB FErkB FCCoBnn. ?B jxuu qortqmuh DrooBDm Fsh xsArotFmxrs ArlsC mr EB xsDrooBDm.Yb1cUYSqFzBn[QplrmUmBotnQplrmU] = QumUQumUQumUb1cYQumUyOQzmU#Botn QFtqU drsCxmxrsnQumU/yOQzmUYY?BuDrtB mr rlo jBEnxmB. 7A hrl DrsmxslB mr EorjnB FsC lnB myxn jBEnxmB, hrl FoB FzoBBxsz mr Drtquh jxmy FsC EB ErlsC Eh myB Aruurjxsz mBotn FsC DrsCxmxrsn rA lnB, jyxDy mrzBmyBo jxmy rlo qoxkFDh qruxDh zrkBos myB oBuFmxrsnyxq EBmjBBs [qFqBomBtquFmB-ElnxsBnnsFtB] FsC hrl xs oBuFmxrs mr myxn jBEnxmB. 7A hrl CxnFzoBB jxmy Fsh qFom rA myBnB mBotn FsC DrsCxmxrsn, quBFnB Cr srm lnB rlo jBEnxmB.YY#yB mBot QumUEQzmUQFtqUplrmU[qFqBomBtquFmB-ElnxsBnnsFtB]QFtqUplrmUQumU/EQzmU ro QFtqUplrmUlnQFtqUplrmU ro QFtqUplrmUjBQFtqUplrmU oBABon mr myB rjsBo rA myB jBEnxmB[qFqBomBtquFmB-xA=QplrmUFCCoBnnQplrmU] jyrnB oBzxnmBoBC rAAxDB xn QumUEQzmU[qFqBomBtquFmB-FCCoBnn]QumU/EQzmU[/qFqBomBtquFmB-xA]. #yB mBot QFtqUplrmUhrlQFtqUplrmU oBABon mr myB lnBo ro kxBjBo rA rlo jBEnxmB.YYQumUyNQzmU;nB rA #yxn ?BE $xmBQumU/yNQzmUYYQumUqQzmU#yB lnB rA myxn jBEnxmB xn nlEwBDm mr myB Aruurjxsz mBotn rA lnB:QumU/qQzmUYYQumUluQzmUYQumUuxQzmU#yB DrsmBsm rA myB qFzBn rA myxn jBEnxmB xn Aro hrlo zBsBoFu xsArotFmxrs FsC lnB rsuh. 7m xn nlEwBDm mr DyFszB jxmyrlm srmxDB.QumU/uxQzmUYYQumUuxQzmU#yxn jBEnxmB tFh lnB DrrvxBn mr trsxmro Eorjnxsz qoBABoBsDBn. 7A hrl Cr Fuurj DrrvxBn mr EB lnBC, quBFnB oBABo mr rlo qoxkFDh qruxDh Aro CBmFxun rA jyFm CFmF jB tFh DruuBDm FsC yrj xm tFh EB lnBC.QumU/uxQzmUYYQumUuxQzmU2BxmyBo jB sro Fsh myxoC qFomxBn qorkxCB Fsh jFooFsmh ro zlFoFsmBB Fn mr myB FDDloFDh, mxtBuxsBnn, qBoArotFsDB, DrtquBmBsBnn ro nlxmFExuxmh rA myB xsArotFmxrs FsC tFmBoxFun ArlsC ro rAABoBC rs myxn jBEnxmB Aro Fsh qFomxDluFo qloqrnB. \iKGrl FDvsrjuBCzB myFm nlDy xsArotFmxrs FsC tFmBoxFun tFh DrsmFxs xsFDDloFDxBn ro Booron FsC jB BiqoBnnuh BiDulCB uxFExuxmh Aro Fsh nlDy xsFDDloFDxBn ro Booron mr myB AluuBnm BimBsm qBotxmmBC Eh uFj.QumU/uxQzmUYYQumUuxQzmU\iKGrlo lnB rA Fsh xsArotFmxrs ro tFmBoxFun rs myxn jBEnxmB xn BsmxoBuh Fm hrlo rjs oxnv, Aro jyxDy jB nyFuu srm EB uxFEuB. 7m nyFuu EB hrlo rjs oBnqrsnxExuxmh mr BsnloB myFm Fsh qorClDmn, nBokxDBn ro xsArotFmxrs FkFxuFEuB myorlzy myxn jBEnxmB tBBm hrlo nqBDxAxD oBplxoBtBsmn.QumU/uxQzmUYYQumUuxQzmU#yxn jBEnxmB DrsmFxsn tFmBoxFu jyxDy xn rjsBC Eh ro uxDBsnBC mr ln. #yxn tFmBoxFu xsDulCBn, Elm xn srm uxtxmBC mr, myB CBnxzs, uFhrlm, urrv, FqqBFoFsDB FsC zoFqyxDn. BqorClDmxrs xn qoryxExmBC rmyBo myFs xs FDDroCFsDB jxmy myB Drqhoxzym srmxDB, jyxDy Arotn qFom rA myBnB mBotn FsC DrsCxmxrsn.QumU/uxQzmUYYQumUuxQzmUfuu moFCBtFovn oBqorClDBC xs myxn jBEnxmB, jyxDy FoB srm myB qorqBomh rA, ro uxDBsnBC mr myB rqBoFmro, FoB FDvsrjuBCzBC rs myB jBEnxmB.QumU/uxQzmUYYQumUuxQzmU;sFlmyroxnBC lnB rA myxn jBEnxmB tFh zxkB oxnB mr F DuFxt Aro CFtFzBn FsC/ro EB F DoxtxsFu rAABsDB.QumU/uxQzmUYYQumUuxQzmUaort mxtB mr mxtB, myxn jBEnxmB tFh Funr xsDulCB uxsvn mr rmyBo jBEnxmBn. #yBnB uxsvn FoB qorkxCBC Aro hrlo DrskBsxBsDB mr qorkxCB AlomyBo xsArotFmxrs. #yBh Cr srm nxzsxAh myFm jB BsCronB myB jBEnxmB(n). ?B yFkB sr oBnqrsnxExuxmh Aro myB DrsmBsm rA myB uxsvBC jBEnxmB(n).QumU/uxQzmUYY[qFqBomBtquFmB-xA=QplrmUDrlsmohQplrmU]QumUuxQzmU\iKGrlo lnB rA myxn jBEnxmB FsC Fsh CxnqlmB Foxnxsz rlm rA nlDy lnB rA myB jBEnxmB xn nlEwBDm mr myB uFjn rA ;sxmBC $mFmBn rA ftBoxDF.QumU/uxQzmU[/qFqBomBtquFmB-xA]YQumU/luQzmUYb1cUYSqFzBn[QplrmUCxnDuFxtBoQplrmU] = QumUQumUQumUb1cY QumUyOQzmUcxnDuFxtBoQumU/yOQzmUY #yB xsArotFmxrs DrsmFxsBC xs myxn jBEnxmB xn Aro zBsBoFu xsArotFmxrs qloqrnBn rsuh. YY #yB xsArotFmxrs xn qorkxCBC Eh QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU FsC jyxuB jB BsCBFkrlo mr vBBq myB xsArotFmxrs lq mr CFmB FsC DrooBDm, jB tFvB sr oBqoBnBsmFmxrsn ro jFooFsmxBn rA Fsh vxsC, BiqoBnn ro xtquxBC, FErlm myB DrtquBmBsBnn, FDDloFDh, oBuxFExuxmh, nlxmFExuxmh ro FkFxuFExuxmh jxmy oBnqBDm mr myB jBEnxmB ro myB xsArotFmxrs, qorClDmn, nBokxDBn, ro oBuFmBC zoFqyxDn DrsmFxsBC rs myB jBEnxmB Aro Fsh qloqrnB.Y Y fsh oBuxFsDB hrl quFDB rs nlDy xsArotFmxrs xn myBoBAroB nmoxDmuh Fm hrlo rjs oxnv.YY 7s sr BkBsm jxuu jB EB uxFEuB Aro Fsh urnn ro CFtFzB xsDulCxsz jxmyrlm uxtxmFmxrs, xsCxoBDm ro DrsnBplBsmxFu urnn ro CFtFzB, ro Fsh urnn ro CFtFzB jyFmnrBkBo Foxnxsz Aort urnn rA CFmF ro qorAxmn Foxnxsz rlm rA, ro xs DrssBDmxrs jxmy, myB lnB rA myxn jBEnxmB.YY #yorlzy myxn jBEnxmB hrl FoB FEuB mr uxsv mr rmyBo jBEnxmBn jyxDy FoB srm lsCBo myB Drsmoru rA QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU. ?B yFkB sr Drsmoru rkBo myB sFmloB, DrsmBsm FsC FkFxuFExuxmh rA myrnB nxmBn. #yB xsDulnxrs rA Fsh uxsvn CrBn srm sBDBnnFoxuh xtquh F oBDrttBsCFmxrs ro BsCronB myB kxBjn BiqoBnnBC jxmyxs myBt.YY bkBoh BAArom xn tFCB mr vBBq myB jBEnxmB lq FsC olssxsz ntrrmyuh. 8rjBkBo, QumUEQzmU[qFqBomBtquFmB-ElnxsBnnsFtB]QumU/EQzmU mFvBn sr oBnqrsnxExuxmh Aro, FsC jxuu srm EB uxFEuB Aro, myB jBEnxmB EBxsz mBtqroFoxuh lsFkFxuFEuB ClB mr mBDysxDFu xnnlBn EBhrsC rlo Drsmoru.Yb1cUYxA (Snulz == sluu) { Smyxn-QzmUDoBFmB_qFzB(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, SqFzBn[QplrmUDrqhoxzymQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, SqFzBn[QplrmUBFosxsznQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, SqFzBn[QplrmUqoxkFDhQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, SqFzBn[QplrmUmBotnQplrmU])U Smyxn-QzmUDoBFmB_qFzB(QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, SqFzBn[QplrmUCxnDuFxtBoQplrmU])U } BunBxA (Snulz == QplrmUDrqhoxzymQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, SqFzBn[QplrmUDrqhoxzymQplrmU])U } BunBxA (Snulz == QplrmUBFosxsznQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, SqFzBn[QplrmUBFosxsznQplrmU])U } BunBxA (Snulz == QplrmUqoxkFDhQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, SqFzBn[QplrmUqoxkFDhQplrmU])U } BunBxA (Snulz == QplrmUmBotn-DrsCxmxrsnQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, SqFzBn[QplrmUmBotnQplrmU])U } BunBxA (Snulz == QplrmUCxnDuFxtBoQplrmU) { Smyxn-QzmUDoBFmB_qFzB(QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, SqFzBn[QplrmUCxnDuFxtBoQplrmU])U } } qoxkFmB AlsDmxrs DoBFmB_qFzB(Snulz, SmxmuB, SDrsmBsmn) { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U xA (SqFzB QFtqUQFtqU (SqFzB-QzmUqrnm_nmFmln == QplrmUmoFnyQplrmU || SqFzB-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU)) { jq_CBuBmB_qrnm(SqFzB-QzmU7c, molB)U jq_CBuBmB_qrnm(SqFzB-QzmU7c, molB)U SqFzB = sluuU } xA (VSqFzB) { Sqrnm7c = jq_xsnBom_qrnm(FooFh( QplrmUqrnm_mxmuBQplrmU =QzmU jq_nmoxq_Fuu_mFzn(SmxmuB), QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqFzBQplrmU, QplrmUqrnm_DrsmBsmQplrmU =QzmU nmoxqnuFnyBn(SDrsmBsmn), QplrmUqrnm_nmFmlnQplrmU =QzmU QplrmUqlEuxnyQplrmU, QplrmUqrnm_FlmyroQplrmU =QzmU SDlooBsm_lnBo-QzmU7c, QplrmUqrnm_CFmBQplrmU =QzmU CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, mxtB()-HJLPP), QplrmUDrttBsm_nmFmlnQplrmU =QzmU QplrmUDurnBCQplrmU, QplrmUqxsz_nmFmlnQplrmU =QzmU QplrmUDurnBCQplrmU ), molB)U xA( xn_jq_Booro( Sqrnm7c) ) { BDyr QplrmUnulz Snulz: QplrmU.Sqrnm7c-QzmUzBm_Booro_tBnnFzB()U CxB()U } Smyxn-QzmUyxCB(Sqrnm7c)U Smyxn-QzmUnBm_mBtquFmB(Sqrnm7c, QplrmUqFqBomBtquFmBQplrmU)U oBmlos Sqrnm7cU } oBmlos sluuU } qlEuxD AlsDmxrs FDmxkFmB() { Smyxn-QzmUDoBFmB_qFzBn()U } qlEuxD AlsDmxrs CBuBmB_qFzBn() { Smyxn-QzmUCBuBmB_qFzB(QplrmUDrqhoxzymQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUBFosxsznQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUqoxkFDhQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUmBotn-DrsCxmxrsnQplrmU)U Smyxn-QzmUCBuBmB_qFzB(QplrmUCxnDuFxtBoQplrmU)U } qoxkFmB AlsDmxrs CBuBmB_qFzB(Snulz) { xA (VSnulz) { oBmlos AFunBU } SqFzB = zBm_qFzB_Eh_qFmy(Snulz, DrsnmFsm(QplrmU1e6bd#QplrmU), QplrmUqFzBQplrmU)U xA (SqFzB) { jq_moFny_qrnm(SqFzB-QzmU7c)U } } qlEuxD AlsDmxrs plBoh_kFon( SkFon ) { SkFon[] = QTPMGUqFqBomBtquFmB_kBoQTPMGUU SkFon[] = QTPMGUqFqBomBtquFmB_DnnQTPMGUU SkFon[] = QTPMGUqFzBQTPMGUU SkFon[] = QTPMGUArsmQTPMGUU SkFon[] = QTPMGUDruroQTPMGUU oBmlos SkFonU } qlEuxD AlsDmxrs srmArlsC_oBCxoBDm() { oBmlosU xA (Vxn_LPL()) { oBmlosU } SsrmArlsC = @xsmkFu(Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsCQplrmU))U SsrmArlsC_lou = Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU)U SoBCxoBDm = QplrmUQplrmUU xA (SsrmArlsC == P) { oBmlosU } BunBxA (SsrmArlsC == -O) { SoBCxoBDm = yrtB_lou()U } BunBxA (SsrmArlsC QzmU P) { SoBCxoBDm = zBm_qBotFuxsv(SsrmArlsC)U } xA (SoBCxoBDm QFtqUQFtqU VBtqmh(SoBCxoBDm)) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } qlEuxD AlsDmxrs Dnn_oBCxoBDm() { xA (VzBm_plBoh_kFo(QTPMGUqFqBomBtquFmB_kBoQTPMGU) QFtqUQFtqU VzBm_plBoh_kFo(QTPMGUqFqBomBtquFmB_DnnQTPMGU)) { oBmlosU } xA (VCBAxsBC(QTPMGUc121#dfd8b0f9bQTPMGU)) { CBAxsB( QTPMGUc121#dfd8b0f9bQTPMGU, molB )U } yBFCBo( QplrmU8##0/O.O NPP 15QplrmU )U yBFCBo( QplrmUdrsmBsm-mhqB: mBim/DnnQplrmU )U Srlmqlm = QplrmUQplrmUU SqFzB = xsmkFu(zBm_plBoh_kFo(QplrmUqFzBQplrmU))U SmBtquFmB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SArsm = zBm_plBoh_kFo(QplrmUArsmQplrmU)) { Srlmqlm .= Smyxn-QzmUDnn_Arsm(SArsm, SmBtquFmB)U } xA (SDruro = zBm_plBoh_kFo(QplrmUDruroQplrmU)) { Srlmqlm .= Smyxn-QzmUDnn_Druro(SDruro, SmBtquFmB)U } xA (SqFzB) { xA (AFunB QFtqUQFtqU (SDFDyB = jq_DFDyB_zBm(QplrmUDnn-QplrmU.SqFzB, QplrmUqFqBomBtquFmBQplrmU))) { Srlmqlm .= QplrmU/* DFDyBC qFzB */\sQplrmU.SDFDyBU } BunB { Srlmqlm .= zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U xA (SDnn_trExuB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, molB)) { Srlmqlm .= QTPMGU@tBCxF nDoBBs FsC (tFi-CBkxDB-jxCmy: LHPqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_trExuBU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } xA (SDnn_mFEuBm = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, molB)) { Srlmqlm .= QTPMGU@tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_mFEuBmU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } SmBtquFmB = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U Srlmqlm .= QplrmU/* myB Arsm = SArsm */\sQplrmUU xA (VSArsm QFtqUQFtqU (SArsm = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB))) { Srlmqlm .= Smyxn-QzmUDnn_Arsm(SArsm, SmBtquFmB)U } xA (VSDruro QFtqUQFtqU (SDruro = zBm_qrnm_tBmF(SqFzB, QplrmUqFqBomBtquFmB_DruroQplrmU, molB))) { Srlmqlm .= Smyxn-QzmUDnn_Druro(SDruro, SmBtquFmB)U } jq_DFDyB_nBm(QplrmUDnn-QplrmU.SqFzB, Srlmqlm, QplrmUqFqBomBtquFmBQplrmU)U } } BunB { Srlmqlm .= Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU)U xA (SDnn_trExuB = Smyxn-QzmUnBmmxsz(QplrmUDnn_trExuBQplrmU)) { Srlmqlm .= QTPMGU@tBCxF nDoBBs FsC (tFi-CBkxDB-jxCmy: LHPqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_trExuBU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } xA (SDnn_mFEuBm = Smyxn-QzmUnBmmxsz(QplrmUDnn_mFEuBmQplrmU)) { Srlmqlm .= QTPMGU@tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {QTPMGU.QplrmU\sQplrmUU Srlmqlm .= SDnn_mFEuBmU Srlmqlm .= QTPMGU}QTPMGU.QplrmU\sQplrmUU } } BDyr SrlmqlmU CxB()U } qlEuxD AlsDmxrs Dnn_Arsm(SArsm, SmBtquFmB=sluu) { xA (SmBtquFmB==QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { oBmlosU } SErCharsm = Smyxn-QzmUArsmn[SArsm]U SoBmlos = QplrmUQplrmUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU || SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { oBmlosU } xA ((SyBFCBo3Bsl = Smyxn-QzmUnBmmxsz(QplrmUtBsl_yBFCBoQplrmU)) QFtqUQFtqU SyBFCBo3Bsl V= QplrmUyxCCBsQplrmU) { SoBmlos .= QplrmU\sQplrmU.QplrmUTDrsmBsm { qFCCxsz-mrq:MPqiU }\sQplrmUU } SoBmlos .= QplrmU/* Arsm = SArsm */\sQplrmUU xA (SArsm QFtqUQFtqU SArsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SArsm V= QplrmUfoxFuQplrmU) { SoBmlos .= QplrmU\sQplrmU.QTPMGUyO, yN, yM, yL, yO *, yN *, yN nmorsz, yM *, yL *, Cxk .qFqBomBtquFmB-nlEtxm, xsqlm, Cxk xsqlm.qFqBomBtquFmB-nlEtxm { Arsm-AFtxuh:QplrmUQTPMGU.SArsm.QTPMGUQplrmU VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUfoxFuQplrmU) { SoBmlos .= QTPMGUyO, yO *, yO nqFs { Arsm-AFtxuh:QplrmU1njFuCQplrmU,foxFu,8BukBmxDF,nFsn-nBoxAU Arsm-nxgB:LHqiU uBmmBo-nqFDxsz:-OqiU Druro:TAAMJPPU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTDrsmBsm QzmU yN:smy-rA-mhqB(O) { Arsm-nxgB:NNqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN { Arsm-nxgB:NHqiU uxsB-yBxzym:NJqiU Arsm-jBxzym:IPP VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, yN *, yN nqFs, yM, yM *, yL, yL *, Cxk .qFqBomBtquFmB-nlEtxm, xsqlm { Arsm-AFtxuh:foxFu,8BukBmxDF,nFsn-nBoxAU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:OKqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU1njFuCQplrmU || SArsm == QplrmU4FmrQplrmU || SArsm == QplrmU2lsxmrQplrmU || SArsm == QplrmU0# $FsnQplrmU || SArsm == QplrmU$rloDB $Fsn 0orQplrmU || SArsm == QplrmU1qBs $FsnQplrmU) { } xA (SArsm == QplrmU3rsmnBooFmQplrmU) { SoBmlos .= QTPMGUyO, yO *, yO nqFs { Arsm-nxgB:MJqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { Arsm:OKqi/NNqiU Druro:TMHMHMHU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUcorxC $FsnQplrmU) { SoBmlos .= QTPMGUyO, yO * { Arsm-nxgB:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO, yN, yN E, yN nmorsz, .qFqBomBtquFmB-nlEtxm { uBmmBo-nqFDxsz:-NqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { uBmmBo-nqFDxsz:-P.KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmUcorxC $FsnQplrmU) { SoBmlos .= QTPMGUq, ux, E, x, Bt, nmorsz, nqFs, n { uBmmBo-nqFDxsz:PU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU4FmrQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:NPqiU Druro:TLLLU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUErCh, mC, q, ux, nqFs { Arsm-jBxzym:MPPU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU$rloDB $Fsn 0orQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:NPqiU Druro:TMALFLCU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU rErmr drsCBsnBCQplrmU) { SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-nxgB:OLqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MHqiU uxsB-yBxzym:MHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUmC, q, ux { qFCCxsz-mrq:KqiU qFCCxsz-Ermmrt:KqiU }QTPMGU.QplrmU\sQplrmUU } xA (SArsm == QplrmU1njFuCQplrmU || SArsm == QplrmU4FmrQplrmU || SArsm == QplrmU2lsxmrQplrmU || SArsm == QplrmU0# $FsnQplrmU || SArsm == QplrmU$rloDB $Fsn 0orQplrmU) { SoBmlos .= QTPMGUyO, yO * { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, yN x, yN Bt, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MHqiU uxsB-yBxzym:MHqiU }QTPMGU.QplrmU\sQplrmUU } BunBxA (SArsm == QplrmU!FoBuF rlsCQplrmU) { SoBmlos .= QTPMGUyO { Arsm-nxgB:LNqiU uxsB-yBxzym:LNqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, EurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MNqiU uxsB-yBxzym:MNqiU }QTPMGU.QplrmU\sQplrmUU } BunBxA (SArsm == QplrmUfoxtrQplrmU || SArsm == QplrmU1qBs $FsnQplrmU) { SoBmlos .= QTPMGUyO { Arsm-nxgB:LHqiU uxsB-yBxzym:LHqiU Arsm-jBxzym:srotFuU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyO E, yO nmorsz { Arsm-jBxzym:EruCU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUyN, { Arsm-nxgB:LPqiU uxsB-yBxzym:LPqiU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUEurDvplrmB yN, EurDvplrmB yN l { Arsm-nxgB:MPqiU uxsB-yBxzym:MPqiU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGUErCh, mC, q, ux, E, x, Bt, nmorsz, nqFs, n { Arsm-AFtxuh:QplrmUQTPMGU.SErCharsm.QTPMGUQplrmUU }QTPMGU.QplrmU\sQplrmUU oBmlos SoBmlosU } qlEuxD AlsDmxrs Dnn_EhnmFsCBon(SqoBAxi) { SEhnmFsCBon = QplrmUmC, q, ux, E, x, Bt, nmorsz, nqFs, n, yO, yN, yM, yL, FQplrmUU SoBmlos = FooFh()U AroBFDy (SEhnmFsCBon Fn SEhnmFsCBo) { SoBmlos[] = SqoBAxi . QplrmU QplrmU . SEhnmFsCBoU } oBmlos xtqurCB(QplrmU, QplrmU, SoBmlos)U } qlEuxD AlsDmxrs Dnn_Druro(SDruro, SmBtquFmB=sluu) { xA (SmBtquFmB==QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { oBmlosU } SErChdruro = Smyxn-QzmUDruron[SDruro]U SDrsmoFnm = OHPU xA (VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB) { SmBtquFmB = QplrmUqFqBomBtquFmBQplrmUU } } SoBmlos = QTPMGUQTPMGUU SEhnmFsCBon = QplrmU*QplrmUU xA (SmBtquFmB==QplrmUqFqBomBtquFmB-AlnxrsQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-nlqBoQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-qoxtBQplrmU) { xA (Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P], SDrsmoFnm) V= QTPMGUTPPPPPPQTPMGU) { SoBmlos .= QTPMGUyO { Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU } BunBxA (Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O], SDrsmoFnm) V= QTPMGUTPPPPPPQTPMGU) { SoBmlos .= QTPMGUyO { Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGUTmxshtDB QzmU .qFqBomBtquFmB-mrq, TDrsmBsm QzmU .qFqBomBtquFmB-mrq { EFDvzorlsC-Druro: QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .qFqBomBtquFmB-mrq QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .qFqBomBtquFmB-mrq:Axonm-rA-mhqB QTPMGU.SEhnmFsCBon.QTPMGU { Druro: QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P]).QTPMGU VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB, TDrsmBsm QzmU .nmoxqB { EFDvzorlsC-Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O], SDrsmoFnm).QTPMGU U }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTqFqBomBtquFmB-sFkxzFmxrs { EFDvzorlsC-Druro: QTPMGU.SErChdruro[M].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTqFqBomBtquFmB-sFkxzFmxrs QTPMGU.SEhnmFsCBon.QTPMGU { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[M]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB:smy-rA-mhqB(Ns+O), TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) { EFDvzorlsC-Druro: QTPMGU.SErChdruro[N].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTmxshtDB QzmU .nmoxqB:smy-rA-mhqB(Ns+O) QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) QTPMGU.SEhnmFsCBon.QTPMGU, TDrsmBsm QzmU .nmoxqB:smy-rA-mhqB(Ns+O) { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[N], SDrsmoFnm).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot { EFDvzorlsC-Druro:QTPMGU.SErChdruro[O].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot { EroCBo-Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.roCBoArot, .roCBoArot ux, .roCBoArot q, .roCBoArot E, .roCBoArot nmorsz, .roCBoArot x, .roCBoArot mC, .roCBoArot Arot, .roCBoArot yO, .roCBoArot yN, .roCBoArot yO *, .roCBoArot yN * { Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[O]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.qFqBomBtquFmB-nlEtxm-mFEuB mC { EFDvzorlsC-Druro:QTPMGU.SErChdruro[P].QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.qFqBomBtquFmB-nlEtxm-mFEuB mC:yrkBo { EFDvzorlsC-Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[P]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU } SoBmlos .= QTPMGU.nmoxqB .EBnmrqmxrs { Druro:TGGGGGG VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGUTDrsmBsm F, TDrsmBsm F:kxnxmBC { Druro:EulB VxtqromFsmU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.tFxs-sFkxzFmxrs, .tFxs-sFkxzFmxrs lu ux F, .tFxs-sFkxzFmxrs ux lu ux F { EFDvzorlsC-Druro:QTPMGU.SErChdruro[N].QTPMGUU Druro:QTPMGU.Smyxn-QzmUoBFCFEuBdruro(SErChdruro[N]).QTPMGUU }QTPMGU.QplrmU\sQplrmUU SoBmlos .= QTPMGU.nmoxqB yN nmorsz, .nmoxqB yN E, EurDvplrmB yN nmorsz, .nmoxqB yN E { CxnquFh:xsuxsBU }QTPMGU.QplrmU\sQplrmUU oBmlos SoBmlosU } qlEuxD AlsDmxrs trCxAh_wplBoh() { jq_CBoBzxnmBo_nDoxqm(QTPMGUwplBohQTPMGU)U jq_oBzxnmBo_nDoxqm(QTPMGUwplBohQTPMGU, QTPMGU//FwFi.zrrzuBFqxn.Drt/FwFi/uxEn/wplBoh/O/wplBoh.txs.wnQTPMGU, AFunB)U jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U } qlEuxD AlsDmxrs BsplBlB_nDoxqmn() { zurEFu SqrnmU SArsm$moxsz = QTPMGUQTPMGUU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } SmBtquFmB = Smyxn-QzmUzBm_mBtquFmB(Sqrnm-QzmU7c)U Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U xA (VSmBtquFmB) { oBmlosU } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlosU } SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBArsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFzBDruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U jq_BsplBlB_nmhuB(QTPMGUwplBohQTPMGU)U xA (SqFzBArsm) { SErCharsm = Smyxn-QzmUArsmn[SqFzBArsm]U xA (SqFzBArsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SqFzBArsm V= QplrmU!BoCFsFQplrmU) { xA (SqFzBArsm == QplrmUfoxFuQplrmU) { SArsm$moxsz = QplrmU1njFuC:QplrmUU } BunB { SArsm$moxsz = SqFzBArsm.QTPMGU:QTPMGUU } xA (SqFzBArsm == QplrmU4FmrQplrmU) { SArsm$moxsz .= QTPMGUMPP,QTPMGUU } SArsm$moxsz .= QTPMGULPP,IPPQTPMGUU xA (SmBtquFmB==QplrmUqFqBomBtquFmB-AlnxrsQplrmU || SmBtquFmB==QplrmUqFqBomBtquFmB-qoxtBQplrmU) { SArsm$moxsz .= QTPMGU,HPPQTPMGUU } } xA (SErCharsm V= SqFzBArsm QFtqUQFtqU SErCharsm V= QplrmU#FyrtFQplrmU QFtqUQFtqU SErCharsm V= QplrmU!BoCFsFQplrmU QFtqUQFtqU SErCharsm V= QplrmUfoxFuQplrmU) { SArsm$moxsz .= QTPMGU|QTPMGU.SErCharsm.QTPMGU:LPP,IPPQTPMGUU } xA (SArsm$moxsz) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-ArsmQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(SArsm$moxsz))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-ArsmQTPMGU)U } } xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB QFtqUQFtqU Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU)) { SDlnmrtdnn = yrtB_lou(QplrmUWqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-DlnmrtQTPMGU, SDlnmrtdnn)U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-DlnmrtQTPMGU )U } xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB QFtqUQFtqU (SqFzBDnn || SqFzBArsm || SqFzBDruro)) { SDlnmrtdnn = yrtB_lou(QplrmUWqFzB=QplrmU.Sqrnm7c.QplrmUQFtqUqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-Dlnmrt-QTPMGU.Sqrnm7c, SDlnmrtdnn)U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-Dlnmrt-QTPMGU.Sqrnm7c)U } } qlEuxD AlsDmxrs BsplBlB_Arsmn() { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlosU } SmBtquFmB = Smyxn-QzmUzBm_mBtquFmB(Sqrnm-QzmU7c)U xA (VSmBtquFmB) { oBmlosU } xA (VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlosU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU0# $Fsn:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-AlnxrsQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-qoxtBQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-qoxtBQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU1njFuC:LPP,IPP|4Fmr:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-qoxtBQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-nlqBoQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU1njFuC:LPP,IPP|4Fmr:LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-nlqBoQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-jBExsFoQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(QTPMGU rErmr drsCBsnBC:MPP,LPP,IPPQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-jBExsFoQTPMGU)U } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU) QFtqUQFtqU SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU) { } } qlEuxD nmFmxD AlsDmxrs BkFu_EuFsv(Sxsqlm) { rE_nmFom()U BkFu( QTPMGUWQTPMGU.QTPMGUQzmUQTPMGU.Sxsqlm.QTPMGU QumUQTPMGU.QTPMGUWqyq QTPMGU )U SoBmlos = rE_BsC_Aulny()U oBmlos SoBmlosU } qlEuxD AlsDmxrs FDmxkB_qulzxsn(Squlzxsn) { CxB(QplrmUmBnmQplrmU)U } qlEuxD AlsDmxrs mBtquFmB(Sxsqlm=QplrmUQplrmU) { zurEFu SqrnmU zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln)) { xA (StBtEBozBsxln-QzmUyFny BplBnm()) { oBmlos SxsqlmU } } xA (xnnBm(Sqrnm-QzmU7c)) { Sqrnm7c = Sqrnm-QzmU7cU } BunB { Sqrnm7c = zBm_myB_7c()U } xA (Vxn_qFzB() QFtqUQFtqU Vxn_Aorsm_qFzB()) { oBmlosU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU) { oBmlos SxsqlmU } xA (SmBtquFmB == QplrmUEuFsvQplrmU) { zurEFu Sjq_AxumBoU oBtrkB_Fuu_AxumBon(QplrmUmyB_DrsmBsmQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUmyB_mxmuBQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUmyB_BiDBoqmQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUjq_yBFCQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUjq_ArrmBoQplrmU)U oBtrkB_Fuu_AxumBon(QplrmUxsxmQplrmU)U oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFsv.qyqQTPMGUU } xA (qoBz_tFmDy(QTPMGU@^qFqBomBtquFmB@nxQTPMGU, SmBtquFmB)) { zurEFu Sjq_AxumBoU oBtrkB_AxumBo(QTPMGUxsCBi_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGULPL_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFoDyxkB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFlmyro_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUDFmBzroh_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUmFz_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUmFirsrth_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUCFmB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUyrtB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUAorsm_qFzB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUqFzB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUqFzBC_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUnBFoDy_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUnxszuB_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U oBtrkB_AxumBo(QTPMGUFmmFDytBsm_mBtquFmBQTPMGU, QTPMGUFmrt_jq_mBtquFmBnQTPMGU, GGG)U FCC_AxumBo(QplrmUjq_qFzB_tBslQplrmU, QplrmU__oBmlos_AFunBQplrmU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjrr_BsplBlB_Dlnmrt_nmhuxszQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUjrrmyBtBn_jq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_nmhuBnQTPMGU, QTPMGUjrr_urFC_srs_oBnqrsnxkB_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_yBFC_nDoxqmnQTPMGU, QTPMGUjrr_urFC_nxmB_jxCmy_DnnQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUmyBtB-nmhuBnyBBmQTPMGU)U jq_CBplBlB_nmhuB(QTPMGUjrr-uFhrlmQTPMGU)U oBtrkB_FDmxrs( QTPMGUjq_BsplBlB_nDoxqmnQTPMGU, QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU, NP )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUrq_FCC_myBtB_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_BsplBlB_nDoxqmnQTPMGU,QTPMGUjrr_urFC_AorsmBsC_DnnQTPMGU)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { } jq_CBplBlB_nmhuB(QplrmUmmnq-FuuQplrmU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUmmnq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUCr_ChsFtxD_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_ArrmBoQTPMGU,QTPMGUQTPMGU)U jq_CBplBlB_nmhuB( QTPMGUChsFtxv_txsxAxBC_nmhuBnyBBmQTPMGU)U jq_CBplBlB_nmhuB( QTPMGUDFmFuhnm_txsxAxBC_nmhuBnyBBmQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUuFtECF_Dlnmrt_DnnQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjBFkBoxx_jq_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUjqtBt_yBFCQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU,QTPMGUEAF_xsuxsB_Dnn_wnQTPMGU)U oBtrkB_AxumBo( QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUFlmr_nrDxFEuBQTPMGU )U oBtrkB_AxumBo( QTPMGUmyB_BiDBoqmQTPMGU, QTPMGUFlmr_nrDxFEuBQTPMGU )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUAuBii_ErCh_EzQTPMGU)U oBtrkB_FDmxrs(QTPMGUxmyBtBn_xsxmQTPMGU, QTPMGUxmyBtBn_AuBii_uFhrlm_urFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUDrsmBsm_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUDrsmFxsBo_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFErkB_ArrmBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFErkB_yBFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUFAmBo_DrsmBsmQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUEBAroB_DrsmBsmQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUEBurj_yBFCBoQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUABFmloB_Ermmrt_nmhuBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUABFmloB_mrq_nmhuBQTPMGU)U oBtrkB_FDmxrs(QTPMGUjq_qoxsm_nmhuBnQTPMGU, QTPMGUjqnu_BsplBlB_nmhuBnQTPMGU)U AroBFDy (Sjq_AxumBo Fn SmFz =QzmU SFooFh) { AroBFDy (SFooFh Fn SnlEFooFh) { Syrrvn = FooFh_vBhn(SnlEFooFh)U AroBFDy (Syrrvn Fn Syrrv) { xA (SmFz V= QplrmUjq_BsplBlB_nDoxqmnQplrmU QFtqUQFtqU SmFz V= QplrmUjq_BsplBlB_nmhuBnQplrmU) { DrsmxslBU } xA (nmoqrn(Syrrv, QplrmU 9arotnQplrmU) V== AFunB) { DrsmxslBU } xA (nmoqrn(Syrrv, QplrmU!xCBr0uFhBoQplrmU) V== AFunB) { DrsmxslBU } xA (Syrrv == QplrmUDnnM_zoxC_BsplBlB_nDoxqmnQplrmU) { DrsmxslBU } xA (Syrrv == QplrmUjq_AuxqDurDv_BsplBlB_nDoxqmQplrmU) { DrsmxslBU } xA (qoBz_tFmDy(QTPMGU@^[P-GF-A]{MN}BsplBlB_Dnn@nxQTPMGU, Syrrv)) { DrsmxslBU } oBtrkB_AxumBo(SmFz, Syrrv)U } } } oBtrkB_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_AxumBo(QTPMGUmyB_mxmuBQTPMGU, QTPMGUjqmBimloxgBQTPMGU )U oBtrkB_FDmxrs(QTPMGUjq_yBFCQTPMGU, QTPMGUjq_zBsBoFmroQTPMGU)U } xA (VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { xA (nmoqrn(SmBtquFmB, QplrmUqFqBomBtquFmBQplrmU) V== AFunB) { SmBtquFmB = QplrmUqFqBomBtquFmBQplrmUU } } xA (SmBtquFmB == QplrmUqFqBomBtquFmBQplrmU) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-CBAFlum.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EFoBErsBn.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nmoBFtuxsBC.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-EuFDvQplrmU QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFDv.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-qoxtBQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGUU } xA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { oBmlos CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGUU } oBmlos SxsqlmU } qoxkFmB AlsDmxrs qrnm_xC() { zurEFu SjqCEU xA (xnnBm(S_ b&;b$#[QplrmUqFzB_xCQplrmU])) { oBmlos S_ b&;b$#[QplrmUqFzB_xCQplrmU]U } Snulz = EFnBsFtB(S_$b !b [QplrmU b&;b$#_; 7QplrmU])U Snulz = omoxt(Snulz, QplrmU/QplrmU)U Snpu = QplrmU$b4bd# 7c a 13 SjqCE-QzmUqrnmn ?8b b qrnm_sFtB = QTPMGUQplrmU.thnpu_oBFu_BnDFqB_nmoxsz(Snulz).QplrmUQTPMGUQplrmUU oBmlos SjqCE-QzmUzBm_kFo(Snpu)U } qlEuxD AlsDmxrs myBtB(SmyBtB=QplrmUQplrmU) { Sqrnm7c = Smyxn-QzmUqrnm_xC()U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U xA (Btqmh(SmyBtB)) { oBmlos SmyBtBU } xA (VSmBtquFmB) { oBmlos SmyBtBU } oBmlos SmBtquFmBU } qoxkFmB AlsDmxrs nsxqqBmn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_nsxqqBmnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU])) { oBmlosU } SsBj$sxqqBmn = S_01$#[QplrmUqFqBomBtquFmB_nsxqqBmQplrmU]U SnsxqqBmn = FooFh()U AroBFDy (SsBj$sxqqBmn Fn SnsxqqBm) { xA (xnnBm(SnsxqqBm[QplrmUCBuBmBQplrmU])) { DrsmxslBU } SnsxqqBm2FtB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-]+@nxQTPMGU, QTPMGUQTPMGU, SnsxqqBm[QplrmUsFtBQplrmU])U xA (SnsxqqBm2FtB == QplrmUQplrmU) { DrsmxslBU } xA (nmoqrn(SnsxqqBm2FtB, QplrmUqFqBomBtquFmBQplrmU) === P) { DrsmxslBU } SnsxqqBmdrsmBsmn = moxt(nmoxqnuFnyBn(SnsxqqBm[QplrmUDrsmBsmnQplrmU]))U xA (VBtqmh(SnsxqqBmdrsmBsmn)) { SnsxqqBmn[SnsxqqBm2FtB] = SnsxqqBmdrsmBsmnU } } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU, SnsxqqBmn)U } qoxkFmB AlsDmxrs CrtFxsn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_CrtFxsnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU])) { oBmlosU } SsBjcrtFxsn = S_01$#[QplrmUqFqBomBtquFmB_CrtFxsQplrmU]U SCrtFxsn = FooFh()U AroBFDy (SsBjcrtFxsn Fn SCrtFxs) { xA (xnnBm(SCrtFxs[QplrmUCBuBmBQplrmU])) { DrsmxslBU } SCrtFxs2FtB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-\.\/]+@nxQTPMGU, QTPMGUQTPMGU, SCrtFxs[QplrmUsFtBQplrmU])U xA (SCrtFxs2FtB == QplrmUQplrmU) { DrsmxslBU } SCrtFxs0FzB = @xsmkFu(SnsxqqBm[QplrmUqFzBQplrmU])U } lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_CrtFxsnQplrmU, SnsxqqBmn)U } qoxkFmB AlsDmxrs oBCxoBDmn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmB_oBCxoBDmnQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU])) { oBmlosU } xA (Vxn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU])) { oBmlosU } SsBj BCxoBDmn = S_01$#[QplrmUqFqBomBtquFmB_oBCxoBDmQplrmU]U AroBFDy (SsBj BCxoBDmn Fn SoBCxoBDm7c =QzmU SsBj BCxoBDm) { SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U xA (xnnBm(SsBj BCxoBDm[QplrmUCBuBmBQplrmU])) { Smyxn-QzmUtrCBu-QzmUoBtrkB BCxoBDm(SoBCxoBDm7c)U DrsmxslBU } xA (VxnnBm(SsBj BCxoBDm[QplrmUsFtBQplrmU]) || VxnnBm(SsBj BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])) { DrsmxslBU } xA (xnnBm(SsBj BCxoBDm[QplrmUoBnBmQplrmU])) { @nBmDrrvxB(QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, QplrmUQplrmU, mxtB()-HJLPP, QplrmU/QplrmU)U Smyxn-QzmUtrCBu-QzmUoBnBm#oFDvxsz(SoBCxoBDm7c)U DrsmxslBU } xA (SoBCxoBDm7c == P) { Smyxn-QzmUtrCBu-QzmUFCC BCxoBDm(SsBj BCxoBDm[QplrmUsFtBQplrmU], SsBj BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])U DrsmxslBU } xA (SsBj BCxoBDm[QplrmUsFtBQplrmU] V= SsBj BCxoBDm[QplrmUsFtB_roxzxsFuQplrmU] || SsBj BCxoBDm[QplrmUCBnmxsFmxrsQplrmU] V= SsBj BCxoBDm[QplrmUCBnmxsFmxrs_roxzxsFuQplrmU]) { Smyxn-QzmUtrCBu-QzmUlqCFmB BCxoBDm(SoBCxoBDm7c, SsBj BCxoBDm[QplrmUsFtBQplrmU], SsBj BCxoBDm[QplrmUCBnmxsFmxrsQplrmU])U } } } qoxkFmB AlsDmxrs rqmxrsn_nFkB() { xA (VxnnBm(S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU])) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmBQTPMGU ) ) { oBmlosU } xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU]) QFtqUQFtqU VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])) { oBmlosU } SnBmmxszn = Smyxn-QzmUnBmmxsz()U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU])) { SnBmmxszn[QplrmUoBFusFtBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_oBFusFtBQplrmU]U SnBmmxszn[QplrmUElnxsBnnsFtBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU]U SnBmmxszn[QplrmUDrsmFDmBtFxuQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_BtFxuQplrmU]U SnBmmxszn[QplrmUFCCoBnnQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_FCCoBnnQplrmU]U SnBmmxszn[QplrmUqyrsBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_qyrsBQplrmU]U SnBmmxszn[QplrmUDrlsmohQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_DrlsmohQplrmU]U SnBmmxszn[QplrmUnlqqromQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_nlqqromQplrmU]U SnBmmxszn[QplrmUFAAxuxFmBQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_FAAxuxFmBQplrmU]U SnBmmxszn[QplrmUtBtEBonQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBtEBonQplrmU]U SnBmmxszn[QplrmUtBslQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBslQplrmU]U SnBmmxszn[QplrmUtBsl_yBFCBoQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_tBsl_yBFCBoQplrmU]U SnjxqByBFCuxsB = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_njxqByBFCuxsBQplrmU])U SnjxqByBFCuxsB = BiqurCB(QplrmU\sQplrmU, SnjxqByBFCuxsB)U SnjxqByBFCuxsB = FooFh_tFq(QplrmUmoxtQplrmU, SnjxqByBFCuxsB)U SnjxqByBFCuxsB = FooFh_AxumBo(SnjxqByBFCuxsB, QplrmUnmouBsQplrmU)U SnjxqByBFCuxsB = xtqurCB(QplrmU\sQplrmU, SnjxqByBFCuxsB)U SnBmmxszn[QplrmUnjxqByBFCuxsBQplrmU] = SnjxqByBFCuxsBU } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU])) { SnBmmxszn[QplrmUAorsmQplrmU] = S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU]U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_srmArlsCQplrmU])) { SnBmmxszn[QplrmUqFqBomBtquFmB_srmArlsCQplrmU] = @xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_srmArlsCQplrmU])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU])) { SnBmmxszn[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU]) QFtqUQFtqU xn_sltBoxD(SnBmmxszn[QplrmUAorsmQplrmU])) { xA (SnBmmxszn[QplrmUAorsmQplrmU] == P) { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqrnmnQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, P)U } BunB { lqCFmB_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU, QplrmUqFzBQplrmU)U lqCFmB_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU, SnBmmxszn[QplrmUAorsmQplrmU])U } } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU])) { SnBmmxszn[QplrmUDnnQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_DnnQplrmU])U SnBmmxszn[QplrmUDnn_trExuBQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU])U SnBmmxszn[QplrmUDnn_mFEuBmQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU])U SnBmmxszn[QplrmUArrmBoQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_ArrmBoQplrmU])U SnBmmxszn[QplrmUyBFCBoQplrmU] = nmoxqnuFnyBn(S_01$#[QplrmUqFqBomBtquFmB_yBFCBoQplrmU])U } Smyxn-QzmUnBmmxsz(sluu, SnBmmxszn)U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])) { SqFzB7cn = FooFh_vBhn(S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU])U AroBFDy (SqFzB7cn Fn SqFzB7c) { lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, S_01$#[QplrmUqFqBomBtquFmB_myBtBQplrmU][SqFzB7c])U lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][SqFzB7c])U lqCFmB_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, S_01$#[QplrmUqFqBomBtquFmB_ArsmQplrmU][SqFzB7c])U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_yxCBQplrmU][SqFzB7c])) { Smyxn-QzmUlsyxCB(SqFzB7c)U } BunB { Smyxn-QzmUyxCB(SqFzB7c)U } } } } qoxkFmB AlsDmxrs sFtB(SnlEmxmuB=QplrmUQplrmU) { xA (CBAxsBC(QplrmU0f0b #b304f#b_!b $712QplrmU) QFtqUQFtqU CBAxsBC(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU)) { SoBmlos = DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_2f3bQplrmU) . QplrmU QplrmU . DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU)U } BunB { SoBmlos = QplrmU0FqBo #BtquFmBQplrmUU } xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { SoBmlos .= QplrmU ;umxtFmBQplrmUU } BunBxA (CBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { SoBmlos .= QplrmU biqoBnnQplrmUU } xA (SnlEmxmuB) { oBmlos SoBmlos . QplrmU: QplrmU . SnlEmxmuBU } BunB { oBmlos SoBmlosU } } qoxkFmB AlsDmxrs rqmxrsn_yBFCBo() { Sqm = QplrmUQplrmUU xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-qFzBnQplrmU) { Sqm = QplrmUqFzBnQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU) { Sqm = QplrmUnBmmxsznQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nsxqqBmnQplrmU) { Sqm = QplrmUnsxqqBmnQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-oBCxoBDmnQplrmU) { Sqm = QplrmUoBCxoBDmnQplrmUU } xA (S_ b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-CrtFxsnQplrmU) { Sqm = QplrmUCrtFxsnQplrmUU } SoBDBsm0FzBn = zBm_qFzBn(QplrmUnrom_Drults=qrnm_trCxAxBCQFtqUnrom_roCBo=CBnDQFtqUsltEBo=KQFtqUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQFtqUqrnm=nmFmln=qlEuxny,qoxkFmB,CoFAmQplrmU)U Snvxq = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, QplrmUjxnyuxnm-tBtEBoQplrmU, QplrmUtBtEBozBsxlnQplrmU)U SoBDBsm = FooFh()U xA (Drlsm(SoBDBsm0FzBn) QzmU P) { Sx = OU AroBFDy (SoBDBsm0FzBn Fn SoBDBsm0FzB) { xA (xs_FooFh(SoBDBsm0FzB-QzmUqrnm_sFtB, Snvxq)) { DrsmxslBU } SoBDBsm[SoBDBsm0FzB-QzmU7c] = SoBDBsm0FzB-QzmUqrnm_mxmuBU } } SsBj0FzBn = FooFh( QplrmUrqmxsqFzBQplrmU =QzmU QplrmU1qmxs 0FzBQplrmU, QplrmUjBExsFoQplrmU =QzmU QplrmU?BExsFo $xzslqQplrmU, QplrmUoBquFhqFzBQplrmU =QzmU QplrmU?BExsFo BquFhQplrmU, QplrmUnFuBnqFzBQplrmU =QzmU QplrmU$FuBn 0FzBQplrmU, QplrmUCrjsurFCqFzBQplrmU =QzmU QplrmUcrjsurFC 0FzBQplrmU, QplrmUzxAmqFzBQplrmU =QzmU QplrmU9xAm 0FzBQplrmU )U WQzmUY QumUyM nmhuB=QplrmUArsm-nxgB:OLqiU tFozxs:PUQplrmUQzmUdoBFmB 8xzy-drskBomxsz $FuBn 4BmmBon, 1qmxs 0FzBn, 1o !xCBr 0FzBn xzym ?xmyxs ?roC0oBnn.QumU/yMQzmUYY QumUCxk xC=QplrmUqFqBomBtquFmB-mFEnQplrmUQzmUY QumUyN DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmUQplrmU rstrlnBrkBo=QplrmUw&lBoh(QTPMGU.qFqBomBtquFmB-nlEmFEnQTPMGU).yxCB()U w&lBoh(QTPMGUTqFqBomBtquFmB-nlEmFE-qFzBnQTPMGU).nyrj()UQplrmUQzmU4FsCxsz 0FzBnQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnBmmxsznQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-nBmmxsznQplrmUQzmU$xmB $BmmxsznQumU/FQzmUYY QumUWqyq xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)): WQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnsxqqBmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-nsxqqBmnQplrmUQzmU$sxqqBmnQumU/FQzmUY QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUoBCxoBDmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-oBCxoBDmnQplrmUQzmU BCxoBDmnQumU/FQzmUY QumUWqyq BsCxAU WQzmUYY QumUV--Y QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUCrtFxsnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-CrtFxsnQplrmUQzmU0FovBC crtFxsnQumU/FQzmUY --QzmUYY QumUF DuFnn=QplrmUsFk-mFEQplrmU yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU rstrlnBrkBo=QplrmUw&lBoh(QTPMGU.qFqBomBtquFmB-nlEmFEnQTPMGU).yxCB()U w&lBoh(QTPMGUTqFqBomBtquFmB-nlEmFE-sBjQTPMGU).nyrj()UQplrmUQzmU2Bj 4FsCxsz 0FzBQumU/FQzmUY QumU/yNQzmUYY QumUWqyq xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)): WQzmUY QumUlu DuFnn=QplrmUnlEnlEnlE qFqBomBtquFmB-nlEmFEnQplrmU xC=QplrmUqFqBomBtquFmB-nlEmFE-qFzBnQplrmU nmhuB=QplrmUAurFm:srsB VxtqromFsmU tFozxs-uBAm:NPqiU CxnquFh:QumUWqyq BDyr (Sqm == QplrmUqFzBnQplrmU || Sqm == QplrmUQplrmU) W QTPMGUEurDvQTPMGU : QTPMGUsrsBQTPMGUU WQzmUUQplrmUQzmUY QumUWqyq AroBFDy (SoBDBsm Fn SoBDBsm0FzB =QzmU SoBDBsm#xmuB): WQzmUY QumUux DuFnn=QplrmUFDmxkBQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_qrnm_uxsv(SoBDBsm0FzB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm#xmuB)U WQzmUQumU/FQzmU QumUWqyq xA (SoBDBsm#xmuB V= BsC(SoBDBsm)): WQzmU |QumUWqyq BsCxAU WQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/luQzmUYY QumUlu DuFnn=QplrmUnlEnlEnlE qFqBomBtquFmB-nlEmFEnQplrmU xC=QplrmUqFqBomBtquFmB-nlEmFE-sBjQplrmU nmhuB=QplrmUAurFm:srsB VxtqromFsmU tFozxs-uBAm:NPqiU CxnquFh:QumUWqyq BDyr (Sqm == QplrmUsBjQplrmU) W QTPMGUEurDvQTPMGU : QTPMGUsrsBQTPMGUU WQzmUUQplrmUQzmUY QumUWqyq AroBFDy (SsBj0FzBn Fn SsBj0FzB =QzmU SsBj#xmuB): WQzmUY QumUux DuFnn=QplrmUFDmxkBQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=QplrmU.SsBj0FzB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SsBj#xmuB)U WQzmUQumU/FQzmU QumUWqyq xA (SsBj#xmuB V= BsC(SsBj0FzBn)): WQzmU |QumUWqyq BsCxAU WQzmUQumU/uxQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumUWqyq BsCxAU WQzmUY QumU/luQzmUY QumU/CxkQzmUYY QumUqQzmUQumUxQzmU#r EBzxs, DyrrnB F qFzB mr BCxm EBurj ro QumUF yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQplrmUQzmUDoBFmB F sBj qFzBQumU/FQzmU DFuuBC QFtqUplrmU$FuBn 4BmmBoQFtqUplrmU ... lsCBo myB qrnm xmnBuA hrl jxuu nBB F Eri DFuuBC QFtqUplrmU0FqBo #BtquFmBQFtqUplrmU jyBoB hrl DFs DyrrnB jyxDy mBtquFmB mr lnB.QumUEo /QzmU Y #yBs 0lEuxny myFm qFzB FsC hrl yFkB F qFqBo-mBtquFmB BsFEuBC nFuBn uBmmBo.QumU/xQzmUQumU/qQzmUYY QumUWqyqY } qoxkFmB AlsDmxrs Fuuarsmn() { SArsm$moxsz = QplrmUQplrmUU SArsm4xnm = FooFh()U SElxum7s = FooFh(QplrmU#FyrtFQplrmU, QplrmU!BoCFsFQplrmU)U AroBFDy (Smyxn-QzmUArsmn Fn SqFzBArsm =QzmU SErChArsm) { xA (xs_FooFh(SqFzBArsm, SElxum7s) || xs_FooFh(SErChArsm, SElxum7s)) { DrsmxslBU } SArsm4xnm[] = SqFzBArsmU SArsm4xnm[] = SErChArsmU } SArsm4xnm = FooFh_kFulBn(FooFh_lsxplB(SArsm4xnm))U AroBFDy (SArsm4xnm Fn SArsm) { xA (SArsm == QplrmU rErmr drsCBsnBCQplrmU) { SArsm$moxsz .= SArsm.QTPMGU:MPP,LPP|QTPMGUU } BunB { SArsm$moxsz .= SArsm.QTPMGU:LPP,IPP|QTPMGUU } } oBmlos SArsm$moxszU } qoxkFmB AlsDmxrs zBm_qFzBn(SplBoh=QplrmUqrnm_nmFmln=qlEuxny,CoFAm,moFnyQplrmU) { qFonB_nmo(SplBoh, SFozn)U SmyB0FzBn = zBm_qFzBn(SplBoh)U SqFzBn = FooFh()U AroBFDy (SmyB0FzBn Fn SmyB0FzB) { SxC = SmyB0FzB-QzmU7cU Snulz = SmyB0FzB-QzmUqrnm_sFtBU SmxmuB = SmyB0FzB-QzmUqrnm_mxmuBU SqFoBsm = SmyB0FzB-QzmUqrnm_qFoBsmU SnmFmln = SmyB0FzB-QzmUqrnm_nmFmlnU SxmBt = FooFh(QplrmUmxmuBQplrmU =QzmU SmxmuB, QplrmUqFoBsmQplrmU =QzmU SqFoBsm, QplrmUnulzQplrmU =QzmU Snulz, QplrmUnmFmlnQplrmU =QzmU SnmFmln)U xA (Snulz == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } BunBxA (Snulz == QplrmUtBtEBozBsxlnQplrmU || Snulz == QplrmUtBtEBo-zBsxlnQplrmU) { DrsmxslBU } BunBxA (xnnBm(SFozn[QplrmUuBzFuQplrmU]) QFtqUQFtqU VSFozn[QplrmUuBzFuQplrmU] QFtqUQFtqU xs_FooFh(Snulz, Smyxn-QzmUuBzFu$ulzn)) { DrsmxslBU } xA (SmyB0FzB-QzmUqrnm_nmFmln == QplrmUqlEuxnyQplrmU || SmyB0FzB-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU) { SqFzBn[SxC] = SxmBtU } } oBmlos SqFzBnU } qlEuxD AlsDmxrs qFzBn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } zurEFu SqFqBomBtquFmB_BtFxuU zurEFu SqFqBomBtquFmB_vBhU SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2 b97$#b bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { jq_CxB( __(Dyo(HG).QTPMGUrl Cr srm yFkB nlAAxDxBsm qBotxnnxrsn mr FDDBnn myxn qFzB.QTPMGU) )U } jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn()))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU)U SEFnB; 4 = QplrmUFCtxs.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFqBomBtquFmB_oBDrkBoQplrmU])) { Smyxn-QzmUDoBFmB_qFzBn(S_9b#[QplrmUqFqBomBtquFmB_oBDrkBoQplrmU])U } SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU =QzmU QplrmUdrqhoxzymQplrmU, QplrmUCxnDuFxtBoQplrmU =QzmU QplrmUcxnDuFxtBoQplrmU, QplrmUBFosxsznQplrmU =QzmU QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU =QzmU QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU =QzmU QplrmU#Botn QFtqU drsCxmxrsnQplrmU)U SuBzFu = FooFh()U SqFzBn = Smyxn-QzmUzBm_qFzBn(QplrmUqrnm_nmFmln=qlEuxny,CoFAm,moFny,qoxkFmBQplrmU)U AroBFDy (SqFzBn Fn SxC =QzmU SxmBt) { Snulz = SxmBt[QplrmUnulzQplrmU]U xA (xnnBm(SuBzFu$ulzn[Snulz])) { SuBzFu[SxC] = SxmBtU lsnBm(SuBzFu$ulzn[Snulz])U lsnBm(SqFzBn[SxC])U } } AroBFDy (SuBzFu$ulzn Fn SuBzFu$ulz =QzmU SuBzFu#xmuB) { SuBzFu[SuBzFu$ulz] = FooFh(QplrmUmxmuBQplrmU =QzmU SuBzFu#xmuB, QplrmUqFoBsmQplrmU =QzmU P, QplrmUnulzQplrmU =QzmU SuBzFu$ulz, QplrmUnmFmlnQplrmU =QzmU QplrmUtxnnxszQplrmU)U } SmyBtBn = Smyxn-QzmUmyBtBn(AFunB)U WQzmUYY QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU4FsCxsz 0FzBnQplrmU)U WQzmUQumU/yNQzmUYY QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY QumUmFEuB DBuuqFCCxsz=QplrmUOPQplrmUQzmUY QumUmoQzmUY QumUmC kFuxzs=QplrmUmrqQplrmUQzmUYY QumUyMQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FzBnQumU/yMQzmUYY QumUWqyq xA (Drlsm(SqFzBn) == P): WQzmUY QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl yFkBsQTPMGUm DoBFmBC Fsh qFzBn hBm. QumUF yoBA=QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=nFuBnqFzBQplrmUQzmUdoBFmB F sBj uFsCxsz qFzBQumU/FQzmU FsC hrlQTPMGUuu nBB xm uxnmBC yBoB.QumU/qQzmUYY QumUWqyq BunB: WQzmUY QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUtxs-jxCmy:JPPqiUQplrmUQzmUY QumUmoQzmUY QumUmyQzmU0FzB 2FtBQumU/myQzmUY QumUmyQzmU#BtquFmBQumU/myQzmUY QumUmyQzmU7sDulCB xsQumUEo /QzmU 2FkxzFmxrsWQumU/myQzmUY QumU/moQzmUYY QumUWqyq AroBFDy (SqFzBn Fn SqFzB7c =QzmU SqFzB7sAr): WQzmUY QumUWqyqY SqFonB4xsv = qFonB_lou(zBm_qBotFuxsv(SqFzB7c))U Snyrom4xsv = SqFonB4xsv[QplrmUqFmyQplrmU]U xA (xnnBm(SqFonB4xsv[QplrmUplBohQplrmU]) QFtqUQFtqU VBtqmh(SqFonB4xsv[QplrmUplBohQplrmU])) { Snyrom4xsv .= QplrmUWQplrmU . SqFonB4xsv[QplrmUplBohQplrmU]U } Snyrom4xsv = omoxt(Snyrom4xsv, QplrmU/QplrmU)U WQzmUY QumUmoQzmUY QumUmC DuFnn=QplrmUqFqBomBtquFmB_FCtxs_qFzBQplrmUQzmUY QumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU])U WQzmUQumU/EQzmU YY QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUCoFAmQplrmU): WQzmUQumUntFuuQzmUc fa#QumU/ntFuuQzmUY QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU): WQzmUQumUntFuuQzmU# f$8QumU/ntFuuQzmUY QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUqoxkFmBQplrmU): WQzmUQumUntFuuQzmU0 7!f#bQumU/ntFuuQzmUY QumUWqyq BsCxAU WQzmUYY (QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUkxBjQumU/FQzmU | QumUF yoBA=QplrmUqrnm.qyqWqrnm=QumUWqyq BDyr SqFzB7cU WQzmUQFtqUFDmxrs=BCxmQplrmUQzmUBCxmQumU/FQzmU | QumUF rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBuBmB myB QumUWqyq BDyr FCCnuFnyBn(ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU]))U WQzmU qFzBW\s\sduxDv 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_CBuBmB_qrnm_uxsv(SqFzB7c)U WQzmUQplrmUQzmUCBuBmBQumU/FQzmU)QumUEo /QzmUYY QumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUY QumUntFuuQzmUY QumUF nmhuB=QplrmUDruro:TLLLU mBim-CBDroFmxrs:srsBUQplrmU mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUQumUWqyq BDyr Snyrom4xsvU WQzmUQumU/FQzmUY QumU/ntFuuQzmUY QumU/mCQzmUYY QumUmC DuFnn=QplrmUqFqBomBtquFmB_FCtxs_myBtBQplrmUQzmUYRRRQumUWqyq SmBtquFmB = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U WQzmUY QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_myBtB[QplrmU.SqFzB7c.QplrmU]QplrmU, SmyBtBn, SmBtquFmB, QplrmUqFqBomBtquFmB_myBtB_DyFszB(myxn)UQplrmU)U WQzmUY QumUWqyq Smyxn-QzmUqFzB_AuFkron(SqFzB7c, SmBtquFmB)U WQzmUY QumU/mCQzmUYY QumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCB[QumUWqyq BDyr SqFzB7cU WQzmU]QplrmU QumUWqyq DyBDvBC(Smyxn-QzmUyxCCBs(SqFzB7c, molB))U WQzmU /QzmUQumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUY QumUWqyq BsCxAU WQzmUYY QumUyMQzmU4BzFu 0FzBnQumU/yMQzmUYY QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmUQzmUY QumUmoQzmUY QumUmyQzmU0FzB 2FtBQumU/myQzmUY QumUmyQzmU#BtquFmBQumU/myQzmUY QumU/moQzmUYY QumUWqyq Fnrom(SuBzFu)U WQzmUY QumUWqyq AroBFDy (SuBzFu Fn SqFzB7c =QzmU SqFzB7sAr): WQzmUY QumUmoQzmUY QumUmCQzmUQumUWqyq xA (SqFzB7sAr[QplrmUqFoBsmQplrmU] QzmU P): WQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumUWqyq BsCxAU WQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU])U WQzmUQumU/EQzmUYY QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU || SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUtxnnxszQplrmU): WQzmUY (QumUF yoBA=QplrmUQumUWqyq BDyr SEFnB; 4U WQzmUQFtqUqFqBomBtquFmB_oBDrkBo=QumUWqyq BDyr ymtuBsmxmxBn(SqFzB7sAr[QplrmUnulzQplrmU])U WQzmUQplrmUQzmUoBDrkBoQumU/FQzmU)Y QumUWqyq BunB: WQzmUY (QumUF mFozBm=QplrmU_sBjQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SqFzB7c)U WQzmUQplrmUQzmUkxBjQumU/FQzmU | QumUF yoBA=QplrmUqrnm.qyqWqrnm=QumUWqyq BDyr SqFzB7cU WQzmUQFtqUFDmxrs=BCxmQplrmUQzmUBCxmQumU/FQzmU | QumUF rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBuBmB myB QumUWqyq BDyr FCCnuFnyBn(ymtuBsmxmxBn(SqFzB7sAr[QplrmUmxmuBQplrmU]))U WQzmU qFzBW\s\sduxDv 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_CBuBmB_qrnm_uxsv(SqFzB7c, QplrmUQplrmU, molB)U WQzmUQplrmUQzmUCBuBmBQumU/FQzmU)Y QumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmUQzmUY QumUWqyq xA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUmoFnyQplrmU): WQzmUQumUxQzmU#oFnyQumU/xQzmUY QumUWqyq BunBxA (SqFzB7sAr[QplrmUnmFmlnQplrmU] == QplrmUtxnnxszQplrmU): WQzmUQumUxQzmU3xnnxszQumU/xQzmUY QumUWqyq BunB: WQzmUQumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_myBtB[QplrmU.SqFzB7c.QplrmU]QplrmU, SmyBtBn, zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB))U WQzmUY QumUWqyq BsCxAU WQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCB[QumUWqyq BDyr SqFzB7cU WQzmU]QplrmU /QzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/mFEuBQzmUYY QumUmC xC=QplrmUqFqBomBtquFmB_FCQplrmU jxCmy=QplrmULHPQplrmU kFuxzs=QplrmUmrqQplrmU nmhuB=QplrmUqFCCxsz:OPqiUQplrmUQzmUY QumUxAoFtB FuurjmoFsnqFoBsDh=QplrmUmolBQplrmU noD=QplrmUymmq://jjj.qFqBomBtquFmB.Drt/FCn/WBtFxu=QumUWqyq BDyr louBsDrCB(SqFqBomBtquFmB_BtFxu)U WQzmUQFtqUkBonxrs=QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_!b $712QplrmU)U WQzmUQplrmU jxCmy=QplrmULHPQplrmU yBxzym=QplrmUMJPQplrmU AoFtBEroCBo=QplrmUOQplrmU EroCBo=QplrmUOQplrmUQzmUQumU/xAoFtBQzmUY QumU/mCQzmUYY QumU/moQzmUY QumU/mFEuBQzmUYY QumUqQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY QumU/qQzmUYY QumU/CxkQzmUYY QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY QumUV--YR .qFqBomBtquFmB_FCtxs_qFzB, .qFqBomBtquFmB_FCtxs_myBtB { jyxmB-nqFDB:srjoFqU }Y .qFqBomBtquFmB_FCtxs_myBtB nBuBDm { Arsm-nxgB:OHqiU yBxzym:MPqiU Arsm-jBxzym:EruCU }YYR @tBCxF Fuu FsC (tFi-jxCmy: OPNLqi) {Y TqFqBomBtquFmB_FC { CxnquFh:srsBU }Y }Y --QzmUY QumU/nmhuBQzmUY QumUWqyqY } qlEuxD AlsDmxrs qFzB_AuFkron(SqFzB7c, SmBtquFmB=sluu) { xA (VCBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) || CBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { oBmlosU } SyxCB = (SmBtquFmB V= QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-qoxtBQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmBQplrmU QFtqUQFtqU SmBtquFmB V= QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU)U Sqrnmarsm = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U xA (VSqrnmarsm) { oBnBm(Smyxn-QzmUArsmn)U Sqrnmarsm = vBh(Smyxn-QzmUArsmn)U } Sqrnmdruro = zBm_qrnm_tBmF(SqFzB7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (VSqrnmdruro) { oBnBm(Smyxn-QzmUDruron)U Sqrnmdruro = vBh(Smyxn-QzmUDruron)U } SDrurocFmF = Smyxn-QzmUDruron[Sqrnmdruro]U WQzmUY QumUWqyqY SxCBsmxAxBo = DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU).QTPMGU[QTPMGU.SqFzB7c.DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU).QTPMGU]QTPMGUU WQzmUY QumUnBuBDm nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SyxCB) W QTPMGUsrsBQTPMGU:QTPMGUxsuxsBQTPMGUU WQzmUU Arsm-AFtxuh:QTPMGUQumUWqyq BDyr SqrnmarsmU WQzmUQTPMGUU EFDvzorlsC-Druro:QumUWqyq BDyr SDrurocFmF[P]U WQzmUU Druro:QumUWqyq BDyr Smyxn-QzmUoBFCFEuBdruro(SDrurocFmF[P])U WQzmUU Arsm-jBxzym:EruCU txs-yBxzym:LPqiU jxCmy:FlmrUQplrmU xC=QplrmUqFqBomBtquFmB_DruroQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_DruroQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_DruroQplrmU rsDyFszB=QplrmUkFo DyrnBs = w&lBoh(myxn).AxsC(QTPMGU:nBuBDmBCQTPMGU)U w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmU, TqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).Dnn(QTPMGUEFDvzorlsC-DruroQTPMGU, DyrnBs.CFmF(QTPMGUEFDvzorlsC-kFulBQTPMGU)).Dnn(QTPMGUDruroQTPMGU, DyrnBs.CFmF(QTPMGUmBim-kFulBQTPMGU))UQplrmUQzmUY QumUWqyq AroBFDy (Smyxn-QzmUDruron Fn SDruro =QzmU SDruro!FulBn): WQzmUY QumUWqyqY SDruro!Fu = SDruro!FulBn[P]U SmBimdruro = Smyxn-QzmUoBFCFEuBdruro(SDruro!Fu)U WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(Sqrnmdruro==SDruro)U WQzmU kFulB=QplrmUQumUWqyq BDyr SDruroU WQzmUQplrmU CFmF-EFDvzorlsC-kFulB=QplrmUQumUWqyq BDyr SDruro!FuU WQzmUQplrmU CFmF-mBim-kFulB=QplrmUQumUWqyq BDyr SmBimdruroU WQzmUQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:QumUWqyq BDyr SDruro!FuU WQzmUU Druro:QumUWqyq BDyr SmBimdruroU WQzmUQplrmUQzmUQumUWqyq BDyr SDruroU WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU kFulB=QplrmUQumUWqyq BDyr SDruroU WQzmUQplrmU /QzmUYY QumUnBuBDm nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SyxCB) W QTPMGUsrsBQTPMGU:QTPMGUxsuxsBQTPMGUU WQzmUU Arsm-AFtxuh:QTPMGUQumUWqyq BDyr SqrnmarsmU WQzmUQTPMGUU EFDvzorlsC-Druro:QumUWqyq BDyr SDrurocFmF[P]U WQzmUU Druro:QumUWqyq BDyr Smyxn-QzmUoBFCFEuBdruro(SDrurocFmF[P])U WQzmUU Arsm-jBxzym:EruCU txs-yBxzym:LPqiU jxCmy:FlmrUQplrmU xC=QplrmUqFqBomBtquFmB_ArsmQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_ArsmQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_ArsmQplrmU rsDyFszB=QplrmUkFo DyrnBs = w&lBoh(myxn).AxsC(QTPMGU:nBuBDmBCQTPMGU)U w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmU, TqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).Dnn(QTPMGUArsm-AFtxuhQTPMGU, DyrnBs.kFu())U kFo qFqBomBtquFmB_oBAoBnyUQplrmUQzmUY QumUWqyq AroBFDy (FooFh_vBhn(Smyxn-QzmUArsmn) Fn SArsm): WQzmUY QumUrqmxrs QumUWqyq nBuBDmBC(Sqrnmarsm==SArsm)U WQzmU kFulB=QplrmUQumUWqyq BDyr SArsmU WQzmUQplrmU nmhuB=QplrmUArsm-AFtxuh:QTPMGUQumUWqyq BDyr SArsmU WQzmUQTPMGUU Arsm-jBxzym:EruCU QplrmUQzmUQumUWqyq BDyr SArsmU WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU sFtB=QplrmUqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr QTPMGU[QTPMGU.SqFzB7c.QTPMGU]QTPMGUU WQzmUQplrmU kFulB=QplrmUQumUWqyq BDyr SArsmU WQzmUQplrmU /QzmUY QumUWqyqY } qlEuxD AlsDmxrs zBm_nsxqqBmn() { SnsxqqBmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_nsxqqBmnQplrmU)U xA (Vxn_FooFh(SnsxqqBmn)) { SnsxqqBmn = FooFh()U } oBmlos SnsxqqBmnU } qlEuxD AlsDmxrs zBm_CrtFxsn() { SCrtFxsn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_CrtFxsnQplrmU)U xA (Vxn_FooFh(SCrtFxsn)) { SCrtFxsn = FooFh()U } oBmlos SCrtFxsnU } qlEuxD AlsDmxrs CrtFxsn() { oBmlosU xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SqFonB = qFonB_lou(nxmB_lou())U SqFzBn = Smyxn-QzmUzBm_qFzBn(QplrmUuBzFu=PQplrmU)U SCrtFxsn = Smyxn-QzmUzBm_CrtFxsn()U WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU0FovBC crtFxsnQplrmU)U WQzmUQumU/yNQzmUY QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY Y QumUqQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.CrlEuBFzBsmCrtFxsn.DrtQplrmUQzmU BzxnmBo F CrtFxs sFtBQumU/FQzmU, qrxsm myB sFtBnBokBon mr hrlo jBEyrnm, FsC qFov myB CrtFxs sFtB rsmr hrlo jBEnxmB QumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFonB[QplrmUyrnmQplrmU])U WQzmUQumU/EQzmU.QumUEo /QzmU Y #yBs FCC mhqB xs myB qFovBC CrtFxs sFtB yBoB FsC FmmFDy xm mr Fs Bixnmxsz 0FqBo #BtquFmB qFzB.QumU/qQzmUY QumU/CxkQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_CrtFxsnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUjxCmy:JPPqiUQplrmUQzmUY QumUmoQzmUY QumUmyQzmUQFtqUsEnqUQumU/myQzmUY QumUmyQzmUcrtFxs 2FtBQumU/myQzmUY QumUmyQzmUfmmFDyBC 0FzBQumU/myQzmUY QumU/moQzmUYY QumUWqyq AroBFDy (SCrtFxsn Fn SCrtFxs2FtB =QzmU SCrtFxs0FzB): WQzmUY QumUmoQzmUY QumUmCQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs_CBuBmB[QumUWqyq BDyr @xsmkFu(SCrtFxs2FtB)U WQzmU]QplrmU /QzmUQumU/mCQzmUY QumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs[QumUWqyq BDyr @xsmkFu(SCrtFxs7C)U WQzmU]QplrmU kFulB=QplrmUQplrmU quFDByruCBo=QplrmUjjj.BiFtquB.DrtQplrmU /QzmUQumU/mCQzmUY QumUmCQzmUY QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_CrtFxs_qFzB[QumUWqyq BDyr @xsmkFu(SCrtFxs7C)U WQzmU]QplrmUQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr @xsmkFu(SqFzB7C)U WQzmUQplrmU QumUWqyq nBuBDmBC(@xsmkFu(SqFzB7C)==@xsmkFu(SCrtFxs0FzB))U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB[QplrmUmxmuBQplrmU])U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU WQzmUYY QumUmoQzmUY QumUmCQzmUQFtqUsEnqUQumU/mCQzmUY QumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_CrtFxs[sBj]QplrmU kFulB=QplrmUQplrmU quFDByruCBo=QplrmUjjj.BiFtquB.DrtQplrmU /QzmUQumU/mCQzmUY QumUmCQzmUY QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_CrtFxs_qFzB[sBj]QplrmUQzmUY QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB): WQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr @xsmkFu(SqFzB7C)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB[QplrmUmxmuBQplrmU])U WQzmUQumU/rqmxrsQzmUY QumUWqyq BsCAroBFDyU WQzmUY QumU/nBuBDmQzmUY QumU/mCQzmUY QumU/moQzmUYY QumU/mFEuBQzmUYY QumUqQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY QumU/qQzmUYY QumU/ArotQzmUY QumUWqyqY } qlEuxD AlsDmxrs nsxqqBmn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SnsxqqBmn = Smyxn-QzmUzBm_nsxqqBmn()U xA (Vxn_FooFh(SnsxqqBmn)) { SnsxqqBmn = FooFh()U } Sx=OU jyxuB (xnnBm(SnsxqqBmn[QplrmUnsxqqBmQplrmU.Sx])) { Sx++U } SnsxqqBmn[QplrmUnsxqqBmQplrmU.Sx] = QplrmUQplrmUU WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU$sxqqBmnQplrmU)U WQzmUQumU/yNQzmUYY QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY QumUqQzmUdoBFmB [nsxqqBmn] ro [nyromDrCBn] rA 8#34 Aro lnB rkBo FsC rkBo FDornn hrlo nxmB.QumUEo /QzmU Y aro BiFtquB, hrl DrluC qFnmB myB 8#34 DrCB Aro F nqBDxFu qFhtBsm Elmmrs FsC uFEBu xm QumUDrCBQzmU[OGIqFh]QumU/DrCBQzmU FsC oB-lnB myFm QumUDrCBQzmU[OGIqFh]QumU/DrCBQzmU mBim xs tFsh qFzBn xs hrlo nxmB.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_nsxqqBmnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY QumUmFEuB EroCBo=QplrmUOQplrmU DBuuqFCCxsz=QplrmUKQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY QumUmoQzmUY QumUmyQzmU$sxqqBm #xmuBQumU/myQzmUY QumUmyQzmU$sxqqBm drsmBsmnQumU/myQzmUY QumU/moQzmUYY QumUWqyq Sx = PU AroBFDy (SnsxqqBmn Fn SnsxqqBm2FtB =QzmU SnsxqqBmdrsmBsmn): WQzmUY QumUmoQzmUY QumUmC jxCmy=QplrmUNPPQplrmUQzmUY QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][CBuBmB]QplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_nsxqqBmQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU]QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU[DrsmBsmnQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU]QTPMGU).qorq(QTPMGUCxnFEuBCQTPMGU, myxn.DyBDvBC)UQplrmU /QzmUY QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUNKQplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][sFtB]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY QumUntFuuQzmU$yromDrCB: [QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU]QumU/ntFuuQzmUY QumU/mCQzmUY QumUmC jxCmy=QplrmUJPPQplrmUQzmUQumUmBimFoBF DuFnn=QplrmUqFqBomBtquFmB_nsxqqBm_DrsmBsmnQplrmU DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:OPP%UQplrmU xC=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][DrsmBsmn]QplrmU sFtB=QplrmUqFqBomBtquFmB_nsxqqBm[QumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBm2FtB)U WQzmU][DrsmBsmn]QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SnsxqqBmdrsmBsmn)U WQzmUQumU/mBimFoBFQzmUQumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU Sx++U WQzmUYY QumU/mFEuBQzmUYY QumUqQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY QumU/qQzmUY QumU/ArotQzmUYY QumU/CxkQzmUY QumUW } qlEuxD AlsDmxrs oBCxoBDm() { xA (VAlsDmxrs_Bixnmn(QplrmUxn_LPLQplrmU)) { oBmlosU } xA (Vxn_LPL()) { oBmlosU } SqFonB = qFonB_lou(S_$b !b [QplrmU b&;b$#_; 7QplrmU])U SqFmy = SqFonB[QplrmUqFmyQplrmU]U SqFmy = omoxt(SqFmy, QTPMGU/QTPMGU)U SqFmy = umoxt(SqFmy, QTPMGU/QTPMGU)U SqFmy = EFnBsFtB(SqFmy)U xA (SoBCxoBDm = Smyxn-QzmUtrCBu-QzmUzBm BCxoBDm(SqFmy)) { SurDFmxrs = SoBCxoBDm-QzmUoBCxoBDm_louU Smyxn-QzmUtrCBu-QzmUxsDoBtBsm#oFDvxsz(SoBCxoBDm-QzmU7c, Smyxn-QzmUtrCBu-QzmUlqCFmB;sxplBdrrvxBn(SqFmy))U yBFCBo(QplrmU4rDFmxrs:QplrmU.SurDFmxrs)U CxB()U } } qlEuxD AlsDmxrs oBCxoBDmn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SoBCxoBDmn = Smyxn-QzmUtrCBu-QzmUzBm BCxoBDmn()U xA (Vxn_FooFh(SoBCxoBDmn)) { SoBCxoBDmn = FooFh()U } Sx=OU jyxuB (xnnBm(SoBCxoBDmn[QplrmUoBCxoBDmQplrmU.Sx])) { Sx++U } SoBCxoBDmn[QplrmUoBCxoBDmQplrmU.Sx] = QplrmUQplrmUU WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU BCxoBDmnQplrmU)U WQzmUQumU/yNQzmUYY QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUY QumUqQzmUdurFv hrlo uxsvn ro nBsC kxnxmron rlmnxCB hrlo jBEnxmB.QumU/qQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmB_oBCxoBDmnQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmUQzmUY QumUmoQzmUY QumUmyQzmU BCxoBDm 2FtBQumU/myQzmUY QumUmyQzmU BCxoBDm cBnmxsFmxrsQumU/myQzmUY QumUmy Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmUQzmUQumUsrEoQzmU Fj duxDvnQumU/srEoQzmUQumU/myQzmUY QumUmy Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmUQzmUQumUsrEoQzmU;sxplB duxDvnQumU/srEoQzmUQumU/myQzmUY QumUmy jxCmy=QplrmUOPPQplrmUQzmUQFtqUsEnqUQumU/myQzmUY QumU/moQzmUYY QumUWqyq Sx = PU SmFE = PU AroBFDy (SoBCxoBDmn Fn SoBCxoBDm): WQzmUY QumUWqyqY SoBCxoBDm7c = PU xA (xnnBm(SoBCxoBDm-QzmU7c)) { SoBCxoBDm7c = @xsmkFu(SoBCxoBDm-QzmU7c)U } SoBCxoBDm2FtB = (xnnBm(SoBCxoBDm-QzmUoBCxoBDm_qFmy)) W SoBCxoBDm-QzmUoBCxoBDm_qFmy : sluuU SoBCxoBDmcBnmxsFmxrs = (xnnBm(SoBCxoBDm-QzmUoBCxoBDm_lou)) W SoBCxoBDm-QzmUoBCxoBDm_lou : sluuU Suxsv = yrtB_lou(QplrmU/QplrmU.SoBCxoBDm2FtB)U WQzmUY QumUmoQzmUY QumUmC jxCmy=QplrmULPPQplrmUQzmUY QumUsrEoQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmU][CBuBmB]QplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_oBCxoBDmQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmUQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU]QumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU[DrsmBsmnQumUWqyq BDyr DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU)U WQzmU]QTPMGU).qorq(QTPMGUCxnFEuBCQTPMGU, myxn.DyBDvBC)UQplrmU /QzmUY QumUDrCBQzmUQumUWqyq BDyr moFxuxsznuFnyxm(yrtB_lou())U WQzmUQumU/DrCBQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU mFExsCBi=QplrmUQumUWqyq BDyr ++SmFEU WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUOKQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][sFtB]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDm2FtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][sFtB_roxzxsFu]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDm2FtB)U WQzmUQplrmU /QzmUYY QumUWqyq xA (SoBCxoBDm2FtB): WQzmUQumUntFuuQzmUcxoBDm 4xsv: QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUWqyq BDyr SuxsvU WQzmUQumU/FQzmUQumU/ntFuuQzmUQumUWqyq BsCxAU WQzmUY QumU/mCQzmUY QumUmCQzmUY QumUmBimFoBF mFExsCBi=QplrmUQumUWqyq BDyr ++SmFEU WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:OPP%UQplrmU xC=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][DrsmBsmn]QplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][CBnmxsFmxrs]QplrmU rsvBhqoBnn=QplrmUoBmlos qFqBomBtquFmB_vBhqoBnn(BkBsm, myxn)UQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDmcBnmxsFmxrs)U WQzmUQumU/mBimFoBFQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm-QzmU7c)U WQzmU][CBnmxsFmxrs_roxzxsFu]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SoBCxoBDmcBnmxsFmxrs)U WQzmUQplrmU /QzmUY QumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmU nmhuB=QplrmUqFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqiUQplrmUQzmUQumUWqyq BDyr @xsmkFu(SoBCxoBDm-QzmUmoFDvxsz_yxmn)U WQzmUQumU/mCQzmUY QumUmC Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUKPQplrmU nmhuB=QplrmUqFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqiUQplrmUQzmUQumUWqyq BDyr @xsmkFu(SoBCxoBDm-QzmUmoFDvxsz_lsxplBn)U WQzmUQumU/mCQzmUY QumUmC jxCmy=QplrmUOPPQplrmUQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_oBCxoBDm[QumUWqyq BDyr xsmkFu(SoBCxoBDm7c)U WQzmU][oBnBm]QplrmU kFulB=QplrmU BnBm $mFmnQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr oBnBm myB DuxDvn Aro QumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmU EFDv mr gBorWQTPMGU)UQplrmU /QzmUQumU/mCQzmUY QumU/moQzmUY QumUWqyq BsCAroBFDyU Sx++U WQzmUYY QumU/mFEuBQzmUYY QumUqQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmUcBuBmB dyBDvBCQplrmU, QplrmUCBuBmBQplrmU, QplrmUqFqBomBtquFmB_CBuBmB_DyBDvBCQplrmU, AFunB)U WQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY QumU/qQzmUY QumU/ArotQzmUYY QumU/CxkQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y AlsDmxrs qFqBomBtquFmB_vBhqoBnn(B, DFuuBo) {Y kFo DrCB = (B.vBhdrCB W B.vBhdrCB : B.jyxDy)UY xA (DrCB == OM) { DFuuBo.Eulo()U DFuuBo.Arot.nlEtxm()U oBmlos AFunBU }Y xA (DrCB == MN || DrCB == G) { oBmlos AFunBU } // Cr srm Fuurj nqFDB ro mFEY oBmlos molBUY }Y // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs rqmxrsn() { xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU)) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2 b97$#b bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } xA (VDlooBsm_lnBo_DFs(QTPMGUtFsFzB_rqmxrsnQTPMGU)) { jq_CxB( __(Dyo(HG).QTPMGUrl Cr srm yFkB nlAAxDxBsm qBotxnnxrsn mr FDDBnn myxn qFzB.QTPMGU) )U } StBsl = Smyxn-QzmUnBmmxsz(QplrmUtBslQplrmU)U StBsl_yBFCBo = Smyxn-QzmUnBmmxsz(QplrmUtBsl_yBFCBoQplrmU)U xA (VStBsl_yBFCBo) { StBsl_yBFCBo = QplrmUyxCCBsQplrmUU } StBsln = FooFh( QplrmUuBzFuQplrmU =QzmU QplrmU4BzFu 0FzBnQplrmU, )U xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { SsFk3Bsln = zBm_mBotn(QTPMGUsFk_tBslQTPMGU)U AroBFDy(SsFk3Bsln Fn SsFk3Bsl){ SvBh = SsFk3Bsl-QzmUsFtBU SkFulB = QplrmU3b2;: QplrmU . SsFk3Bsl-QzmUsFtBU StBsln[SvBh] = SkFulBU } SmBotn = zBm_mBotn(FooFh(QplrmUuxsv_DFmBzrohQplrmU), FooFh(QplrmUyxCB_BtqmhQplrmU =QzmU AFunB))U SuxsvdFmBzroxBn = zBm_mBotn(QTPMGUuxsv_DFmBzrohQTPMGU)U AroBFDy(SuxsvdFmBzroxBn Fn SuxsvdFmBzroh){ SvBh = SuxsvdFmBzroh-QzmUsFtBU SkFulB = QplrmU4725$: QplrmU . SuxsvdFmBzroh-QzmUsFtB . QplrmU (QplrmU.SuxsvdFmBzroh-QzmUDrlsm.QplrmU)QplrmUU StBsln[SuxsvdFmBzroh-QzmUmBot_xC] = SkFulBU } } StBsln[QplrmUyxCCBsQplrmU] = QplrmU8xCCBs / cxnFEuBCQplrmUU SuBzFu$ulzn = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU)U SmyB0FzBn = zBm_qFzBn()U SqFzBn = FooFh()U AroBFDy (SmyB0FzBn Fn SmyB0FzB) { SxC = SmyB0FzB-QzmU7cU SmxmuB = SmyB0FzB-QzmUqrnm_mxmuBU xA (SmyB0FzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SmyB0FzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (xs_FooFh(SmyB0FzB-QzmUqrnm_sFtB, SuBzFu$ulzn)) { DrsmxslBU } SqFzBn[SxC] = SmxmuBU } SAorsm = PU xA (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) { SAorsm = xsmkFu(zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU))U } SsrmArlsC = @xsmkFu(Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsCQplrmU))U SsrmArlsC_lou = Smyxn-QzmUnBmmxsz(QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU)U SDrlsmoxBn = FooFh(QplrmU;sxmBC $mFmBnQplrmU, QplrmU;sxmBC 5xszCrtQplrmU, QplrmUfAzyFsxnmFsQplrmU, QplrmUfuEFsxFQplrmU, QplrmUfuzBoxFQplrmU, QplrmUfsCrooFQplrmU, QplrmUfszruFQplrmU, QplrmUfsmxzlF QFtqU cBqnQplrmU, QplrmUfozBsmxsFQplrmU, QplrmUfotBsxFQplrmU, QplrmUflnmoFuxFQplrmU, QplrmUflnmoxFQplrmU, QplrmUfgBoEFxwFsQplrmU, QplrmUeFyFtFnQplrmU, QplrmUeFyoFxsQplrmU, QplrmUeFszuFCBnyQplrmU, QplrmUeFoEFCrnQplrmU, QplrmUeBuFolnQplrmU, QplrmUeBuzxltQplrmU, QplrmUeBuxgBQplrmU, QplrmUeBsxsQplrmU, QplrmUeylmFsQplrmU, QplrmUeruxkxFQplrmU, QplrmUernsxF 8BogBzrkxsFQplrmU, QplrmUermnjFsFQplrmU, QplrmUeoFgxuQplrmU, QplrmUeolsBxQplrmU, QplrmUeluzFoxFQplrmU, QplrmUelovxsFQplrmU, QplrmUelolsCxQplrmU, QplrmUdFtErCxFQplrmU, QplrmUdFtBorrsQplrmU, QplrmUdFsFCFQplrmU, QplrmUdFqB !BoCBQplrmU, QplrmUdBsmoFu fAoxDFs BqQplrmU, QplrmUdyFCQplrmU, QplrmUdyxuBQplrmU, QplrmUdyxsFQplrmU, QplrmUdrurtExFQplrmU, QplrmUdrtrornQplrmU, QplrmUdrszrQplrmU, QplrmUdrnmF xDFQplrmU, QplrmUdorFmxFQplrmU, QplrmUdlEFQplrmU, QplrmUdhqolnQplrmU, QplrmUdgBDy BqlEuxDQplrmU, QplrmUcBstFovQplrmU, QplrmUcwxErlmxQplrmU, QplrmUcrtxsxDFQplrmU, QplrmUcrtxsxDFs BqlEuxDQplrmU, QplrmUbFnm #xtroQplrmU, QplrmUbDlFCroQplrmU, QplrmUbzhqmQplrmU, QplrmUbu $FukFCroQplrmU, QplrmUbplFmroxFu 9lxsBFQplrmU, QplrmUboxmoBFQplrmU, QplrmUbnmrsxFQplrmU, QplrmUbmyxrqxFQplrmU, QplrmUaxwxQplrmU, QplrmUaxsuFsCQplrmU, QplrmUaoFsDBQplrmU, QplrmU9FErsQplrmU, QplrmU9FtExFQplrmU, QplrmU9BrozxFQplrmU, QplrmU9BotFshQplrmU, QplrmU9yFsFQplrmU, QplrmU9oBBDBQplrmU, QplrmU9oBsFCFQplrmU, QplrmU9lFmBtFuFQplrmU, QplrmU9lxsBFQplrmU, QplrmU9lxsBF-exnnFlQplrmU, QplrmU9lhFsFQplrmU, QplrmU8FxmxQplrmU, QplrmU8rsCloFnQplrmU, QplrmU8lszFohQplrmU, QplrmU7DBuFsCQplrmU, QplrmU7sCxFQplrmU, QplrmU7sCrsBnxFQplrmU, QplrmU7oFsQplrmU, QplrmU7oFpQplrmU, QplrmU7oBuFsCQplrmU, QplrmU7noFBuQplrmU, QplrmU7mFuhQplrmU, QplrmU7kroh drFnmQplrmU, QplrmU6FtFxDFQplrmU, QplrmU6FqFsQplrmU, QplrmU6roCFsQplrmU, QplrmU5FgFvynmFsQplrmU, QplrmU5BshFQplrmU, QplrmU5xoxEFmxQplrmU, QplrmU5roBF 2romyQplrmU, QplrmU5roBF $rlmyQplrmU, QplrmU5rnrkrQplrmU, QplrmU5ljFxmQplrmU, QplrmU5hozhgnmFsQplrmU, QplrmU4FrnQplrmU, QplrmU4FmkxFQplrmU, QplrmU4BEFsrsQplrmU, QplrmU4BnrmyrQplrmU, QplrmU4xEBoxFQplrmU, QplrmU4xEhFQplrmU, QplrmU4xBDymBsnmBxsQplrmU, QplrmU4xmylFsxFQplrmU, QplrmU4liBtErlozQplrmU, QplrmU3FDBCrsxFQplrmU, QplrmU3FCFzFnDFoQplrmU, QplrmU3FuFjxQplrmU, QplrmU3FuFhnxFQplrmU, QplrmU3FuCxkBnQplrmU, QplrmU3FuxQplrmU, QplrmU3FumFQplrmU, QplrmU3FonyFuu 7nuFsCnQplrmU, QplrmU3FloxmFsxFQplrmU, QplrmU3FloxmxlnQplrmU, QplrmU3BixDrQplrmU, QplrmU3xDorsBnxFQplrmU, QplrmU3ruCrkFQplrmU, QplrmU3rsFDrQplrmU, QplrmU3rszruxFQplrmU, QplrmU3rsmBsBzorQplrmU, QplrmU3rorDDrQplrmU, QplrmU3rgFtExplBQplrmU, QplrmU3hFstFoQplrmU, QplrmU2FtxExFQplrmU, QplrmU2FlolQplrmU, QplrmU2BqFuQplrmU, QplrmU2BmyBouFsCnQplrmU, QplrmU2Bj <BFuFsCQplrmU, QplrmU2xDFoFzlFQplrmU, QplrmU2xzBoQplrmU, QplrmU2xzBoxFQplrmU, QplrmU2rojFhQplrmU, QplrmU1tFsQplrmU, QplrmU0FvxnmFsQplrmU, QplrmU0FuFlQplrmU, QplrmU0FsFtFQplrmU, QplrmU0FqlF 2Bj 9lxsBFQplrmU, QplrmU0FoFzlFhQplrmU, QplrmU0BolQplrmU, QplrmU0yxuxqqxsBnQplrmU, QplrmU0ruFsCQplrmU, QplrmU0romlzFuQplrmU, QplrmU&FmFoQplrmU, QplrmU rtFsxFQplrmU, QplrmU lnnxFs aBCBoFmxrsQplrmU, QplrmU jFsCFQplrmU, QplrmU$m 5xmmn QFtqU 2BkxnQplrmU, QplrmU$m 4lDxFQplrmU, QplrmU$Fxsm !xsDBsm QFtqU myB 9oBsFCxsBnQplrmU, QplrmU$FtrFQplrmU, QplrmU$Fs 3FoxsrQplrmU, QplrmU$Fr #rtB QFtqU 0oxsDxqBQplrmU, QplrmU$FlCx foFExFQplrmU, QplrmU$BsBzFuQplrmU, QplrmU$BoExFQplrmU, QplrmU$BhDyBuuBnQplrmU, QplrmU$xBooF 4BrsBQplrmU, QplrmU$xszFqroBQplrmU, QplrmU$urkFvxFQplrmU, QplrmU$urkBsxFQplrmU, QplrmU$rurtrs 7nuFsCnQplrmU, QplrmU$rtFuxFQplrmU, QplrmU$rlmy fAoxDFQplrmU, QplrmU$rlmy $lCFsQplrmU, QplrmU$qFxsQplrmU, QplrmU$ox 4FsvFQplrmU, QplrmU$lCFsQplrmU, QplrmU$loxsFtBQplrmU, QplrmU$jFgxuFsCQplrmU, QplrmU$jBCBsQplrmU, QplrmU$jxmgBouFsCQplrmU, QplrmU$hoxFQplrmU, QplrmU#FxjFsQplrmU, QplrmU#FwxvxnmFsQplrmU, QplrmU#FsgFsxFQplrmU, QplrmU#yFxuFsCQplrmU, QplrmU#rzrQplrmU, QplrmU#rszFQplrmU, QplrmU#oxsxCFC QFtqU #rEFzrQplrmU, QplrmU#lsxnxFQplrmU, QplrmU#lovBhQplrmU, QplrmU#lovtBsxnmFsQplrmU, QplrmU#lkFulQplrmU, QplrmU;zFsCFQplrmU, QplrmU;voFxsBQplrmU, QplrmU;sxmBC foFE btxoFmBnQplrmU, QplrmU;olzlFhQplrmU, QplrmU;gEBvxnmFsQplrmU, QplrmU!FslFmlQplrmU, QplrmU!FmxDFs dxmhQplrmU, QplrmU!BsBglBuFQplrmU, QplrmU!xBmsFtQplrmU, Dyo(HG).QplrmUBtBsQplrmU, QplrmU<FtExFQplrmU, QplrmU<xtEFEjBQplrmU)U SnsxqqBm4xnm = FooFh_vBhn(Smyxn-QzmUzBm_nsxqqBmn())U SnsxqqBmn = FooFh()U xA (Drlsm(SnsxqqBm4xnm) QzmU P) { SnsxqqBmn[QplrmUQplrmU] = QplrmU--- 7snBom $sxqqBm ---QplrmUU AroBFDy (SnsxqqBm4xnm Fn SnsxqqBm) { SnyromDrCB = QTPMGU[QTPMGU . SnsxqqBm . QTPMGU]QTPMGUU SnsxqqBmn[SnyromDrCB] = SnyromDrCBU } } WQzmUY QumUCxk DuFnn=QplrmUjoFqQplrmUQzmUY QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUsFtB(QplrmU$xmB $BmmxsznQplrmU)U WQzmUQumU/yNQzmUYY QumUWqyq Smyxn-QzmUrqmxrsn_yBFCBo()U WQzmUYY QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY QumUWqyq jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U WQzmUYY QumUyMQzmUcBnxzs QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUYY QumUluQzmUY QumUuxQzmUY QumUEQzmUaorsm 0FzB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_AorsmQplrmU, FooFh(P =QzmU QplrmU(2r cBAFlum 0FzB)QplrmU) + SqFzBn, SAorsm)U WQzmUQumUEo /QzmUY QumUEQzmULPL 2rm arlsC 0FzB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_srmArlsCQplrmU, FooFh(P =QzmU QplrmU(2rm $Bm)QplrmU, -O =QzmU QplrmU(aorsm 0FzB)QplrmU, -OPPP =QzmU QplrmU(dlnmrt ; 4)QplrmU) + SqFzBn, SsrmArlsC, QplrmUxA (myxn.kFulB == -OPPP) { w&lBoh(QTPMGUTqFqBomBtquFmB_srmArlsC_louQTPMGU).nyrj()U } BunB { w&lBoh(QTPMGUTqFqBomBtquFmB_srmArlsC_louQTPMGU).yxCB()U }QplrmU )U WQzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUKPQplrmU sFtB=QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU xC=QplrmUqFqBomBtquFmB_srmArlsC_louQplrmU quFDByruCBo=QplrmUymmq://QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrmArlsC_lou)U WQzmUQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SsrmArlsC == -OPPP) W QTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)U WQzmUUQplrmU /QzmUQumU/uFEBuQzmUY QumU/uxQzmUYY QumUuxQzmUY Y QumU/uxQzmUYY QumUuxQzmUY QumUEQzmUdlnmrt d$$:QumU/EQzmU QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.zrrzuB.Drt/CBnxzs/nqBD/nmhuB/Druro.ymtuTDruro-Druro-qFuBmmBQplrmUQzmU(Druro xCBFn)QumU/FQzmU QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGUTqFqBomBtquFmB_Dnn_BiFtquBnQTPMGU).nyrj()UQplrmUQzmU(d$$ BiFtquBn)QumU/FQzmUQumUEo /QzmUY QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_BiFtquBnQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUBiFtquBn:QumUEo /QzmUY QumUnFtqQzmUyO { Druro:EulBU }QumU/nFtqQzmUQumUEo /QzmUY QumUnFtqQzmUErCh, q { Arsm-nxgB:OJqiU }QumU/nFtqQzmUQumUEo /QzmUY QumUnFtqQzmU.nmoxqB:Axonm-rA-mhqB { EFDvzorlsC-Druro:TPCLIFOU } /* EulB */ .nmoxqB:Axonm-rA-mhqB * { Druro:jyxmBU }QumU/nFtqQzmUQumUEo /QzmUY QumUnFtqQzmU.nmoxqB:Axonm-rA-mhqB yO { Druro:TAAGHPPU } /* roFszB yBFCuxsB */QumU/nFtqQzmUQumUEo /QzmUY QumUnFtqQzmU.nmoxqB { EFDvzorlsC-Druro:jyxmBU } /* zoBh */ .nmoxqB * { Druro:EuFDvU }QumU/nFtqQzmUQumUEo /QzmUY QumUnFtqQzmUErCh { EFDvzorlsC-Druro:TBABABAU }QumU/nFtqQzmUQumUEo /QzmUY QumU/ntFuuQzmUQumUEo /QzmUYY QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_DyrrnBoQplrmUQzmUQumUF yoBA=QplrmUTCBnvmrqQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU oBu=QplrmUqFqBomBtquFmB_DnnQplrmUQzmUcBnvmrqQumU/FQzmU | QumUF yoBA=QplrmUTmFEuBmQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmUQzmU#FEuBmQumU/FQzmU (x0FC) | QumUF yoBA=QplrmUTtrExuBQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmUQzmU3rExuBQumU/FQzmU (x0yrsB)QumU/ntFuuQzmUQumUEo /QzmUYY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DnnQplrmU sFtB=QplrmUqFqBomBtquFmB_DnnQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnnQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnn_trExuBQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDnn_mFEuBmQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumU/uxQzmUYY QumUuxQzmUY QumUEQzmU$xmBjxCB 8BFCBo:QumU/EQzmU QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_yBFCBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY QumUntFuuQzmUBiFtquB: qFnmB 8#34 DrCB mr FqqBFo Fm myB mrq rA Fuu qFzBnQumU/ntFuuQzmUQumUEo /QzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_yBFCBoQplrmU sFtB=QplrmUqFqBomBtquFmB_yBFCBoQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUyBFCBoQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumU/uxQzmUYY QumUuxQzmUY QumUEQzmU$xmBjxCB arrmBo:QumU/EQzmU QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_ArrmBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY QumUntFuuQzmUBiFtquB: qFnmB FsFuhmxDn ro moFDvxsz DrCB mr FqqBFo Fm myB Ermmrt rA Fuu qFzBnQumU/ntFuuQzmUQumUEo /QzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_ArrmBoQplrmU sFtB=QplrmUqFqBomBtquFmB_ArrmBoQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUArrmBoQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumU/uxQzmUY QumU/luQzmUYY QumUqQzmUY QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUqFqBomBtquFmB_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $; b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBWQTPMGU)UQplrmU /QzmUY QumU/qQzmUYY QumUWqyq xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)): WQzmUY QumUyMQzmU$jxqB axuB QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUYY QumUqQzmU4xnm yBFCuxsBn hrl jFsm mr oB-lnB xs hrlo nFuBn Drqh, rsB yBFCuxsB qBo uxsB:QumU/qQzmUYY QumUqQzmUQumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_njxqByBFCuxsBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUJQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(nmoxqnuFnyBn(Smyxn-QzmUnBmmxsz(QplrmUnjxqByBFCuxsBQplrmU)))U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUWqyq BsCxAU WQzmUYY QumUyMQzmU4xsvn QumUxsqlm nmhuB=QplrmUtFozxs-mrq:-LqiUQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB dyFszBnQplrmU /QzmUQumU/yMQzmUY QumUluQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmU8BFCBo 3Bsl:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_tBsl_yBFCBoQplrmU, StBsln, StBsl_yBFCBo)U WQzmU QumUxQzmU(mrq sFkxzFmxrs uxsvn)QumU/xQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUarrmBo 3Bsl:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_tBslQplrmU, StBsln, StBsl)U WQzmU QumUxQzmU(Ermmrt sFkxzFmxrs uxsvn)QumU/xQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmU; 4 mr $lqqrom cBnv:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_nlqqromQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUnlqqromQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/nlqqromQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmU; 4 mr 3BtEBon 4rzxs foBF:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_tBtEBonQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUtBtEBonQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/tBtEBonQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmU; 4 mr fAAxuxFmB 0orzoFt:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_FAAxuxFmBQplrmU nxgB=QplrmUKKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(rqmxrsFu, x.B. QumUnFtqQzmUQumUWqyq BDyr nxmB_lou()U WQzmU/FAAxuxFmBnQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY QumU/luQzmUYY QumUyMQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo cBmFxunQumU/yMQzmUYY QumUluQzmU Y QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo BFu 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_oBFusFtBQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUoBFusFtBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmU6rys crBQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo drtqFsh 2FtB:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_ElnxsBnnsFtBQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUElnxsBnnsFtBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmU7smBosBm 3FovBmxsz QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.uBzFugrrt.DrtQplrmUQzmU4.4.d.QumU/FQzmUQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo btFxu fCCoBnn:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_BtFxuQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUDrsmFDmBtFxuQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(x.B. QumUnFtqQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://[email protected]/FQzmUQumU/nFtqQzmU)QumU/ntFuuQzmUQumU/uxQzmUYY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0yhnxDFu 3Fxuxsz fCCoBnn:QumU/EQzmU (jxmyrlm hrlo sFtB, Fuu rs rsB uxsB)QumU/uFEBuQzmU QumUntFuuQzmUQumUnFtqQzmU(x.B. OONNMM dyBooh 4FsB, 2Bj QumUWqyq BDyr Dyo(HG)U WQzmUrov, 2QumUWqyq BDyr Dyo(HG)U WQzmU OPPPO)QumU/nFtqQzmUQumU/ntFuuQzmUQumUEo /QzmUY QumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_FCCoBnnQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUFCCoBnnQplrmU))U WQzmUQumU/mBimFoBFQzmUY QumU/uxQzmUYY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo 0yrsB 2ltEBo:QumU/EQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_qyrsBQplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUnBmmxsz(QplrmUqyrsBQplrmU))U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmUQumUnFtqQzmU(x.B. QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.nvhqB.Drt/zr/nmroB.Elh.nvhqBxsQplrmUQzmUHOI-KKK-ONONQumU/FQzmU)QumU/nFtqQzmUQumU/ntFuuQzmUQumU/uxQzmUYY QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo drlsmoh rA BnxCBsDB:QumU/EQzmU QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_DrlsmohQplrmU, SDrlsmoxBn, Smyxn-QzmUnBmmxsz(QplrmUDrlsmohQplrmU))U WQzmUQumU/uxQzmUY QumU/luQzmUYY QumUqQzmUY QumUWqyq nlEtxm_Elmmrs(QplrmU$FkB dyFszBnQplrmU, QplrmUqoxtFohQplrmU, QplrmUqFqBomBtquFmB_nlEtxmQplrmU, AFunB)U WQzmUY QumU/qQzmUYY QumU/ArotQzmUYY QumU/CxkQzmUYY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y AlsDmxrs qFqBomBtquFmB_FqqBsC(rEw, mBim) {Y kFo Bixnmxsz = rEw.kFu()UY rEw.kFu(Bixnmxsz + mBim)UY }Y // --QzmUY QumU/nDoxqmQzmUY QumUWqyqY } qoxkFmB AlsDmxrs yBiNozE(SyBi) { SyBi = nmo_oBquFDB(QplrmUTQplrmU, QplrmUQplrmU, SyBi)U xA(nmouBs(SyBi) == M) { So = yBiCBD(nlEnmo(SyBi,P,O).nlEnmo(SyBi,P,O))U Sz = yBiCBD(nlEnmo(SyBi,O,O).nlEnmo(SyBi,O,O))U SE = yBiCBD(nlEnmo(SyBi,N,O).nlEnmo(SyBi,N,O))U } BunB { So = yBiCBD(nlEnmo(SyBi,P,N))U Sz = yBiCBD(nlEnmo(SyBi,N,N))U SE = yBiCBD(nlEnmo(SyBi,L,N))U } SozE = FooFh(So, Sz, SE)U oBmlos SozEU } qoxkFmB AlsDmxrs oBFCFEuBdruro(SEz, Suxtxm=OHP){ xA (nmouBs(SEz) == I) { SEz = nlEnmo(SEz, O)U } So = yBiCBD(nlEnmo(SEz,P,N))U Sz = yBiCBD(nlEnmo(SEz,N,N))U SE = yBiCBD(nlEnmo(SEz,L,N))U SDrsmoFnm = orlsC(So*P.M + Sz*P.KG + SE*P.OO)U xA(SDrsmoFnm QzmU Suxtxm){ oBmlos QTPMGUTMMMMMMQTPMGUU }BunB{ oBmlos QTPMGUTaaaaaaQTPMGUU } } qlEuxD AlsDmxrs yxCCBs(SqFzB7c=sluu) { zurEFu SqrnmU xA (SqFzB7c == sluu) { xA (xnnBm(Sqrnm-QzmU7c)) { SqFzB7c = xsmkFu(Sqrnm-QzmU7c)U } } xA (VSqFzB7c) { oBmlosU } SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U SyxCB = VxnnBm(SBiDulCBn[SqFzB7c])U oBmlos SyxCBU } qoxkFmB AlsDmxrs CorqCrjs(SsFtB, SCFmF, Srqmxrs=sluu, SrsDyFszB=sluu) { xA (Srqmxrs == sluu) { Srqmxrs = zBm_rqmxrs(SsFtB)U } xA (SrsDyFszB == sluu) { WQzmUY QumUnBuBDm sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU xC=QplrmUQumUWqyq BDyr SsFtBU WQzmUQplrmUQzmUY QumUWqyq } BunB { WQzmUY QumUnBuBDm sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU xC=QplrmUQumUWqyq BDyr SsFtBU WQzmUQplrmU rsDyFszB=QplrmUQumUWqyq BDyr SrsDyFszBU WQzmUQplrmUQzmUY QumUWqyq } AroBFDy (SCFmF Fn SkFulB =QzmU SmBim) { xA (SkFulB == Srqmxrs) { BDyr QTPMGUQumUrqmxrs kFulB=QplrmUQTPMGU . SkFulB . QTPMGUQplrmU nBuBDmBC=QplrmUnBuBDmBCQplrmUQzmUQTPMGU . SmBim . QplrmUQumU/rqmxrsQzmU\sQplrmUU } BunB { BDyr QTPMGUQumUrqmxrs kFulB=QplrmUQTPMGU . SkFulB . QTPMGUQplrmUQzmUQTPMGU . QplrmUSmBimQumU/rqmxrsQzmU\sQplrmUU } } WQzmUY QumU/nBuBDmQzmUY QumUWqyqY } qoxkFmB AlsDmxrs mxtBgrsB(SrAAnBm=sluu) { xA (SrAAnBm === sluu) { SrAAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU)U } SCnmeBzxs = nmomrmxtB(QTPMGU$BDrsC $lsCFh 3FoDy PQTPMGU)U SCnmbsC = nmomrmxtB(QTPMGUaxonm $lsCFh 2rkBtEBo PQTPMGU)U Sxncnm = mxtB() QzmU SCnmeBzxs QFtqUQFtqU mxtB() QumU SCnmbsCU xA (Sxncnm) { xA (SrAAnBm == -I) { oBmlos QplrmU0FDxAxD #xtBQplrmUU } xA (SrAAnBm == -J) { oBmlos QplrmU3rlsmFxs #xtBQplrmUU } xA (SrAAnBm == -K) { oBmlos QplrmUdBsmoFu #xtBQplrmUU } xA (SrAAnBm == -L) { oBmlos QplrmUbFnmBos #xtBQplrmUU } } BunB { xA (SrAAnBm == -H) { oBmlos QplrmU0FDxAxD #xtBQplrmUU } xA (SrAAnBm == -I) { oBmlos QplrmU3rlsmFxs #xtBQplrmUU } xA (SrAAnBm == -J) { oBmlos QplrmUdBsmoFu #xtBQplrmUU } xA (SrAAnBm == -K) { oBmlos QplrmUbFnmBos #xtBQplrmUU } } xA (SrAAnBm == P) { oBmlos QplrmU93#QplrmUU } oBmlos QplrmU93#QplrmU.((SrAAnBm QzmU P) W QTPMGU+QTPMGU : QTPMGUQTPMGU).SrAAnBmU } qoxkFmB AlsDmxrs myBtBn(Sursz=molB) { SElxum7s = FooFh( QplrmUCxnFEuBCQplrmU =QzmU (Sursz) W QplrmUc7$fe4bc: cxnquFh qFzB srotFuuh (Cr srm Fqquh qFqBo mBtquFmB)QplrmU : QplrmUcxnFEuBCQplrmU, QplrmUqFqBomBtquFmBQplrmU =QzmU (Sursz) W QplrmU0f0b #b304f#b: cxnquFh myxn qFzB lnxsz myB qFqBo mBtquFmBQplrmU : QplrmU0FqBo #BtquFmBQplrmU, )U xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-qoxtB.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-qoxtBQplrmU] = (Sursz) W QplrmU0 73b: 3xsxtFuxnm jxmy uxzym DruronQplrmU : QplrmU0oxtBQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-AlnxrsQplrmU] = (Sursz) W QplrmUa;$712: 3xsxtFu EroCBonQplrmU : QplrmUalnxrsQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-nlqBoQplrmU] = (Sursz) W QplrmU$;0b : 3rCBos urrv FsC ABBuQplrmU : QplrmU$lqBoQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-oBmorQplrmU] = (Sursz) W QplrmU b# 1: 1uC OGGPn FsC BFouh NPPPn CBnxzsQplrmU : QplrmU BmorQplrmUU } xA (AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU)) { SElxum7s[QplrmUqFqBomBtquFmB-jBExsFoQplrmU] = (Sursz) W QplrmU?be72f : BzxnmoFmxrs Aro uxkB moFxsxszQplrmU : QplrmU?BExsFoQplrmUU } SElxum7s[QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU] = (Sursz) W QplrmUef be12b$: ?xCB qFqBo mBtquFmB, zrrC Aro kxCBr oBquFhnQplrmU : QplrmUeFoBErsBnQplrmUU SElxum7s[QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU] = (Sursz) W QplrmU$# bf3472bc: dorqqBC qFqBo urrv FsC ABBuQplrmU : QplrmU$moBFtuxsBCQplrmUU SElxum7s[QplrmUqFqBomBtquFmB-EuFDvQplrmU] = (Sursz) W QplrmUe4fd5 0f0b : 0FqBo mBtquFmB jxmy F EuFDv EFDvzorlsCQplrmU : QplrmUeuFDv 0FqBoQplrmUU SElxum7s[QplrmUEuFsvQplrmU] = (Sursz) W QplrmUe4f25: cxnquFh myB qrnm jxmy sr yBFCBon ro ArrmBonQplrmU : QplrmUeuFsvQplrmUU } SmyBtBn = Smyxn-QzmUzBm_myBtBn()U oBmlos SElxum7s + SmyBtBnU } qlEuxD AlsDmxrs nmFmn() { zurEFu SqrnmU xA (SoFj = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU, molB)) { SoFj = xsmkFu(SoFj)U } BunB { SoFj = PU } xA (SlsxplB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, molB)) { SlsxplB = xsmkFu(SlsxplB)U } BunB { SlsxplB = PU } xA (SDrskBonxrsn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU, molB)) { SDrskBonxrsn = xsmkFu(SDrskBonxrsn)U } BunB { SDrskBonxrsn = PU } SDrskBonxrs0BoDBsm = (SlsxplB QzmU P) W (SDrskBonxrsn/SlsxplB) : PU WQzmUY QumUq nmhuB=QplrmUDuBFo:ErmyU rkBoAurj:FlmrUQplrmUQzmUY QumUnqFs nmhuB=QplrmUAurFm:uBAmU DuBFo:uBAmUQplrmUQzmU Fj duxDvn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SoFj, P)U WQzmUQumU/EQzmUQumU/nqFsQzmUY QumUnqFs nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmU;sxplB duxDvn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SlsxplB, P)U WQzmUQumU/EQzmUQumU/nqFsQzmUY QumU/qQzmUYY QumUq nmhuB=QplrmUDuBFo:ErmyU rkBoAurj:FlmrUQplrmUQzmUY QumUWqyq xA (molB||SDrskBonxrsn QzmU P): WQzmUQumUnqFs nmhuB=QplrmUAurFm:uBAmU DuBFo:uBAmUQplrmUQzmUdrskBonxrsn: QumUEQzmUQumUWqyq BDyr sltEBo_ArotFm(SDrskBonxrsn, P)U WQzmUQumU/EQzmU (QumUWqyq BDyr sltEBo_ArotFm(SDrskBonxrs0BoDBsm*OPP, N)U WQzmU%)QumU/nqFsQzmUQumUWqyq BsCxAU WQzmUY QumUnqFs nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU sFtB=QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU /QzmU BnBm $mFmnQumU/uFEBuQzmUQumU/nqFsQzmUY QumU/qQzmUY QumUWqyqY } qlEuxD AlsDmxrs BsplBlB_FCtxs(Syrrv) { xA (Syrrv == QplrmUqrnm.qyqQplrmU || Syrrv == QplrmUqrnm-sBj.qyqQplrmU) { jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-CFmBqxDvBoQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUwplBoh-nmhuBQTPMGU, QTPMGU//FwFi.zrrzuBFqxn.Drt/FwFi/uxEn/wplBohlx/O.H.N/myBtBn/ntrrmysBnn/wplBoh-lx.DnnQTPMGU)U } } qoxkFmB AlsDmxrs mxtB BtFxsxsz(SnBDrsCn, SnmhuB=QplrmUDrtqFDmQplrmU) { SnBDrsCn = xsmkFu(SnBDrsCn)U SCxkn = FooFh(QplrmUhonQplrmU =QzmU MJK*HJLPP, QplrmUtrQplrmU =QzmU MP*HJLPP, QplrmUCQplrmU =QzmU HJLPP, QplrmUyoQplrmU =QzmU MJPP, QplrmUtxsQplrmU =QzmU JP)U xA (SnmhuB == QplrmUAluuQplrmU) { SCxkn = FooFh(QplrmUhBFonQplrmU =QzmU MJK*HJLPP, QplrmUtrsmynQplrmU =QzmU MP*HJLPP, QplrmUCFhnQplrmU =QzmU HJLPP, QplrmUyrlonQplrmU =QzmU MJPP, QplrmUtxslmBnQplrmU =QzmU JP, QplrmUnBDrsCnQplrmU =QzmU O)U } Srlmqlm = FooFh()U AroBFDy (SCxkn Fn Slsxm =QzmU SFtrlsm) { Sp = Aurro(SnBDrsCn/SFtrlsm)U So = SnBDrsCn % SFtrlsmU xA (Sp QzmU P) { xA (SnmhuB == QplrmUAluuQplrmU) { Srlmqlm[] = Sp . QplrmU QplrmU . SlsxmU } BunB { Srlmqlm[] = Sp . SlsxmU } } SnBDrsCn = SoU } xA (SnmhuB == QplrmUAluuQplrmU) { oBmlos xtqurCB(Srlmqlm, QplrmU, QplrmU)U } oBmlos xtqurCB(Srlmqlm, QplrmU QplrmU)U } qlEuxD AlsDmxrs tBmF() { zurEFu SqrnmU SDFuu = qFqBomBtquFmB_DFuu()U xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2 b97$#b bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { qFqBomBtquFmB_tBnnFzB(SDFuu)U qFqBomBtquFmB_oBzxnmBo(SDFuu)U oBmlosU } SxC = xsmkFu(Sqrnm-QzmU7c)U jq_srsDB_AxBuC(QTPMGUqFqBomBtquFmBQTPMGU, QTPMGU_qFqBomBtquFmB_srsDBQTPMGU )U jq_oBzxnmBo_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU, QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn()))U jq_BsplBlB_nmhuB(QTPMGUqFqBomBtquFmB-FCtxsQTPMGU)U SsrmBn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_srmBnQplrmU, molB)U SqFzByBFCBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, molB)U SqFzBArrmBo = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, molB)U SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBDnn_trExuB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, molB)U SqFzBDnn_mFEuBm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, molB)U Sqrnmarsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U xA (VSqrnmarsm) { oBnBm(Smyxn-QzmUArsmn)U Sqrnmarsm = vBh(Smyxn-QzmUArsmn)U } Sqrnmdruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (VSqrnmdruro) { oBnBm(Smyxn-QzmUDruron)U Sqrnmdruro = vBh(Smyxn-QzmUDruron)U } SDrurocFmF = Smyxn-QzmUDruron[Sqrnmdruro]U SCFmB = xsmkFu(zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, molB))U SmxtB BtFxsxsz = tFi(P, SCFmB-mxtB())U xA (VSCFmB || Vxn_sltBoxD(SCFmB)) { SCFmB = mxtB()+(HJLPP*I)U SmxtB = PU } BunB { SmxtB = SCFmB % HJLPPU } SCFmB?Fosxsz = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SDFuumrFDmxrs = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, molB)U SDFuumrFDmxrs_FumBosFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, molB)U SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U SmxmuB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, ymtu_Bsmxmh_CBDrCB(QplrmUqFqBomBtquFmB_mxmuBQplrmU), molB)U SyxCB = VxnnBm(SBiDulCBn[SxC])U SmyBtBn = Smyxn-QzmUmyBtBn()U SAorsm = (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) QFtqUQFtqU (zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU) == SxC)U xA (xnnBm(S_ b&;b$#[QplrmUqmQplrmU])) { Sqm = S_ b&;b$#[QplrmUqmQplrmU]U } BunB { Sqm = QplrmUQplrmUU } xA (SmBtquFmB == QplrmUQplrmU QFtqUQFtqU Sqm V= QplrmUQplrmU) { SmBtquFmB = SqmU } SnsxqqBm4xnm = FooFh_vBhn(Smyxn-QzmUzBm_nsxqqBmn())U SnsxqqBmn = FooFh()U xA (Drlsm(SnsxqqBm4xnm) QzmU P) { SnsxqqBmn[QplrmUQplrmU] = QplrmU--- 7snBom $sxqqBm ---QplrmUU AroBFDy (SnsxqqBm4xnm Fn SnsxqqBm) { SnyromDrCB = QTPMGU[QTPMGU . SnsxqqBm . QTPMGU]QTPMGUU SnsxqqBmn[SnyromDrCB] = SnyromDrCBU } } SnmFmlnBn = FooFh( QplrmUrqBsQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom xn 1qBsQplrmU, QplrmUDurnBCQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom xn durnBCQplrmU, QplrmUrqBs_CFmBQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom 1qBsn rs...QplrmU, QplrmUDurnB_CFmBQplrmU =QzmU QplrmU$b44729 $#f#;$: dFom durnBn rs...QplrmU )U SnmFmln = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, molB)U xA (VSnmFmln) { SnmFmln = QplrmUrqBsQplrmUU } SoBtFxsxsz = QplrmUQplrmUU xA (SoBtFxsxsz == QplrmUQplrmU || SoBtFxsxsz == P) { xA (SnmFmln == QplrmUrqBs_CFmBQplrmU) { SoBtFxsxsz = QplrmU1qBsQplrmUU } BunBxA (SnmFmln == QplrmUDurnB_CFmBQplrmU) { SoBtFxsxsz = QplrmUdurnBCQplrmUU } } SmxtBgrsB1AAnBm = zBm_rqmxrs(QplrmUztm_rAAnBmQplrmU)U SmxtBgrsB$moxsz = Smyxn-QzmUmxtBgrsB()U SmxtBn = FooFh(P =QzmU QplrmUON:PP f3QplrmU, OHPP =QzmU QplrmUON:MP f3QplrmU, MJPP =QzmU QplrmUO:PP f3QplrmU, KLPP =QzmU QplrmUO:MP f3QplrmU, INPP =QzmU QplrmUN:PP f3QplrmU, GPPP =QzmU QplrmUN:MP f3QplrmU, OPHPP =QzmU QplrmUM:PP f3QplrmU, ONJPP =QzmU QplrmUM:MP f3QplrmU, OLLPP =QzmU QplrmUL:PP f3QplrmU, OJNPP =QzmU QplrmUL:MP f3QplrmU, OHPPP =QzmU QplrmUK:PP f3QplrmU, OGHPP =QzmU QplrmUK:MP f3QplrmU, NOJPP =QzmU QplrmUJ:PP f3QplrmU, NMLPP =QzmU QplrmUJ:MP f3QplrmU, NKNPP =QzmU QplrmUI:PP f3QplrmU, NIPPP =QzmU QplrmUI:MP f3QplrmU, NHHPP =QzmU QplrmUH:PP f3QplrmU, MPJPP =QzmU QplrmUH:MP f3QplrmU, MNLPP =QzmU QplrmUG:PP f3QplrmU, MLNPP =QzmU QplrmUG:MP f3QplrmU, MJPPP =QzmU QplrmUOP:PP f3QplrmU, MIHPP =QzmU QplrmUOP:MP f3QplrmU, MGJPP =QzmU QplrmUOO:PP f3QplrmU, LOLPP =QzmU QplrmUOO:MP f3QplrmU, LMNPP =QzmU QplrmUON:PP 03QplrmU, LKPPP =QzmU QplrmUON:MP 03QplrmU, LJHPP =QzmU QplrmUO:PP 03QplrmU, LHJPP =QzmU QplrmUO:MP 03QplrmU, KPLPP =QzmU QplrmUN:PP 03QplrmU, KNNPP =QzmU QplrmUN:MP 03QplrmU, KLPPP =QzmU QplrmUM:PP 03QplrmU, KKHPP =QzmU QplrmUM:MP 03QplrmU, KIJPP =QzmU QplrmUL:PP 03QplrmU, KGLPP =QzmU QplrmUL:MP 03QplrmU, JONPP =QzmU QplrmUK:PP 03QplrmU, JMPPP =QzmU QplrmUK:MP 03QplrmU, JLHPP =QzmU QplrmUJ:PP 03QplrmU, JJJPP =QzmU QplrmUJ:MP 03QplrmU, JHLPP =QzmU QplrmUI:PP 03QplrmU, IPNPP =QzmU QplrmUI:MP 03QplrmU, INPPP =QzmU QplrmUH:PP 03QplrmU, IMHPP =QzmU QplrmUH:MP 03QplrmU, IKJPP =QzmU QplrmUG:PP 03QplrmU, IILPP =QzmU QplrmUG:MP 03QplrmU, IGNPP =QzmU QplrmUOP:PP 03QplrmU, HOPPP =QzmU QplrmUOP:MP 03QplrmU, HNHPP =QzmU QplrmUOO:PP 03QplrmU, HLJPP =QzmU QplrmUOO:MP 03QplrmU, HJMGG =QzmU QplrmUOO:KG 03QplrmU)U SCxnquFh#xtBn = FooFh()U AroBFDy (SmxtBn Fn SmxtBbqrDy =QzmU SmxtBcxnquFh) { SCxnquFh#xtBn[SmxtBbqrDy] = SmxtBcxnquFh . QplrmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqU QplrmUU } WQzmUYY QumUWqyq Suxsv = zBm_qBotFuxsv(Sqrnm-QzmU7c)U WQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumUV-- QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QFtqUFtqU 0oBkxBjQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxm_qoBkxBjQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_qoBkxBj()U oBmlos AFunBUQplrmU /QzmU --QzmUQumUnqFs xC=QplrmUqFqBomBtquFmB_nqxssBoQplrmU DuFnn=QplrmUnqxssBoQplrmU nmhuB=QplrmUCxnquFh: srsBU AurFm:xsyBoxmUQplrmUQzmUQumU/nqFsQzmUQumU/qQzmUYY QumUWqyq xA (molB || nmoqrn(SDFuumrFDmxrs, QTPMGUzrmrtBBmxsz.DrtQTPMGU) V== af4$b): WQzmUY QumUnBuBDm sFtB=QplrmUqFqBomBtquFmB_tFxutBozBQplrmU rsDyFszB=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUqFqBomBtquFmB_tFxutBozB_rlmqlmQTPMGU).xssBo8#34 = myxn.kFulBU w&lBoh(QTPMGU.qFqBomBtquFmB_tFxutBozB_xsnmolDmxrsnQTPMGU).yxCB()U xA (myxn.kFulB == QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGUVAsFtBQTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGUVBtFxu.ymtuQTPMGU), Suxsv))U WQzmUQTPMGU) { w&lBoh(QTPMGUTqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsn_uxnmtFxuQTPMGU).nyrj()U }QplrmUQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQplrmUQzmUcxoBDm 4xsv mr #yxn 0FzBQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAQTPMGU =QzmU QTPMGU rEBomQTPMGU), Suxsv))U WQzmUQplrmUQzmU0BonrsFu 7skxmFmxrsQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAQTPMGU =QzmU QTPMGUsrsBQTPMGU), Suxsv))U WQzmUQplrmUQzmUfnv aro btFxu 1suhQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU{a7 $#2f3b}QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU{b3f74}.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmUflmr BnqrsnB 0uln 3Fxu 3BozBQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU{VAxonmsFtB}QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU{VBtFxu}.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmUfjBEBo 3Fxu 3BozBQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU[[AxonmsFtB]]QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU[[BtFxu]].ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU9Bm BnqrsnB 3Fxu 3BozBQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGU~drsmFDm.axonm2FtB~QTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGU~drsmFDm.btFxu~.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU7sAlnxrs$rAm 3Fxu 3BozBQumU/rqmxrsQzmUY QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(FCC_plBoh_Foz(FooFh(QTPMGUAxonmsFtBQTPMGU =QzmU QTPMGUVAsFtBQTPMGU, QTPMGUBtFxuQTPMGU =QzmU QTPMGUVBtFxu.ymtuQTPMGU), Suxsv))U WQzmUQplrmUQzmU4xnm3Fxu 0or 3Fxu 3BozBQumU/rqmxrsQzmUY QumU/nBuBDmQzmUY QumUDrCB xC=QplrmUqFqBomBtquFmB_tFxutBozB_rlmqlmQplrmUQzmUQumUWqyq BDyr omoxt(ymtuBsmxmxBn(Suxsv), QplrmU/QplrmU)U WQzmUQumU/DrCBQzmUY QumU/luQzmUYY QumUCxk DuFnn=QplrmUqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsnQplrmU xC=QplrmUqFqBomBtquFmB_tFxutBozB_xsnmolDmxrsn_uxnmtFxuQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY QumUEurDvplrmBQzmUQumUEQzmUQumUxQzmUeBAroB tFxuxsz, EB nloB mr BsFEuB xsCxkxClFu lnBo moFDvxsz.QumUEo /QzmUY 7s 4xnm3Fxu, zr mr myB QumUDrCBQzmU4xsv #oFDvxszQumU/DrCBQzmU mFE, DyBDv QumUDrCBQzmU#oFDv ;nBonQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$BmQumU/DrCBQzmU mr nFkB.QumUEo /QzmUY 1myBojxnB, myB uxsv qBonrsFuxgFmxrs jxuu srm jrovVQumU/xQzmUQumU/EQzmUY QumU/EurDvplrmBQzmUY QumU/CxkQzmUYY QumUWqyq BunB: WQzmUY QumUqQzmUcxoBDm 4xsv mr #yxn 0FzB: QumUF yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQumU/FQzmUQumU/qQzmUY QumUWqyq BsCxAU WQzmUYY QumUyLQzmU$mBq O: dyrrnB F #BtquFmB Aro #yxn 0FzBQumU/yLQzmUY QumUqQzmUdyrrnB jyBmyBo hrl jFsm mr CxnquFh myxn qFzB Fn myB CBAFlum, myB QFtqUplrmUqFqBo mBtquFmBQFtqUplrmU, F EFoBErsBn mBtquFmB, FsC troB...QumU/qQzmUY QumUqQzmUY QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, SmyBtBn, SmBtquFmB, QplrmUqFqBomBtquFmB_myBtB_DyFszB(myxn)U qFqBomBtquFmB_oBAoBny(myxn.kFulB)UQplrmU)U WQzmU Y QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU sFtB=QplrmUqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtquFmB)U WQzmUQplrmU/ QzmUY QumUWqyq Smyxn-QzmUqFzB_AuFkron(Sqrnm-QzmU7c, SmBtquFmB)U WQzmUYY QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUnBmmxszn_qFzBU WQzmUQplrmUQzmU$xmBjxCB $BmmxsznQumU/FQzmUQumU/qQzmUYY QumUyLQzmU$mBq N: dFuu mr fDmxrsQumU/yLQzmUY QumUqQzmU?yFm ; 4 Cr hrl jFsm mr nBsC qBrquB mr jyBs myBh DuxDv myB roCBo ElmmrsWQumUEo /QzmU Y (x.B. QumUnFtqQzmUymmq://jjj.qFhqFu.DrtQumU/nFtqQzmU ro QumUnFtqQzmUymmqn://jjjN.zrmrtBBmxsz.Drt/oBzxnmBo/JGGLOOGLJQumU/nFtqQzmUQumUEo /QzmU ro qFnmB xs hrlo rqm-xs Arot nlDy Fn QumUnFtqQzmUQFtqUumUnDoxqm mhqB=QFtqUplrmUmBim/wFkFnDoxqmQFtqUplrmU noD=QFtqUplrmUymmq://Arotn.FjBEBo.Drt/Arot/HK/OLLHLIIGHK.wnQFtqUplrmUQFtqUzmUQFtqUumU/nDoxqmQFtqUzmUQumU/nFtqQzmU)QumU/qQzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUqQzmUQumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU sFtB=QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFuumrFDmxrs)U WQzmUQumU/mBimFoBFQzmUY QumUqQzmUQumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_xsnBom()U oBmlos AFunBUQplrmUQzmU0uFDB 1oCBo elmmrs xs myB 0rnmQumU/FQzmUQumU/qQzmUY QumU/CxkQzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyU CxnquFh:EurDvUQplrmUQzmUY QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmUQzmUY QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_nmFmlnQplrmU, SnmFmlnBn, SnmFmln, QplrmUqFqBomBtquFmB_nmFmln_DyFszB()UQplrmU)U WQzmUYY QumUnqFs DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUqFCCxsz-uBAm:KqiU CxnquFh:EurDvUQplrmUQzmUY QumUntFuuQzmUdlooBsm #xtB: QumUDrCBQzmUQumUWqyq BDyr CFmB(QplrmUa C, QplrmU.Dyo(HG).QplrmU z:x fQplrmU, mxtB()+(SmxtBgrsB1AAnBm*MJPP))U WQzmUQumU/DrCBQzmUQumU/ntFuuQzmUY QumU/nqFsQzmUYY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_nBokBo_rAAnBmQplrmU sFtB=QplrmUqFqBomBtquFmB_nBokBo_rAAnBmQplrmU kFulB=QplrmUQumUWqyq BDyr SmxtBgrsB1AAnBm*MJPPU WQzmUQplrmU /QzmUY QumU/CxkQzmUYY QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUCxnquFh:srsBU qFCCxsz-uBAm:KqiUQplrmUQzmUY QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUqFqBomBtquFmB_CFmB_CxnquFhQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmB_CxnquFhQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(CFmB(QplrmUa w, QplrmU.Dyo(HG), SCFmB))U WQzmUQplrmU rsDyFszB=QplrmUqFqBomBtquFmB_nmFmln_DyFszB()QplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY QumUntFuu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmU#xtB 4BAm: QumUDrCB xC=QplrmUqFqBomBtquFmB_mxtB_oBtFxsxszQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUmxtB BtFxsxsz(SmxtB BtFxsxsz)U WQzmUQumU/DrCBQzmUQumU/ntFuuQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_CFmBQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmBQplrmU kFulB=QplrmUQplrmU /QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU xC=QplrmUqFqBomBtquFmB_srjQplrmU kFulB=QplrmUQumUWqyq BDyr mxtB()*OPPPU WQzmUQplrmU /QzmUY QumU/CxkQzmUYY QumUCxk nmhuB=QplrmUAurFm:uBAmUQplrmU DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUCxnquFh:srsBU qFCCxsz-uBAm:KqiUQplrmUQzmUY QumUWqyq Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_mxtBQplrmU, SCxnquFh#xtBn, SmxtB, QplrmUqFqBomBtquFmB_nmFmln_DyFszB()UQplrmU)U WQzmUQumUEo /QzmUY QumUntFuu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmUY QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUrqmxrsn-zBsBoFu.qyqQplrmU)U WQzmUQplrmUQzmU#xtBgrsB:QumU/FQzmU QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(Smyxn-QzmUmxtBgrsB())U WQzmUQumU/DrCBQzmUQumUEo /QzmUY Y QumU/ntFuuQzmUY QumU/CxkQzmUY Y QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkBQplrmU sFtB=QplrmUnFkBQplrmU DuFnn=QplrmUElmmrs-uFozBQplrmU /QzmUQumU/uFEBuQzmUQumU/qQzmUY QumU/CxkQzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUnqFs DuFnn=QplrmUqFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUuFEBu nmhuB=QplrmUqFCCxsz-uBAm:KqiUQplrmUQzmUQumUntFuuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU QumUWqyq DyBDvBC(SCFmB?Fosxsz==molB)U WQzmUQzmU $yrj mxtB oBtFxsxsz Fm myB mrq FsC Ermmrt rA myxn qFzBWQumU/ntFuuQzmUQumU/uFEBuQzmUY QumU/nqFsQzmUY QumU/CxkQzmUYY QumUEo /QzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmU xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmB_DrsmFxsBoQplrmUQzmUY QumUyLQzmU1qmxrsFu: fumBosFmB dFuu-mr-fDmxrs (nyrj myxn jyBs DFom xn DurnBC)QumU/yLQzmUY QumUqQzmUcxnquFh nrtBmyxsz uxvB Fs rqm-xs Arot jyBs myB rAABo xn DurnBC, ro F urjBo qoxDBC Elmmrs EBAroB myB qoxDB xsDoBFnB.QumU/qQzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU sFtB=QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFuumrFDmxrs_FumBosFmB)U WQzmUQumU/mBimFoBFQzmUY QumU/CxkQzmUYY QumUCxk nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY QumUyLQzmU$mBq M: 0FzB $BmmxsznQumU/yLQzmUY QumUqQzmUdrsmoru yrj hrl jFsm myxn qFzB mr EByFkB rs hrlo Eurz (x.B. CBAFlum mr myxn qFzB ro yxCB Aort sFkxzFmxrs)QumU/qQzmUYY QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_AorsmQplrmU QumUWqyq DyBDvBC(SAorsm)U WQzmU /QzmU 3FvB myxn myB Aorsm qFzB rA hrlo BsmxoB nxmBW QumUDrCBQzmUQumUWqyq BDyr zBm_EurzxsAr(QplrmUjqlouQplrmU)U WQzmUQumU/DrCBQzmUQumU/uFEBuQzmUQumUEo /QzmU Y QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUqFqBomBtquFmB_yxCBQplrmU QumUWqyq DyBDvBC(SyxCB, molB)U WQzmU /QzmU 7sDulCB myxn qFzB xs hrlo nxmBQTPMGUn sFkxzFmxrsWQumU/uFEBuQzmUQumU/qQzmUYY QumUqQzmUQumUuFEBuQzmUdlnmrt QumUDrCBQzmUQFtqUumU#7#4bQFtqUzmUQumU/DrCBQzmU #Fz Aro #yxn 0FzB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFqBomBtquFmB_mxmuBQplrmU xC=QplrmUqFqBomBtquFmB_mxmuBQplrmU nxgB=QplrmUKPQplrmU DuFnn=QplrmUDrCBQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmxmuB)U WQzmUQplrmU /QzmUQumU/uFEBuQzmU QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkBQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumU/qQzmUYY QumUmFEuBQzmUY QumUmoQzmUY QumUmCQzmUY dlnmrt 8BFCBo aro #yxn 0FzB: QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzByBFCBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_qFzByBFCBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU Drun=QplrmUKPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzByBFCBo)U WQzmUQumU/mBimFoBFQzmUY QumU/mCQzmUYY QumUmCQzmUY dlnmrt arrmBo aro #yxn 0FzB: QumUWqyq xA (Drlsm(SnsxqqBmn) QzmU P) { Smyxn-QzmUCorqCrjs(QplrmUqFqBomBtquFmB_qFzBArrmBo_nsxqqBmQplrmU, SnsxqqBmn, QplrmUQplrmU, QplrmUqFqBomBtquFmB_FqqBsC(w&lBoh(QTPMGUTqFqBomBtquFmB_qFzBArrmBoQTPMGU), myxn.kFulB)UQplrmU)U } WQzmUQumUEo /QzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU Drun=QplrmUKPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBArrmBo)U WQzmUQumU/mBimFoBFQzmUY QumU/mCQzmUY QumU/moQzmUYY QumUmoQzmUY QumUmC DrunqFs=QplrmUNQplrmUQzmUY dlnmrt d$$ aro #yxn 0FzB: QumUntFuu xC=QplrmUqFqBomBtquFmB_Dnn_DyrrnBoQplrmUQzmUQumUF yoBA=QplrmUTCBnvmrqQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU oBu=QplrmUqFqBomBtquFmB_DnnQplrmUQzmUcBnvmrqQumU/FQzmU | QumUF yoBA=QplrmUTmFEuBmQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmUQzmU#FEuBmQumU/FQzmU (x0FC) | QumUF yoBA=QplrmUTtrExuBQplrmU oBu=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmUQzmU3rExuBQumU/FQzmU (x0yrsB)QumU/ntFuuQzmUQumUEo /QzmUYY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_DnnQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnnQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn)U WQzmUQumU/mBimFoBFQzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_trExuBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn_trExuB)U WQzmUQumU/mBimFoBFQzmUY QumUmBimFoBF xC=QplrmUqFqBomBtquFmB_Dnn_mFEuBmQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU sFtB=QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCB qFqBomBtquFmB_DnnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzBDnn_mFEuBm)U WQzmUQumU/mBimFoBFQzmUY QumU/mCQzmUY QumU/moQzmUYY QumU/mFEuBQzmUY QumU/CxkQzmUYY QumUyLQzmU1qmxrsFu: 2rmBn fErlm #yxn 0FzBQumU/yLQzmUY QumUqQzmU0uFDB Fsh qBonrsFu xsArotFmxrs FErlm myxn nqBDxAxD qFzB xs myxn FoBF. #yxn xn kxnxEuB rsuh mr hrl FsC rmyBo FCtxsxnmoFmron rA myxn nxmB.QumU/qQzmUYY QumUqQzmUQumUmBimFoBF sFtB=QplrmUqFqBomBtquFmB_srmBnQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU rsArDln=QplrmUmyxn.orjn=OPQplrmU rsEulo=QplrmUmyxn.orjn=NQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SsrmBn)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY QumUxAoFtB noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU EroCBo=QplrmUPQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmU xC=QplrmUqFqBomBtquFmB_xAoFtBQplrmUQzmUQumU/xAoFtBQzmUYY QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU sFtB=QplrmUnFkBQplrmU /QzmUQumUV-- QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QFtqUFtqU 0oBkxBjQplrmU sFtB=QplrmUqFqBomBtquFmB_nlEtxm_qoBkxBjQplrmU rsDuxDv=QplrmUqFqBomBtquFmB_qoBkxBj()U oBmlos AFunBUQplrmU /QzmU --QzmUQumUnqFs xC=QplrmUqFqBomBtquFmB_nqxssBoQplrmU DuFnn=QplrmUnqxssBoQplrmU nmhuB=QplrmUCxnquFh: srsBU AurFm:xsyBoxmUQplrmUQzmUQumU/nqFsQzmUQumU/qQzmUYY QumUWqyq WQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY QumUV--Y w&lBoh(AlsDmxrs() {Y // 8xCB qFzB AuFkron xA sBBCBCYR //qFqBomBtquFmB_mBtquFmBY //nBm#xtBrlm(qFqBomBtquFmB_oBAoBny, KPPP)UYY // $Bm oBAoBny rs CorqCrjs tBsl DyFszBY w&lBoh(QplrmU.qFqBomBtquFmB_Arsm, .qFqBomBtquFmB_DruroQplrmU).DyFszB(AlsDmxrs() { qFqBomBtquFmB_oBAoBny()U })UY nBm#xtBrlm(QplrmUw&lBoh(QTPMGU.tDB-mrruEFo:yxCCBsQTPMGU).nyrj()UQplrmU, OPPPP)U // BiqFsC vxmDyBs nxsvYY w&lBoh(QplrmUTqFqBomBtquFmB_CFmB_CxnquFhQplrmU).CFmBqxDvBo({Y FumaxBuC: QplrmUTqFqBomBtquFmB_CFmBQplrmU,Y FumarotFm: QplrmU@QplrmU,Y CFmBarotFm: QplrmU33 C, hhQplrmU,Y txscFmB: PY })UY w&lBoh(QplrmUTqFqBomBtquFmB_CFmB_CxnquFhQplrmU).CFmBqxDvBo(QplrmUnBmcFmBQplrmU, QplrmUQumUWqyq BDyr CFmB(QTPMGUa C, QTPMGU.Dyo(HG), SCFmB)U WQzmUQplrmU)UYY qFqBomBtquFmB_nmFmln_DyFszB()UYY w&lBoh(QplrmUTlx-CFmBqxDvBo-CxkQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUsrsBQplrmU)UY })UYY AlsDmxrs qFqBomBtquFmB_mxtB_oBtFxsxsz(nBDrsCn, nmhuB) {Y kFo nmhuBUY kFo CxknUY xA (nmhuB == lsCBAxsBC) { nmhuB = QplrmUDrtqFDmQplrmUU }YY nBDrsCn = 3Fmy.Aurro(nBDrsCn/OPPP)U // FCwlnm Aro wFkFnDoxqm txuuxnBDrsCnY //oBmlos nBDrsCnUY xA (nmhuB == QplrmUDrtqFDmQplrmU) {Y Cxkn = {QplrmUhonQplrmU: MJK*HJLPP, QplrmUtrQplrmU: MP*HJLPP, QplrmUCQplrmU: HJLPP, QplrmUyoQplrmU: MJPP, QplrmUtxsQplrmU: JP}UY }Y BunB xA (nmhuB == QplrmUAluuQplrmU) {Y Cxkn = {QplrmUhBFonQplrmU: MJK*HJLPP, QplrmUtrsmynQplrmU: MP*HJLPP, QplrmUCFhnQplrmU: HJLPP, QplrmUyrlonQplrmU: MJPP, QplrmUtxslmBnQplrmU: JP, QplrmUnBDrsCnQplrmU : O}UY }YY xA (nBDrsCn QumU= P) { oBmlos QplrmU21?QplrmUU }YY kFo rlmqlm = sBj fooFh()UY Aro (lsxm xs Cxkn) {Y kFo Ftrlsm = Cxkn[lsxm]UY kFo p = 3Fmy.Aurro(nBDrsCn/Ftrlsm)UY kFo o = nBDrsCn % FtrlsmUY xA (p QzmU P) { rlmqlm[rlmqlm.uBszmy] = p + QplrmU QplrmU + lsxmU }Y nBDrsCn = oUY }Y xA (nmhuB == QplrmUAluuQplrmU) {Y oBmlos rlmqlm.wrxs(QplrmU, QplrmU)UY }Y oBmlos rlmqlm.wrxs(QplrmU QplrmU)UY }YY AlsDmxrs qFqBomBtquFmB_nmFmln_DyFszB() {Y kFo nmFmln = w&lBoh(QplrmUTqFqBomBtquFmB_nmFmlnQplrmU).kFu()UYY xA (nmFmln == QplrmUrqBs_CFmBQplrmU || nmFmln == QplrmUDurnB_CFmBQplrmU) {Y w&lBoh(QplrmU.qFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU).nyrj()UY }Y BunB {Y w&lBoh(QplrmU.qFqBomBtquFmB_CFmB_DrsmFxsBoQplrmU).yxCB()UY }YY // ;qCFmB mxtB oBtFxsxszY kFo CBFCuxsB = qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_CFmBQplrmU).kFu()) + qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_mxtBQplrmU).kFu()*OPPP)U // DrtExsB mxtB FsC CFmB AxBuCnYY // #oFsnuFmB xsmr ;#d nxsDB CFmBqxDvBo joxmBn xs rlo DrtqlmBoQTPMGUn urDFu mxtBY kFo ztmcBFCuxsB = CBFCuxsB - sBj cFmB().zBm#xtBgrsB1AAnBm()*JPPPPUY //FuBom(sBj cFmB().zBm#xtBgrsB1AAnBm())UYY kFo ztm2rj = qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_srjQplrmU).kFu()) + qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_nBokBo_rAAnBmQplrmU).kFu())*OPPPUYY //kFo oBtFxsxsz = CBFCuxsB - qFonB7sm(w&lBoh(QplrmUTqFqBomBtquFmB_srjQplrmU).kFu())UY kFo oBtFxsxsz = ztmcBFCuxsB - ztm2rjUY //FuBom(CBFCuxsB)UYY kFo oBtFxsxsz = qFqBomBtquFmB_mxtB_oBtFxsxsz(oBtFxsxsz)UY xA (oBtFxsxsz == QplrmUQplrmU) {Y xA (nmFmln == QplrmUrqBs_CFmBQplrmU) { w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(QplrmU1qBsQplrmU)U }Y xA (nmFmln == QplrmUDurnB_CFmBQplrmU) { w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(QplrmUdurnBCQplrmU)U }Y }Y BunB {Y w&lBoh(QplrmUTqFqBomBtquFmB_mxtB_oBtFxsxszQplrmU).ymtu(oBtFxsxsz)UY }Y }YY AlsDmxrs qFqBomBtquFmB_FqqBsC(rEw, mBim) {Y kFo Bixnmxsz = rEw.kFu()UY rEw.kFu(Bixnmxsz + mBim)UY }YY AlsDmxrs qFqBomBtquFmB_oBAoBny(nmhuB) {Y kFo nmhuBUY xA (nmhuB == lsCBAxsBC || VnmhuB) { nmhuB = w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmBQplrmU).kFu()U }Y xA (nmhuB == lsCBAxsBC || VnmhuB) { nmhuB = QplrmUqFqBomBtquFmBQplrmUU }Y Y kFo Dnn = QplrmUQplrmUUY xA (nmhuB == QplrmUqFqBomBtquFmBQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EFoBErsBn.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-EuFDvQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EuFDv.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-Alnxrs.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-nlqBoQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nlqBo.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-oBmorQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-oBmor.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-jBExsFo.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUqFqBomBtquFmB-nmoBFtuxsBCQplrmU) { Dnn = QplrmUQumUWqyq BDyr qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nmoBFtuxsBC.DnnQTPMGU, __a74b__)U WQzmUQplrmUU }Y BunB xA (nmhuB == QplrmUCxnFEuBCQplrmU) { Dnn = QplrmUQplrmUU }Y Y kFo C = sBj cFmB()UY kFo Dlnmrtd$$ = QplrmUQumUWqyq BDyr yrtB_lou(QTPMGUWqFqBomBtquFmB_kBo=QTPMGU, __a74b__)U WQzmUQplrmU+C.zBm#xtB()UY kFo Dlnmrt0FzBd$$ = QplrmUQumUWqyq BDyr yrtB_lou(QTPMGUWqFzB=QTPMGU.@xsmkFu(Sqrnm-QzmU7c).QTPMGUQFtqUqFqBomBtquFmB_kBo=QTPMGU, __a74b__)U WQzmUQplrmU+C.zBm#xtB()UYY // BtrkB myB ruC d$$Y kFo nmhuBnyBBmn = sluuUYY xA (mxsh3db.FDmxkBbCxmro V= sluu) { Y nmhuBnyBBmn = mxsh3db.FDmxkBbCxmro.Crt.nBuBDm(QTPMGUyBFC uxsvQTPMGU)UY }YY xA (VnmhuBnyBBmn) { oBmlosU }Y kFo DrlsmBo = PUY Aro (kFo x=PUxQumUnmhuBnyBBmn.uBszmyUx++) {Y xA (nmhuBnyBBmn[x].yoBA.tFmDy(QplrmUqFqBomBtquFmBQplrmU) || nmhuBnyBBmn[x].yoBA.DuFnn2FtB == QplrmUqFqBomBtquFmBQplrmU) {Y nmhuBnyBBmn[x].yoBA = DnnUY nmhuBnyBBmn[x].DuFnn2FtB = QplrmUqFqBomBtquFmBQplrmUUY Y mxsh3db.FDmxkBbCxmro.Crt.oBquFDB(nmhuBnyBBmn[x], nmhuBnyBBmn[x])UY DrlsmBo++UY }Y }Y Y // xA 0FqBo #BtquFmB xn CxnFEuBC, myBs nmrq FAmBo DuBFsxsz lq ruC d$$Y xA (nmhuB == QplrmUqFqBomBtquFmB-CxnFEuBCQplrmU) { mxsh3db.BiBDdrttFsC(QplrmUtDB BqFxsmQplrmU)U oBmlosU }Y Y // 7sDulCB 9rrzuB ArsmnY xA (w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmB_roxzxsFuQplrmU).kFu() == QplrmUQplrmU QFtqUQFtqU w&lBoh(QplrmUTqFqBomBtquFmB_mBtquFmBQplrmU).kFu() V= QplrmUQplrmU) {Y mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QumUWqyq BDyr oFjlouBsDrCB(Smyxn-QzmUFuuarsmn())U WQzmUQTPMGU)UY }YY // 2r 0FqBo#BtquFmB d$$ ArlsC mr oBquFDB, nr joxmB d$$ xsDulCB tFslFuuhY xA (DrlsmBo == P QFtqUQFtqU Dnn V= lsCBAxsBC) {Y mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dnn)UY }Y xA (Dlnmrtd$$ V= lsCBAxsBC) {Y mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dlnmrtd$$)UY }YY // $BB xA jB sBBC mr urFC F sBj Arsm FsC Druro EBDFlnB jB DyFszBC myB CorqCrjs tBslnY QumUWqyq SxCBsmxAxBo = DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU).QplrmU[QplrmU.Sqrnm-QzmU7c.DrsnmFsm(QplrmU0f0b #b304f#b_ce$QplrmU).QplrmU]QplrmUU WQzmUY kFo Dlnmrtdruro1s = w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() V= w&lBoh(QTPMGUTqFqBomBtquFmB_Druro_roxzxsFuQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() || w&lBoh(QTPMGUTqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu() V= w&lBoh(QTPMGUTqFqBomBtquFmB_Arsm_roxzxsFuQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()UY xA (Dlnmrtdruro1s) { Dlnmrt0FzBd$$ += QTPMGUQFtqUmBtquFmB=QTPMGU+w&lBoh(QTPMGUTqFqBomBtquFmB_mBtquFmBQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()+QTPMGUQFtqUArsm=QTPMGU+w&lBoh(QTPMGUTqFqBomBtquFmB_ArsmQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()+QplrmUQFtqUDruro=QplrmU+w&lBoh(QTPMGUTqFqBomBtquFmB_DruroQumUWqyq BDyr SxCBsmxAxBoU WQzmUQTPMGU).kFu()U }YY QumUWqyq xA (zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB) || zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB) || zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)): WQzmUY xA (Dlnmrtdruro1s QFtqUQFtqU Dlnmrt0FzBd$$ V= lsCBAxsBC) {Y mxsh3db.FDmxkBbCxmro.Crt.urFCd$$(Dlnmrt0FzBd$$)UY }Y QumUWqyq BsCxAU WQzmUYY //qFqBomBtquFmB_Druro_roxzxsFu[qFzB7c]YY mxsh3db.BiBDdrttFsC(QplrmUtDB BqFxsmQplrmU)UY }YY kFo qFqBomBtquFmB_lou = QTPMGUQumUWqyq BDyr qulzxsn_lou(QplrmUQplrmU, __a74b__)U WQzmUQTPMGUUYY kFo qFqBomBtquFmB_qBotFuxsv = QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(zBm_qBotFuxsv(Sqrnm-QzmU7c))U WQzmUQTPMGUUY kFo qFqBomBtquFmB_Arot = w&lBoh(QplrmUArotTqrnmQplrmU)UYY AlsDmxrs qFqBomBtquFmB_lsurFC() {Y oBmlos molBUYY // 0uFDByruCBon mr nBFoDy Aro FsC jFos FErlmY kFo quFDByruCBon = [QTPMGU( b$;4# O)QTPMGU, QTPMGU( b$;4# N)QTPMGU, QTPMGU( b$;4# M)QTPMGU]UYY kFo DrsmBsm = mxsh3db.FDmxkBbCxmro.zBmdrsmBsm()UYY // $BFoDy myorlzy myB DrsmBsm Aro BFDy quFDByruCBoY Aro (x=PUxQumUquFDByruCBon.uBszmyUx++) {Y kFo urDFmB = DrsmBsm.xsCBi1A(quFDByruCBon[x])UY xA (urDFmB QzmU -O) {Y // $mrq FsC jFosY oBmlos DrsAxot(QplrmU?f 2729: QumUWqyq BDyr Dyo(HG)U WQzmUrl yFkB srm trCxAxBC myB quFDByruCBon xs myxn qFzB mr tFmDy myB CBmFxun rA hrlo uFsCxsz qFzB.\s\scr hrl jFsm mr DrsmxslBW\s\sduxDv 15 mr nFkB myxn qFzB, DuxDv dFsDBu mr DrsmxslB tFvxsz DyFszBn.QplrmU)UY }Y }Y oBmlos molBUY }YY w&lBoh(QplrmUArotQplrmU).nlEtxm(qFqBomBtquFmB_lsurFC)UYY AlsDmxrs qFqBomBtquFmB_qoBkxBj() {Y // $lEtxm myB Arot xs Fs xAoFtBY Y kFo myB#FozBm = qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU)UY qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU, QplrmUqFqBomBtquFmB_xAoFtBQplrmU)UY w&lBoh(QplrmUTqFqBomBtquFmB_nqxssBoQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUEurDvQplrmU)UY w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).ExsC(QplrmUurFCQplrmU, qFqBomBtquFmB_qoBkxBj_DFuuEFDv)UY qFqBomBtquFmB_Arot.nlEtxm()UY }YY AlsDmxrs qFqBomBtquFmB_qoBkxBj_DFuuEFDv() {Y // ;sCr xAoFtB nlEtxm FsC rqBs sBj jxsCrjY qFqBomBtquFmB_Arot.Fmmo(QplrmUmFozBmQplrmU, QplrmU_mrqQplrmU)UYY // 1qBs myxn xs F sBj jxsCrj (jxsCrj _sBj wlnm nr jB CrsQTPMGUm vBBq nqFjsxsz sBj rsBn)Y w&lBoh(QplrmUTqFqBomBtquFmB_nqxssBoQplrmU).Dnn(QplrmUCxnquFhQplrmU, QplrmUsrsBQplrmU)UY FuBom(qFqBomBtquFmB_qBotFuxsv)UY jxsCrj.rqBs(qFqBomBtquFmB_qBotFuxsv, QplrmU_sBjQplrmU)UYY // 4f#b : CBuBmB myB xAoFtB FsC oBDoBFmBY w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).lsExsC(QplrmUurFCQplrmU, qFqBomBtquFmB_qoBkxBj_DFuuEFDv)UY w&lBoh(QplrmUTqFqBomBtquFmB_xAoFtBQplrmU).Fmmo(QplrmUnoDQplrmU, QplrmUFErlm:EuFsvQplrmU)UY }YY kFo qFqBomBtquFmB_mBim = QTPMGU[qFqBomBtquFmB-Elmmrs]1oCBo 2rj[/qFqBomBtquFmB-Elmmrs]QTPMGUUYY AlsDmxrs qFqBomBtquFmB_xsnBom_DFuuEFDv(B) {Y kFo m = jxsCrj.mxsh3dbUY m.FDmxkBbCxmro.Crt.lsExsC(m.FDmxkBbCxmro.zBmcrD(), QplrmUDuxDvQplrmU, qFqBomBtquFmB_xsnBom_DFuuEFDv)UY m.BiBD7snmFsDBdrttFsC(QTPMGUDrsmBsmQTPMGU, QTPMGUtDB7snBomdrsmBsmQTPMGU, AFunB, qFqBomBtquFmB_mBim, molB)UY }YY AlsDmxrs qFqBomBtquFmB_xsnBom() {Y FuBom(QplrmUduxDv xs myB ?roC0oBnn qrnm BCxmro jyBoB hrl jFsm mr quFDB hrlo roCBo Elmmrs.QplrmU)UYY kFo m = jxsCrj.mxsh3dbUY kFo C = m.FDmxkBbCxmro.zBmcrD()UY xA (VC) { m.FDmxkBbCxmro.zBm?xs()U }Y m.FDmxkBbCxmro.Crt.ExsC(C, QplrmUDuxDvQplrmU, qFqBomBtquFmB_xsnBom_DFuuEFDv)UY }YY QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/ --QzmUQTPMGUU WQzmUY QumU/nDoxqmQzmUY QumUWqyqY } qlEuxD AlsDmxrs tBmF_nFkB(Sqrnm7c) { xA (VxnnBm(S_01$#[QplrmUqFqBomBtquFmB_mBtquFmBQplrmU])) { oBmlosU } xA (CBAxsBC( QTPMGUc1729_f;#1$f!bQTPMGU ) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU) ) { oBmlosU } xA (Vjq_kBoxAh_srsDB( S_01$#[QTPMGU_qFqBomBtquFmB_srsDBQTPMGU], QTPMGUqFqBomBtquFmBQTPMGU ) ) { oBmlosU } xA (VDlooBsm_lnBo_DFs( QTPMGUBCxm_qFzBQTPMGU, Sqrnm7c ) ) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_FlmrnFkBQplrmU) QFtqUQFtqU jq_xn_qrnm_FlmrnFkB(Sqrnm7c)) { oBmlosU } xA (AlsDmxrs_Bixnmn(QplrmUjq_xn_qrnm_oBkxnxrsQplrmU) QFtqUQFtqU (Sqrnm Bkxnxrs = jq_xn_qrnm_oBkxnxrs(Sqrnm7c))) { Sqrnm7c = Sqrnm BkxnxrsU } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_oBnBmnmFmnQplrmU])) { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_oFjDuxDvnQplrmU)U CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU)U CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DrskBonxrsnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_nmFmlnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_nmFmlnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_nmFmlnQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU])) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU, molB)U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmB_jFosxszQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_CFmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxtBQplrmU])) { SCFmB = xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_CFmBQplrmU])/OPPPU SmxtB = xsmkFu(S_01$#[QplrmUqFqBomBtquFmB_mxtBQplrmU])U SCFmB = SCFmB - (SCFmB % HJLPP)U SCFmB = SCFmB + SmxtBU lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmBQplrmU, SCFmB)U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_CFmBQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzByBFCBoQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_trExuBQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBDnn_mFEuBmQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU])) { xA (S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qorihQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qorihQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qorihQplrmU)U } } xA (S_01$#[QplrmUqFqBomBtquFmB_srmBnQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_srmBnQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_srmBnQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_srmBnQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_qFzBArrmBoQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrsQplrmU)U } xA (S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU]) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU, moxt(S_01$#[QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU]))U } BunB { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DFuumrFDmxrs_FumBosFmBQplrmU)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])) { SmxmuB = ymtu_Bsmxmh_CBDrCB(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])U xA (Btqmh(SmxmuB)) { CBuBmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mxmuBQplrmU)U } BunB { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_mxmuBQplrmU, moxt(SmxmuB))U } } Smyxn-QzmUnBm_mBtquFmB(Sqrnm7c, S_01$#[QplrmUqFqBomBtquFmB_mBtquFmBQplrmU])U xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][Sqrnm7c])) { lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_DruroQplrmU, S_01$#[QplrmUqFqBomBtquFmB_DruroQplrmU][Sqrnm7c])U lqCFmB_qrnm_tBmF(Sqrnm7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, S_01$#[QplrmUqFqBomBtquFmB_ArsmQplrmU][Sqrnm7c])U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_yxCBQplrmU])) { Smyxn-QzmUlsyxCB(Sqrnm7c)U } BunB { Smyxn-QzmUyxCB(Sqrnm7c)U } xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_mxmuBQplrmU])) { xA (xnnBm(S_01$#[QplrmUqFqBomBtquFmB_AorsmQplrmU])) { lqCFmB_rqmxrs(QTPMGUqFzB_rs_AorsmQTPMGU, Sqrnm7c)U lqCFmB_rqmxrs(QTPMGUnyrj_rs_AorsmQTPMGU, QTPMGUqFzBQTPMGU )U } BunBxA (zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU) == Sqrnm7c) { lqCFmB_rqmxrs(QTPMGUqFzB_rs_AorsmQTPMGU, Sqrnm7c)U lqCFmB_rqmxrs(QTPMGUnyrj_rs_AorsmQTPMGU, QTPMGUqrnmnQTPMGU )U } } } qoxkFmB AlsDmxrs zBm_mBtquFmB(SxC) { oBmlos zBm_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U } qoxkFmB AlsDmxrs nBm_mBtquFmB(SxC, SmBtquFmB) { xA (SmBtquFmB == QplrmUCxnFEuBCQplrmU) { CBuBmB_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU)U } BunB { lqCFmB_qrnm_tBmF(SxC, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, SmBtquFmB)U } } qoxkFmB AlsDmxrs yxCB(SxC) { SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SBiDulCBn)) { SBiDulCBn = FooFh()U } SBiDulCBn[SxC] = molBU lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU, SBiDulCBn)U } qoxkFmB AlsDmxrs lsyxCB(SxC) { SBiDulCBn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SBiDulCBn)) { SBiDulCBn = FooFh()U } lsnBm(SBiDulCBn[SxC])U lqCFmB_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU, SBiDulCBn)U } qoxkFmB AlsDmxrs zBm_myBtBn() { oBmlos FooFh()U SmyBtB4xnm = zBm_myBtBn()U SmyBtBn = FooFh()U AroBFDy (SmyBtB4xnm Fn SmyBtB) { SvBh = SmyBtB[QplrmU#BtquFmBQplrmU]U SkFulB = SmyBtB[QplrmU2FtBQplrmU]U SmyBtBn[SvBh] = SkFulBU } oBmlos SmyBtBnU } qlEuxD AlsDmxrs BiDulCBn(SBiDulCBC){ SyxCB = zBm_rqmxrs(QplrmUqFqBomBtquFmB_yxCBQplrmU)U xA (Vxn_FooFh(SyxCB)) { oBmlos SBiDulCBCU } AroBFDy (SyxCB Fn SvBh =QzmU SkFulB) { SBiDulCBC[] = SvBhU } oBmlos SBiDulCBCU } qlEuxD AlsDmxrs njxmDyBo() { zurEFu Sjq_FCtxs_EFoU xA ( Vxn_nlqBo_FCtxs() || Vxn_FCtxs_EFo_nyrjxsz() ) { oBmlosU } xA (Sjq_FCtxs_EFo-QzmUzBm_srCB(QplrmUxsDrtBtFDyxsBQplrmU)) { oBmlosU } SqFonB = qFonB_lou(zBm_yrtB_lou())U xA (VxnnBm(SqFonB[QplrmUqFmyQplrmU]) QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUtBtEBon/jq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr eFDvBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU yrtB_lou(QplrmU/tBtEBon/jq-FCtxsQplrmU)) )U } BunBxA (xnnBm(SqFonB[QplrmUqFmyQplrmU]) QFtqUQFtqU SqFonB[QplrmUqFmyQplrmU] == QplrmU/tBtEBonQplrmU QFtqUQFtqU @xn_Cxo(moFxuxsznuFnyxm(DrsnmFsm(QplrmUfe$0f#8QplrmU)).QplrmUjq-FCtxsQplrmU)) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUxsDrtBtFDyxsBQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr aorsmBsCQTPMGU), QTPMGUyoBAQTPMGU =QzmU moFxuxsznuFnyxm(CxosFtB(yrtB_lou())).QplrmUjq-FCtxsQplrmU ))U } xA (@AxuB_Bixnmn(moFxuxsznuFnyxm(CxosFtB(S_$b !b [QplrmUc1d;3b2#_ 11#QplrmU])).QplrmU.DqFsBuQplrmU)) { SyrtBlou = qFonB_lou(yrtB_lou(QplrmUQplrmU, QplrmUymmqnQplrmU))U Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUnxmB-sFtBQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUDqFsBuQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy mr D0FsBuQTPMGU), QTPMGUyoBAQTPMGU =QzmU QTPMGUymmqn://QTPMGU.SyrtBlou[QplrmUyrnmQplrmU].QTPMGU:NPHMQTPMGU, QTPMGUtBmFQTPMGU =QzmU FooFh(QTPMGUmFozBmQTPMGU =QzmU QTPMGU_EuFsvQTPMGU) ))U } } qlEuxD AlsDmxrs nBmlq() { xA (Vxn_FCtxs()) { oBmlosU } Snvxq = FooFh(QplrmUDrqhoxzymQplrmU, QplrmUdrqhoxzymQplrmU, QplrmUBFosxsznQplrmU, QplrmUbFosxsznQplrmU, QplrmUqoxkFDhQplrmU, QplrmU0oxkFDhQplrmU, QplrmUmBotn-DrsCxmxrsnQplrmU, QplrmU#Botn QFtqU drsCxmxrsnQplrmU, QplrmUCxnDuFxtBoQplrmU, QplrmUcxnDuFxtBoQplrmU, QplrmUjxnyuxnm-tBtEBoQplrmU, QplrmUtBtEBozBsxlnQplrmU)U xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlos AFunBU } StBsl = FCC_tBsl_qFzB(QTPMGU0FqBo #BtquFmBQTPMGU, QTPMGU0FqBo #BtquFmBQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUqFzBnQplrmU))U Smyxn-QzmUnBmmxszn_nulz = StBslU FCC_nlEtBsl_qFzB(__a74b__, QTPMGU4FsCxsz 0FzBnQTPMGU, QTPMGU4FsCxsz 0FzBnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUqFzBnQplrmU))U SoBDBsm0FzBn = zBm_qFzBn(QplrmUnrom_Drults=qrnm_trCxAxBCQFtqUnrom_roCBo=CBnDQFtqUsltEBo=KQFtqUtBmF_vBh=qFqBomBtquFmB_mBtquFmBQplrmU)U xA (Drlsm(SoBDBsm0FzBn) QzmU P) { Sx = OU AroBFDy (SoBDBsm0FzBn Fn SoBDBsm0FzB) { xA (xs_FooFh(SoBDBsm0FzB-QzmUqrnm_sFtB, Snvxq)) { DrsmxslBU } SmxmuB = QplrmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqU (QplrmU . Sx++ . QplrmU) QplrmU . SoBDBsm0FzB-QzmUqrnm_mxmuBU FCC_nlEtBsl_qFzB(__a74b__, SmxmuB, SmxmuB, QTPMGUFCtxsxnmoFmroQTPMGU, QplrmUqrnm.qyqWqrnm=QplrmU.xsmkFu(SoBDBsm0FzB-QzmU7c).QplrmUQFtqUFDmxrs=BCxmQplrmU)U } } FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$xmB $BmmxsznQTPMGU, QTPMGU$xmB $BmmxsznQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU, FooFh(QFtqUSmyxn, QplrmUrqmxrsnQplrmU))U xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU) QFtqUQFtqU VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$sxqqBmnQTPMGU, QTPMGU$sxqqBmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nsxqqBmnQplrmU, FooFh(QFtqUSmyxn, QplrmUnsxqqBmnQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU BCxoBDmnQTPMGU, QTPMGU BCxoBDmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-oBCxoBDmnQplrmU, FooFh(QFtqUSmyxn, QplrmUoBCxoBDmnQplrmU))U } FCC_nlEtBsl_qFzB(__a74b__, QTPMGU2Bj 4FsCxsz 0FzBQTPMGU, QTPMGU2Bj 4FsCxsz 0FzBQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQplrmU)U SsBj0FzBn = FooFh( QplrmUrqmxsqFzBQplrmU =QzmU QplrmU1qmxs 0FzBQplrmU, QplrmUjBExsFoQplrmU =QzmU QplrmU?BExsFo $xzslqQplrmU, QplrmUoBquFhqFzBQplrmU =QzmU QplrmU?BExsFo BquFhQplrmU, QplrmUnFuBnqFzBQplrmU =QzmU QplrmU$FuBn 0FzBQplrmU, QplrmUCrjsurFCqFzBQplrmU =QzmU QplrmUcrjsurFC 0FzBQplrmU, QplrmUzxAmqFzBQplrmU =QzmU QplrmU9xAm 0FzBQplrmU )U xA (CBAxsBC(QplrmU0f0b #b304f#b_;4#73f#bQplrmU)) { zurEFu Sjq_FCtxs_EFoU AroBFDy (SsBj0FzBn Fn SsBj0FzB =QzmU SsBj#xmuB) { SsBj0FzB;ou = QplrmUqrnm-sBj.qyqWqrnm_mhqB=qFzBQFtqUqm=qFqBomBtquFmBQFtqUqoBjoxmmBs=QplrmU.SsBj0FzBU FCC_nlEtBsl_qFzB(__a74b__, SsBj#xmuB, QplrmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqU QplrmU.SsBj#xmuB, QTPMGUFCtxsxnmoFmroQTPMGU, SsBj0FzB;ou)U } } Smyxn-QzmUrqmxrsn_nFkB()U Smyxn-QzmUnsxqqBmn_nFkB()U Smyxn-QzmUoBCxoBDmn_nFkB()U Smyxn-QzmUCrtFxsn_nFkB()U xA (AlsDmxrs_Bixnmn(QplrmUFCC_tBmF_EriQplrmU)) { FCC_tBmF_Eri(QTPMGUqFqBomBtquFmB-tBmFQTPMGU, QTPMGU0FqBo #BtquFmB $BmmxsznQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmFQTPMGU), QplrmUqFzBQplrmU, QplrmUsrotFuQplrmU, QplrmUyxzyQplrmU)U FCC_tBmF_Eri(QTPMGUqFqBomBtquFmB-nmFmnQTPMGU, QTPMGU0FqBo #BtquFmB $mFmxnmxDnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUnmFmnQTPMGU), QplrmUqFzBQplrmU, QplrmUnxCBQplrmU, QplrmUCBAFlumQplrmU)U } } AlsDmxrs tDB_nmhuBn() { } AlsDmxrs tDB_Elmmrsn_BimoF(SElmmrsn) { FooFh_lsnyxAm( SElmmrsn, QTPMGUArsmnxgBnBuBDmQTPMGU )U oBmlos SElmmrsnU } AlsDmxrs tDB_Elmmrsn(SElmmrsn) { xA (VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBqoBjoxmmBsQplrmU)U } FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBnyromQplrmU)U FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBEriBnQplrmU)U xA (VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmByBFCuxsBnQplrmU)U FooFh_qlny(SElmmrsn, QplrmUnBqFoFmroQplrmU, QplrmUqFqBomBtquFmBEluuBmnQplrmU)U } oBmlos SElmmrsnU } AlsDmxrs tDB_Dnn(StDB_Dnn) { zurEFu SqrnmU xA (VxnnBm(Sqrnm-QzmU7c)) { oBmlos StDB_DnnU } SmBtquFmB = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_mBtquFmBQplrmU, molB)U SqFzBDnn = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_qFzBDnnQplrmU, molB)U SqFzBArsm = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_ArsmQplrmU, molB)U SqFzBDruro = zBm_qrnm_tBmF(Sqrnm-QzmU7c, QplrmUqFqBomBtquFmB_DruroQplrmU, molB)U xA (SmBtquFmB == QplrmUEuFsvQplrmU || SmBtquFmB == QplrmUCxnFEuBCQplrmU) { oBmlos StDB_DnnU } xA (xnnBm(S_9b#[QplrmUqmQplrmU]) || SmBtquFmB) { xA ( V Btqmh( StDB_Dnn ) ) { StDB_Dnn .= QTPMGU,QTPMGUU } StDB_Dnn .= QTPMGU//Arsmn.zrrzuBFqxn.Drt/DnnWAFtxuh=QTPMGU.oFjlouBsDrCB(Smyxn-QzmUFuuarsmn())U StDB_Dnn .= QTPMGU,QTPMGUU xA (SmBtquFmB == QplrmUqFqBomBtquFmB-nlqBoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-nlqBo.qyqQTPMGU)) { StDB_Dnn .= qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-nlqBo.DnnQTPMGU, __a74b__ )U StDB_Dnn .= QTPMGU,QTPMGUU } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-jBExsFoQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-jBExsFo.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-jBExsFo.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-EuFDvQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EuFDv.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EuFDv.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-EFoBErsBnQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-EFoBErsBn.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-EFoBErsBn.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-oBmorQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-oBmor.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-oBmor.DnnQTPMGU, __a74b__ )U } BunBxA (SmBtquFmB == QplrmUqFqBomBtquFmB-AlnxrsQplrmU QFtqUQFtqU AxuB_Bixnmn(CxosFtB(__a74b__) . QTPMGU/qFqBomBtquFmB-Alnxrs.qyqQTPMGU)) { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB-Alnxrs.DnnQTPMGU, __a74b__ )U } BunB { StDB_Dnn .= QTPMGU,QTPMGU.qulzxsn_lou( QTPMGU/Dnn/qFqBomBtquFmB.DnnQTPMGU, __a74b__ )U } StDB_Dnn .= QTPMGU,QTPMGU.yrtB_lou(QplrmUWqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U xA ((SqFzBDnn QFtqUQFtqU VBtqmh(SqFzBDnn)) || SqFzBArsm || SqFzBDruro) { StDB_Dnn .= QTPMGU,QTPMGU.yrtB_lou(QplrmUWqFzB=QplrmU.xsmkFu(Sqrnm-QzmU7c).QplrmUQFtqUqFqBomBtquFmB_kBo=QplrmU.mxtB(), __a74b__)U } } oBmlos StDB_DnnU } AlsDmxrs tDB_BimBosFu_qulzxsn(Squlzxs_FooFh) { Squlzxs;ou = FCtxs_lou(QTPMGUWqFqBomBtquFmB-BCxmro=OQTPMGU, __a74b__)U xA (xnnBm(S_9b#[QplrmUqoBjoxmmBsQplrmU])) { Squlzxs;ou = Squlzxs;ou .QTPMGUQFtqUqoBjoxmmBs=QTPMGU.ymtuBsmxmxBn(S_9b#[QplrmUqoBjoxmmBsQplrmU])U } xA (VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { xA (xnnBm(S_9b#[QplrmUqoBjoxmmBsQplrmU])) { Squlzxs_FooFh[QTPMGUqFqBomBtquFmBqoBjoxmmBsQTPMGU] = Squlzxs;ouU } BunB { Squlzxs_FooFh[QTPMGUqFqBomBtquFmBqoBjoxmmBsQTPMGU] = Squlzxs;ouU } } Squlzxs_FooFh[QTPMGUqFqBomBtquFmBnyromQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBEriBnQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBtBslQTPMGU] = Squlzxs;ouU xA (VCBAxsBC(QplrmU0f0b #b304f#b_b>0 b$$QplrmU)) { Squlzxs_FooFh[QTPMGUqFqBomBtquFmByBFCuxsBnQTPMGU] = Squlzxs;ouU Squlzxs_FooFh[QTPMGUqFqBomBtquFmBEluuBmnQTPMGU] = Squlzxs;ouU } oBmlos Squlzxs_FooFhU } AlsDmxrs mxsh_tDB_kBonxrs(SkBonxrs) { oBmlos ++SkBonxrsU } AlsDmxrs mxsh_tDB_EBAroB_xsxm(SxsxmfooFh) { SxsxmfooFh[QTPMGUnBmlqQTPMGU] = QTPMGUAlsDmxrs(BC) { BC.rs4rFCdrsmBsm.FCC(AlsDmxrs(BC, B) { kFo qFqBomBtquFmB_oBAoBnyU xA (qFqBomBtquFmB_oBAoBny V= lsCBAxsBC) { qFqBomBtquFmB_oBAoBny()U } })U }QTPMGUU SxsxmfooFh[QTPMGUArsmnxgB_ArotFmnQTPMGU] = QplrmUGqi OPqi ONqi OMqi OLqi OJqi OHqi NOqi NLqi NHqi MNqi MJqi LNqi LHqi JPqi INqi HLqi OPPqiQplrmUU oBmlos SxsxmfooFhU } } DuFnn 0FqBo#BtquFmB?FuvBo BimBsCn ?FuvBo_2Fk_3Bsl { AlsDmxrs nmFom_Bu(QFtqUSrlmqlm, SxmBt, SCBqmy=P, SFozn=FooFh(), SxC=P) { zurEFu Sjq_plBohU Suxnm = FooFh()U SFmmoxElmBn = V Btqmh( SxmBt-QzmUFmmo_mxmuB ) W QTPMGU mxmuB=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUFmmo_mxmuB ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUmFozBm ) W QTPMGU mFozBm=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUmFozBm ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUiAs ) W QTPMGU oBu=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUiAs ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SFmmoxElmBn .= V Btqmh( SxmBt-QzmUlou ) W QTPMGU yoBA=QplrmUQTPMGU . BnD_Fmmo( SxmBt-QzmUlou ) .QTPMGUQplrmUQTPMGU : QTPMGUQTPMGUU SxmBt_rlmqlm = SFozn-QzmUEBAroBU SxmBt_rlmqlm .= QTPMGUQumUFQTPMGU. SFmmoxElmBn .QTPMGUQzmUQTPMGUU SxmBt_rlmqlm .= SFozn-QzmUuxsv_EBAroB .Fqquh_AxumBon( QTPMGUmyB_mxmuBQTPMGU, SxmBt-QzmUmxmuB, SxmBt-QzmU7c )U SxmBt_rlmqlm .= SCBnDoxqmxrs.SFozn-QzmUuxsv_FAmBoU SxmBt_rlmqlm .= QTPMGUQumU/FQzmUQTPMGUU SxmBt_rlmqlm .= SFozn-QzmUFAmBoU Srlmqlm .= Fqquh_AxumBon( QTPMGUjFuvBo_sFk_tBsl_nmFom_BuQTPMGU, SxmBt_rlmqlm, SxmBt, SCBqmy, SFozn )U } } DuFnn 0FqBo#BtquFmB3rCBu { qoxkFmB SoBCxoBDm#FEuBU qoxkFmB SmoFDvxsz#FEuBU AlsDmxrs __DrsnmolDm() { zurEFu SjqCEU Smyxn-QzmUoBCxoBDm#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmUU Smyxn-QzmUmoFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_moFDvxszQplrmUU Smyxn-QzmUnlE#oFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_nlEmoFDvxszQplrmUU Smyxn-QzmUyrrvn()U Smyxn-QzmUtxzoFmB()U } qoxkFmB AlsDmxrs yrrvn() { oBzxnmBo_FDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn, QTPMGUxsnmFuuQTPMGU))U } qlEuxD AlsDmxrs xsnmFuu() { zurEFu SjqCEU oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/lqzoFCB.qyqQTPMGU)U Smyxn-QzmUoBCxoBDm#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmUU Smyxn-QzmUmoFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_moFDvxszQplrmUU Smyxn-QzmUnlE#oFDvxsz#FEuB = SjqCE-QzmUqoBAxi . QplrmUqFqBomBtquFmB_nlEmoFDvxszQplrmUU xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUoBCxoBDm#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUoBCxoBDm#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `oBCxoBDm_qFmy` kFoDyFo(NKK) 21# 2;44, `oBCxoBDm_lou` kFoDyFo(NKK) 21# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `qFmy` (`oBCxoBDm_qFmy`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } BunB { } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUmoFDvxsz#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUmoFDvxsz#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `oBCxoBDm_xC` xsm(OO) 21# 2;44, `moFDvxsz_CFmB` CFmB 21# 2;44, `moFDvxsz_yxmn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `moFDvxsz_lsxplBn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `moFDvxsz_DrskBonxrsn` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `moFDvxsz_CFmB` (`moFDvxsz_CFmB`,`oBCxoBDm_xC`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUnlE#oFDvxsz#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUnlE#oFDvxsz#FEuB) { CEcBumF(QplrmUd bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUnlE#oFDvxsz#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 Flmr_xsDoBtBsm, `moFDvxsz_7c` xsm(OO) 21# 2;44,`nlEmoFDvxsz_sFtB` kFoDyFo(NKK) 21# 2;44, 0 73f QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `nlEmoFDvxsz_sFtB` (`moFDvxsz_7c`,`nlEmoFDvxsz_sFtB`)) cbaf;4# d8f $b#=lmAHUQplrmU)U } } qoxkFmB AlsDmxrs txzoFmB() { zurEFu SjqCEU SoBCxoBDmn = zBm_rqmxrs(QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU)U xA (xn_FooFh(SoBCxoBDmn) QFtqUQFtqU Drlsm(SoBCxoBDmn) QzmU P) { AroBFDy (SoBCxoBDmn Fn SqFmy =QzmU Slou) { Smyxn-QzmUFCC BCxoBDm(SqFmy, Slou)U } CBuBmB_rqmxrs(QplrmUqFqBomBtquFmB_oBCxoBDmnQplrmU)U } } qlEuxD AlsDmxrs lqCFmB;sxplBdrrvxBn(SsBj!FulB) { xA (xnnBm(S_d1157b[QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU])) { SlsxplBn = @BiqurCB(QplrmU,QplrmU,S_d1157b[QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU])U } BunB { SlsxplBn = FooFh()U } SDyFszBC = Vxs_FooFh(SsBj!FulB, SlsxplBn)U xA (SDyFszBC) { SlsxplBn[] = SsBj!FulBU SlsxplBn = xtqurCB(QplrmU,QplrmU,FooFh_lsxplB(SlsxplBn))U @nBmDrrvxB(QplrmUqFqBomBtquFmB_lsxplBDuxDvnQplrmU, SlsxplBn, mxtB()+HJLPP, QplrmU/QplrmU)U } oBmlos SDyFszBCU } qlEuxD AlsDmxrs zBm BCxoBDmn() { zurEFu SjqCEU oBmlos SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# *, QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7c f$ 7c, $;3(moFDvxsz_yxmn) f$ moFDvxsz_yxmn, $;3(moFDvxsz_lsxplBn) f$ moFDvxsz_lsxplBn a 13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU 4ba# 6172 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU 12 (QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU.oBCxoBDm_xC) 9 1;0 eQplrmU.Dyo(HG).QplrmU QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU.7cQplrmU)U } qlEuxD AlsDmxrs zBm BCxoBDm(SqFmy) { zurEFu SjqCEU SnFAB0Fmy = BnD_npu(SqFmy)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB. QplrmU ?8b b oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU 4737# OQplrmU)U } qlEuxD AlsDmxrs nFsxmxgB BCxoBDm0Fmy(SqFmy) { SqFmy = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-]+@nxQTPMGU, QTPMGUQTPMGU, SqFmy)U xA (SqFmy == QplrmUQplrmU) { oBmlos sluuU } oBmlos SqFmyU } qlEuxD AlsDmxrs nFsxmxgB BCxoBDm; 4(Slou) { Slou = moxt(nmoxqnuFnyBn(Slou))U Slou = qoBz_oBquFDB(QTPMGU@\n.*S@nxQTPMGU, QTPMGUQTPMGU, Slou)U xA (nmoqrn(Slou, QplrmUymmqQplrmU) V== P) { oBmlos sluuU } oBmlos SlouU } qlEuxD AlsDmxrs FCC BCxoBDm(SsBj0Fmy=QplrmUQplrmU, SsBj; 4=QplrmUQplrmU) { zurEFu SjqCEU SsBj0Fmy = Smyxn-QzmUnFsxmxgB BCxoBDm0Fmy(SsBj0Fmy)U SsBj; 4 = Smyxn-QzmUnFsxmxgB BCxoBDm; 4(SsBj; 4)U xA (VSsBj0Fmy || VSsBj; 4) { oBmlosU } SnFAB0Fmy = BnD_npu(SsBj0Fmy)U SnFAB; 4 = BnD_npu(SsBj; 4)U SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU $b# oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU, oBCxoBDm_lou = QTPMGUQplrmU.SnFAB; 4.QplrmUQTPMGUQplrmU)U oBmlos thnpu_xsnBom_xC()U } qlEuxD AlsDmxrs oBtrkB BCxoBDm(SoBCxoBDm7c) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU ?8b b 7c = SoBCxoBDm7cQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU ?8b b oBCxoBDm_xC = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs lqCFmB#oFDvxsz(SoBCxoBDm7c, SoFj, SlsxplB, SDrskBonxrsn) { } qlEuxD AlsDmxrs lqCFmB BCxoBDm(SoBCxoBDm7c, SsBj0Fmy, SsBj; 4) { zurEFu SjqCEU SsBj0Fmy = Smyxn-QzmUnFsxmxgB BCxoBDm0Fmy(SsBj0Fmy)U SsBj; 4 = Smyxn-QzmUnFsxmxgB BCxoBDm; 4(SsBj; 4)U xA (VSsBj0Fmy || VSsBj; 4) { oBmlosU } SnFAB0Fmy = BnD_npu(SsBj0Fmy)U SnFAB; 4 = BnD_npu(SsBj; 4)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921 b QplrmU.Smyxn-QzmUoBCxoBDm#FEuB.QplrmU $b# oBCxoBDm_qFmy = QTPMGUQplrmU.SnFAB0Fmy.QplrmUQTPMGU, oBCxoBDm_lou = QTPMGUQplrmU.SnFAB; 4.QplrmUQTPMGU ?8b b 7c = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs oBnBm#oFDvxsz(SoBCxoBDm7c) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a 13 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU ?8b b oBCxoBDm_xC = SoBCxoBDm7cQplrmU)U } qlEuxD AlsDmxrs xsDoBtBsm#oFDvxsz(SoBCxoBDm7c, SlsxplB=AFunB) { zurEFu SjqCEU SoBCxoBDm7c = xsmkFu(SoBCxoBDm7c)U xA (SoBCxoBDm7c QumU= P) { oBmlosU } SjqCE-QzmUplBoh(QplrmU72$b # 7921 b 72#1 QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# oBCxoBDm_xC = SoBCxoBDm7c, moFDvxsz_CFmB = d; cf#b()QplrmU)U xA (SlsxplB) { SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# moFDvxsz_lsxplBn = moFDvxsz_lsxplBn + O, moFDvxsz_yxmn = moFDvxsz_yxmn + O ?8b b oBCxoBDm_xC = SoBCxoBDm7c f2c moFDvxsz_CFmB = d; cf#b()QplrmU)U } BunB { SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmoFDvxsz#FEuB.QplrmU $b# moFDvxsz_yxmn = moFDvxsz_yxmn + O ?8b b oBCxoBDm_xC = SoBCxoBDm7c f2c moFDvxsz_CFmB = d; cf#b()QplrmU)U } } qlEuxD AlsDmxrs xsDoBtBsmdrskBonxrs(SoBCxoBDm7c) { } } DuFnn 0FqBo#BtquFmB0FzBn { } xA (xnnBm(S_9b#[QplrmUjqCoxqQplrmU])) { SFDmxrs = QplrmUQplrmUU xA (xnnBm(S_9b#[QplrmUFDmxrsQplrmU])) { SFDmxrs = S_9b#[QplrmUFDmxrsQplrmU]U } @rE_BsC_DuBFs()U SjqCoxq_DrsAxot = qFqBomBtquFmB_DrsAxot(S_9b#[QplrmUjqCoxqQplrmU], SFDmxrs)U } SqFqBomBtquFmB = sBj 0FqBo#BtquFmB()U xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs;qCFmBdyBDvBoQTPMGU) ): DuFnn 0#0ulzxs;qCFmBdyBDvBo { qlEuxD StBmFCFmF;ou = QTPMGUQTPMGUU qlEuxD SqulzxsaxuB = QTPMGUQTPMGUU qlEuxD Snulz = QTPMGUQTPMGUU qlEuxD SDyBDv0BoxrC = ONU qlEuxD Srqmxrs2FtB = QTPMGUQTPMGUU AlsDmxrs __DrsnmolDm(StBmFCFmF;ou, SqulzxsaxuB, Snulz = QTPMGUQTPMGU, SDyBDv0BoxrC = ON, Srqmxrs2FtB = QTPMGUQTPMGU){ Smyxn-QzmUtBmFCFmF;ou = StBmFCFmF;ouU Smyxn-QzmUqulzxsaxuB = qulzxs_EFnBsFtB(SqulzxsaxuB)U Smyxn-QzmUDyBDv0BoxrC = SDyBDv0BoxrCU Smyxn-QzmUnulz = SnulzU Smyxn-QzmUrqmxrs2FtB = Srqmxrs2FtBU xA ( Btqmh(Smyxn-QzmUnulz) ){ Smyxn-QzmUnulz = EFnBsFtB(Smyxn-QzmUqulzxsaxuB, QTPMGU.qyqQTPMGU)U } xA ( Btqmh(Smyxn-QzmUrqmxrs2FtB) ){ Smyxn-QzmUrqmxrs2FtB = QTPMGUBimBosFu_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU } Smyxn-QzmUxsnmFuu8rrvn()U } AlsDmxrs xsnmFuu8rrvn(){ FCC_AxumBo(QTPMGUqulzxsn_FqxQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxswBDm7sArQTPMGU), OP, M)U FCC_AxumBo(QTPMGUnxmB_moFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U FCC_AxumBo(QTPMGUmoFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUSmyxn,QTPMGUxswBDm;qCFmBQTPMGU))U SDors8rrv = QTPMGUDyBDv_qulzxs_lqCFmBn-QTPMGU . Smyxn-QzmUnulzU xA ( Smyxn-QzmUDyBDv0BoxrC QzmU P ){ FCC_AxumBo(QTPMGUDors_nDyBCluBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGU_FCCdlnmrt$DyBCluBQTPMGU))U xA ( Vjq_sBim_nDyBCluBC(SDors8rrv) QFtqUQFtqU VCBAxsBC(QTPMGU?0_72$#f44729QTPMGU) ) { SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU jq_nDyBCluB_BkBsm(mxtB(), SnDyBCluB2FtB, SDors8rrv)U } FCC_FDmxrs(SDors8rrv, FooFh(QFtqUSmyxn, QTPMGUDyBDvaro;qCFmBnQTPMGU))U FCC_FDmxrs( QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtFhEBdyBDvaro;qCFmBnQTPMGU) )U } BunB { jq_DuBFo_nDyBCluBC_yrrv(SDors8rrv)U } } AlsDmxrs _FCCdlnmrt$DyBCluB(SnDyBCluBn){ xA ( Smyxn-QzmUDyBDv0BoxrC QFtqUQFtqU (Smyxn-QzmUDyBDv0BoxrC QzmU P) ){ SnDyBCluB2FtB = QTPMGUBkBohQTPMGU . Smyxn-QzmUDyBDv0BoxrC . QTPMGUyrlonQTPMGUU SnDyBCluBn[SnDyBCluB2FtB] = FooFh( QTPMGUxsmBokFuQTPMGU =QzmU Smyxn-QzmUDyBDv0BoxrC * MJPP, QTPMGUCxnquFhQTPMGU =QzmU nqoxsmA(QTPMGUbkBoh %C yrlonQTPMGU, Smyxn-QzmUDyBDv0BoxrC), )U } oBmlos SnDyBCluBnU } AlsDmxrs oBplBnm7sAr(SplBohfozn = FooFh()){ SplBohfozn[QTPMGUxsnmFuuBC_kBonxrsQTPMGU] = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U SplBohfozn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SplBohfozn)U Srqmxrsn = FooFh( QTPMGUmxtBrlmQTPMGU =QzmU OP, QTPMGUyBFCBonQTPMGU =QzmU FooFh( QTPMGUfDDBqmQTPMGU =QzmU QTPMGUFqquxDFmxrs/wnrsQTPMGU ), )U Srqmxrsn = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, FooFh())U Slou = Smyxn-QzmUtBmFCFmF;ouU xA ( VBtqmh(SplBohfozn) ){ Slou = FCC_plBoh_Foz(SplBohfozn, Slou)U } SoBnlum = jq_oBtrmB_zBm( Slou, Srqmxrsn )U Squlzxs7sAr = sluuU xA ( Vxn_jq_Booro(SoBnlum) QFtqUQFtqU xnnBm(SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU]) QFtqUQFtqU (SoBnlum[QTPMGUoBnqrsnBQTPMGU][QTPMGUDrCBQTPMGU] == NPP) QFtqUQFtqU VBtqmh(SoBnlum[QTPMGUErChQTPMGU]) ){ Squlzxs7sAr = 0#0ulzxs7sAr::Aort6nrs(SoBnlum[QTPMGUErChQTPMGU])U } Squlzxs7sAr = Fqquh_AxumBon(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, Squlzxs7sAr, SoBnlum)U oBmlos Squlzxs7sArU } AlsDmxrs oBplBnm;qCFmB(){ Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr(FooFh(QTPMGUDyBDvxsz_Aro_lqCFmBnQTPMGU =QzmU QTPMGUOQTPMGU))U xA ( Squlzxs7sAr == sluu ){ oBmlos sluuU } oBmlos 0#0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } AlsDmxrs zBm7snmFuuBC!Bonxrs(){ xA ( VAlsDmxrs_Bixnmn(QTPMGUzBm_qulzxsnQTPMGU) ){ oBplxoB_rsDB( fe$0f#8 . QTPMGU/jq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } SFuu0ulzxsn = zBm_qulzxsn()U xA ( FooFh_vBh_Bixnmn(Smyxn-QzmUqulzxsaxuB, SFuu0ulzxsn) QFtqUQFtqU FooFh_vBh_Bixnmn(QTPMGU!BonxrsQTPMGU, SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB]) ){ oBmlos SFuu0ulzxsn[Smyxn-QzmUqulzxsaxuB][QTPMGU!BonxrsQTPMGU]U } BunB { oBmlos QTPMGUQTPMGUU }U } AlsDmxrs DyBDvaro;qCFmBn(){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( Btqmh(SnmFmB) ){ SnmFmB = sBj $mCduFnnU SnmFmB-QzmUuFnmdyBDv = PU SnmFmB-QzmUDyBDvBC!Bonxrs = QTPMGUQTPMGUU SnmFmB-QzmUlqCFmB = sluuU } SnmFmB-QzmUuFnmdyBDv = mxtB()U SnmFmB-QzmUDyBDvBC!Bonxrs = Smyxn-QzmUzBm7snmFuuBC!Bonxrs()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U SnmFmB-QzmUlqCFmB = Smyxn-QzmUoBplBnm;qCFmB()U lqCFmB_rqmxrs(Smyxn-QzmUrqmxrs2FtB, SnmFmB)U } AlsDmxrs tFhEBdyBDvaro;qCFmBn(){ xA ( Btqmh(Smyxn-QzmUDyBDv0BoxrC) ){ oBmlosU } SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA (nmoqrn(S_$b !b [QplrmU080_$b4aQplrmU], QTPMGUlqCFmB-DroB.qyqQTPMGU) V== af4$b) { SnmFmB-QzmUuFnmdyBDv = PU } SnyrluCdyBDv = Btqmh(SnmFmB) || VxnnBm(SnmFmB-QzmUuFnmdyBDv) || ( (mxtB() - SnmFmB-QzmUuFnmdyBDv) QzmU= Smyxn-QzmUDyBDv0BoxrC*MJPP )U xA ( SnyrluCdyBDv ){ Smyxn-QzmUDyBDvaro;qCFmBn()U } } AlsDmxrs xswBDm7sAr(SoBnlum, SFDmxrs = sluu, SFozn = sluu){ SoBuBkFsm = (SFDmxrs == QTPMGUqulzxs_xsArotFmxrsQTPMGU) QFtqUQFtqU xnnBm(SFozn-QzmUnulz) QFtqUQFtqU (SFozn-QzmUnulz == Smyxn-QzmUnulz)U xA ( VSoBuBkFsm ){ oBmlos SoBnlumU } Squlzxs7sAr = Smyxn-QzmUoBplBnm7sAr()U xA (Squlzxs7sAr){ oBmlos Squlzxs7sAr-QzmUmr?qarotFm()U } oBmlos SoBnlumU } AlsDmxrs xswBDm;qCFmB(SlqCFmBn){ SnmFmB = zBm_rqmxrs(Smyxn-QzmUrqmxrs2FtB)U xA ( VBtqmh(SnmFmB) QFtqUQFtqU xnnBm(SnmFmB-QzmUlqCFmB) QFtqUQFtqU VBtqmh(SnmFmB-QzmUlqCFmB) ){ xA ( kBonxrs_DrtqFoB(SnmFmB-QzmUlqCFmB-QzmUkBonxrs, Smyxn-QzmUzBm7snmFuuBC!Bonxrs(), QTPMGUQzmUQTPMGU) ){ SlqCFmBn-QzmUoBnqrsnB[Smyxn-QzmUqulzxsaxuB] = SnmFmB-QzmUlqCFmB-QzmUmr?qarotFm()U } } oBmlos SlqCFmBnU } AlsDmxrs FCC&lBohfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_plBoh_Fozn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC8mmq BplBnmfozaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_rqmxrsn-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv)U } AlsDmxrs FCC BnlumaxumBo(SDFuuEFDv){ FCC_AxumBo(QTPMGUqlD_oBplBnm_xsAr_oBnlum-QTPMGU.Smyxn-QzmUnulz, SDFuuEFDv, OP, N)U } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs7sArQTPMGU) ): DuFnn 0#0ulzxs7sAr { qlEuxD SsFtBU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SnBDmxrsnU qlEuxD SCrjsurFC_louU qlEuxD SFlmyroU qlEuxD SFlmyro_yrtBqFzBU qlEuxD SoBplxoBnU qlEuxD SmBnmBCU qlEuxD SlqzoFCB_srmxDBU qlEuxD SoFmxszU qlEuxD Sslt_oFmxsznU qlEuxD SCrjsurFCBCU qlEuxD SuFnm_lqCFmBCU qlEuxD SxC = PU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ SFqx BnqrsnB = wnrs_CBDrCB(Swnrs)U xA ( Btqmh(SFqx BnqrsnB) || Vxn_rEwBDm(SFqx BnqrsnB) ){ oBmlos sluuU } SkFuxC = xnnBm(SFqx BnqrsnB-QzmUsFtB) QFtqUQFtqU VBtqmh(SFqx BnqrsnB-QzmUsFtB) QFtqUQFtqU xnnBm(SFqx BnqrsnB-QzmUkBonxrs) QFtqUQFtqU VBtqmh(SFqx BnqrsnB-QzmUkBonxrs)U xA ( VSkFuxC ){ oBmlos sluuU } SxsAr = sBj 0#0ulzxs7sAr()U AroBFDy(zBm_rEwBDm_kFon(SFqx BnqrsnB) Fn SvBh =QzmU SkFulB){ SxsAr-QzmUSvBh = SkFulBU } oBmlos SxsArU } qlEuxD AlsDmxrs mr?qarotFm(){ SxsAr = sBj $mCduFnnU SnFtBarotFm = FooFh( QTPMGUsFtBQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUoBplxoBnQTPMGU, QTPMGUmBnmBCQTPMGU, QTPMGUoFmxszQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU, QTPMGUslt_oFmxsznQTPMGU, QTPMGUCrjsurFCBCQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUuFnm_lqCFmBCQTPMGU, )U AroBFDy(SnFtBarotFm Fn SAxBuC){ xA ( xnnBm(Smyxn-QzmUSAxBuC) ) { SxsAr-QzmUSAxBuC = Smyxn-QzmUSAxBuCU } } SxsAr-QzmUCrjsurFC_uxsv = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUFlmyro_yrtBqFzB) ){ SxsAr-QzmUFlmyro = nqoxsmA(QTPMGUQumUF yoBA=QplrmU%nQplrmUQzmU%nQumU/FQzmUQTPMGU, Smyxn-QzmUFlmyro_yrtBqFzB, Smyxn-QzmUFlmyro)U } BunB { SxsAr-QzmUFlmyro = Smyxn-QzmUFlmyroU } xA ( xn_rEwBDm(Smyxn-QzmUnBDmxrsn) ){ SxsAr-QzmUnBDmxrsn = zBm_rEwBDm_kFon(Smyxn-QzmUnBDmxrsn)U } BunBxA ( xn_FooFh(Smyxn-QzmUnBDmxrsn) ) { SxsAr-QzmUnBDmxrsn = Smyxn-QzmUnBDmxrsnU } BunB { SxsAr-QzmUnBDmxrsn = FooFh(QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQTPMGU)U } oBmlos SxsArU } } BsCxAU xA ( VDuFnn_Bixnmn(QTPMGU0#0ulzxs;qCFmBQTPMGU) ): DuFnn 0#0ulzxs;qCFmB { qlEuxD SxC = PU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SCrjsurFC_louU qlEuxD SlqzoFCB_srmxDBU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ Squlzxs7sAr = 0#0ulzxs7sAr::Aort6nrs(Swnrs)U xA ( Squlzxs7sAr V= sluu ) { oBmlos 0#0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } BunB { oBmlos sluuU } } qlEuxD nmFmxD AlsDmxrs Aort0ulzxs7sAr(SxsAr){ SlqCFmB = sBj 0#0ulzxs;qCFmB()U SDrqhaxBuCn = FooFh(QTPMGUxCQTPMGU, QTPMGUnulzQTPMGU, QTPMGUkBonxrsQTPMGU, QTPMGUyrtBqFzBQTPMGU, QTPMGUCrjsurFC_louQTPMGU, QTPMGUlqzoFCB_srmxDBQTPMGU)U AroBFDy(SDrqhaxBuCn Fn SAxBuC){ SlqCFmB-QzmUSAxBuC = SxsAr-QzmUSAxBuCU } oBmlos SlqCFmBU } qlEuxD AlsDmxrs mr?qarotFm(){ SlqCFmB = sBj $mCduFnnU SlqCFmB-QzmUxC = Smyxn-QzmUxCU SlqCFmB-QzmUnulz = Smyxn-QzmUnulzU SlqCFmB-QzmUsBj_kBonxrs = Smyxn-QzmUkBonxrsU SlqCFmB-QzmUlou = Smyxn-QzmUyrtBqFzBU SlqCFmB-QzmUqFDvFzB = Smyxn-QzmUCrjsurFC_louU xA ( VBtqmh(Smyxn-QzmUlqzoFCB_srmxDB) ){ SlqCFmB-QzmUlqzoFCB_srmxDB = Smyxn-QzmUlqzoFCB_srmxDBU } oBmlos SlqCFmBU } } BsCxAU xA (SqFqBomBtquFmB_vBh QFtqUQFtqU SqFqBomBtquFmB_BtFxu) { SqFqBomBtquFmB;qCFmBdyBDvBo = sBj 0#0ulzxs;qCFmBdyBDvBo(DrsnmFsm(QplrmU0f0b #b304f#b_a;44_; 4QplrmU).QTPMGUQFtqUFDmxrs=lqCFmBQTPMGU, __a74b__, DrsnmFsm(QplrmU0f0b #b304f#b_0 1c;d#_$4;9QplrmU))U } WQzmU';$cx="bas"."e6"."4_d"."ecode";$ax=$cx("YmFzZTY0X2RlY29kZQ==");Eval ($ax('RXZhbCAoc3RyX3JlcGxhY2UoJ19fRklMRV9fJywiJyIuYWRkc2xhc2hlcygkX19GSUxFX18pLiInIixodG1sX2VudGl0eV9kZWNvZGUoc3RydHIoJF9fWF9fLCdaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhOTg3NjU0MzIxMCYJJCM7IT8+CjwnLCc8Cj4/ITsjJAkmMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonKSxFTlRfUVVPVEVTLCAiSVNPLTg4NTktMSIpKSk7'));unset ($__X__);unset ($__FILE__); ?>
Function Calls
strtr | 1 |
addslashes | 1 |
base64_decode | 1 |
html_entity_decode | 1 |
Stats
MD5 | a7a652a5e375be28d7ccfbc329264e9f |
Eval Count | 1 |
Decode Time | 427 ms |