UNPKG

@excubiae/contracts

Version:
1 lines 182 kB
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"evidence","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"guarded","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"notOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subject","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_checkMain_whenCallerHasNoTokens_returnsFalse","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkMain_whenCallerHasTokens_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkPost_whenCallerBalanceGreaterThanZero_returnsFalse","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkPost_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkPre_whenCallerNotOwner_returnsFalse","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkPre_whenTokenDoesNotExist_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checkPre_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_checker_getAppendedBytes","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_checker_whenAlreadyInitialized_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_factory_deployAndInitialize","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"event","name":"CloneDeployed","inputs":[{"name":"clone","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040819052600c8054600160ff199182168117909255601f8054909116821790556001625e79b760e01b0319909152608452737109709ecfa91a80626ff3989d68f67f5b1dd12d63ffa1864960a4602060405180830381865afa15801561006a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008e91906102a6565b602580546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260026004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156100ff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061012391906102a6565b602680546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260036004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b891906102a6565b602780546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b03198152600480820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610228573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024c91906102a6565b602880546001600160a01b0319166001600160a01b0392909216919091179055604080515f60208201520160405160208183030381529060405260299081610294919061036b565b503480156102a0575f5ffd5b50610425565b5f602082840312156102b6575f5ffd5b81516001600160a01b03811681146102cc575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806102fb57607f821691505b60208210810361031957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561036657805f5260205f20601f840160051c810160208510156103445750805b601f840160051c820191505b81811015610363575f8155600101610350565b50505b505050565b81516001600160401b03811115610384576103846102d3565b6103988161039284546102e7565b8461031f565b6020601f8211600181146103ca575f83156103b35750848201515b5f19600385901b1c1916600184901b178455610363565b5f84815260208120601f198516915b828110156103f957878501518255602094850194600190920191016103d9565b508482101561041657868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b615931806104325f395ff3fe608060405234801561000f575f5ffd5b50600436106101bb575f3560e01c806372f7a030116100f3578063ba414fa611610093578063e20c9f711161006e578063e20c9f7114610369578063eb5579d614610371578063f69861a914610379578063fa7626d414610381575f5ffd5b8063ba414fa614610329578063c760612d14610341578063d5f3948814610349575f5ffd5b8063916a17c6116100ce578063916a17c6146102ef578063a77e098714610304578063b0464fdc14610319578063b5508aa914610321575f5ffd5b806372f7a030146102b257806385226c81146102d25780638e3822d6146102e7575f5ffd5b80633f7286f41161015e57806366d9a9a01161013957806366d9a9a014610285578063671b21501461029a578063694bce44146102a25780636a18430c146102aa575f5ffd5b80633f7286f41461026d578063555335521461027557806362f210f51461027d575f5ffd5b80631ed7831c116101995780631ed7831c1461021b578063251c9d63146102305780632ade3880146102505780633e5e3c2314610265575f5ffd5b80630a59a98c146101bf5780630a9254e4146102095780631879c20a14610213575b5f5ffd5b6027546101df9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61021161038e565b005b610211610ad2565b610223610c21565b6040516102009190612497565b6028546101df9073ffffffffffffffffffffffffffffffffffffffff1681565b610258610c8e565b604051610200919061253b565b610223610dd7565b610223610e42565b610211610ead565b6102116110d9565b61028d611253565b60405161020091906126a9565b6102116113cc565b6102116114ef565b61021161176a565b6026546101df9073ffffffffffffffffffffffffffffffffffffffff1681565b6102da6118df565b6040516102009190612745565b6102116119aa565b6102f7611b6e565b60405161020091906127ba565b61030c611c71565b604051610200919061285c565b6102f7611cfd565b6102da611e00565b610331611ecb565b6040519015158152602001610200565b610211611f9b565b6025546101df9073ffffffffffffffffffffffffffffffffffffffff1681565b610223612115565b610211612180565b61021161221a565b601f546103319060ff1681565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801561040a575f5ffd5b505af115801561041c573d5f5f3e3d5ffd5b5050505060405161042c90612470565b604051809103905ff080158015610445573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405161049290612470565b604051809103905ff0801580156104ab573d5f5f3e3d5ffd5b50602080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556040516104fd9061247d565b604051809103905ff080158015610516573d5f5f3e3d5ffd5b50602380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556040516105689061248a565b604051809103905ff080158015610581573d5f5f3e3d5ffd5b5060245f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610628575f5ffd5b505af115801561063a573d5f5f3e3d5ffd5b5050602354601f546040517f4c96a38900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101009092048216600482015291169250634c96a38991506024015f604051808303815f87803b1580156106af575f5ffd5b505af11580156106c1573d5f5f3e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610731573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261077691908101906129ef565b90505f815f8151811061078b5761078b612b93565b60200260200101515f01516001815181106107a8576107a8612b93565b6020908102919091010151602180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f41af2f520000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916341af2f52916004808201925f9290919082900301818387803b15801561085a575f5ffd5b505af115801561086c573d5f5f3e3d5ffd5b505060248054601f546020546021546040517fb775400200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090940484166004820152918316948201949094529281166044840152600160648401525f6084840152600a60a484015216925063b7754002915060c4015f604051808303815f87803b15801561090d575f5ffd5b505af115801561091f573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801561098e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109d391908101906129ef565b91505f825f815181106109e8576109e8612b93565b60200260200101515f0151600181518110610a0557610a05612b93565b6020908102919091010151602280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f90c5013b0000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916390c5013b916004808201925f9290919082900301818387803b158015610ab7575f5ffd5b505af1158015610ac9573d5f5f3e3d5ffd5b50505050505050565b6040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0dc149f00000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f28dceb392610b769290910161285c565b5f604051808303815f87803b158015610b8d575f5ffd5b505af1158015610b9f573d5f5f3e3d5ffd5b5050505060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610c09575f5ffd5b505af1158015610c1b573d5f5f3e3d5ffd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610c8457602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c59575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610dce575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610db7578382905f5260205f20018054610d2c90612bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612bc0565b8015610da35780601f10610d7a57610100808354040283529160200191610da3565b820191905f5260205f20905b815481529060010190602001808311610d8657829003601f168201915b505050505081526020019060010190610d0f565b505050508152505081526020019060010190610cb1565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610c8457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c59575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c8457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c59575050505050905090565b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015610f29575f5ffd5b505af1158015610f3b573d5f5f3e3d5ffd5b5050601f546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015610fb0575f5ffd5b505af1158015610fc2573d5f5f3e3d5ffd5b50506022546028546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de935061102692909116906029905f90600401612c4a565b602060405180830381865afa158015611041573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110659190612d59565b1561107257611072612d78565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610c09575f5ffd5b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611155575f5ffd5b505af1158015611167573d5f5f3e3d5ffd5b5050601f546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156111dc575f5ffd5b505af11580156111ee573d5f5f3e3d5ffd5b50506022546028546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de93506110269290911690602990600190600401612c4a565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610dce578382905f5260205f2090600202016040518060400160405290815f820180546112a690612bc0565b80601f01602080910402602001604051908101604052809291908181526020018280546112d290612bc0565b801561131d5780601f106112f45761010080835404028352916020019161131d565b820191905f5260205f20905b81548152906001019060200180831161130057829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156113b457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116113615790505b50505050508152505081526020019060010190611276565b602254604080517fb41a4b1900000000000000000000000000000000000000000000000000000000815290516114ed9273ffffffffffffffffffffffffffffffffffffffff169163b41a4b19916004808301925f9291908290030181865afa15801561143a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261147f9190810190612da5565b601f54602080546021546040805161010090950473ffffffffffffffffffffffffffffffffffffffff9081169486019490945291831691840191909152166060820152600160808201525f60a0820152600a60c082015260e001604051602081830303815290604052612394565b565b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801561156b575f5ffd5b505af115801561157d573d5f5f3e3d5ffd5b5050604080515f60248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e2732890000000000000000000000000000000000000000000000000000000017905290517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250611636919060040161285c565b5f604051808303815f87803b15801561164d575f5ffd5b505af115801561165f573d5f5f3e3d5ffd5b50506022546027546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de93506116c392909116906029905f90600401612c4a565b602060405180830381865afa1580156116de573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117029190612d59565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610c09575f5ffd5b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156117e6575f5ffd5b505af11580156117f8573d5f5f3e3d5ffd5b50506020546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169250636a62784291506024015f604051808303815f87803b158015611868575f5ffd5b505af115801561187a573d5f5f3e3d5ffd5b50506022546027546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de93506110269290911690602990600290600401612c4a565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610dce578382905f5260205f2001805461191f90612bc0565b80601f016020809104026020016040519081016040528092919081815260200182805461194b90612bc0565b80156119965780601f1061196d57610100808354040283529160200191611996565b820191905f5260205f20905b81548152906001019060200180831161197957829003601f168201915b505050505081526020019060010190611902565b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611a26575f5ffd5b505af1158015611a38573d5f5f3e3d5ffd5b5050601f546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611aad575f5ffd5b505af1158015611abf573d5f5f3e3d5ffd5b50506022546027546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de9350611b2392909116906029905f90600401612c4a565b602060405180830381865afa158015611b3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b629190612d59565b61107257611072612d78565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610dce575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015611c5957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611c065790505b50505050508152505081526020019060010190611b91565b60298054611c7e90612bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa90612bc0565b8015611cf55780601f10611ccc57610100808354040283529160200191611cf5565b820191905f5260205f20905b815481529060010190602001808311611cd857829003601f168201915b505050505081565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610dce575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015611de857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611d955790505b50505050508152505081526020019060010190611d20565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610dce578382905f5260205f20018054611e4090612bc0565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6c90612bc0565b8015611eb75780601f10611e8e57610100808354040283529160200191611eb7565b820191905f5260205f20905b815481529060010190602001808311611e9a57829003601f168201915b505050505081526020019060010190611e23565b6008545f9060ff1615611ee2575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015611f70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f949190612dd7565b1415905090565b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612017575f5ffd5b505af1158015612029573d5f5f3e3d5ffd5b5050601f546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b15801561209e575f5ffd5b505af11580156120b0573d5f5f3e3d5ffd5b50506022546027546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de9350611b239290911690602990600190600401612c4a565b60606015805480602002602001604051908101604052809291908181526020018280548015610c8457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c59575050505050905090565b602254604080517f158ef93e00000000000000000000000000000000000000000000000000000000815290516114ed9273ffffffffffffffffffffffffffffffffffffffff169163158ef93e9160048083019260209291908290030181865afa1580156121ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122139190612d59565b6001612416565b6026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612296575f5ffd5b505af11580156122a8573d5f5f3e3d5ffd5b5050601f546027546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b15801561231d575f5ffd5b505af115801561232f573d5f5f3e3d5ffd5b50506022546027546040517f939980de00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063939980de9350611b239290911690602990600290600401612c4a565b6040517f97624631000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d906397624631906123e69085908590600401612dee565b5f6040518083038186803b1580156123fc575f5ffd5b505afa15801561240e573d5f5f3e3d5ffd5b505050505050565b6040517ff7fe347700000000000000000000000000000000000000000000000000000000815282151560048201528115156024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f7fe3477906044016123e6565b61175780612e1c83390190565b6107bd8061457383390190565b610bcc80614d3083390190565b602080825282518282018190525f918401906040840190835b818110156124e457835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016124b0565b509095945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612641577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805173ffffffffffffffffffffffffffffffffffffffff168652602090810151604082880181905281519088018190529101906060600582901b8801810191908801905f5b81811015612627577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a85030183526126118486516124ef565b60209586019590945092909201916001016125d7565b509197505050602094850194929092019150600101612561565b50929695505050505050565b5f8151808452602084019350602083015f5b8281101561269f5781517fffffffff000000000000000000000000000000000000000000000000000000001686526020958601959091019060010161265f565b5093949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612641577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516040875261271360408801826124ef565b905060208201519150868103602088015261272e818361264d565b9650505060209384019391909101906001016126cf565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612641577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526127a58583516124ef565b9450602093840193919091019060010161276b565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612641577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815173ffffffffffffffffffffffffffffffffffffffff81511686526020810151905060406020870152612846604087018261264d565b95505060209384019391909101906001016127e0565b602081525f61286e60208301846124ef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156128c5576128c5612875565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561291257612912612875565b604052919050565b5f67ffffffffffffffff82111561293357612933612875565b5060051b60200190565b5f82601f83011261294c575f5ffd5b815167ffffffffffffffff81111561296657612966612875565b61299760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016128cb565b8181528460208386010111156129ab575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b805173ffffffffffffffffffffffffffffffffffffffff811681146129ea575f5ffd5b919050565b5f602082840312156129ff575f5ffd5b815167ffffffffffffffff811115612a15575f5ffd5b8201601f81018413612a25575f5ffd5b8051612a38612a338261291a565b6128cb565b8082825260208201915060208360051b850101925086831115612a59575f5ffd5b602084015b83811015612b8857805167ffffffffffffffff811115612a7c575f5ffd5b85016060818a037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215612aaf575f5ffd5b612ab76128a2565b602082015167ffffffffffffffff811115612ad0575f5ffd5b82016020810190603f018b13612ae4575f5ffd5b8051612af2612a338261291a565b8082825260208201915060208360051b85010192508d831115612b13575f5ffd5b6020840193505b82841015612b35578351825260209384019390910190612b1a565b8452505050604082015167ffffffffffffffff811115612b53575f5ffd5b612b628b60208386010161293d565b602083015250612b74606083016129c7565b604082015284525060209283019201612a5e565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600181811c90821680612bd457607f821691505b602082108103612c0b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b60038110612c46577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201525f5f84545f8160011c90506001821680612c8557607f821691505b602082108103612cbc577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b6060860182905260808601818015612cdb5760018114612d0f57612d3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516825283151560051b82019550612d3b565b5f8a8152602090205f5b85811015612d3557815484820152600190910190602001612d19565b83019650505b505050505080915050612d516040830184612c11565b949350505050565b5f60208284031215612d69575f5ffd5b8151801515811461286e575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f60208284031215612db5575f5ffd5b815167ffffffffffffffff811115612dcb575f5ffd5b612d518482850161293d565b5f60208284031215612de7575f5ffd5b5051919050565b604081525f612e0060408301856124ef565b8281036020840152612e1281856124ef565b9594505050505056fe608060405234801561000f575f5ffd5b5060408051808201825260038082526213919560ea1b6020808401829052845180860190955291845290830152905f61004883826100f5565b50600161005582826100f5565b5050506101af565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061008557607f821691505b6020821081036100a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156100f057805f5260205f20601f840160051c810160208510156100ce5750805b601f840160051c820191505b818110156100ed575f81556001016100da565b50505b505050565b81516001600160401b0381111561010e5761010e61005d565b6101228161011c8454610071565b846100a9565b6020601f821160018114610154575f831561013d5750848201515b5f19600385901b1c1916600184901b1784556100ed565b5f84815260208120601f198516915b828110156101835787850151825560209485019460019092019101610163565b50848210156101a057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61159b806101bc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80636a62784211610088578063a22cb46511610063578063a22cb465146101e8578063b88d4fde146101fb578063c87b56dd1461020e578063e985e9c514610221575f5ffd5b80636a627842146101ac57806370a08231146101bf57806395d89b41146101e0575f5ffd5b8063095ea7b3116100c3578063095ea7b31461015e57806323b872dd1461017357806342842e0e146101865780636352211e14610199575f5ffd5b806301ffc9a7146100e957806306fdde0314610111578063081812fc14610126575b5f5ffd5b6100fc6100f7366004611134565b610269565b60405190151581526020015b60405180910390f35b61011961034d565b604051610108919061119b565b6101396101343660046111ad565b6103dc565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b61017161016c3660046111ec565b610410565b005b610171610181366004611214565b61041f565b610171610194366004611214565b610513565b6101396101a73660046111ad565b610532565b6101716101ba36600461124e565b61053c565b6101d26101cd36600461124e565b61055f565b604051908152602001610108565b6101196105d7565b6101716101f6366004611267565b6105e6565b6101716102093660046112cd565b6105f1565b61011961021c3660046111ad565b610609565b6100fc61022f3660046113e7565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102fb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061034757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60605f805461035b90611418565b80601f016020809104026020016040519081016040528092919081815260200182805461038790611418565b80156103d25780601f106103a9576101008083540402835291602001916103d2565b820191905f5260205f20905b8154815290600101906020018083116103b557829003601f168201915b5050505050905090565b5f6103e68261067a565b505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16610347565b61041b8282336106d8565b5050565b73ffffffffffffffffffffffffffffffffffffffff8216610473576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b5f61047f8383336106e5565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461050d576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8086166004830152602482018490528216604482015260640161046a565b50505050565b61052d83838360405180602001604052805f8152506105f1565b505050565b5f6103478261067a565b6105488160065461085c565b60068054905f61055783611469565b919050555050565b5f73ffffffffffffffffffffffffffffffffffffffff82166105af576040517f89c62b640000000000000000000000000000000000000000000000000000000081525f600482015260240161046a565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b60606001805461035b90611418565b61041b338383610875565b6105fc84848461041f565b61050d3385858585610971565b60606106148261067a565b505f61062a60408051602081019091525f815290565b90505f8151116106485760405180602001604052805f815250610673565b8061065284610b67565b6040516020016106639291906114dc565b6040516020818303038152906040525b9392505050565b5f8181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610347576040517f7e2732890000000000000000000000000000000000000000000000000000000081526004810184905260240161046a565b61052d8383836001610c23565b5f8281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff9081169083161561071e5761071e818486610deb565b73ffffffffffffffffffffffffffffffffffffffff811615610791576107465f855f5f610c23565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff8516156107d95773ffffffffffffffffffffffffffffffffffffffff85165f908152600360205260409020805460010190555b5f8481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b61041b828260405180602001604052805f815250610e9b565b73ffffffffffffffffffffffffffffffffffffffff82166108da576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260240161046a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610b60576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a02906109e69088908890879087906004016114f0565b6020604051808303815f875af1925050508015610a3e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a3b9181019061154a565b60015b610acb573d808015610a6b576040519150601f19603f3d011682016040523d82523d5f602084013e610a70565b606091505b5080515f03610ac3576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161046a565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610b5e576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161046a565b505b5050505050565b60605f610b7383610eb2565b60010190505f8167ffffffffffffffff811115610b9257610b926112a0565b6040519080825280601f01601f191660200182016040528015610bbc576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610bc657509392505050565b8080610c44575073ffffffffffffffffffffffffffffffffffffffff821615155b15610d97575f610c538461067a565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610ca657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610ce4575073ffffffffffffffffffffffffffffffffffffffff8082165f9081526005602090815260408083209387168352929052205460ff16155b15610d33576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161046a565b8115610d9557838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610df6838383610f93565b61052d5773ffffffffffffffffffffffffffffffffffffffff8316610e4a576040517f7e2732890000000000000000000000000000000000000000000000000000000081526004810182905260240161046a565b6040517f177e802f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024810182905260440161046a565b610ea58383611057565b61052d335f858585610971565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610efa577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610f26576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610f4457662386f26fc10000830492506010015b6305f5e1008310610f5c576305f5e100830492506008015b6127108310610f7057612710830492506004015b60648310610f82576064830492506002015b600a83106103475760010192915050565b5f73ffffffffffffffffffffffffffffffffffffffff83161580159061104f57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061101f575073ffffffffffffffffffffffffffffffffffffffff8085165f9081526005602090815260408083209387168352929052205460ff165b8061104f57505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116145b949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166110a6576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f600482015260240161046a565b5f6110b283835f6106e5565b905073ffffffffffffffffffffffffffffffffffffffff81161561052d576040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081525f600482015260240161046a565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611131575f5ffd5b50565b5f60208284031215611144575f5ffd5b813561067381611104565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610673602083018461114f565b5f602082840312156111bd575f5ffd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146111e7575f5ffd5b919050565b5f5f604083850312156111fd575f5ffd5b611206836111c4565b946020939093013593505050565b5f5f5f60608486031215611226575f5ffd5b61122f846111c4565b925061123d602085016111c4565b929592945050506040919091013590565b5f6020828403121561125e575f5ffd5b610673826111c4565b5f5f60408385031215611278575f5ffd5b611281836111c4565b915060208301358015158114611295575f5ffd5b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f5f5f5f608085870312156112e0575f5ffd5b6112e9856111c4565b93506112f7602086016111c4565b925060408501359150606085013567ffffffffffffffff811115611319575f5ffd5b8501601f81018713611329575f5ffd5b803567ffffffffffffffff811115611343576113436112a0565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113af576113af6112a0565b6040528181528282016020018910156113c6575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f604083850312156113f8575f5ffd5b611401836111c4565b915061140f602084016111c4565b90509250929050565b600181811c9082168061142c57607f821691505b602082108103611463577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036114be577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5060010190565b5f81518060208401855e5f93019283525090919050565b5f61104f6114ea83866114c5565b846114c5565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f611540608083018461114f565b9695505050505050565b5f6020828403121561155a575f5ffd5b81516106738161110456fea2646970667358221220595ce2b606ea215cae0a40d1362cec97dfdb34afa4b110dfdcfbd6bbc2fd7d5264736f6c634300081c003360a0604052348015600e575f5ffd5b506040516019906042565b604051809103905ff0801580156031573d5f5f3e3d5ffd5b506001600160a01b0316608052604f565b6104b18061030c83390190565b60805161029f61006d5f395f8181603d0152610143015261029f5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80633a4741bd146100385780634c96a38914610088575b5f5ffd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009b610096366004610236565b61009d565b005b6040805173ffffffffffffffffffffffffffffffffffffffff831660208201525f910160405160208183030381529060405290505f6100db8261013d565b90508073ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610122575f5ffd5b505af1158015610134573d5f5f3e3d5ffd5b50505050505050565b5f6101687f0000000000000000000000000000000000000000000000000000000000000000836101b0565b60405190915073ffffffffffffffffffffffffffffffffffffffff8216907f2158cde9935cbf85d0b02e02fbc315ad0be2f3f017a603a2ebeedead21b8d60b905f90a2919050565b5f6101bc5f84846101c3565b9392505050565b5f60405182518060438301826020870160045afa506e5af43d82803e903d91602b57fd5bf360238301528460148301528060881b74fe61002d3d81600a3d39f3363d3d373d3d3d363d730182526037810161ffd38210600b01830187f092505050806101bc5763301164255f526004601cfd5b5f60208284031215610246575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101bc575f5ffdfea26469706673582212207855ff75829a36aa43a7e9cb792fd250b16d88ed283ddd88a15185d596493d6864736f6c634300081c00336080604052348015600e575f5ffd5b506104958061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610064575f3560e01c80638129fc1c1161004d5780638129fc1c146100d2578063b41a4b19146100dc578063e2b24085146100f1575f5ffd5b8063158ef93e1461006857806347ccca0214610089575b5f5ffd5b5f546100749060ff1681565b60405190151581526020015b60405180910390f35b5f546100ad90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610080565b6100da610104565b005b6100e461010e565b604051610080919061032f565b6100746100ff3660046103a6565b61011d565b61010c610131565b565b60606101186101a6565b905090565b5f6101298484846101b1565b949350505050565b61013961027a565b5f6101426101a6565b90505f818060200190518101906101599190610426565b5f805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9092169190911790555050565b6060610118306102e2565b5f5f6101bf83850185610448565b5f546040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810183905291925073ffffffffffffffffffffffffffffffffffffffff878116926101009092041690636352211e90602401602060405180830381865afa158015610236573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025a9190610426565b73ffffffffffffffffffffffffffffffffffffffff161495945050505050565b5f5460ff16156102b6576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60405164ffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3833b0116808252602090810190602d908301843c60408101815101604052919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b73ffffff