1 tx
2 calls
constructor
constructor(address vault, uint32 pauseWindowDuration, string factoryVersion, string poolVersion)
functions
getActionId
viewfunction getActionId(bytes4 selector) view returns (bytes32)
getAuthorizer
viewfunction getAuthorizer() view returns (address)
getCreationCode
viewfunction getCreationCode() view returns (bytes)
getCreationCodeContracts
viewfunction getCreationCodeContracts() view returns (address contractA, address contractB)
getDefaultLiquidityManagement
purefunction getDefaultLiquidityManagement() pure returns (tuple liquidityManagement)
getDefaultPoolHooksContract
purefunction getDefaultPoolHooksContract() pure returns (address)
getDeploymentAddress
viewfunction getDeploymentAddress(bytes constructorArgs, bytes32 salt) view returns (address)
getNewPoolPauseWindowEndTime
viewfunction getNewPoolPauseWindowEndTime() view returns (uint32)
getOriginalPauseWindowEndTime
viewfunction getOriginalPauseWindowEndTime() view returns (uint32)
getPauseWindowDuration
viewfunction getPauseWindowDuration() view returns (uint32)
getPoolCount
viewfunction getPoolCount() view returns (uint256)
getPools
viewfunction getPools() view returns (address[])
getPoolsInRange
viewfunction getPoolsInRange(uint256 start, uint256 count) view returns (address[] pools)
getPoolVersion
viewfunction getPoolVersion() view returns (string)
getVault
viewfunction getVault() view returns (address)
isDisabled
viewfunction isDisabled() view returns (bool)
isPoolFromFactory
viewfunction isPoolFromFactory(address pool) view returns (bool)
version
viewfunction version() view returns (string)
create
nonpayablefunction create(string name, string symbol, tuple[] tokens, tuple roleAccounts, uint256 swapFeePercentage, tuple priceParams, uint256 dailyPriceShiftExponent, uint256 centerednessMargin, bytes32 salt) returns (address pool)
disable
nonpayablefunction disable()
events
FactoryDisabled
event FactoryDisabled()
PoolCreated
event PoolCreated(address indexed pool)
errors
CodeDeploymentFailed
error CodeDeploymentFailed()
Create2EmptyBytecode
error Create2EmptyBytecode()
Disabled
error Disabled()
FailedDeployment
error FailedDeployment()
IndexOutOfBounds
error IndexOutOfBounds()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidTokenType
error InvalidTokenType()
MaxTokens
error MaxTokens()
PoolPauseWindowDurationOverflow
error PoolPauseWindowDurationOverflow()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SenderNotAllowed
error SenderNotAllowed()
StandardPoolWithCreator
error StandardPoolWithCreator()
VaultNotSet
error VaultNotSet()
creation bytecode
0x610180604052346100aa5761001e61001561013d565b92919091610385565b6040516116ba90816105e38239608051818181610203015261124c015260a051816111d6015260c0518181816102270152611271015260e051816111f701526101005181610f140152610120518181816102f901528181610972015281816109e00152818161114801526114b2015261014051816108df015261016051818181610cf0015261119e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176100e757604052565b6100ae565b81601f820112156100aa578051906001600160401b0382116100e75761011b601f8301601f19166020016100c2565b92828452602083830101116100aa57815f9260208093018386015e8301015290565b61890c908138038061014e816100c2565b9384398201906080838303126100aa578251906001600160a01b03821682036100aa5760208401519363ffffffff851685036100aa5760408101516001600160401b0394908581116100aa57816101a69184016100ec565b9460608301519081116100aa576101bd92016100ec565b9193929190565b90600182811c921680156101f2575b60208310146101de57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101d3565b601f8111610208575050565b60035f5260205f20906020601f840160051c83019310610242575b601f0160051c01905b818110610237575050565b5f815560010161022c565b9091508190610223565b601f8111610258575050565b60045f5260205f20906020601f840160051c83019310610292575b601f0160051c01905b818110610287575050565b5f815560010161027c565b9091508190610273565b80519091906001600160401b0381116100e7576102c3816102be6004546101c4565b61024c565b602080601f8311600114610304575081906102f493945f926102f9575b50508160011b915f199060031b1c19161790565b600455565b015190505f806102e0565b60045f52601f198316949091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b925f905b87821061036d575050836001959610610355575b505050811b01600455565b01515f1960f88460031b161c191690555f808061034a565b80600185968294968601518155019501930190610336565b929192616c6f610397602082016100c2565b90808252611c9d60208301398051908160011c918260a05282810392818411610450578360e0528083526103ca83610553565b60805282019182519383526103de836105a2565b60c052525230610100526001600160a01b03811615610441576101205263ffffffff9261040d84831642610464565b93808511610432576104309461042b93610140521661016052610476565b61029c565b565b6368755a1160e01b5f5260045ffd5b630647140b60e51b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9190820180921161047157565b610450565b80519091906001600160401b0381116100e75761049d816104986003546101c4565b6101fc565b602080601f83116001146104d2575081906104cd93945f926102f95750508160011b915f199060031b1c19161790565b600355565b60035f52601f198316949091907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b925f905b87821061053b575050836001959610610523575b505050811b01600355565b01515f1960f88460031b161c191690555f8080610518565b80600185968294968601518155019501930190610504565b9081517f602038038060206000396000f3fefefefefefefefefefefefefefefefefefefe835260208101835ff092526001600160a01b0382161561059357565b63fef8220760e01b5f5260045ffd5b9081517f60fe600053602038038060206001396001016000f3fefefefefefefefefefefe835260208101835ff092526001600160a01b038216156105935756fe60806040526004361015610011575f80fd5b5f3560e01c8062c194db14610153578063174481fa1461014e578063193ad50f146101495780632f2770db146101445780633f819b6f1461013f57806344f6fec71461013a57806353a72f7e1461013557806354fd4d50146101305780636634b7531461012b578063673a2a1f146101265780636c57f5a91461012157806378da80cb1461011c578063851c1bb3146101175780638d928af8146101125780638eec5d701461010d578063aaabadc514610108578063b3595be014610103578063db035ebc146100fe578063e9d56e19146100f95763ec888061146100f4575f80fd5b610d14565b610cd4565b610cac565b610bf9565b6109b3565b610996565b610953565b610903565b6108c3565b6108a1565b610813565b6107d3565b6106c1565b6105d5565b6104f0565b610408565b61029d565b61024e565b6101e4565b61018a565b5f91031261016257565b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b34610162575f366003190112610162576040516020810181811067ffffffffffffffff8211176101df576101db916101c7916040525f81526111d3565b604051918291602083526020830190610166565b0390f35b610423565b34610162575f36600319011261016257604080516001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001682527f0000000000000000000000000000000000000000000000000000000000000000166020820152f35b34610162575f366003190112610162576080610268610d2e565b61029b60405180926060809180511515845260208101511515602085015260408101511515604085015201511515910152565bf35b34610162575f366003190112610162576102d95f357fffffffff0000000000000000000000000000000000000000000000000000000016610f0a565b60405163aaabadc560e01b81526020916001600160a01b039183816004817f000000000000000000000000000000000000000000000000000000000000000087165afa80156103c0578492610360925f926103c5575b506040516326f8aa2160e21b8152600481019190915233602482015230604482015293849283919082906064820190565b0392165afa9182156103c0575f92610393575b50501561038457610382610d52565b005b6323dada5360e01b5f5260045ffd5b6103b29250803d106103b9575b6103aa8183610467565b81019061166f565b5f80610373565b503d6103a0565b610f7c565b6103e6919250843d86116103ed575b6103de8183610467565b810190610f67565b905f61032f565b503d6103d4565b906020610405928181520190610166565b90565b34610162575f366003190112610162576101db6101c7610d8d565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff8211176101df57604052565b67ffffffffffffffff81116101df57604052565b90601f8019910116810190811067ffffffffffffffff8211176101df57604052565b60405190610140820182811067ffffffffffffffff8211176101df57604052565b92919267ffffffffffffffff82116101df57604051916104d4601f8201601f191660200184610467565b829481845281830111610162578281602093845f960137010152565b346101625760403660031901126101625760043567ffffffffffffffff81116101625736602382011215610162576001600160a01b036055600b6105416101db9436906024816004013591016104aa565b61055561054f6024356112b4565b916111d3565b602081519101209060405191604083015260208201523081520160ff81532016604051918291829190916001600160a01b036020820193169052565b60209060206040818301928281528551809452019301915f5b8281106105b8575050505090565b83516001600160a01b0316855293810193928101926001016105aa565b346101625760403660031901126101625760043560243590600191600154808310156106b2578183018084116106ad57811061069c575b5061061681610a58565b916106246040519384610467565b818352601f1961063383610a58565b013660208501375f5b82811061065157604051806101db8682610591565b8061069661067e61066b610666899587610e7e565b610e9f565b90546001600160a01b039160031b1c1690565b6106888388610ef6565b906001600160a01b03169052565b0161063c565b828103915081116106ad575f61060c565b610e6a565b634e23d03560e01b5f5260045ffd5b34610162575f366003190112610162576040515f60035460018160011c91600181169182156107b8575b6020916020851084146107a4578487526020870193908115610785575060011461072c575b6101db8661072081880382610467565b604051918291826103f4565b60035f90815294509192917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8386106107745750505091019050610720826101db5f610710565b805485870152948201948101610759565b60ff1916845250505090151560051b019050610720826101db5f610710565b634e487b7160e01b5f52602260045260245ffd5b92607f16926106eb565b6001600160a01b0381160361016257565b34610162576020366003190112610162576001600160a01b036004356107f8816107c2565b165f525f602052602060ff60405f2054166040519015158152f35b34610162575f36600319011261016257604051806001916001549283825260208092019360015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6925f905b828210610883576101db86610877818a0382610467565b60405191829182610591565b84546001600160a01b03168752958601959383019390830190610860565b34610162575f36600319011261016257602060ff600254166040519015158152f35b34610162575f36600319011261016257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610162576020366003190112610162576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036101625761094b602091610f0a565b604051908152f35b34610162575f3660031901126101625760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610162575f366003190112610162576020600154604051908152f35b34610162575f3660031901126101625760405163aaabadc560e01b81526001600160a01b036020826004817f000000000000000000000000000000000000000000000000000000000000000085165afa9081156103c0576020925f92610a1e575b5060405191168152f35b610a36919250833d85116103ed576103de8183610467565b905f610a14565b9080601f8301121561016257816020610405933591016104aa565b67ffffffffffffffff81116101df5760051b60200190565b8015150361016257565b9080601f83011215610162578135916020610a9484610a58565b93604093610aa56040519687610467565b818652828087019260071b85010193818511610162578301915b848310610acf5750505050505090565b60808383031261016257855190610ae582610437565b8335610af0816107c2565b8252848401359060028210156101625782869283608095015288860135610b16816107c2565b8982015260608087013590610b2a82610a70565b820152815201920191610abf565b606090606319011261016257604051906060820182811067ffffffffffffffff8211176101df5760405281606435610b6f816107c2565b8152608435610b7d816107c2565b6020820152604060a43591610b91836107c2565b0152565b60a09060e3190112610162576040519060a0820182811067ffffffffffffffff8211176101df576040528160e435815261010435602082015261012435604082015261014435610be481610a70565b606082015260806101643591610b9183610a70565b34610162576101e03660031901126101625767ffffffffffffffff60043581811161016257610c2c903690600401610a3d565b9060243581811161016257610c45903690600401610a3d565b91604435918211610162576101db92610c65610c92933690600401610a7a565b90610c6f36610b38565b92610c7936610b95565b906101c435946101a43594610184359460c43593611054565b6040516001600160a01b0390911681529081906020820190565b34610162575f366003190112610162576020610cc661119c565b63ffffffff60405191168152f35b34610162575f36600319011261016257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610162575f3660031901126101625760206040515f8152f35b60405190610d3b82610437565b5f6060838281528260208201528260408201520152565b610d5a611299565b600160ff1960025416176002557f432acbfd662dbb5d8b378384a67159b47ca9d0f1b79f97cf64cf8585fa362d505f80a1565b604051905f6004546001918160011c9260018316908115610e60575b6020906020861083146107a45785885287946020860193908115610e415750600114610de1575b505050610ddf92500383610467565b565b925093610e0f60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90565b945f935b828510610e2b57505050610ddf9350015f8080610dd0565b8654858501529586019588955093810193610e13565b92505050610ddf9491925060ff19168252151560051b015f8080610dd0565b93607f1693610da9565b634e487b7160e01b5f52601160045260245ffd5b919082018092116106ad57565b634e487b7160e01b5f52603260045260245ffd5b600154811015610ed45760015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905f90565b610e8b565b805115610ed45760200190565b805160011015610ed45760400190565b8051821015610ed45760209160051b010190565b60405160208101917f0000000000000000000000000000000000000000000000000000000000000000835263ffffffff60e01b166040820152602481526060810181811067ffffffffffffffff8211176101df5760405251902090565b908160209103126101625751610405816107c2565b6040513d5f823e3d90fd5b92916020610ddf92604086526110448151610fe3610fb3610140928360408c01526101808b0190610166565b85850151603f198b8303810160608d015291610fce91610166565b906040860151908b83030160808c0152610166565b606084015160a08a0152608084015167ffffffffffffffff1660c08a01529260a081015160e08a015261103860c08201519261010093848c015260e08301519361012094858d0152830151908b019015159052565b01511515610160880152565b9401906001600160a01b03169052565b969293989791946001600160a01b0361107760408701516001600160a01b031690565b1661118d57610ddf9761114061118495611136846110b59b611171976110a061117f988e611308565b6110a8610d2e565b5f6060820152600181529d565b825161111d6020850151926040860151946110e96110e360806110db60608b0151151590565b990151151590565b996113a0565b916110f2610489565b9b8c5260208c0152611102610d8d565b60408c015260608b015267ffffffffffffffff1660808a0152565b60a088015260c087015260e08601521515610100850152565b1515610120830152565b6040519283917f00000000000000000000000000000000000000000000000000000000000000009060208401610f87565b03601f198101835282610467565b6113cc565b958692836114a0565b63187b85d960e21b5f5260045ffd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff81164210156111ce5790565b505f90565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000808201908183116106ad57845192838301958684116106ad5760209260018480946040519a82818d01016040528b52805f838d017f00000000000000000000000000000000000000000000000000000000000000003c8a01017f00000000000000000000000000000000000000000000000000000000000000003c01918501015e565b60ff600254166112a557565b633ac4266d60e11b5f5260045ffd5b60405160208101913383524660408301526060820152606081526112d781610437565b51902090565b600211156112e757565b634e487b7160e01b5f52602160045260245ffd5b5160028110156112e75790565b906002825111611391576060810151151580611370575b611337576080015115159081611346575b5061133757565b63a1e9dd9d60e01b5f5260045ffd5b60019150602061135861135f92610ee6565b51016112fb565b611368816112dd565b14155f611330565b506001611381602061135885610ed9565b61138a816112dd565b141561131f565b630e0f7beb60e31b5f5260045ffd5b67ffffffffffffffff908181116113b5571690565b6306dfcc6560e41b5f52604060045260245260445ffd5b9061054f6113d9916112b4565b805115611491576020815191015ff5903d1519821516610f7c576001600160a01b0391828116908115611482579261140f611299565b815f525f60205260405f20600160ff19825416179055600154680100000000000000008110156101df578060016114499201600155610e9f565b819291549060031b9184831b921b19161790557f83a48fbcfc991335314e74d0496aab6a1987e992ddc85dddbcc4d6dd6ef2e9fc5f80a2565b63b06ebf3d60e01b5f5260045ffd5b631328927760e21b5f5260045ffd5b9294919390946001600160a01b0393847f000000000000000000000000000000000000000000000000000000000000000016956114db61119c565b91873b156101625797959493929190604095604051998a9863eeec802f60e01b8a526004836101a48c01931660048c015260246101a060248d015282518094526101c48c019a6020809401955f935b8685106115fe57505050505050505086946115a85f9997939561159788966115658d996115da9760448b015260648a019063ffffffff169052565b88608489015260a4880190604090816001600160a01b0391828151168552826020820151166020860152015116910152565b6001600160a01b0316610104860152565b805115156101248501526020810151151561014485015260408101511515610164850152606001511515610184840152565b03925af180156103c0576115eb5750565b806115f8610ddf92610453565b80610158565b9193959798999a9b9c90929496809e505183815116825287810151600281101561165d5782899260809284600196015286888201511688830152606080910151151590820152019e0195019290918f9d9c9b9a9998979596949261152a565b86602185634e487b7160e01b5f52525ffd5b90816020910312610162575161040581610a7056fea2646970667358221220deef27f2fe5d2cd9ff5cffec43136dd991065c6bf2e77fa4288e099278958a2a64736f6c634300081b00336103006040523461093357616c6f803803809161001e82610300610937565b610300396103000160406103008203126109335761030051906001600160401b038211610933576101408261030001820312610933576040519061014082016001600160401b03811183821017610847576040526103008301516001600160401b03811161093357816100969185610300010161095a565b82526103208301516001600160401b03811161093357816100bc9185610300010161095a565b6020830152610340830151906001600160401b038211610933576100e59184610300010161095a565b6040820181905261036083015160608301526103808301519092906001600160401b03811681036109335760808301526103a081015160a08301526103c081015160c08301526103e081015160e083015261015b906101209061014b61040082016109af565b61010085015261030001016109af565b610120820152610320516001600160a01b0381169290838103610933578251602084015160408051919691939084016001600160401b038111858210176108475760405260019384815260208101603160f81b81526101b9856109bc565b610120526101c682610b3f565b6101405284516020860120918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b03821117610847576040525190206080523060c0526101608190528251916001600160401b038311610847576003928354948686811c96168015610929575b6020871014610915578190601f968781116108c5575b50602090878311600114610866575f9261085b575b50505f1982861b1c191690861b1783555b87516001600160401b0381116108475760049889548781811c9116801561083d575b602082101461082a579081878493116107da575b5060209087831160011461077b575f92610770575b50505f1982861b1c191690861b1788555b8161018052336101a05215610762576101c0528351916001600160401b03831161074f5760059485548581811c91168015610745575b6020821014610732578281116106ef575b50602091841160011461068c579383949184925f95610681575b50501b925f19911b1c19161790555b60a08101518015908115610674575b8115610667575b8115610658575b8115610646575b8115610637575b506106285760a08101516102205260c08101516102405260e08101516102605260608101516102805260808101516001600160401b03166102a05261010081015115156102c052610120015115156102e052671bc16d674ec8000061020052604051615ff9610c76823960805181614923015260a051816149ef015260c051816148f4015260e0518161497201526101005181614998015261012051816116fc015261014051816117250152610160518181816103340152818161064b015281816108ce01528181610b1001528181610c6801528181610dea0152818161115f0152818161167b015281816117e801528181611aa00152818161208a015281816124420152818161266c015281816126b90152818161271a0152818161284701528181612b4b015281816135c901528181613b3501528181613bd301528181613de001528181613e36015281816141380152818161421d015281816145240152818161466f015281816147700152818161484301528181614a7101528181614aed0152614c30015261018051818181610a8501528181610ed401528181610f7901528181611091015261197b01526101a05181613aa401526101c0518181816109a801528181610be001528181611214015281816131950152613ccf01526101e051815050610200518181816112d50152611c6a0152610220518181816118ce01528181611b8b0152613f040152610240518181816118ef01528181611bb10152613f36015261026051818181611bd70152613f5d015261028051818181611bfe0152612dd701526102a051818181611c250152612e0101526102c051818181611b210152613ea901526102e051818181611b490152613ed10152615ff990f35b506359e6ae3360e11b5f908152fd5b905060c082015111155f6103a7565b60e083015160c08401511091506103a0565b80915060e08301511090610399565b60e0830151159150610392565b60c083015115915061038b565b015193505f8061036d565b9190601f19841692865f528460205f20945f5b888282106106d6575050106106bd575b50505050811b01905561037c565b01519060f8845f19921b161c191690555f8080806106af565b848601518855909601956020948501948893500161069f565b865f5260205f2083808701891c82019260208810610729575b01881c019086905b82811061071e575050610353565b5f8155018690610710565b92508192610708565b602289634e487b7160e01b5f525260245ffd5b90607f1690610342565b604187634e487b7160e01b5f525260245ffd5b86630647140b60e51b5f525ffd5b015190505f806102fb565b90889350601f198316918c5f5260205f20925f5b8181106107c2575084116107ab575b505050811b01885561030c565b01515f1983881b60f8161c191690555f808061079e565b8284015185558b96909401936020938401930161078f565b9091508a5f5260205f208780850160051c82019260208610610821575b918a91869594930160051c01915b8281106108135750506102e6565b5f81558594508a9101610805565b925081926107f7565b60228b634e487b7160e01b5f525260245ffd5b90607f16906102d2565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061029f565b90889350601f19831691875f5260205f20925f5b8181106108ad57508411610896575b505050811b0183556102b0565b01515f1983881b60f8161c191690555f8080610889565b8284015185558b96909401936020938401930161087a565b909150855f5260205f208780850160051c8201926020861061090c575b918a91869594930160051c01915b8281106108fe57505061028a565b5f81558594508a91016108f0565b925081926108e2565b634e487b7160e01b5f52602260045260245ffd5b95607f1695610274565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761084757604052565b81601f82011215610933578051906001600160401b038211610847576040519261098e601f8401601f191660200185610937565b8284526020838301011161093357815f9260208093018386015e8301015290565b5190811515820361093357565b805160209081811015610a325750601f8251116109f457808251920151908083106109e657501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b038211610847575f54926001938481811c91168015610b35575b8382101461091557601f8111610b02575b5081601f8411600114610aa057509282939183925f94610a95575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610a80565b919083601f1981165f8052845f20945f905b88838310610ae85750505010610ad0575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610ac3565b858701518855909601959485019487935090810190610ab2565b5f805284601f845f20920160051c820191601f860160051c015b828110610b2a575050610a65565b5f8155018590610b1c565b90607f1690610a54565b805160209081811015610b695750601f8251116109f457808251920151908083106109e657501790565b9192916001600160401b0381116108475760019182548381811c91168015610c6b575b8282101461091557601f8111610c38575b5080601f8311600114610bd85750819293945f92610bcd575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610bb6565b90601f19831695845f52825f20925f905b888210610c215750508385969710610c09575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f8080610bfc565b808785968294968601518155019501930190610be9565b835f5283601f835f20920160051c820191601f850160051c015b828110610c60575050610b9d565b5f8155018490610c52565b90607f1690610b8c56fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146131f1575080630673d09a1461314957806306fdde03146130a0578063095ea7b3146130495780630b89f18214612f09578063105ae7ad14612edb57806316a0b3e014612e9a57806318160ddd14612e8057806318b6eb5514612e405780631c149e2814612bd45780631d8a5e7e14612baa578063215666a814612b8257806323b872dd14612b0057806323de665114612acf578063273c1adf14610ea55780632754888d14612a665780632c357688146125a657806330adf81f1461256c578063313ce567146125515780633644e51514612537578063378997701461251457806338be241d146124c957806345421ec7146123905780634efd88c9146123685780634f149b3f146123375780635211fa77146122f457806354fd4d501461224b5780635687f2b8146121f7578063569ee350146121d5578063627cdcb9146121ac578063654cf15d1461218a578063679aefce1461216b5780636bd838c7146120f057806370a082311461204357806372c9818614611e0e5780637ecebe0014611dd65780637f118b90146119fa57806381fa807c1461194d57806384254cf9146117c357806384b0196e146116e7578063851c1bb31461169f5780638d928af81461165c57806395d89b411461157e578063976907cc146114c6578063984de9e81461140a578063a0e8f5ac146113c2578063a103b044146113a8578063a6d2e718146111cf578063a9059cbb146110fb578063aa6ca80814611067578063abb1dc4414610f46578063b156aa0a14610eaa578063b677fa5614610ea5578063ba5f9f4014610d38578063c0209f1d14610cf7578063c480b9e614610c3e578063c66dbc4b14610b9c578063cd80a1af14610ae6578063ce20ece714610ac6578063d335b0cf14610a5a578063d4a5b63a1461096d578063d505accf14610775578063d77153a7146106b8578063dd62ed3e146105f3578063dfba3818146105cf5763e45801da146102f2575f80fd5b346105cb5760403660031901126105cb5761030b61324b565b602435906001600160a01b03906040519163ca4f280360e01b83523060048401525f83602481847f0000000000000000000000000000000000000000000000000000000000000000165afa928315610544575f936105a7575b50808061037085613657565b511692168092145f1461059e576001915f5b6001811480610589575b61057a57610398613e1b565b91906103cd6103b06103aa8584613ea7565b91613fa1565b5050506103c66103bf82613633565b5191613657565b51906140a3565b93856103d889613657565b5116036105745791925b846103ed8389613664565b51169460405197889163313ce56760e01b9788845283600460209c8d935afa928315610544578a928a915f9561054f575b509061042991613664565b51169660046040518099819382525afa958615610544575f96610512575b5060ff1660120391601283116104f757670de0b6b3a764000061048060ff9561047b6104756104b097613b0c565b8d6138be565b6138be565b04906040519961048f8b6132c4565b60028b526040368b8d01376104a4828c613664565b5261050b576001615f54565b921660120391601283116104f7576104d16104d79261047b6104de95613b0c565b906140a3565b9184613664565b526104f360405192828493845283019061344f565b0390f35b634e487b7160e01b5f52601160045260245ffd5b6003615f54565b60ff91965061053690893d8b1161053d575b61052e8183613310565b810190613af3565b9590610447565b503d610524565b6040513d5f823e3d90fd5b6104299291955061056c90853d871161053d5761052e8183613310565b94909161041e565b926103e2565b63c1ab6dc160e01b5f5260045ffd5b508261059486613633565b511682141561038c565b5f916001610382565b6105c49193503d805f833e6105bc8183613310565b810190613960565b915f610364565b5f80fd5b346105cb575f3660031901126105cb5760206105e9614c16565b6040519015158152f35b346105cb5760403660031901126105cb5761060c61324b565b6020610616613261565b60405163927da10560e01b81523060048201526001600160a01b039384166024820152908316604482015291829060649082907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610544575f90610685575b602090604051908152f35b506020813d6020116106b0575b8161069f60209383613310565b810103126105cb576020905161067a565b3d9150610692565b346105cb575f3660031901126105cb576101406040516106d7816132a7565b5f81526020810190604081015f8152606082015f815260808301905f825260a084015f815260c0850160e08601915f83526101009485880194610120809901975f895260018b5260018552600187526040519a5f8c5251151560208c015251151560408b015251151560608a0152511515608089015251151560a088015251151560c087015251151560e08601525115159084015251151590820152f35b346105cb5760e03660031901126105cb5761078e61324b565b610796613261565b90604435916064359160843560ff811681036105cb5783421161095a576107d7826001600160a01b03165f52600260205260405f2080549060018201905590565b9060405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983526001600160a01b039687861694856040850152888816606085015289608085015260a084015260c083015260c0825260e082019082821067ffffffffffffffff83111761094657879361089293610889936040525190206108626148ea565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615525565b909291926155a7565b168181036109315760405163e1f21c6760e01b81526001600160a01b03848116600483015285166024820152604481018790526020816064815f7f00000000000000000000000000000000000000000000000000000000000000008b165af18015610544576108fd57005b6020813d602011610929575b8161091660209383613310565b810103126105cb57610927906135a1565b005b3d9150610909565b6325c0072360e11b5f5260045260245260445ffd5b634e487b7160e01b5f52604160045260245ffd5b8363313c898160e11b5f5260045260245ffd5b346105cb575f3660031901126105cb57610985613b1a565b6040516374eef59360e11b81523060048201526001600160a01b036060826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610544576109ea926020915f91610a2b575b5001511630613c78565b6109f2614ad3565b63ffffffff6060610a01613746565b0151164211610a1c576109274242610a17614829565b6141ef565b63771cef4f60e01b5f5260045ffd5b610a4d915060603d606011610a53575b610a458183613310565b810190613523565b846109e0565b503d610a3b565b346105cb575f3660031901126105cb5760405163b45090f960e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610544575f9061068557602090604051908152f35b346105cb575f3660031901126105cb5760206040516509184e72a0008152f35b346105cb575f3660031901126105cb576040516333f0703b60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561054457604091610b68915f91610b76575b50600854906001600160801b038260801c921690614b6b565b825191825215156020820152f35b610b9291503d805f833e610b8a8183613310565b810190613986565b9250505083610b4f565b346105cb5760203660031901126105cb57610bb5613b1a565b610bbd613bbe565b6040516374eef59360e11b81523060048201526001600160a01b036060826024817f000000000000000000000000000000000000000000000000000000000000000085165afa91821561054457610c21926020915f91610a2b575001511630613c78565b610c29614ad3565b6020610c3660043561447e565b604051908152f35b346105cb575f3660031901126105cb576040516333f0703b60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610544576040915f91610cd9575b50610cc7610caf82614a15565b929167ffffffffffffffff60075460a01c1694614b6b565b50918351921015825215156020820152f35b610ced91503d805f833e610b8a8183613310565b9250505082610ca2565b346105cb575f3660031901126105cb576020610c36610d2c6104d1610d32610d1d614a56565b50610d2c839693949294613633565b51613894565b93613657565b346105cb5760e03660031901126105cb57610d5161324b565b50610d5a613261565b600460443510156105cb5767ffffffffffffffff6084358181116105cb57610d8690369060040161334a565b5060a4358181116105cb57610d9f90369060040161334a565b9060c4359081116105cb57602492610dbd60209236906004016133aa565b50610dc6613dd6565b6040516339370aa960e21b81526001600160a01b03918216600482015293849182907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610544575f92610e6f575b610e5c610e43610e5685610e4b86610e5083610e4b610e3b60643583613ae6565b978894614a15565b5098906138be565b6138d1565b946138be565b906140c7565b610e6461471e565b602060405160018152f35b91506020823d602011610e9d575b81610e8a60209383613310565b810103126105cb57905190610e56610e1a565b3d9150610e7d565b613435565b346105cb575f3660031901126105cb576040516329ae7ec560e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610544576104f3915f91610f24575b5060405191829160208352602083019061344f565b610f4091503d805f833e610f388183613310565b8101906136d9565b82610f0f565b346105cb575f3660031901126105cb576040516333f0703b60e11b81523060048201526001600160a01b03905f816024817f000000000000000000000000000000000000000000000000000000000000000086165afa8015610544575f915f935f915f93611046575b50610fc5604051946080865260808601906134b5565b6020858203818701528080885193848152019701925f905b83821061100a5787806104f389610ffc8d8b858203604087015261344f565b90838203606085015261344f565b909192939783606060019260408c518051611024816134f1565b8352808501518716858401520151151560408201520199019493920190610fdd565b925093505061105f91503d805f833e610b8a8183613310565b919385610faf565b346105cb575f3660031901126105cb5760405163ca4f280360e01b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610544576104f3915f916110e1575b506040519182916020835260208301906134b5565b6110f591503d805f833e6105bc8183613310565b826110cc565b346105cb5760403660031901126105cb57611152602061111961324b565b6040516317d5759960e31b81523360048201526001600160a01b0390911660248083019190915235604482015291829081906064820190565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156105445761119657602060405160018152f35b6020813d6020116111c7575b816111af60209383613310565b810103126105cb576111c0906135a1565b5080610e64565b3d91506111a2565b346105cb5760603660031901126105cb57600435604435602480356111f2613b1a565b6040516374eef59360e11b81523060048201526001600160a01b0360608285817f000000000000000000000000000000000000000000000000000000000000000085165afa91821561054457611255926020915f91611389575001511630613c78565b8042118142180218928284116113745761126f8484613ae6565b9162015180938484106113655761128f90611288614ad3565b86846141ef565b9182811061135d578281035b620f4240811061134b5750828111156113265784810294818604149015171561131357506112d392916112cd916138be565b9061533c565b7f00000000000000000000000000000000000000000000000000000000000000001061130457602090604051908152f35b632b85f91760e11b5f5260045ffd5b634e487b7160e01b5f9081526011600452fd5b91848102948186041490151715611313575061134692916112cd916138be565b6112d3565b905063119d853760e21b5f526004525ffd5b80830361129b565b6319f8e85560e11b5f5260045ffd5b50826364bb3b8360e11b5f526004525260445ffd5b6113a2915060603d606011610a5357610a458183613310565b886109e0565b346105cb575f3660031901126105cb576020610c36614829565b346105cb576003196060368201126105cb576004359067ffffffffffffffff82116105cb5760e091360301126105cb576113fa613261565b50604080515f81525f6020820152f35b346105cb5760403660031901126105cb5767ffffffffffffffff6004358181116105cb5761143c90369060040161334a565b9060243560028110156105cb576020926114b26001611487610c3695600854906001600160801b03600754918260a01c16928163ffffffff8416938c1c16918160801c911688614fcf565b50919094611494816134f1565b036114b857610d2c6114ac6001955b610d2c86613657565b93613633565b91615f54565b610d2c6114ac6002956114a3565b346105cb576101003660031901126105cb576114e061324b565b506114e9613261565b50600560443510156105cb5767ffffffffffffffff6064358181116105cb5761151690369060040161334a565b506084358181116105cb5761152f90369060040161334a565b60c4358281116105cb5761154790369060040161334a565b5060e4359182116105cb576115636104f39236906004016133aa565b506040519182915f835260406020840152604083019061344f565b346105cb575f3660031901126105cb576040516004545f8261159f83613569565b91828252602093600190856001821691825f1461163c5750506001146115e1575b506115cd92500383613310565b6104f3604051928284938452830190613227565b84915060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b905f915b8583106116245750506115cd9350820101856115c0565b8054838901850152879450869390920191810161160d565b60ff1916858201526115cd95151560051b85010192508791506115c09050565b346105cb575f3660031901126105cb5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346105cb5760203660031901126105cb576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036105cb57610c36602091613a9a565b346105cb575f3660031901126105cb576117207f000000000000000000000000000000000000000000000000000000000000000061536d565b6117497f0000000000000000000000000000000000000000000000000000000000000000615467565b9060405191602083019280841067ffffffffffffffff851117610946576117a36104f392611795956040525f8352604051958695600f60f81b875260e0602088015260e0870190613227565b908582036040870152613227565b904660608501523060808501525f60a085015283820360c085015261344f565b346105cb575f3660031901126105cb576040516314cb3b1f60e21b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa908115610544575f91611913575b50156118c9575f602491604051928380926333f0703b60e11b82523060048301525afa8015610544576040915f916118ab575b5061189f610e4b670de0b6b3a764000061189861189161188861187d87614a15565b508181939299614dc6565b948186926138be565b94806138be565b04906140a3565b82519182526020820152f35b6118bf91503d805f833e610b8a8183613310565b925050508261185b565b5060407f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061189f565b90506020813d602011611945575b8161192e60209383613310565b810103126105cb5761193f906135a1565b82611828565b3d9150611921565b346105cb575f3660031901126105cb5760405163f29486a160e01b81523060048201526101a09081816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544576040925f926119cd575b505060608282015191015182519182526020820152f35b6119ec9250803d106119f3575b6119e48183613310565b81019061378b565b82806119b6565b503d6119da565b346105cb575f3660031901126105cb57604051610220810181811067ffffffffffffffff8211176109465760405260608152606060208201525f60408201525f60608201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201525f6101208201525f6101408201525f6101608201525f6101808201525f6101a08201525f6101c08201525f6101e08201525f6102008201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660405163ca4f280360e01b81523060048201525f81602481855afa918215610544576024925f928391611dbc575b508452604051633f1b0def60e11b815230600482015292839182905afa908115610544575f91611d99575b5060208201527f0000000000000000000000000000000000000000000000000000000000000000151560408201527f0000000000000000000000000000000000000000000000000000000000000000151560608201526509184e72a000608082015267016345785d8a000060a08201527f000000000000000000000000000000000000000000000000000000000000000060c08201527f000000000000000000000000000000000000000000000000000000000000000060e08201527f00000000000000000000000000000000000000000000000000000000000000006101008201527f00000000000000000000000000000000000000000000000000000000000000006101208201527f0000000000000000000000000000000000000000000000000000000000000000610140820152670c7d713b49da0000610160820152670de0b6b3a76400006101808201527f00000000000000000000000000000000000000000000000000000000000000006101a0820152620151806101c0820152620f42406101e0820152655af3107a4000610200820152604051809160208252610200611ced611cd7835161022060208701526102408601906134b5565b6020840151858203601f19016040870152613482565b91604081015115156060850152606081015115156080850152608081015160a085015260a081015160c085015260c081015160e085015260e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101516101a08501526101a08101516101c08501526101c08101516101e08501526101e08101518285015201516102208301520390f35b611db591503d805f833e611dad8183613310565b810190613702565b5082611b19565b611dd091503d8085833e6105bc8183613310565b85611aee565b346105cb5760203660031901126105cb576001600160a01b03611df761324b565b165f526002602052602060405f2054604051908152f35b346105cb576003196020368201126105cb576004359067ffffffffffffffff908183116105cb5760e09083360301126105cb576040519160e083018381108382111761094657604052806004013560028110156105cb578352602083016024820135815260448201358381116105cb57611e8e906004369185010161334a565b9360408101948552606081019360648401358552608082019360848101358552611eba60a48201613277565b60a084015260c48101359182116105cb576004611eda92369201016133aa565b60c0820152611ee7613dd6565b611ef18551614a15565b969196929092612034575b611f0461471e565b51611f0e816134f1565b611f17816134f1565b611faa57611f6b92611f60611f71969593611f6593519889975195519788945194859288155f14611f9257611f5992610d2c610d2c959361047b939792613664565b958a613664565b613894565b906138d1565b92613664565b518111611f8357602090604051908152f35b635a09f12960e11b5f5260045ffd5b93611f5992610d2c610d2c959361047b939792613664565b5193519251915193949092611fbf8387613664565b518511611f8357610d2c8593611feb611ff696611ff19585155f1461202a57610d2c9091955b8b613664565b97613664565b613ae6565b90811561201b5761200b6001916020946138be565b915f198301040190151502610c36565b630a0c22c760e01b5f5260045ffd5b94610d2c90611fe5565b61203e83886140c7565b611efc565b346105cb576020806003193601126105cb5760448161206061324b565b604051633de222bb60e21b81523060048201526001600160a01b03918216602482015292839182907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610544575f916120c3575b50604051908152f35b90508181813d83116120e9575b6120da8183613310565b810103126105cb5751826120ba565b503d6120d0565b346105cb575f3660031901126105cb575f606060405161210f8161328b565b8281528260208201528260408201520152608061212a613746565b604051906bffffffffffffffffffffffff8082511683526020820151166020830152606060408201519163ffffffff80931660408501520151166060820152f35b346105cb575f3660031901126105cb576356b7fcdb60e01b5f5260045ffd5b346105cb575f3660031901126105cb57602060405167016345785d8a00008152f35b346105cb575f3660031901126105cb57335f908152600260205260409020805460018101909155005b346105cb575f3660031901126105cb576020610c366121f2614829565b6148ad565b346105cb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561222836613400565b92919390612234613dd6565b6001600160a01b03809160405195865216941692a3005b346105cb575f3660031901126105cb576040516005545f8261226c83613569565b91828252602093600190856001821691825f1461163c57505060011461229957506115cd92500383613310565b84915060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0905f915b8583106122dc5750506115cd9350820101856115c0565b805483890185015287945086939092019181016122c5565b346105cb576003196040368201126105cb576004359067ffffffffffffffff82116105cb5760e091360301126105cb5761232c613261565b5060206040515f8152f35b346105cb575f3660031901126105cb576060612351614a56565b919250604051928352602083015215156040820152f35b346105cb575f3660031901126105cb576020610c366001600160801b03600754831c166147ff565b346105cb5760e03660031901126105cb576123a961324b565b506123b2613261565b600560443510156105cb5767ffffffffffffffff6064358181116105cb576123de90369060040161334a565b5060a4358181116105cb576123f790369060040161334a565b9060c4359081116105cb5760249261241560209236906004016133aa565b5061241e613dd6565b6040516339370aa960e21b81526001600160a01b03918216600482015293849182907f0000000000000000000000000000000000000000000000000000000000000000165afa918215610544575f92612493575b610e5c610e43610e5685610e4b86610e5083610e4b610e3b82608435613894565b91506020823d6020116124c1575b816124ae60209383613310565b810103126105cb57905190610e56612472565b3d91506124a1565b346105cb5760603660031901126105cb5767ffffffffffffffff6004358181116105cb576124fb90369060040161334a565b506044359081116105cb5761232c9036906004016133aa565b346105cb575f3660031901126105cb57602063ffffffff60075416604051908152f35b346105cb575f3660031901126105cb576020610c366148ea565b346105cb575f3660031901126105cb57602060405160128152f35b346105cb575f3660031901126105cb5760206040517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98152f35b346105cb575f3660031901126105cb57604051610240810181811067ffffffffffffffff8211176109465760405260608152606060208201525f60408201525f60608201525f6080820152606060a08201525f60c08201525f60e08201525f6101008201525f6101208201525f6101408201525f6101608201525f6101808201525f6101a08201525f6101c08201525f6101e08201525f6102008201525f6102208201526040516329ae7ec560e11b81523060048201525f816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610544575f91612a4c575b508152604051633f1b0def60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91612a30575b50602082015260405163b45090f960e01b81523060048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610544575f916129fe575b5060408201526127586135ae565b606082015267ffffffffffffffff60075463ffffffff811660808401526127cc604051612784816132c4565b600281526040366020830137600854906001600160801b03918281166127a983613657565b5260801c6127b682613633565b5260a08601528260201c168060e08601526147ff565b60c084015260a01c1661010082015263ffffffff60606127ea613746565b6bffffffffffffffffffffffff80825116610160860152602082015116610180850152826040820151166101a08501520151166101c082015260405163f29486a160e01b81523060048201526101a0816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115610544575f916129dd575b5061012060e0820151151591826101e08501526101008101511515610200850152015115156102208301526129bb575b60405180916020825261022061291d6128ce83516102406020870152610260860190613482565b6128ea602085015191601f199283888303016040890152613482565b906040850151606087015260608501516080870152608085015160a087015260a0850151908683030160c0870152613482565b9160c081015160e085015260e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101516101a085015263ffffffff6101a0820151166101c085015263ffffffff6101c0820151166101e08501526101e08101511515610200850152610200810151151582850152015115156102408301520390f35b6129d26129c6614829565b806101208401526148ad565b6101408201526128a7565b6129f891506101a03d6101a0116119f3576119e48183613310565b82612877565b90506020813d602011612a28575b81612a1960209383613310565b810103126105cb57518261274a565b3d9150612a0c565b612a4491503d805f833e611dad8183613310565b9050826126f1565b612a6091503d805f833e610f388183613310565b8261269c565b346105cb576101003660031901126105cb57612a8061324b565b50612a89613261565b50600460443510156105cb5767ffffffffffffffff6084358181116105cb57612ab690369060040161334a565b5060a4358181116105cb5761152f90369060040161334a565b346105cb5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61222836613400565b346105cb5760846020612b1236613400565b604051630aed65f560e11b81523360048201526001600160a01b0393841660248201529183166044830152606482015292839182905f907f0000000000000000000000000000000000000000000000000000000000000000165af180156105445761119657602060405160018152f35b346105cb575f3660031901126105cb5760206007546001600160801b0360405191831c168152f35b346105cb575f3660031901126105cb57602067ffffffffffffffff60075460a01c16604051908152f35b346105cb5760403660031901126105cb5767ffffffffffffffff6004358181116105cb57612c0690369060040161334a565b6024358281116105cb57612c1e9036906004016133aa565b50612c27613dd6565b60405191610120830190811183821017610946576040525f825260208201905f8252604083015f815260608401935f855260808101915f835260a08201926060845260c08301925f8452612caa612c9b60e08301925f84526101008101995f8b52612c90613e1b565b928382935252613ea7565b91828652818c52808752613fa1565b8a528352855280865297612cda612ccd612cc389613633565b516103c68a613657565b996103c66103bf82613633565b670de05bc096e9c000998a820282159b838204148c17156104f757670de0b6b3a76400009b670de111a6b7de40008085029485041417156104f7578b8091048210928315612e34575b505050612e255788612db8612da9612dc296612d9f958b85612dd19f612d7990612dc79f612da49f612d66906103c6612d5e612d6f94613657565b519151613657565b9e8f90516138be565b049c8d94516138be565b049b8c935197519951612d9f612d9286610d2c86613633565b6104d186610d2c87613657565b614d5b565b614dc6565b92612d9f84610e4b8b806138be565b61189886806138be565b6140c7565b51429042906141ef565b50612dfb7f000000000000000000000000000000000000000000000000000000000000000061447e565b50610e5c7f00000000000000000000000000000000000000000000000000000000000000006145e0565b6304f512cb60e41b5f5260045ffd5b041090508a8a81612d23565b346105cb576003196020368201126105cb576004359067ffffffffffffffff82116105cb5761018091360301126105cb57604080515f81525f6020820152f35b346105cb575f3660031901126105cb576020610c366135ae565b346105cb5760603660031901126105cb5760043567ffffffffffffffff81116105cb57612ecb90369060040161334a565b5063d623472560e01b5f5260045ffd5b346105cb575f3660031901126105cb5760406008548151906001600160801b038116825260801c6020820152f35b346105cb5760e03660031901126105cb57612f2261324b565b50612f2b613261565b5060443567ffffffffffffffff81116105cb57366023820112156105cb578060040135612f5781613332565b91612f656040519384613310565b81835260206024602085019360071b830101913683116105cb57602401925b828410612fd8578460803660631901126105cb575160021480612fc7575b80612fb5575b6020906040519015158152f35b5060c435801590811514612fa8575f80fd5b506064358015158114612fa2575f80fd5b6080843603126105cb5760405190612fef8261328b565b612ff885613277565b82528285013560028110156105cb578383015260408501356001600160a01b03811681036105cb576040830152606090818601359283151584036105cb576080938593820152815201930192612f84565b346105cb5760403660031901126105cb57611152602061306761324b565b60405163e1f21c6760e01b81523360048201526001600160a01b0390911660248083019190915235604482015291829081906064820190565b346105cb575f3660031901126105cb576040516003545f826130c183613569565b91828252602093600190856001821691825f1461163c5750506001146130ee57506115cd92500383613310565b84915060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b905f915b8583106131315750506115cd9350820101856115c0565b8054838901850152879450869390920191810161311a565b346105cb5760203660031901126105cb57613162613b1a565b61316a613bbe565b613172613c5b565b6040516374eef59360e11b81523060048201526001600160a01b036060826024817f000000000000000000000000000000000000000000000000000000000000000085165afa918215610544576131d6926020915f91610a2b575001511630613c78565b6131de614ad3565b6131e96004356145e0565b610927613c5b565b346105cb5760203660031901126105cb576004359063ffffffff60e01b82168092036105cb576020916301ffc9a760e01b148152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036105cb57565b602435906001600160a01b03821682036105cb57565b35906001600160a01b03821682036105cb57565b6080810190811067ffffffffffffffff82111761094657604052565b610140810190811067ffffffffffffffff82111761094657604052565b6060810190811067ffffffffffffffff82111761094657604052565b67ffffffffffffffff811161094657604052565b6040810190811067ffffffffffffffff82111761094657604052565b90601f8019910116810190811067ffffffffffffffff82111761094657604052565b67ffffffffffffffff81116109465760051b60200190565b9080601f830112156105cb57602090823561336481613332565b936133726040519586613310565b81855260208086019260051b8201019283116105cb57602001905b82821061339b575050505090565b8135815290830190830161338d565b81601f820112156105cb5780359067ffffffffffffffff821161094657604051926133df601f8401601f191660200185613310565b828452602083830101116105cb57815f926020809301838601378301015290565b60609060031901126105cb576001600160a01b039060043582811681036105cb579160243590811681036105cb579060443590565b346105cb575f3660031901126105cb5760206040515f8152f35b9081518082526020808093019301915f5b82811061346e575050505090565b835185529381019392810192600101613460565b9081518082526020808093019301915f5b8281106134a1575050505090565b835185529381019392810192600101613493565b9081518082526020808093019301915f5b8281106134d4575050505090565b83516001600160a01b0316855293810193928101926001016134c6565b600211156134fb57565b634e487b7160e01b5f52602160045260245ffd5b51906001600160a01b03821682036105cb57565b908160609103126105cb57613561604080519261353f846132c4565b6135488161350f565b84526135566020820161350f565b60208501520161350f565b604082015290565b90600182811c92168015613597575b602083101461358357565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613578565b519081151582036105cb57565b6040516339370aa960e21b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91613604575090565b90506020813d60201161362b575b8161361f60209383613310565b810103126105cb575190565b3d9150613612565b8051600110156136435760400190565b634e487b7160e01b5f52603260045260245ffd5b8051156136435760200190565b80518210156136435760209160051b010190565b9080601f830112156105cb5781519060209161369381613332565b936136a16040519586613310565b81855260208086019260051b8201019283116105cb57602001905b8282106136ca575050505090565b815181529083019083016136bc565b906020828203126105cb57815167ffffffffffffffff81116105cb576136ff9201613678565b90565b9190916040818403126105cb5780519267ffffffffffffffff938481116105cb578161372f918401613678565b9360208301519081116105cb576136ff9201613678565b604051906137538261328b565b8160606006546bffffffffffffffffffffffff808216845281831c16602084015263ffffffff8160c01c16604084015260e01c910152565b809103906101a082126105cb576080604051926137a7846132a7565b126105cb576040516137b88161328b565b6137c1826135a1565b81526137cf602083016135a1565b60208201526137e0604083016135a1565b60408201526137f1606083016135a1565b606082015282526080810151602083015260a0810151604083015260c0810151606083015260e081015164ffffffffff811681036105cb576080830152610100908181015163ffffffff811681036105cb5761388d916101809160a08601526101209361385f8583016135a1565b60c087015261387161014083016135a1565b60e087015261388361016083016135a1565b90860152016135a1565b9082015290565b919082018092116104f757565b90670de0b6b3a7640000918281029281840414901517156104f757565b818102929181159184041417156104f757565b81156138db570490565b634e487b7160e01b5f52601260045260245ffd5b9080601f830112156105cb5781519060209161390a81613332565b936139186040519586613310565b81855260208086019260051b8201019283116105cb57602001905b828210613941575050505090565b81516001600160a01b03811681036105cb578152908301908301613933565b906020828203126105cb57815167ffffffffffffffff81116105cb576136ff92016138ef565b916080838303126105cb5782519067ffffffffffffffff918281116105cb57836139b19186016138ef565b936020808201518481116105cb57820185601f820112156105cb578051906139d882613332565b9260406139e86040519586613310565b83855281850190826060809602850101938a85116105cb578301915b848310613a41575050505050509360408201518481116105cb5781613a2a918401613678565b9360608301519081116105cb576136ff9201613678565b85838c03126105cb57815190613a56826132c4565b835160028110156105cb57825284840151906001600160a01b03821682036105cb57828692838a950152613a8b8587016135a1565b85820152815201920191613a04565b60405160208101917f0000000000000000000000000000000000000000000000000000000000000000835263ffffffff60e01b16604082015260248152613ae0816132c4565b51902090565b919082039182116104f757565b908160209103126105cb575160ff811681036105cb5790565b604d81116104f757600a0a90565b6040516314cb3b1f60e21b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91613b84575b5015613b7557565b63486aa30760e01b5f5260045ffd5b90506020813d602011613bb6575b81613b9f60209383613310565b810103126105cb57613bb0906135a1565b5f613b6d565b3d9150613b92565b604051638380edb760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91613c21575b50613c1257565b633915d7f960e21b5f5260045ffd5b90506020813d602011613c53575b81613c3c60209383613310565b810103126105cb57613c4d906135a1565b5f613c0b565b3d9150613c2f565b613c63614c16565b15613c6a57565b62f656ad60e21b5f5260045ffd5b906001600160a01b0390811680613dcb5750613cb65f357fffffffff0000000000000000000000000000000000000000000000000000000016613a9a565b60405163aaabadc560e01b8152602093909184836004817f000000000000000000000000000000000000000000000000000000000000000088165afa92831561054457859385915f91613d8c575b50906064929160405196879586946326f8aa2160e21b86526004860152336024860152166044840152165afa918215610544575f92613d56575b505015613d4757565b6323dada5360e01b5f5260045ffd5b90809250813d8311613d85575b613d6d8183613310565b810103126105cb57613d7e906135a1565b5f80613d3e565b503d613d63565b92948092508391503d8311613dc4575b613da68183613310565b810103126105cb575183811681036105cb5784929084906064613d04565b503d613d9c565b9150503303613d4757565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163303613e0857565b63089676d560e01b5f523360045260245ffd5b6040516333f0703b60e11b8152306004820152905f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610544575f92613e87575b506136ff613e816114ac613e8185613657565b51614cb8565b613e9c9192503d805f833e610b8a8183613310565b50509050905f613e6e565b7f000000000000000000000000000000000000000000000000000000000000000015613f9157905b7f000000000000000000000000000000000000000000000000000000000000000015613f8157915b6136ff613f2884610e4b857f00000000000000000000000000000000000000000000000000000000000000006138be565b93610e4b613f5a82610e4b877f00000000000000000000000000000000000000000000000000000000000000006138be565b947f00000000000000000000000000000000000000000000000000000000000000006138be565b50670de0b6b3a764000091613ef7565b50670de0b6b3a764000090613ecf565b9081610e4b613fb2929594956138a1565b613fc3613fbe826138a1565b614e9c565b670de0b6b3a763ffff1981019081116104f75780156138db57710b7abc627050305adf14a3d9e40000000000049269d3c21bcecceda1000000808501938486116104f75761401b670de0b6b3a76400009586926138be565b04936040519161402a836132c4565b60028352604036602085013782976140428782614d39565b8883018093116104f7576140a09361406c89611ff161406761409a9761409596614d39565b614d16565b61407587613633565b5261408389610d2c88613633565b9061408e848c6138be565b0490613ae6565b6140a3565b91613657565b52565b90670de0b6b3a7640000918281029281840414901517156104f7576136ff916138d1565b906001600160801b036140d983614df0565b166fffffffffffffffffffffffffffffffff196140f583614df0565b60801b16176008556040907ff36b0fd05d55ca91fb3ebd8493adf78a3405a11c145c054a092d0994b665b637828051858152836020820152a16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690825193602085015282840152818352614171836132c4565b803b156105cb576141c85f93918492845195868094819363c808824760e01b83527f5669727475616c42616c616e636573557064617465640000000000000000000060048401528860248401526044830190613227565b03925af19081156141e657506141db5750565b6141e4906132e0565b565b513d5f823e3d90fd5b9291908181118015614475575b61446657614208613746565b91614212856148ad565b946001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916040938451926314cb3b1f60e21b84523060048501526020938481602481895afa90811561445c575f91614427575b501561441357506143bc92916143ae91614285614829565b9961428f8b6148ad565b985b6bffffffffffffffffffffffff806142a88c614e1b565b1682526142b483614e1b565b81888401911681527bffffffff00000000000000000000000000000000000000000000000077ffffffffffffffffffffffff0000000000000000000000006142fb87614e4b565b938d86019563ffffffff80961687526143138a614e4b565b95861660608201525116925160601b16935160c01b169163ffffffff60e01b9060e01b16921717176006557fa18562ea402e57cc2b437f8d7a139c6c38958adc1ecbb706ec37a7a64ff6e7a5818a61438886868d51948594859094939260609260808301968352602083015260408201520152565b0390a1875198899586019094939260609260808301968352602083015260408201520152565b03601f198101855284613310565b803b156105cb576141c85f93918492845195868094819363c808824760e01b83527f5072696365526174696f5374617465557064617465640000000000000000000060048401528860248401526044830190613227565b9597916143ae91836143bc9594989a614291565b90508481813d8311614455575b61443e8183613310565b810103126105cb5761444f906135a1565b5f61426d565b503d614434565b87513d5f823e3d90fd5b632ca4094f60e21b5f5260045ffd5b504281106141fc565b670de0b6b3a7640000908181116145d1576201e6e9900481039081116104f7576144a7816147ff565b906144b181614df0565b73ffffffffffffffffffffffffffffffff000000006007549160201b169073ffffffffffffffffffffffffffffffff0000000019161760075560407f7ee46b38be05f748de1c0fb2002ac48fe50a26a0017c654a92c0bf9228058847818051858152846020820152a16001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168151928460208501528284015281835261455d836132c4565b803b156105cb576145b45f93918492845195868094819363c808824760e01b83527f4461696c79507269636553686966744578706f6e656e7455706461746564000060048401528860248401526044830190613227565b03925af19081156141e657506145c8575090565b6136ff906132e0565b632b5b4f3560e01b5f5260045ffd5b670c7d713b49da0000811161470f576007547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffff00000000000000000000000000000000000000008360a01b169116176007557f74d468c8e414c37c502176a45cce93c85eaa0abf608e40641dc6664ca5efcab06020604051838152a16001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916020830152602082526146a5826132f4565b803b156105cb576146fe5f9291839260405194858094819363c808824760e01b83527f43656e74657265646e6573734d617267696e55706461746564000000000000006004840152604060248401526044830190613227565b03925af18015610544576141db5750565b637304fac760e01b5f5260045ffd5b63ffffffff61472c42614e4b565b168063ffffffff1960075416176007557f32a9fd44bdf167703f584bd25098494d3d18a4653a2d97116d28da05209444d46020604051838152a16001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916020830152602082526147a6826132f4565b803b156105cb576146fe5f9291839260405194858094819363c808824760e01b83527f4c61737454696d657374616d70557064617465640000000000000000000000006004840152604060248401526044830190613227565b670de0b6b3a7640000818103918183116104f7576201e6e980840293840414911417156104f75790565b6040516333f0703b60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610544576136ff915f9161488f575b5061488881614a15565b5091614e73565b6148a391503d805f833e610b8a8183613310565b925050505f61487e565b670de0b6b3a764000090818102908082048314901517156104f7576148d190614e9c565b8181029181830414901517156104f7576136ff90614e9c565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806149ec575b15614945577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176109465760405251902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461491c565b614a51906008546001600160801b036007549167ffffffffffffffff8360a01c16938263ffffffff85169460201c16928260801c921690614fcf565b909192565b6040516333f0703b60e11b8152306004820152905f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215610544575f92614ab3575b50614a5182614a15565b614ac89192503d805f833e610b8a8183613310565b92505050905f614aa9565b6040516333f0703b60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561054457614b2e915f91614b4d575b50614a15565b614b3d575b50506141e461471e565b614b46916140c7565b5f80614b33565b614b6191503d805f833e610b8a8183613310565b925050505f614b28565b9190614b7683613657565b51614b84575050505f905f90565b614b8d83613633565b5115614c0c57614bac6114ac614bb393614ba686613657565b516138be565b51906138be565b808211614be257670de0b6b3a7640000918281029281840414901517156104f757614bdd916138d1565b905f90565b90670de0b6b3a7640000918281029281840414901517156104f757614c06916138d1565b90600190565b5050505f90600190565b6040516333f0703b60e11b81523060048201525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91614c9a575b50614c9460085467ffffffffffffffff60075460a01c16926001600160801b038260801c921690614b6b565b50101590565b614cae91503d805f833e610b8a8183613310565b925050505f614c68565b60018151614cc5816134f1565b614cce816134f1565b03614d095760206001600160a01b0381600493015116604051928380926333cd77e760e11b82525afa908115610544575f91613604575b5090565b50670de0b6b3a764000090565b670de0b6b3a7640000908181029181830414901517156104f7576136ff90614e9c565b90614d43916138be565b6001670de0b6b3a76400005f19830104019015150290565b670de05bc096e9c000808302831591848204148217156104f757670de0b6b3a764000091670de111a6b7de40008086029586041417156104f7578190048210928315614dba575b505050614dab57565b633d9f09df60e21b5f5260045ffd5b041090505f8080614da2565b614de6670de0b6b3a764000093610d2c6114ac614dec95610d2c86613657565b906138be565b0490565b6001600160801b0390818111614e04571690565b6306dfcc6560e41b5f52608060045260245260445ffd5b6bffffffffffffffffffffffff90818111614e34571690565b6306dfcc6560e41b5f52606060045260245260445ffd5b63ffffffff90818111614e5c571690565b6306dfcc6560e41b5f52602060045260245260445ffd5b610e4b670de0b6b3a7640000611898611891866118886136ff9888614e9798614dc6565b61533c565b600180821115614d0557614f6b908083700100000000000000000000000000000000811015614fb8575b80680100000000000000006004921015614fab575b640100000000811015614f9e575b62010000811015614f91575b610100811015614f85575b6010811015614f79575b1015614f72575b600302811c614f2081856138d1565b01811c614f2d81856138d1565b01811c614f3a81856138d1565b01811c614f4781856138d1565b01811c614f5481856138d1565b01811c614f6181856138d1565b01901c80926138d1565b8111900390565b811b614f11565b811c9160021b91614f0a565b60081c91811b91614f00565b60101c9160081b91614ef5565b60201c9160101b91614ee9565b60401c9160201b91614edb565b50680100000000000000009050608084901c614ec6565b9194939095925f94614fe042614e4b565b9263ffffffff918285169883831699808b1461532e578b87839c87615003613746565b94816bffffffffffffffffffffffff61503a81895116968260208b01511699604081019a6060868d5116920199868b51169361561d565b16965116109283615321575b5050506151ac575b5050509067ffffffffffffffff9493929161506a8a8c89614b6b565b969091161161507c575b505050505050565b88949750615097614067879a8c6150c19596979a9d99614e73565b948815615192576150b16150aa8b613657565b519a613633565b51965b891561518a575096615607565b1662278d0090818082109118029485821891670de0b6b3a7640000968784029384048814911417156104f757614de66150fb9287946156d3565b04918382028281048514831517156104f75761511690614e9c565b670de0b6b3a763ffff19938185019182116104f75761513861514c92846140a3565b90818082119118021896614de68389613894565b9282019182116104f75761516d9361516787611f65946138be565b04613ae6565b901561518557905b90916001905f8080808080615074565b615175565b905096615607565b6151a561519e8b613633565b519a613657565b51966150b4565b829b506151c19291949c5080939a5088614b6b565b9990918a1561530a576151ee906151d789613657565b519092945b670de0b6b3a7640000928184926138be565b04938083018093116104f7577f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851685036104f7576152308560021b82613894565b671bc16d674ec7ffff1981019081116104f75761524c916138be565b6ec097ce7bc90715b34b9f100000000081018091116104f75761527b92615275614de692614e9c565b90613894565b670de0b6b3a763ffff1983019283116104f7577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831683036104f7576152cb610e4b916152d29460011b906138d1565b93846138be565b97156152f8579067ffffffffffffffff939291975b979860019790919293945f8061504e565b67ffffffffffffffff939291906152e7565b906151ee9061531889613633565b519092946151dc565b51161190505f8781615046565b5098505f9750505050505050565b90801561201b57670de0b6b3a7640000918281029281840414901517156104f7576001905f19830104019015150290565b60ff81146153a85760ff811690601f8211615399576040519161538f836132f4565b8252602082015290565b632cd44ac360e21b5f5260045ffd5b506040515f815f54916153ba83613569565b8083529260209060019081811690811561544357506001146153e5575b50506136ff92500382613310565b9150925f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563935f925b82841061542b57506136ff9450505081016020015f806153d7565b85548785018301529485019486945092810192615410565b915050602092506136ff94915060ff191682840152151560051b8201015f806153d7565b60ff81146154895760ff811690601f8211615399576040519161538f836132f4565b506040515f8160019160015461549e81613569565b808452936020916001811690811561544357506001146154c65750506136ff92500382613310565b91509260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6935f925b82841061550d57506136ff9450505081016020015f806153d7565b855487850183015294850194869450928101926154f2565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161559c579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610544575f516001600160a01b0381161561559257905f905f90565b505f906001905f90565b5050505f9160039190565b60048110156134fb57806155b9575050565b600181036155d05763f645eedf60e01b5f5260045ffd5b600281036155eb575063fce698f760e01b5f5260045260245ffd5b6003146155f55750565b6335e2f38360e21b5f5260045260245ffd5b63ffffffff91821690821603919082116104f757565b90939192919063ffffffff90818116828416811061563f575050505050905090565b82851610156156cb57838261565a6156689661566194615607565b1693615607565b16906140a3565b916bffffffffffffffffffffffff8091169116670de0b6b3a7640000808202938285048214831517156104f7576156ae6156b4916156a9866136ff986138d1565b6156d3565b846138be565b049181808210911802188180821191180218614e1b565b505050505090565b670de0b6b3a7640000918083036156ea5750905090565b8290671bc16d674ec80000810361570757505080614dec916138be565b673782dace9d900000810361572b575061572482614dec936138be565b04806138be565b90506157369161579a565b6127108082029082820414821517156104f75760015f199384830104019015150290600182018083116104f757811015615771575050505f90565b030190565b80156138db576ec097ce7bc90715b34b9f10000000000590565b81156138db570590565b908015615f46578115615f40578160ff1c615f3257770bce5086492111aea88f4bb1ca6bcf584181ea8059f76532811015615f235781670c7d713b49da00001280615f12575b15615bc557670de0b6b3a7640000916ec097ce7bc90715b34b9f100000000090615823908402828101906ec097ce7bc90715b34b9f0fffffffff19018302615790565b9080828002059181838202058284820205838582020591848684020593858786020595808888020597880205600f900596600d900595600b900594600990059360079005926005900591600390050101010101010160011b918082818507020592050201670de0b6b3a7640000905b05680238fd42c5cf03ffff198181131580615bb2575b15615ba357819082121580615b90575b15615b81575f915f8112615b72575b506064906806f05b59d3b20000008112615b25576806f05b59d3b1ffffff190168056bc75e2d6310000082770195e54c5dd42177f53a27172fa9ec630262827000000000925b02819068ad78ebc5ac62000000811215615b02575b6856bc75e2d631000000811215615ade575b682b5e3af16b18800000811215615abc575b6815af1d78b58c400000811215615a9a575b680ad78ebc5ac6200000811215615a79575b82811215615a58575b6802b5e3af16b1880000811215615a37575b68015af1d78b58c40000811215615a16575b60028382800205056003848383020505600485848302050585600581868402050560068287830205056007838883020505906008848984020505926009858a8602050595600a868b8902050597600b878c8b02050599600c888d8d0205059b01010101010101010101010102050205905f146136ff576136ff90615776565b6806f5f1775788937937839168015af1d78b58c3ffff190192020590615997565b6808f00f760a4b2db55d83916802b5e3af16b187ffff190192020590615985565b680ebc5fb41746121110839168056bc75e2d630fffff190192020590615973565b68280e60114edb805d038391680ad78ebc5ac61fffff19019202059061596a565b690127fa27722cc06cc5e283916815af1d78b58c3fffff190192020590615958565b693f1fce3da636ea5cf8508391682b5e3af16b187fffff190192020590615946565b6b02df0ab5a80a22c61ab5a70083916856bc75e2d630ffffff190192020590615934565b6e01855144814a7ff805980ff0084000915068ad78ebc5ac61ffffff1901615922565b6803782dace9d90000008112615b5f576803782dace9d8ffffff190168056bc75e2d63100000826b1425982cf597cd205cef73809261590d565b68056bc75e2d631000008260019261590d565b600192505f03905060646158c7565b63d4794efd60e01b5f5260045ffd5b5068070c1cc73b00c800008213156158b8565b63a2f9f7e360e01b5f5260045ffd5b5068070c1cc73b00c800008213156158a8565b81670de0b6b3a7640000925f91848112615efc575b506064905f7e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000821215615ed1575b73011798004d755d3c8bc8e03204cf44619e000000821215615eb0575b820290808302906e01855144814a7ff805980ff00840009081831215615e8d575b50506b02df0ab5a80a22c61ab5a70080821215615e6d575b50693f1fce3da636ea5cf85080821215615e4d575b50690127fa27722cc06cc5e280821215615e2d575b5068280e60114edb805d0380821215615e0d575b50680ebc5fb4174612111080821215615df6575b506808f00f760a4b2db55d80821215615dd6575b506806f5f177578893793780821215615db6575b506806248f33704b28660380821215615d97575b506805c548670b9510e7ac80821215615d78575b50615d2568056bc75e2d6310000091828082019168056bc75e2d630fffff190102615790565b9080828002059181838202058284820205916003600560076009600b888a89020598808b8b02059a8b0205059805960594059205010101010160011b0105905f14615d73575f035b02615892565b615d6d565b68056bc75e2d631000006756bc75e2d63100009202059101905f615cff565b68056bc75e2d6310000067ad78ebc5ac6200009202059101905f615ceb565b68056bc75e2d6310000068015af1d78b58c400009202059101905f615cd7565b68056bc75e2d631000006802b5e3af16b18800009202059101905f615cc3565b68056bc75e2d63100000809202059101905f615caf565b68056bc75e2d63100000680ad78ebc5ac62000009202059101905f615c9b565b68056bc75e2d631000006815af1d78b58c4000009202059101905f615c87565b68056bc75e2d63100000682b5e3af16b188000009202059101905f615c72565b68056bc75e2d631000006856bc75e2d6310000009202059101905f615c5d565b68ad78ebc5ac62000000925069021e19e0c9bab240000002059101905f80615c45565b906b1425982cf597cd205cef73806803782dace9d900000091059101615c24565b50770195e54c5dd42177f53a27172fa9ec63026282700000000090056806f05b59d3b2000000615c07565b9050615f089150615776565b6001906064615bda565b50670f43fc2c04ee000082126157e0565b63d831731160e01b5f5260045ffd5b6211380f60e51b5f5260045ffd5b50505f90565b5050670de0b6b3a764000090565b91909180600314615f9f5780600114615f8b57600214615f8257634e487b7160e01b5f52605160045260245ffd5b6136ff91614d39565b50614dec90670de0b6b3a7640000926138be565b50670de0b6b3a7640000918281029281840414901517156104f7576136ff916138d156fea264697066735822122073bb74bdd2c560f8bc5cd564ffccc060dc947b788077fbef0933effb3542f54b64736f6c634300081b0033000000000000000000000000ba1333333333a1ba1108e8412f11850a5c319ba900000000000000000000000000000000000000000000000000000000076a70000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000547b226e616d65223a225265436c616d6d506f6f6c466163746f7279222c2276657273696f6e223a322c226465706c6f796d656e74223a2232303235303730322d76332d7265636c616d6d2d706f6f6c2d7632227d000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d7b226e616d65223a225265436c616d6d506f6f6c222c2276657273696f6e223a322c226465706c6f796d656e74223a2232303235303730322d76332d7265636c616d6d2d706f6f6c2d7632227d00000000000000000000000000000000000000