0 txs
17.2k calls
constructor
constructor((address gmxExchangeRouter, address feeReceiver, address dataStore, address reader, address referralStorage) _config, (address poolLogic, address withdrawalAsset)[] _whitelisteddHedgePools, (address virtualToken, uint256 virtualTokenMultiplier, uint8 oracleLookupType, (address oracleContract, uint32 maxAge) onchainOracle, address pythOracleContract, (bytes32 priceId, uint32 maxAge, uint32 minConfidenceRatio) pythOracleData)[] _virtualTokenOracleSettings, address _slippageAccumulator, address _nftTracker)
functions
dataStore
viewfunction dataStore() view returns (address)
dHedgePoolsWhitelist
viewfunction dHedgePoolsWhitelist(address poolLogic) view returns (tuple)
feeReceiver
viewfunction feeReceiver() view returns (address)
getVirtualTokenOracleSettings
viewfunction getVirtualTokenOracleSettings(address virtualToken) view returns (tuple)
gmxExchangeRouter
viewfunction gmxExchangeRouter() view returns (address)
isTxTrackingGuard
viewfunction isTxTrackingGuard() view returns (bool)
nftTracker
viewfunction nftTracker() view returns (address)
reader
viewfunction reader() view returns (address)
referralStorage
viewfunction referralStorage() view returns (address)
slippageAccumulator
viewfunction slippageAccumulator() view returns (address)
txGuard
viewfunction txGuard(address _poolManagerLogic, address _to, bytes _data) view returns (uint16 txType, bool)
virtualTokenOracleSettings
viewfunction virtualTokenOracleSettings(address) view returns (address virtualToken, uint256 virtualTokenMultiplier, uint8 oracleLookupType, tuple onchainOracle, address pythOracleContract, tuple pythOracleData)
afterDepositExecution
nonpayablefunction afterDepositExecution(bytes32, tuple depositData, tuple eventData)
afterOrderExecution
nonpayablefunction afterOrderExecution(bytes32, tuple orderData, tuple eventData)
afterTxGuard
nonpayablefunction afterTxGuard(address _poolManagerLogic, address _to, bytes _data)
afterWithdrawalExecution
nonpayablefunction afterWithdrawalExecution(bytes32, tuple withdrawalData, tuple eventData)
events
No events.
errors
No errors.
creation bytecode
0x6101606040526000805460ff191660011790553480156200001f57600080fd5b5060405162005562380380620055628339810160408190526200004291620006b9565b84516001600160601b0319606091821b811660809081526020880151831b821660a0526040880151831b821660c05282880151831b821660e052870151821b81166101005282821b8116610140529083901b166101205260005b845181101562000257576000858281518110620000b557fe5b60200260200101519050600081600001516001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620000ff57600080fd5b505afa15801562000114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013a919062000671565b60208301519091506001600160a01b031615801590620001db5750602082015160405163cc435bf360e01b81526001600160a01b0383169163cc435bf391620001879190600401620007e2565b60206040518083038186803b158015620001a057600080fd5b505afa158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db919062000697565b620002035760405162461bcd60e51b8152600401620001fa90620007f6565b60405180910390fd5b5080516001600160a01b039081166000908152600160208181526040909220845181549085166001600160a01b0319918216178255929094015193810180549490931693909116929092179055016200009c565b5060005b8351811015620003ab578381815181106200027257fe5b6020026020010151600260008684815181106200028b57fe5b602090810291909101810151516001600160a01b039081168352828201939093526040918201600020845181546001600160a01b031916941693909317835583015160018084019190915590830151600280840180549293909260ff1916918490811115620002f657fe5b02179055506060820151805160038301805460209384015163ffffffff908116600160a01b0263ffffffff60a01b196001600160a01b039586166001600160a01b031994851617161790925560808601516004860180549190941691161790915560a09093015180516005840155908101516006909201805460409092015184166401000000000263ffffffff60201b199390941663ffffffff1990921691909117919091169190911790556001016200025b565b50505050505062000878565b8051620003c4816200085f565b919050565b600082601f830112620003da578081fd5b81516020620003f3620003ed8362000841565b6200081d565b8281528181019085830160408086028801850189101562000412578687fd5b865b868110156200047e5781838b0312156200042c578788fd5b81518083016001600160401b03811182821017156200044757fe5b8352835162000456816200085f565b81528387015162000467816200085f565b818801528552938501939181019160010162000414565b509198975050505050505050565b600082601f8301126200049d578081fd5b81516020620004b0620003ed8362000841565b8281528181019085830161012080860288018501891015620004d0578687fd5b865b868110156200047e5781838b031215620004ea578788fd5b6040805160c08082016001600160401b03811183821017156200050957fe5b83526200051686620003b7565b825288860151898301526200052d83870162000586565b8383015260609250620005438d848801620005fc565b8383015260a0925062000558838701620003b7565b60808301526200056b8d82880162000596565b928201929092528652509385019391810191600101620004d2565b805160038110620003c457600080fd5b600060608284031215620005a8578081fd5b604051606081016001600160401b0381118282101715620005c557fe5b60405282518152905080620005dd602084016200065c565b6020820152620005f0604084016200065c565b60408201525092915050565b6000604082840312156200060e578081fd5b604080519081016001600160401b03811182821017156200062b57fe5b8060405250809150825162000640816200085f565b815262000650602084016200065c565b60208201525092915050565b805163ffffffff81168114620003c457600080fd5b60006020828403121562000683578081fd5b815162000690816200085f565b9392505050565b600060208284031215620006a9578081fd5b8151801515811462000690578182fd5b6000806000806000858703610120811215620006d3578182fd5b60a0811215620006e1578182fd5b5060405160a081016001600160401b0380821183831017156200070057fe5b816040528851915062000713826200085f565b90825260208801519062000727826200085f565b816020840152604089015191506200073f826200085f565b8160408401526200075360608a01620003b7565b60608401526200076660808a01620003b7565b608084015260a08901519297508083111562000780578384fd5b6200078e8a848b01620003c9565b965060c0890151925080831115620007a4578384fd5b5050620007b4888289016200048c565b935050620007c560e08701620003b7565b9150620007d66101008701620003b7565b90509295509295909350565b6001600160a01b0391909116815260200190565b6020808252600d908201526c1a5b9d985b1a5908185cdcd95d609a1b604082015260600190565b6040518181016001600160401b03811182821017156200083957fe5b604052919050565b60006001600160401b038211156200085557fe5b5060209081020190565b6001600160a01b03811681146200087557600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6101205160601c6101405160601c614c4062000922600039806102e75250806102c352508061020d525080610543528061061152806106a05280610d4d525080610565528061063252806106c15280610a415280610b08525080610587528061065352806106e25280610c755250806102605280610b645280610d295280610ddd5250614c406000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80626cc35e146100d457806329e5be21146100f257806333a518b81461010757806352dac6561461010f5780635464c40e146101175780636179309d14610137578063660d0d67146101585780637bf981191461016057806381b6d912146101755780638d0cec5714610188578063b3f00674146101a8578063b987c167146101b0578063d1018a28146101d5578063d4fc42c6146101dd578063f66c9dd2146101e5578063ffaf393f146101f8575b600080fd5b6100dc61020b565b6040516100e991906144cb565b60405180910390f35b61010561010036600461388f565b61022f565b005b6100dc6102c1565b6100dc6102e5565b61012a6101253660046135b5565b610309565b6040516100e99190614ac3565b61014a61014536600461362d565b610351565b6040516100e9929190614b3d565b6100dc610b06565b610168610b2a565b6040516100e99190614637565b61010561018336600461388f565b610b33565b61019b6101963660046135b5565b610b90565b6040516100e99190614ad1565b6100dc610c73565b6101c36101be3660046135b5565b610c97565b6040516100e9969594939291906145ef565b6100dc610d27565b6100dc610d4b565b6101056101f336600461362d565b610d6f565b61010561020636600461388f565b610dac565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516336defb0960e11b8152739b541168e1859a6780b45e80c4d1cf4b8cbf647b90636dbdf6129061028c9085907f00000000000000000000000000000000000000000000000000000000000000009086903090600401614a79565b60006040518083038186803b1580156102a457600080fd5b505af41580156102b8573d6000803e3d6000fd5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610311611fe3565b506001600160a01b03808216600090815260016020818152604092839020835180850190945280548516845290910154909216918101919091525b919050565b60008060008060008073b6b40a945a9b28660eac6bb82e439b81262739e563f5e086af308b8a6040518463ffffffff1660e01b815260040161039593929190614566565b60006040518083038186803b1580156103ad57600080fd5b505af41580156103c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103e99190810190613908565b929650909450925090506001600160e01b03198416631592ca1b60e31b141561072e5760008380602001905181019061042291906137eb565b9050600081511161044e5760405162461bcd60e51b8152600401610445906146f0565b60405180910390fd5b60008160018351038151811061046057fe5b6020026020010151905073b6b40a945a9b28660eac6bb82e439b81262739e563c3c6279f826040518263ffffffff1660e01b81526004016104a19190614642565b60206040518083038186803b1580156104b957600080fd5b505af41580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f191906138ee565b95506001600160e01b0319861663c82aa41b60e01b14156105ef5760405163b27bd28d60e01b815273b6b40a945a9b28660eac6bb82e439b81262739e59063b27bd28d906105af908e9087908f9088907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000090600401614592565b60006040518083038186803b1580156105c757600080fd5b505af41580156105db573d6000803e3d6000fd5b50606592506105e8915050565b9750610727565b6001600160e01b0319861663e78dc23560e01b141561067e576106778b848c857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610e09565b60656105e8565b6001600160e01b0319861663f59c48eb60e01b1415610727576107068b848c857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611045565b6107225760405162461bcd60e51b8152600401610445906146f0565b606597505b5050610af6565b6001600160e01b0319841663c41b1ab360e01b141561081157600080600085806020019051810190610760919061368c565b92509250925073b6b40a945a9b28660eac6bb82e439b81262739e5630e6c8f40308e85876040518563ffffffff1660e01b81526004016107a3949392919061451d565b60006040518083038186803b1580156107bb57600080fd5b505af41580156107cf573d6000803e3d6000fd5b50505050846001600160a01b0316816001600160a01b0316146108045760405162461bcd60e51b81526004016104459061466f565b60665b9850505050610af6565b6001600160e01b0319841663e9249b5760e01b14156108ef576000806000858060200190518101906108439190613700565b9350509250925073b6b40a945a9b28660eac6bb82e439b81262739e5630e6c8f40308e85876040518563ffffffff1660e01b8152600401610887949392919061451d565b60006040518083038186803b15801561089f57600080fd5b505af41580156108b3573d6000803e3d6000fd5b50505050846001600160a01b0316816001600160a01b0316146108e85760405162461bcd60e51b81526004016104459061466f565b6067610807565b6001600160e01b03198416637489ec2360e01b141561098357604051637317128160e11b815273b6b40a945a9b28660eac6bb82e439b81262739e59063e62e2502906109439030908d908890600401614566565b60006040518083038186803b15801561095b57600080fd5b505af415801561096f573d6000803e3d6000fd5b506068925061097c915050565b9550610af6565b6001600160e01b03198416630c50112160e21b1415610a1057604051638651a63560e01b815273b6b40a945a9b28660eac6bb82e439b81262739e590638651a635906109d79030908d908890600401614566565b60006040518083038186803b1580156109ef57600080fd5b505af4158015610a03573d6000803e3d6000fd5b506069925061097c915050565b6001600160e01b031984166303909e2d60e51b1415610af657606a9550886001600160a01b0316639be918e6610a6e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127a565b6040518263ffffffff1660e01b8152600401610a8a91906144cb565b60206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190613873565b610af65760405162461bcd60e51b815260040161044590614a50565b5060009350505050935093915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005460ff1681565b604051633dd28b1d60e21b8152739b541168e1859a6780b45e80c4d1cf4b8cbf647b9063f74a2c749061028c9085907f00000000000000000000000000000000000000000000000000000000000000009086903090600401614a79565b610b98611ffa565b6001600160a01b03808316600090815260026020818152604092839020835160c0810185528154909516855260018101549185019190915280820154909284019160ff90911690811115610be857fe5b6002811115610bf357fe5b815260408051808201825260038401546001600160a01b03808216835263ffffffff600160a01b909204821660208481019190915280860193909352600486015416838501528251606081810185526005870154825260069096015480831693820193909352600160201b90920416918101919091529101529050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026020818152600092835260409283902080546001820154938201548551808701875260038401546001600160a01b038082168352600160a01b90910463ffffffff9081168388015260048601548951606081018b526005880154815260069097015480831698880198909852600160201b90970416978501979097529186169560ff90911693919291169086565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051637d10bf1960e11b8152735c413b0f4c221c0a2a0622fe41df2f6361abfb299063fa217e329061028c9030908790879087906004016144df565b6040516393af440b60e01b8152739b541168e1859a6780b45e80c4d1cf4b8cbf647b906393af440b9061028c9085907f00000000000000000000000000000000000000000000000000000000000000009086903090600401614a79565b8351600314610e2a5760405162461bcd60e51b8152600401610445906146f0565b6000610e3e836001600160a01b031661127a565b90506000866001600160a01b0316632c2f3c076040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7b57600080fd5b505afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb391906135d8565b6001600160a01b03166369d421486040518163ffffffff1660e01b815260040160206040518083038186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2391906135d8565b90506000610f4487600281518110610f3757fe5b602002602001015161132f565b806020019051810190610f579190613ac8565b9050610f798a88600081518110610f6a57fe5b60200260200101518585611350565b610fa18a88600181518110610f8a57fe5b602002602001015183600001516060015185611350565b6110256040518060c001604052808360000151600001516001600160a01b031681526020018360000151602001516001600160a01b031681526020018360000151608001518152602001836000015160a0015181526020018360600151151581526020018360000151604001516001600160a01b03168152508a60000151866114ae565b6110398a82600001516060015188886115b1565b50505050505050505050565b600061104f61203b565b6000606061105c88611773565b94509250905060006110766001600160a01b03881661127a565b905060008a6001600160a01b031663b58483056040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b357600080fd5b505afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb91906135d8565b6001600160a01b03166393845e466040518163ffffffff1660e01b815260040160206040518083038186803b15801561112357600080fd5b505afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b91906135d8565b905060048560400151600881111561116f57fe5b14156111cc57836002146111955760405162461bcd60e51b8152600401610445906146f0565b6111b58d8b6000815181106111a657fe5b60200260200101518484611350565b6111c38d8d858c8c8c61182f565b6001955061126a565b6002856040015160088111156111de57fe5b14806111f957506000856040015160088111156111f757fe5b145b1561126a578360031461121e5760405162461bcd60e51b8152600401610445906146f0565b61122f8d8b6000815181106111a657fe5b6112578d8b60018151811061124057fe5b6020026020010151876000015160a0015184611350565b6112658d8d858c8c8c61182f565b600195505b5050505050979650505050505050565b6000816001600160a01b03166321f8a7216040516020018080602001828103825260038152602001806215d39560ea1b815250602001915050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156112fd57600080fd5b505afa158015611311573d6000803e3d6000fd5b505050506040513d602081101561132757600080fd5b505192915050565b606061134a60048084510384611b759092919063ffffffff16565b92915050565b631cdacd5960e31b61136184611cc6565b6001600160e01b031916146113885760405162461bcd60e51b8152600401610445906146c1565b6000806113948561132f565b8060200190518101906113a791906135f4565b604051634df48c7360e11b815291935091506001600160a01b03871690639be918e6906113d89085906004016144cb565b60206040518083038186803b1580156113f057600080fd5b505afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114289190613873565b6114445760405162461bcd60e51b8152600401610445906148cd565b836001600160a01b0316826001600160a01b0316146114755760405162461bcd60e51b8152600401610445906148cd565b826001600160a01b0316816001600160a01b0316146114a65760405162461bcd60e51b81526004016104459061466f565b505050505050565b816001600160a01b031683600001516001600160a01b0316146114e35760405162461bcd60e51b8152600401610445906147d1565b60208301516001600160a01b0316301461150f5760405162461bcd60e51b8152600401610445906149eb565b806001600160a01b03168360a001516001600160a01b0316146115445760405162461bcd60e51b81526004016104459061471b565b6080830151156115665760405162461bcd60e51b815260040161044590614864565b604083015151156115895760405162461bcd60e51b815260040161044590614839565b606083015151156115ac5760405162461bcd60e51b815260040161044590614839565b505050565b60405163714af34b60e01b81526000906001600160a01b0384169063714af34b906115e29085908890600401614655565b60806040518083038186803b1580156115fa57600080fd5b505afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116329190613b8e565b6040808201519051634df48c7360e11b81529192506001600160a01b03871691639be918e691611664916004016144cb565b60206040518083038186803b15801561167c57600080fd5b505afa158015611690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b49190613873565b6116d05760405162461bcd60e51b81526004016104459061498c565b6060810151604051634df48c7360e11b81526001600160a01b03871691639be918e69161170091906004016144cb565b60206040518083038186803b15801561171857600080fd5b505afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613873565b61176c5760405162461bcd60e51b81526004016104459061492b565b5050505050565b6060600061177f61203b565b8351915081600314806117925750816002145b6117ae5760405162461bcd60e51b815260040161044590614802565b8360018303815181106117bd57fe5b6020026020010151925060006117d284611cc6565b905060006117df8561132f565b90506001600160e01b0319821663f59c48eb60e01b146118115760405162461bcd60e51b815260040161044590614a1e565b8080602001905181019061182591906139bf565b9496939550505050565b600061183a8561132f565b905060008180602001905181019061185291906139bf565b87518151519192506001600160a01b039182169116146118845760405162461bcd60e51b81526004016104459061466f565b8051602001516001600160a01b0316156118b05760405162461bcd60e51b81526004016104459061495b565b8051604001516001600160a01b031630146118dd5760405162461bcd60e51b8152600401610445906149eb565b826001600160a01b03168160000151606001516001600160a01b0316146119165760405162461bcd60e51b81526004016104459061471b565b805160a00151604051634df48c7360e11b81526001600160a01b038a1691639be918e69161194791906004016144cb565b60206040518083038186803b15801561195f57600080fd5b505afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190613873565b6119b35760405162461bcd60e51b8152600401610445906149bb565b6000816060015160028111156119c557fe5b146119e25760405162461bcd60e51b815260040161044590614749565b60a081015115611a045760405162461bcd60e51b815260040161044590614864565b600081604001516008811115611a1657fe5b1415611a90578051608001516001600160a01b031615611a485760405162461bcd60e51b815260040161044590614699565b611a5a88826000015160c00151611cd3565b611a8b88826000015160c00151600081518110611a7357fe5b6020026020010151836000015160a001518888611da4565b611b6b565b805160800151604051634df48c7360e11b81526001600160a01b038a1691639be918e691611ac191906004016144cb565b60206040518083038186803b158015611ad957600080fd5b505afa158015611aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b119190613873565b611b2d5760405162461bcd60e51b815260040161044590614774565b805160c001515115611b515760405162461bcd60e51b8152600401610445906147a0565b8051608081015160a090910151611b6b918a918888611da4565b5050505050505050565b60608182601f011015611bc0576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b828284011015611c08576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015611c54576040805162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015290519081900360640190fd5b606082158015611c735760405191506000825260208201604052611cbd565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611cac578051835260209283019201611c94565b5050858452601f01601f1916604052505b50949350505050565b600061134a826000611fb4565b8051600114611cf45760405162461bcd60e51b815260040161044590614839565b816001600160a01b0316639be918e682600081518110611d1057fe5b60200260200101516040518263ffffffff1660e01b8152600401611d3491906144cb565b60206040518083038186803b158015611d4c57600080fd5b505afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190613873565b611da05760405162461bcd60e51b815260040161044590614774565b5050565b60405163714af34b60e01b81526000906001600160a01b0384169063714af34b90611dd59085908990600401614655565b60806040518083038186803b158015611ded57600080fd5b505afa158015611e01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e259190613b8e565b6040808201519051634df48c7360e11b81529192506001600160a01b03881691639be918e691611e57916004016144cb565b60206040518083038186803b158015611e6f57600080fd5b505afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190613873565b611ec35760405162461bcd60e51b81526004016104459061498c565b6060810151604051634df48c7360e11b81526001600160a01b03881691639be918e691611ef391906004016144cb565b60206040518083038186803b158015611f0b57600080fd5b505afa158015611f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f439190613873565b611f5f5760405162461bcd60e51b81526004016104459061492b565b80604001516001600160a01b0316846001600160a01b03161480611f98575080606001516001600160a01b0316846001600160a01b0316145b6114a65760405162461bcd60e51b8152600401610445906148f4565b60008160040183511015611fda5760405162461bcd60e51b815260040161044590614898565b50016020015190565b604080518082019091526000808252602082015290565b6040805160c08101825260008082526020820181905290918201908152602001612022611fe3565b815260006020820152604001612036612095565b905290565b60405180610120016040528061204f6120b5565b815260200161205c6120f3565b81526020016000815260200160008152600060208201819052604082018190526060808301829052608083019190915260a09091015290565b604080516060810182526000808252602082018190529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b805161034c81614be4565b600082601f830112612153578081fd5b8151602061216861216383614b76565b614b53565b8281528181019085830183850287018401881015612184578586fd5b855b858110156121ab57815161219981614be4565b84529284019290840190600101612186565b5090979650505050505050565b600082601f8301126121c8578081fd5b815160206121d861216383614b76565b82815281810190858301838502870184018810156121f4578586fd5b855b858110156121ab578151845292840192908401906001016121f6565b600082601f830112612222578081fd5b8135602061223261216383614b76565b82815281810190858301855b858110156121ab5781358801604080601f19838d0301121561225e578889fd5b80518181016001600160401b03828210818311171561227957fe5b90835283890135908082111561228d578b8cfd5b61229b8e8b84880101612a1c565b8352838501359150808211156122af578b8cfd5b508084019350508b603f8401126122c457898afd5b878301356122d461216382614b76565b808282528a820191508486018f868d860289010111156122f2578d8efd5b8d96505b83871015612320578035955061230b86614be4565b85835260019690960195918b01918b016122f6565b50838b0152505086525050928401929084019060010161223e565b600082601f83011261234b578081fd5b8135602061235b61216383614b76565b82815281810190858301855b858110156121ab5781358801604080601f19838d03011215612387578889fd5b80518181016001600160401b0382821081831117156123a257fe5b9083528389013590808211156123b6578b8cfd5b6123c48e8b84880101612a1c565b8352838501359150808211156123d8578b8cfd5b508084019350508b603f8401126123ed57898afd5b878301356123fd61216382614b76565b808282528a820191508486018f868d8602890101111561241b578d8efd5b8d96505b83871015612449578035955061243486614bfc565b85835260019690960195918b01918b0161241f565b50838b01525050865250509284019290840190600101612367565b600082601f830112612474578081fd5b8135602061248461216383614b76565b82815281810190858301855b858110156121ab5781358801604080601f19838d030112156124b0578889fd5b80518181016001600160401b0382821081831117156124cb57fe5b9083528389013590808211156124df578b8cfd5b6124ed8e8b84880101612a1c565b835283850135915080821115612501578b8cfd5b508084019350508b603f84011261251657898afd5b8783013561252661216382614b76565b808282528a820191508486018f868d86028901011115612544578d8efd5b8d96505b83871015612566578035835260019690960195918b01918b01612548565b50838b01525050865250509284019290840190600101612490565b600082601f830112612591578081fd5b60206125a06121638435614b76565b8335815281810190828501845b863581101561269a57813587016040818a03601f190112156125cd578687fd5b604051604081016001600160401b0382821081831117156125ea57fe5b816040528884013591508082111561260057898afd5b61260e8c8a84870101612a1c565b8352604084013591508082111561262357898afd5b5080830192505089603f830112612638578788fd5b8682013561264861216382614b76565b81815288810190604085018b5b8481101561267f5761266d8f604084358a0101612a1c565b8452928b0192908b0190600101612655565b5050838a0152505085525092840192908401906001016125ad565b50909695505050505050565b600082601f8301126126b6578081fd5b813560206126c661216383614b76565b82815281810190858301855b858110156121ab5781358801604080601f19838d030112156126f2578889fd5b80518181016001600160401b03828210818311171561270d57fe5b908352838901359080821115612721578b8cfd5b61272f8e8b84880101612a1c565b835283850135915080821115612743578b8cfd5b508084019350508b603f84011261275857898afd5b8783013561276861216382614b76565b808282528a820191508486018f868d86028901011115612786578d8efd5b8d96505b838710156127a8578035835260019690960195918b01918b0161278a565b50838b015250508652505092840192908401906001016126d2565b600082601f8301126127d3578081fd5b60206127e26121638435614b76565b8335815281810190828501845b863581101561269a57813587016040818a03601f1901121561280f578687fd5b604051604081016001600160401b03828210818311171561282c57fe5b816040528884013591508082111561284257898afd5b6128508c8a84870101612a1c565b8352604084013591508082111561286557898afd5b5080830192505089603f83011261287a578788fd5b8682013561288a61216382614b76565b81815288810190604085018b5b848110156128c1576128af8f604084358a0101612a1c565b8452928b0192908b0190600101612897565b5050838a0152505085525092840192908401906001016127ef565b600082601f8301126128ec578081fd5b813560206128fc61216383614b76565b82815281810190858301855b858110156121ab5781358801604080601f19838d03011215612928578889fd5b80518181016001600160401b03828210818311171561294357fe5b908352838901359080821115612957578b8cfd5b6129658e8b84880101612a1c565b835283850135915080821115612979578b8cfd5b508084019350508b603f84011261298e57898afd5b8783013561299e61216382614b76565b808282528a820191508486018f868d860289010111156129bc578d8efd5b8d96505b838710156129de578035835260019690960195918b01918b016129c0565b50838b01525050865250509284019290840190600101612908565b805161034c81614bfc565b80516001600160e01b03198116811461034c57600080fd5b600082601f830112612a2c578081fd5b8135612a3a61216382614b93565b818152846020838601011115612a4e578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112612a78578081fd5b8151612a8661216382614b93565b818152846020838601011115612a9a578283fd5b612aab826020830160208701614bb4565b949350505050565b80516003811061034c57600080fd5b80516009811061034c57600080fd5b600060408284031215612ae2578081fd5b604051604081016001600160401b038282108183111715612aff57fe5b816040528293508085351115612b1457600080fd5b84358501915085601f830112612b2957600080fd5b81356020612b3961216383614b76565b8281528181019085830160005b85811015612bc957813588016040818e03601f19011215612b6657600080fd5b604051604081018181108a82111715612b7b57fe5b6040528187013589811115612b8f57600080fd5b612b9d8f8983860101612a1c565b82525060408201359150612bb082614be4565b8087019190915284529284019290840190600101612b46565b505086525086810135935082841115612be157600080fd5b612bed88858901612212565b81860152505050505092915050565b60006040808385031215612c0e578182fd5b80518181016001600160401b038282108183111715612c2957fe5b8184528294508086351115612c3d57600080fd5b85358601915086601f830112612c5257600080fd5b8135612c6061216382614b76565b81815260208082019190850160005b84811015612cf1578135870189601f19828f03011215612c8e57600080fd5b89518a81018181108982111715612ca157fe5b8b52602082013588811115612cb557600080fd5b612cc48f602083860101612a1c565b825250908a013590612cd582614bfc565b6020818101929092528552938401939190910190600101612c6f565b5050855250506020860135935080841115612d0b57600080fd5b5050612d198583860161233b565b6020820152505092915050565b60006040808385031215612d38578182fd5b80518181016001600160401b038282108183111715612d5357fe5b8184528294508086351115612d6757600080fd5b85358601915086601f830112612d7c57600080fd5b8135612d8a61216382614b76565b81815260208082019190850160005b84811015612e12578135870189601f19828f03011215612db857600080fd5b89518a81018181108982111715612dcb57fe5b8b52602082013588811115612ddf57600080fd5b612dee8f602083860101612a1c565b825250908a0135602080830191909152908552938401939190910190600101612d99565b5050855250506020860135935080841115612e2c57600080fd5b5050612d1985838601612464565b600060408284031215612e4b578081fd5b604051604081016001600160401b038282108183111715612e6857fe5b816040528293508085351115612e7d57600080fd5b84358501915085601f830112612e9257600080fd5b81356020612ea261216383614b76565b8281528181019085830160005b85811015612f4157813588016040818e03601f19011215612ecf57600080fd5b604051604081018181108a82111715612ee457fe5b6040528187013589811115612ef857600080fd5b612f068f8983860101612a1c565b825250604082013589811115612f1b57600080fd5b612f298f8983860101612a1c565b82890152508552509284019290840190600101612eaf565b505086525086810135935082841115612f5957600080fd5b612bed88858901612581565b600060e08284031215612f76578081fd5b612f8060e0614b53565b9050612f8b82612138565b8152612f9960208301612138565b6020820152612faa60408301612138565b6040820152612fbb60608301612138565b6060820152612fcc60808301612138565b6080820152612fdd60a08301612138565b60a082015260c08201516001600160401b03811115612ffb57600080fd5b61300784828501612143565b60c08301525092915050565b6000610100808385031215613026578182fd5b604051908101906001600160401b038211818310171561304257fe5b81604052809250835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152505092915050565b600060c082840312156130ac578081fd5b6130b660c0614b53565b90506130c182612138565b81526130cf60208301612138565b60208201526130e060408301612138565b60408201526130f160608301612138565b606082015260808201516001600160401b038082111561311057600080fd5b61311c85838601612143565b608084015260a084015191508082111561313557600080fd5b5061314284828501612143565b60a08301525092915050565b600060e0828403121561315f578081fd5b61316960e0614b53565b905081356001600160401b038082111561318257600080fd5b61318e85838601612ad1565b835260208401359150808211156131a457600080fd5b6131b0858386016134a5565b602084015260408401359150808211156131c957600080fd5b6131d58583860161326a565b604084015260608401359150808211156131ee57600080fd5b6131fa85838601612bfc565b6060840152608084013591508082111561321357600080fd5b61321f85838601612d26565b608084015260a084013591508082111561323857600080fd5b61324485838601612e3a565b60a084015260c084013591508082111561325d57600080fd5b506130078482850161337a565b60006040828403121561327b578081fd5b604051604081016001600160401b03828210818311171561329857fe5b8160405282935080853511156132ad57600080fd5b84358501915085601f8301126132c257600080fd5b813560206132d261216383614b76565b8281528181019085830160005b8581101561335657813588016040818e03601f190112156132ff57600080fd5b604051604081018181108a8211171561331457fe5b604052818701358981111561332857600080fd5b6133368f8983860101612a1c565b8252506040919091013586820152845292840192908401906001016132df565b50508652508681013593508284111561336e57600080fd5b612bed888589016126a6565b60006040828403121561338b578081fd5b604051604081016001600160401b0382821081831117156133a857fe5b8160405282935080853511156133bd57600080fd5b84358501915085601f8301126133d257600080fd5b813560206133e261216383614b76565b8281528181019085830160005b8581101561348157813588016040818e03601f1901121561340f57600080fd5b604051604081018181108a8211171561342457fe5b604052818701358981111561343857600080fd5b6134468f8983860101612a1c565b82525060408201358981111561345b57600080fd5b6134698f8983860101612a1c565b828901525085525092840192908401906001016133ef565b50508652508681013593508284111561349957600080fd5b612bed888589016127c3565b6000604082840312156134b6578081fd5b604051604081016001600160401b0382821081831117156134d357fe5b8160405282935080853511156134e857600080fd5b84358501915085601f8301126134fd57600080fd5b8135602061350d61216383614b76565b8281528181019085830160005b8581101561359157813588016040818e03601f1901121561353a57600080fd5b604051604081018181108a8211171561354f57fe5b604052818701358981111561356357600080fd5b6135718f8983860101612a1c565b82525060409190910135868201528452928401929084019060010161351a565b5050865250868101359350828411156135a957600080fd5b612bed888589016128dc565b6000602082840312156135c6578081fd5b81356135d181614be4565b9392505050565b6000602082840312156135e9578081fd5b81516135d181614be4565b60008060408385031215613606578081fd5b825161361181614be4565b602084015190925061362281614be4565b809150509250929050565b600080600060608486031215613641578081fd5b833561364c81614be4565b9250602084013561365c81614be4565b915060408401356001600160401b03811115613676578182fd5b61368286828701612a1c565b9150509250925092565b6000806000606084860312156136a0578081fd5b83516001600160401b03808211156136b6578283fd5b6136c287838801612143565b945060208601519150808211156136d7578283fd5b506136e486828701612143565b92505060408401516136f581614be4565b809150509250925092565b60008060008060808587031215613715578182fd5b84516001600160401b038082111561372b578384fd5b61373788838901612143565b955060209150818701518181111561374d578485fd5b61375989828a01612143565b95505060408701518181111561376d578485fd5b87019050601f8101881361377f578384fd5b805161378d61216382614b76565b81815283810190838501858402850186018c10156137a9578788fd5b8794505b838510156137cb5780518352600194909401939185019185016137ad565b5080965050505050506137e060608601612138565b905092959194509250565b600060208083850312156137fd578182fd5b82516001600160401b03811115613812578283fd5b8301601f81018513613822578283fd5b805161383061216382614b76565b81815283810190838501865b84811015613865576138538a888451890101612a68565b8452928601929086019060010161383c565b509098975050505050505050565b600060208284031215613884578081fd5b81516135d181614bfc565b6000806000606084860312156138a3578081fd5b8335925060208401356001600160401b03808211156138c0578283fd5b6138cc8783880161314e565b935060408601359150808211156138e1578283fd5b506136828682870161314e565b6000602082840312156138ff578081fd5b6135d182612a04565b60008060008084860360a081121561391e578283fd5b61392786612a04565b945060208601516001600160401b0380821115613942578485fd5b61394e89838a01612a68565b95506040880151915061396082614be4565b8194506040605f1984011215613974578384fd5b6040519250604083019150828210818311171561398d57fe5b50604052606086015161399f81614be4565b815260808601516139af81614be4565b6020820152939692955090935050565b6000602082840312156139d0578081fd5b81516001600160401b03808211156139e6578283fd5b9083019061020082860312156139fa578283fd5b610120613a0681614b53565b835183811115613a14578586fd5b613a2088828701612f65565b825250613a308760208601613013565b6020820152613a40828501612ac2565b6040820152613a526101408501612ab3565b6060820152613a6461016085016129f9565b6080820152613a7661018085016129f9565b60a0820152613a886101a085016129f9565b60c08201526101c084015160e08201526101e0840151915082821115613aac578485fd5b613ab8878386016121b8565b6101008201529695505050505050565b600060208284031215613ad9578081fd5b81516001600160401b0380821115613aef578283fd5b9083019060e08286031215613b02578283fd5b613b0c60e0614b53565b825182811115613b1a578485fd5b613b268782860161309b565b8252506020830151602082015260408301516040820152613b49606084016129f9565b60608201526080830151608082015260a083015160a082015260c083015182811115613b73578485fd5b613b7f878286016121b8565b60c08301525095945050505050565b600060808284031215613b9f578081fd5b604051608081018181106001600160401b0382111715613bbb57fe5b6040528251613bc981614be4565b81526020830151613bd981614be4565b60208201526040830151613bec81614be4565b60408201526060830151613bff81614be4565b60608201529392505050565b6000815180845260208085019450808401835b83811015613c435781516001600160a01b031687529582019590820190600101613c1e565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b85811015613c94578284038952613c82848351613fd5565b98850198935090840190600101613c6a565b5091979650505050505050565b6000815180845260208085018081965082840281019150828601855b85811015613c94578284038952815160408151818752613cdf82880182613fd5565b91505086820151915085810387870152613cf98183613c0b565b9a87019a9550505090840190600101613cbd565b6000815180845260208085018081965082840281019150828601855b85811015613c94578284038952815160408151818752613d4b82880182613fd5565b92880151878403888a01528051808552908901938b9350890191505b80831015613d8957835115158252928801926001929092019190880190613d67565b509a87019a9550505090840190600101613d29565b60008282518085526020808601955080818302840101818601855b848110156121ab57601f19868403018952815160408151818652613ddf82870182613fd5565b92870151868403878901528051808552908801938b9350880191505b80831015613e1b5783518252928701926001929092019190870190613dfb565b509a86019a9450505090830190600101613db9565b6000815180845260208085018081965082840281019150828601855b85811015613c94578284038952815160408151818752613e6e82880182613fd5565b91505086820151915085810387870152613e888183613c4e565b9a87019a9550505090840190600101613e4c565b6000815180845260208085018081965082840281019150828601855b85811015613c94578284038952815160408151818752613eda82880182613fd5565b92880151878403888a015280518085529089019392508883019150808902830189018b5b82811015613f2c57601f19858303018452613f1a828751613fd5565b958b0195938b01939150600101613efe565b509c89019c97505050928601925050600101613eb8565b60008282518085526020808601955080818302840101818601855b848110156121ab57601f19868403018952815160408151818652613f8482870182613fd5565b92870151868403878901528051808552908801938b9350880191505b80831015613fc05783518252928701926001929092019190870190613fa0565b509a86019a9450505090830190600101613f5e565b60008151808452613fed816020860160208601614bb4565b601f01601f19169290920160200192915050565b6003811061400b57fe5b9052565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561408157898203605f190184528451805188845261405b89850182613fd5565b918801516001600160a01b03169388019390935294860194938601939150600101614037565b50848801519550888103858a01526140998187613ca1565b9998505050505050505050565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561411157898203605f19018452845180518884526140f289850182613fd5565b91880151151593880193909352948601949386019391506001016140ce565b50848801519550888103858a01526140998187613d0d565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561419257898203605f190184528451805188845261417589850182613fd5565b918801519388019390935294860194938601939150600101614151565b50848801519550888103858a01526140998187613d9e565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561422257898203605f19018452845180518884526141f689850182613fd5565b91880151848303858a015291905061420e8183613fd5565b9688019695880195935050506001016141d2565b50848801519550888103858a01526140998187613e30565b6000815160e0845261424f60e085018261400f565b905060208301518482036020860152614268828261444a565b9150506040830151848203604086015261428282826142f3565b9150506060830151848203606086015261429c82826140a6565b915050608083015184820360808601526142b68282614129565b91505060a083015184820360a08601526142d082826141aa565b91505060c083015184820360c08601526142ea82826143ba565b95945050505050565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561419257898203605f190184528451805188845261433f89850182613fd5565b91880151938801939093529486019493860193915060010161431b565b8051825260208082015163ffffffff9081169184019190915260409182015116910152565b80516001600160a01b0316825260209081015163ffffffff16910152565b80516001600160a01b03908116835260209182015116910152565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b8281101561443257898203605f190184528451805188845261440689850182613fd5565b91880151848303858a015291905061441e8183613fd5565b9688019695880195935050506001016143e2565b50848801519550888103858a01526140998187613e9c565b8051604080845281518482018190526000926020919082019060608088019190848202890101865b828110156144b357898203605f190184528451805188845261449689850182613fd5565b918801519388019390935294860194938601939150600101614472565b50848801519550888103858a01526140998187613f43565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284811660208301528316604082015260806060820181905260009061451390830184613fd5565b9695505050505050565b6001600160a01b0385811682528416602082015260806040820181905260009061454990830185613c0b565b828103606084015261455b8185613c0b565b979650505050505050565b6001600160a01b038481168252831660208201526060604082018190526000906142ea90830184613fd5565b6001600160a01b038881168252600090610100906145b3602085018b61439f565b80891660608501528160808501526145cd82850189613c4e565b96811660a085015294851660c08401525050911660e090910152949350505050565b6001600160a01b038781168252602082018790526101208201906146166040840188614001565b6146236060840187614381565b841660a083015261455b60c083018461435c565b901515815260200190565b6000602082526135d16020830184613fd5565b6001600160a01b0392831681529116602082015260400190565b60208082526010908201526f34b73b30b634b2103932b1b2b4bb32b960811b604082015260600190565b6020808252600e908201526d1a5b9d985b1a59081b585c9ad95d60921b604082015260600190565b6020808252601590820152740d2dcecc2d8d2c840e6cadcc8a8ded6cadce640e8f605b1b604082015260600190565b6020808252601190820152701a5b9d985b1a59081b5d5b1d1a58d85b1b607a1b604082015260600190565b60208082526014908201527334b73b30b634b2103332b2903932b1b2b4bb32b960611b604082015260600190565b602080825260119082015270696e76616c69642073776170207479706560781b604082015260600190565b6020808252601290820152711d5b9cdd5c1c1bdc9d1959081b585c9ad95d60721b604082015260600190565b6020808252601790820152761cddd85c081c185d1a081b9bdd081cdd5c1c1bdc9d1959604a1b604082015260600190565b6020808252601790820152767265636569766572206e6f7420706f6f6c206c6f67696360481b604082015260600190565b6020808252601f908201527f696e76616c6964206d756c746963616c6c20706172616d73206c656e67746800604082015260600190565b6020808252601190820152700d2dcecc2d8d2c840e6eec2e040e0c2e8d607b1b604082015260600190565b6020808252601a908201527931b0b73737ba103ab73bb930b8103730ba34bb32903a37b5b2b760311b604082015260600190565b6020808252601b908201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604082015260600190565b6020808252600d908201526c34b73b30b634b2103a37b5b2b760991b604082015260600190565b6020808252601e908201527f696e76616c696420696e697469616c436f6c6c61746572616c546f6b656e0000604082015260600190565b6020808252601690820152753ab739bab83837b93a32b21039b437b93a2a37b5b2b760511b604082015260600190565b60208082526017908201527634b73b30b634b21031b0b731b2b6103932b1b2b4bb32b960491b604082015260600190565b6020808252601590820152743ab739bab83837b93a32b2103637b733aa37b5b2b760591b604082015260600190565b6020808252601690820152751d5b9cdd5c1c1bdc9d19590818dbdb1b185d195c985b60521b604082015260600190565b6020808252601990820152781a5b9d985b1a590818d85b1b189858dac818dbdb9d1c9858dd603a1b604082015260600190565b602080825260189082015277696e76616c6964206d756c746963616c6c20706172616d7360401b604082015260600190565b6020808252600f908201526e1d5b9cdd5c1c1bdc9d1959081ddb9d608a1b604082015260600190565b600060808252614a8c608083018761423a565b6001600160a01b0386811660208501528382036040850152614aae828761423a565b92508085166060850152505095945050505050565b6040810161134a828461439f565b81516001600160a01b0390811682526020808401519083015260408084015161012084019291614b0390850182614001565b506060840151614b166060850182614381565b508060808501511660a08401525060a0830151614b3660c084018261435c565b5092915050565b61ffff9290921682521515602082015260400190565b6040518181016001600160401b0381118282101715614b6e57fe5b604052919050565b60006001600160401b03821115614b8957fe5b5060209081020190565b60006001600160401b03821115614ba657fe5b50601f01601f191660200190565b60005b83811015614bcf578181015183820152602001614bb7565b83811115614bde576000848401525b50505050565b6001600160a01b0381168114614bf957600080fd5b50565b8015158114614bf957600080fdfea2646970667358221220b902b6d0c96dbc05131fc7816704498a7b9d60abd9bacdb0e54e13a270e13ac864736f6c6343000706003300000000000000000000000087d66368cd08a7ca42252f5ab44b2fb6d1fb8d1500000000000000000000000026f7cbd49a4dc3321780ae8e7e0cb460f55a7511000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d800000000000000000000000065a6cc451baff7e7b4fdab4157763ab4b6b44d0e000000000000000000000000e6fab3f0c7199b0d34d7fbe83394fc0e0d06e99d00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000b4000000000000000000000000046b06b49b4811a9e8d3403e0716a74e856318e1d000000000000000000000000d40ef0ebe8c024cc31c2325b01649a7c024f45a40000000000000000000000000000000000000000000000000000000000000028000000000000000000000000319fd1d1d74607b7a224eb4e31a4aa75837d7d010000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f000000000000000000000000e24f85a5a5c8a9417537d82dfaa3e14efa8fb322000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000007862f74aa0a1db091be314709248ec24f5f7a967000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000bf30ffe47111ae5d0a5a9f9a187ead0170ba4d8f000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000002b1d9fbbeadad547a8053119e0b8cb290c487e9d000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000008a948d8d843593bf8c50eeda5f1140846b40a95e000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000a457b8a4c1a8478f0d38af3adc1dd803131bef03000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000043da9b0ab53242c55a9ff9c722ffc2a373d639c700000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab10000000000000000000000009a916e55f5b67226734cd7b465d51bce1d11a89a000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000cfec7a15726d4b5d183783c9033b921ba3a5090a000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000e9a71f5230a41aa09f4099a41d24450e85462fe1000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000da6d2144faec116b53715f76ca4a79925a3bb1fb000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000bf4ab4224b2ac26667cd4b8a0e5134d55cb0b29300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000d49d22f2a2f05b2088fd42503409e430a8a7d8270000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f0000000000000000000000001a9b3a496fe222ba84c53e215a904c555c3157c9000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000a6686c9c6bc90f84e3fb77c3d5417fd66bc05697000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000c8f346c8045fa911eac2ffef628e0c5fcdb445bd000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000007d37089ed7434c50f659d40b1e1fe09be026fc77000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000006abba36d0991a83e75f54dbb2a8dc91f30f8c78000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000001369e0f1520671cd0748984c40955f6a6af40487000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000bfc82f7823c0261903057b04b1c7c0e4e49eb550000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000d0f9912f604c0a5fd9bd03889243f5c426b38c81000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000b6e92517c99087cb58d8e8a8e649c598137f3fc3000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000000f5a811cb153bdcfd74ad69e82567396385fec3a000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000ecb200a89dfcc09663493a0f67089c7febf08d14000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000004ec9c0f08bdce085e9d4053b393a290d7afc8083000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000e2afa0ca430432ffd22564bdea87fa4cfb879c4e000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000f8ede83467778ed0c1ab54cb21f17dd9d33e6c86000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000006030ab5a681398ab5616da99a9c8453fd84bc802000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000006d72a0883aa4ac3d32067b6ec21e3f84a67485e2000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000829e90e558a2eeba733feffad3419543c4bcba08000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000001227a7c904f0a3923f1319ccce15ab23a66fd4d2000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000764fad1f0a4b1d5c20f0432ba5c8c594c57051b7000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000007aed02321cd9aefcaeb6942bc10b35d8daf85722000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000004d92f42b2936d2c685027cad2f682f2ce8e812ac000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000001d01303f4cbd1b4402d300ce1591cbadad74e075000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000044f9cbc1356f5592f91a69efe923b91514986381000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000001e0e416add4f3a66fd4258fa21942d9116e1077a000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000360e83bd7f746a7bcae4685c2bf589882392f54c000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000ee46dee5594adfe7aeb9b9c7ac33baf214b8f075000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000000000000000000000000000000700000000000000000000000047904963fc8b2340414262125af798b9655e58cd00000000000000000000000000047bf19673df52e37f2410011d10000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006ce185860a4963106506c203335a2910413708e90000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925ce62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b4300000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000032000000000000000000000000197aa2de1313c7ad50184234490e12409b2a1f95000000000000000000000000000072cb5bd86321e38cb6ce6682e8000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004a85b128ebdafc24d5cb611e161376ffdeceb2890000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925c23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc6574400000000000000000000000000000000000000000000000000000000000005dc0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000c4da4c24fd591125c3f47b340b6f4f76111883d800000000000000000000000000047bf19673df52e37f2410011d10000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009a7fb1b3950837a8d9b40517626e11d4127c098c0000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925cdcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c00000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000032000000000000000000000000c14e065b0067de91534e032868f5ac6ecf2c686800000000000000000000000001c06a5ec5433c60ddaa16406f5a4000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b4ad57b52ab9141de9926a3e0c8dc6264c2ef2050000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925cec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c800000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000032000000000000000000000000fdfa0a749da3bccee20ae0b4ad50e39b26f58f7c00000000000000000000000000047bf19673df52e37f2410011d1000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f9ce4fe2f0ece0362cb416844ae179a49591d5670000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925c4279e31cc369bbcc2faf022b382b080e32a8e689ff20fbc530d2a603eb6cd98b00000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000032000000000000000000000000e5f01aeacc8288e9838a60016ab00d7b6675900b000000000000000000000000000000000001ed09bead87c0378d8e64000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000aebda2c976cfd1ee1977eac079b4382acb8493250000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925ca19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000320000000000000000000000009c060b2fa953b5f69879a8b7b81f62bffef360be000000000000000000000000000000000001ed09bead87c0378d8e640000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000c997958cce7a0403aea7e34d14bbada897b5bb30000000000000000000000000000000000000000000000000000000000015f90000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925c7a01fca212788bba7c5bf8c9efd576a8a722f070d2c17596ff7bb609b8d5c3b900000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000032