@settlemint/solidity-diamond-bond
Version:
Smart contract set to build an enterprise bond usecase in SettleMint
1 lines • 202 kB
JSON
{"abi":[{"type":"function","name":"editBondParameters","inputs":[{"name":"bi","type":"tuple","internalType":"struct BondInitParams.BondInit","components":[{"name":"__bondId","type":"uint256","internalType":"uint256"},{"name":"__campaignMinAmount","type":"uint256","internalType":"uint256"},{"name":"__campaignMaxAmount","type":"uint256","internalType":"uint256"},{"name":"__campaignStartDate","type":"uint256","internalType":"uint256"},{"name":"__expectedIssueDate","type":"uint256","internalType":"uint256"},{"name":"__coupure","type":"uint256","internalType":"uint256"},{"name":"__interestNum","type":"uint256","internalType":"uint256"},{"name":"__interestDen","type":"uint256","internalType":"uint256"},{"name":"__withholdingTaxNum","type":"uint256","internalType":"uint256"},{"name":"__withholdingTaxDen","type":"uint256","internalType":"uint256"},{"name":"__balloonRateNum","type":"uint256","internalType":"uint256"},{"name":"__balloonRateDen","type":"uint256","internalType":"uint256"},{"name":"__duration","type":"uint256","internalType":"uint256"},{"name":"__capitalAmortizationDuration","type":"uint256","internalType":"uint256"},{"name":"__gracePeriodDuration","type":"uint256","internalType":"uint256"},{"name":"__maxAmountPerInvestor","type":"uint256","internalType":"uint256"},{"name":"__periodicity","type":"uint256","internalType":"uint256"},{"name":"__formOfFinancing","type":"uint256","internalType":"uint256"},{"name":"__methodOfRepayment","type":"uint256","internalType":"uint256"},{"name":"__issuer","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"pure"},{"type":"function","name":"getSelectorsOwnership","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"pure"},{"type":"function","name":"initializeBond","inputs":[{"name":"bi","type":"tuple","internalType":"struct BondInitParams.BondInit","components":[{"name":"__bondId","type":"uint256","internalType":"uint256"},{"name":"__campaignMinAmount","type":"uint256","internalType":"uint256"},{"name":"__campaignMaxAmount","type":"uint256","internalType":"uint256"},{"name":"__campaignStartDate","type":"uint256","internalType":"uint256"},{"name":"__expectedIssueDate","type":"uint256","internalType":"uint256"},{"name":"__coupure","type":"uint256","internalType":"uint256"},{"name":"__interestNum","type":"uint256","internalType":"uint256"},{"name":"__interestDen","type":"uint256","internalType":"uint256"},{"name":"__withholdingTaxNum","type":"uint256","internalType":"uint256"},{"name":"__withholdingTaxDen","type":"uint256","internalType":"uint256"},{"name":"__balloonRateNum","type":"uint256","internalType":"uint256"},{"name":"__balloonRateDen","type":"uint256","internalType":"uint256"},{"name":"__duration","type":"uint256","internalType":"uint256"},{"name":"__capitalAmortizationDuration","type":"uint256","internalType":"uint256"},{"name":"__gracePeriodDuration","type":"uint256","internalType":"uint256"},{"name":"__maxAmountPerInvestor","type":"uint256","internalType":"uint256"},{"name":"__periodicity","type":"uint256","internalType":"uint256"},{"name":"__formOfFinancing","type":"uint256","internalType":"uint256"},{"name":"__methodOfRepayment","type":"uint256","internalType":"uint256"},{"name":"__issuer","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeOwner","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"issueBond","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_issueDate","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseCampaign","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescindReservation","inputs":[{"name":"_bondPurchaseId","type":"string","internalType":"string"},{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_buyer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reserve","inputs":[{"name":"_bondPurchaseId","type":"string","internalType":"string"},{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_bondAmount","type":"uint256","internalType":"uint256"},{"name":"_buyer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setBalloonRate","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_balloonRateNum","type":"uint256","internalType":"uint256"},{"name":"_balloonRateDen","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCapitalAmortizationFreeDuration","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCurrencyAddress","inputs":[{"name":"_currencyAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGracePeriodDuration","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferBond","inputs":[{"name":"_bondTransferId","type":"string","internalType":"string"},{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"_old","type":"address","internalType":"address"},{"name":"_new","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseCampaign","inputs":[{"name":"_bondId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawBondsPurchased","inputs":[{"name":"_bondPurchaseId","type":"string","internalType":"string"},{"name":"_bondId","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BalloonRateSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"balloonRateNum","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"balloonRateDen","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BondInitializedPart1","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"coupure","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"interestNum","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"interestDen","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"withholdingTaxNum","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"withholdingTaxDen","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BondInitializedPart2","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"periodicInterestRate","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"netReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"periodicity","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"duration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"methodOfRepayment","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxSupply","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"formOfFinancing","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BondIssued","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BondParametersEditedPart1","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"coupure","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"interestNum","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"interestDen","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"withholdingTaxNum","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"withholdingTaxDen","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issuer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BondParametersEditedPart2","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"periodicInterestRate","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"netReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"periodicity","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"duration","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"methodOfRepayment","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxSupply","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"formOfFinancing","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BondTransferred","inputs":[{"name":"bondTransferId","type":"string","indexed":false,"internalType":"string"},{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldAccount","type":"address","indexed":false,"internalType":"address"},{"name":"newAccount","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BondsWithdrawn","inputs":[{"name":"bondPurchaseId","type":"string","indexed":false,"internalType":"string"},{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"holder","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CampaignPaused","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CampaignStartAndEndDateSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"startDate","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"endDate","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CampaignUnpaused","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CapitalAmortizationFreePeriodSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"capitalAmortizationFreePeriodDuration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CapitalClaimAmountSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"capitalClaimId","type":"string","indexed":false,"internalType":"string"},{"name":"capitalAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouponsComputed","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"couponDates","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"remainingCapital","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"capitalRepayments","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"grossCouponRates","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"netCouponRates","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"GracePeriodSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gracePeriodDuration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"InvestorsCountChanged","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"investorsCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IssueDateSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"issueDate","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinAndMaxAmountSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"maxAmountPerInvestor","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PeriodicInterestRateSet","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"periodicInterest","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ReservedAmountChanged","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reservedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RevocationsCountChanged","inputs":[{"name":"bondId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revocationsCount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"BondAlreadyInitialized","inputs":[]},{"type":"error","name":"BondAlreadyIssued","inputs":[]},{"type":"error","name":"BondHasNotBeenIssued","inputs":[]},{"type":"error","name":"CampaignAlreadyPaused","inputs":[]},{"type":"error","name":"CampaignIsClosed","inputs":[]},{"type":"error","name":"CampaignIsPaused","inputs":[]},{"type":"error","name":"CampaignNotPaused","inputs":[]},{"type":"error","name":"CannotReserveAfterCampaignEnd","inputs":[]},{"type":"error","name":"CannotReserveBeforeSignupDate","inputs":[]},{"type":"error","name":"CapitalAmortizationFreePeriodDurationIsNotAMultpleOfThree","inputs":[]},{"type":"error","name":"CapitalAmortizationFreePeriodDurationIsNotAMultpleOfTwelve","inputs":[]},{"type":"error","name":"DivideByZero","inputs":[]},{"type":"error","name":"DurationIsNotAMultpleOfThree","inputs":[]},{"type":"error","name":"DurationIsNotAMultpleOfTwelve","inputs":[]},{"type":"error","name":"ExceedingMaxAmountPerInvestor","inputs":[]},{"type":"error","name":"GracePeriodDurationIsNotAMultpleOfThree","inputs":[]},{"type":"error","name":"GracePeriodDurationIsNotAMultpleOfTwelve","inputs":[]},{"type":"error","name":"NoMoreBondsToBuy","inputs":[]},{"type":"error","name":"OldAccountDoesNotHaveEnoughBonds","inputs":[]},{"type":"error","name":"PRBMath_MulDiv18_Overflow","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PRBMath_MulDiv_Overflow","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PRBMath_UD60x18_Exp2_InputTooBig","inputs":[{"name":"x","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"PRBMath_UD60x18_Log_InputTooSmall","inputs":[{"name":"x","type":"uint256","internalType":"UD60x18"}]}],"bytecode":{"object":"0x60808060405234601557614274908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146117b65750806325830db3146115805780632dcb118e1461153457806343a19a65146114895780634b503f0b146112e557806360332e891461116857806368aea41b146110e6578063796b89ec146110a85780638c5f36bb1461100c5780638da5cb5b14610fd85780638dea1f4714610cae578063906b131a14610a455780639226537e14610834578063b4105004146107c0578063bc197c8114610727578063de99347a14610675578063e3adc7ee146103e7578063ee5b280a14610399578063f23a6e611461033e578063f2fde38b146102785763f844a31c14610105575f80fd5b346102755761011336611926565b61013460018060a01b035f51602061421f5f395f51905f5254163314611b61565b61013d82611cac565b9160016018840155601b830160ff815460201c166102665761015f8383612675565b61016882612aeb565b5050815464ff000000001916640100000000179091555060258301805463ff00000019166301000000179055601183015460179093018381558454909385916001600160a01b0316803b156102625760405163731133e960e01b8152306004820152602481018590526044810192909252608060648301525f60848301528290829060a490829084905af180156102575761023e575b50509154604080519384526020840192909252908201527fb5c3204064d2ac62821e92f17e7e2c1e9971c89f07fa01b6dab37145db86dc5590606090a180f35b8161024891611809565b61025357835f6101fe565b8380fd5b6040513d84823e3d90fd5b8280fd5b636f65570160e11b8552600485fd5b80fd5b50346102755760203660031901126102755761029261189f565b5f51602061421f5f395f51905f5254336001600160a01b03821614916102b783611b61565b6001600160a01b03169182156102ed576102d090611b61565b6001600160a01b031916175f51602061421f5f395f51905f525580f35b60405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b50346102755760a03660031901126102755761035861189f565b506103616118cb565b506084356001600160401b03811161039557610381903690600401611aa2565b505060405163f23a6e6160e01b8152602090f35b5080fd5b5034610275577f8a7a5c9c34210b39b0dd6c746e4824f7af2a84c059d4dcbc168a2036d26df99060406103cb36611926565b80600f6103d784611cac565b015582519182526020820152a180f35b5034610275576103f6366118e1565b919061040181611cac565b60ff601b82015460201c16156106665761041e6024820184611acf565b549061042e600582015483611bbb565b600154604051636eb1769f60e11b81526001600160a01b0388811660048301523060248301529091169190602081604481865afa90811561065b578991610621575b50906104c892610484826020941015611bce565b60268501546040516323b872dd60e01b81526001600160a01b038b8116600483015290911660248201526044810192909252909283919082908b9082906064820190565b03925af18015610616576104e39188916105e7575b50611c43565b855486906001600160a01b0316803b156103955760405163731133e960e01b81526001600160a01b03881660048201526024810186905260448101859052608060648201525f6084820152908290829060a490829084905af18015610257576105c6575b507f99c110e7b335cff55cab2cfe92e319ad78396f17234debbb5860886aa0244cca6105a58686868a60228860018060a01b0383165f520160205260405f20600160ff19825416179055604051948594608086526080860190611c88565b60208501939093526001600160a01b0316604084015260608301520390a180f35b816105d5919695949396611809565b6105e357909192855f610547565b8580fd5b610609915060203d60201161060f575b6106018183611809565b810190611c2b565b5f6104dd565b503d6105f7565b6040513d89823e3d90fd5b9190506020823d602011610653575b8161063d60209383611809565b8101031261064f5790516104c8610470565b5f80fd5b3d9150610630565b6040513d8b823e3d90fd5b630189aad160e71b8552600485fd5b50346102755760203660031901126102755760043561069381611cac565b601b81019081549060ff8260181c16610718576002810154421190811591610708575b506106f95763ff000000191663010000001790556040519081527fab1902ee37c92d1a78dda53814d64b815e7e3ee287d60843a3dbd6954e3206b490602090a180f35b63ebd7e12960e01b8452600484fd5b905060034291015411155f6106b6565b632e75fea560e11b8552600485fd5b50346102755760a03660031901126102755761074161189f565b5061074a6118cb565b506044356001600160401b0381116103955761076a903690600401611a72565b50506064356001600160401b0381116103955761078b903690600401611a72565b50506084356001600160401b038111610395576107ac903690600401611aa2565b505060405163bc197c8160e01b8152602090f35b50346102755780600319360112610275576108306040516107e2608082611809565b600381526060366020830137638da5cb5b60e01b6107ff82611b16565b5263f2fde38b60e01b61081182611b23565b52638c5f36bb60e01b61082382611b33565b526040519182918261193c565b0390f35b5034610275576108433661197f565b61084d8151611cac565b60ff601b82015460201c16610a3657907f182cb671939e46d1345c30b51134e41ef7782a2113747a93b4dc3c31b91ea81e610a309261088b83611e5d565b825160028201546003830154604080519384526020840192909252908201527f05b741eb5649daedcc851ef6f057b1bf89b49d12357d31c478c425b6eb1ce9c590606090a182518154600183015460128401546040805194855260208501939093529183015260608201527f1ada3075f8dc673c9de9ba7c0b8e81065d996d1faa99feb6d0a648c8b7a1516d90608090a1825160a08085015160c08087015160e0808901516101008a01516101208b01516102608c0151604080519a8b5260208b01989098529689019490945260608801919091526080870152938501526001600160a01b03909116908301527fc64d8be5e3585a2141489e772ad1096418b37137a76298a309a5f1095f95f1ca91a18251610a176008830154926007810154906102008701516101808801516102408901519160ff6025601086015495015460081c16946109d986611b43565b6040519889988994919260e0969399989794919961010087019a8752602087015260408601526060850152608084015260a083015260c08201520152565b0390a1610a2a8151608083015190612675565b51612aeb565b50505080f35b636f65570160e11b8352600483fd5b5034610275576080366003190112610275576004356001600160401b03811161039557610a76903690600401611859565b9060243560443592610a866118b5565b9260ff601b610a9485611cac565b015460181c16610c9f57610aa783611cac565b906010820154946011830196875496878082115f14610c9657610ac991611afc565b905b81811115610c8e5750955b60028401544210610c7f5760038401544211610c71578615610c6257602384019260018060a01b0383165f5283602052610b148860405f2054611b09565b601286015410610c53576001600160a01b0383165f9081526020859052604090205415610bb1575b5060409460247f83518b027c8ada9071fa7643b5352e180e42cf5a021d61294e5880408643c97f979560209a958a95610b7887610b9d97611b09565b885560018060a01b03165f528b52875f20610b94868254611b09565b90550190611acf565b5554825191825285820152a1604051908152f35b6014850180549160018301809311610c3f5750879560209a958a95610b7887610b9d977ff865af89149aa92dd957b447226842542090f013d1c80f4f66f6eb3ea79f8e9160407f83518b027c8ada9071fa7643b5352e180e42cf5a021d61294e5880408643c97f9f819f9a8060249b5582519182526020820152a1975050509550959a509597505094610b3c565b634e487b7160e01b81526011600452602490fd5b6315a1589160e11b8152600490fd5b6303f7614f60e51b8352600483fd5b62c32ed760e41b8352600483fd5b633cad284b60e21b8352600483fd5b905095610ad6565b50508290610acb565b63a6a992df60e01b8152600490fd5b503461064f5760a036600319011261064f576004356001600160401b03811161064f57610cdf903690600401611859565b6024356044356001600160a01b03811680820361064f57610cfe6118b5565b9060843592610d2460018060a01b035f51602061421f5f395f51905f5254163314611b61565b610d2d85611cac565b60ff601b82015460201c1615610fc9575f54604051627eeac760e11b8152600481018590526024810188905290602090829060449082906001600160a01b03165afa8015610f405786915f91610f94575b5010610f85576005610d9291015485611bbb565b600154604051636eb1769f60e11b81526001600160a01b03868116600483015230602483015290911690602081604481855afa908115610f40575f91610f4b575b5090610e2793610de884602095941015611bce565b6040516323b872dd60e01b81526001600160a01b03808916600483015290911660248201526044810192909252909283919082905f9082906064820190565b03925af18015610f4057610e41915f916105e75750611c43565b5f546001600160a01b031691823b1561064f575f809160c460405180948193637921219560e11b835287600484015260018060a01b0316978860248401528a604484015289606484015260a060848401528160a48401525af18015610f4057610efe575b5091610ee393917f38db1382a58023a1d5d8aaab1581199c9b7d9ed33223c18beeaab57924aff20f959360405195869560a0875260a0870190611c88565b9360208601526040850152606084015260808301520390a180f35b7f38db1382a58023a1d5d8aaab1581199c9b7d9ed33223c18beeaab57924aff20f959391965091610f335f610ee39694611809565b5f96919395509193610ea5565b6040513d5f823e3d90fd5b929190506020833d602011610f7d575b81610f6860209383611809565b8101031261064f579151909190610e27610dd3565b3d9150610f5b565b6348efb0c560e11b5f5260045ffd5b9150506020813d602011610fc1575b81610fb060209383611809565b8101031261064f578590515f610d7e565b3d9150610fa3565b630189aad160e71b5f5260045ffd5b3461064f575f36600319011261064f575f51602061421f5f395f51905f52546040516001600160a01b039091168152602090f35b3461064f57602036600319011261064f5761102561189f565b5f51602061421f5f395f51905f52546001600160a01b031661106f575f51602061421f5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055005b60405162461bcd60e51b815260206004820152601160248201527013dddb995c88185b1c9958591e481cd95d607a1b6044820152606490fd5b3461064f57602036600319011261064f576001600160a01b036110c961189f565b166bffffffffffffffffffffffff60a01b60015416176001555f80f35b3461064f57606036600319011261064f577f9cc9725ee02d8f0a4d8b30054405939f4d872cc6a5c2d677e02f5bd87e5dea2a60243560043561116360443561112d83611cac565b600a670de0b6b3a764000061114284886136df565b04910155604051938493846040919493926060820195825260208201520152565b0390a1005b3461064f576111763661197f565b306bffffffffffffffffffffffff60a01b5f5416175f556111978151611cac565b90601b820160ff815460101c166112d6576112d4927fb42ebd0ad22561f77328ee457d5ba2a08a7c2847ff88c663cca9dcc8c53dc086916111d784611e5d565b805462ff0000191662010000179055600154602582018054640100000000600160c01b031916602092831b640100000000600160c01b03161790819055845160a08087015160c08089015160e0808b01516101008c01516101208d01516102608e0151604080519a8b529b8a01979097529988019390935260608701526080860191909152928401959095526001600160a01b0316938201939093529092917ff5d1b3af18a6e549e23801b7a43bec54699badce37e0f7e96e0a4ebb65143d7491a1610a178451916008810154936007820154916102008801516101808901519060ff60106102408c01519401549460081c16946109d986611b43565b005b6371001f5d60e11b5f5260045ffd5b3461064f575f36600319011261064f576040516102006113058183611809565b600f8252601f19013660208301376360332e8960e01b61132482611b16565b52631e5ae27b60e21b61133682611b23565b5263491329bf60e11b61134882611b33565b52805160031015611475576368aea41b60e01b6080820152805160041015611475576316e588c760e11b60a08201528051600510156114755763772d940560e11b60c082015280516006101561147557634835898d60e11b60e082015280516007101561147557636f4c9a3d60e11b610100820152805160081015611475576343a19a6560e01b610120820152805160091015611475576325830db360e01b6101408201528051600a101561147557638dea1f4760e01b6101608201528051600b1015611475576371d6e3f760e11b6101808201528051600c101561147557633e1128c760e21b6101a08201528051600d10156114755763f23a6e6160e01b6101c08201528051600e10156114755763bc197c8160e01b6101e0820152604051908190610830908261193c565b634e487b7160e01b5f52603260045260245ffd5b3461064f57602036600319011261064f576004356114a681611cac565b601b81019182549160ff8360181c1615611525576002810154421190811591611515575b50611506577f11aa0bd3fb4d9c5622c703f91610a74140a4f88a7ebc7b4faaeaf52e3cb7aa949260209263ff00000019169055604051908152a1005b63ebd7e12960e01b5f5260045ffd5b90506003429101541115846114ca565b636428884d60e11b5f5260045ffd5b3461064f577f091a72ed52432e53c748925ef46b36a19f93cb874539b387d4f3b1f92aa33e11604061156536611926565b80600e61157184611cac565b015582519182526020820152a1005b3461064f5761158e366118e1565b919061159981611cac565b6011810190815460248201956115af8787611acf565b54821061177157602383019160018060a01b0382165f528260205260405f20546115d98989611acf565b541161171e576115f4906115ed8989611acf565b5490611afc565b84556116008787611acf565b5460018060a01b0382165f528260205261161f60405f20918254611afc565b905560018060a01b03165f5260205260405f2054156116d0575b60150193845490600182018092116116bc57855f6116a06040979388947f499925bc28b60b5b11b1841f8f51318fa4484237122fb618e76c3195b37d9eb8967f83518b027c8ada9071fa7643b5352e180e42cf5a021d61294e5880408643c97f9b55611acf565b55548151908582526020820152a15482519182526020820152a1005b634e487b7160e01b5f52601160045260245ffd5b601481019081545f1981019081116116bc576040817ff865af89149aa92dd957b447226842542090f013d1c80f4f66f6eb3ea79f8e9192601595558151908782526020820152a19050611639565b60405162461bcd60e51b815260206004820152602560248201527f556e646572666c6f773a20726573657276656420616d6f756e74206279206164604482015264647265737360d81b6064820152608490fd5b60405162461bcd60e51b815260206004820152601a60248201527f556e646572666c6f773a20726573657276656420616d6f756e740000000000006044820152606490fd5b3461064f57602036600319011261064f576004359063ffffffff60e01b821680920361064f57602091630271189760e51b81149081156117f8575b5015158152f35b6301ffc9a760e01b149050836117f1565b90601f801991011681019081106001600160401b0382111761182a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161182a57601f01601f191660200190565b81601f8201121561064f578035906118708261183e565b9261187e6040519485611809565b8284526020838301011161064f57815f926020809301838601378301015290565b600435906001600160a01b038216820361064f57565b606435906001600160a01b038216820361064f57565b602435906001600160a01b038216820361064f57565b606060031982011261064f57600435906001600160401b03821161064f5761190b91600401611859565b90602435906044356001600160a01b038116810361064f5790565b604090600319011261064f576004359060243590565b60206040818301928281528451809452019201905f5b81811061195f5750505090565b82516001600160e01b031916845260209384019390920191600101611952565b61028090600319011261064f5760405161028081018181106001600160401b0382111761182a57604090815260043582526024356020830152604435908201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e082015261010435610100820152610124356101208201526101443561014082015261016435610160820152610184356101808201526101a4356101a08201526101c4356101c08201526101e4356101e0820152610204356102008201526102243561022082015261024435610240820152610264356001600160a01b038116810361064f5761026082015290565b9181601f8401121561064f578235916001600160401b03831161064f576020808501948460051b01011161064f57565b9181601f8401121561064f578235916001600160401b03831161064f576020838186019501011161064f57565b6040518151909260209284929081908501845e82019081520301902090565b5f198101919082116116bc57565b919082039182116116bc57565b919082018092116116bc57565b8051156114755760200190565b8051600110156114755760400190565b8051600210156114755760600190565b60021115611b4d57565b634e487b7160e01b5f52602160045260245ffd5b15611b6857565b60405162461bcd60e51b815260206004820152602560248201527f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b6064820152608490fd5b818102929181159184041417156116bc57565b15611bd557565b60405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608490fd5b9081602091031261064f5751801515810361064f5790565b15611c4a57565b60405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e881d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f818072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015611e37575b50806d04ee2d6d415b85acef8100000000600a921015611e1c575b662386f26fc10000811015611e08575b6305f5e100811015611df7575b612710811015611de8575b6064811015611dda575b1015611dd2575b6001810191600a6021611d4d611d378661183e565b95611d456040519788611809565b80875261183e565b602086019490601f19013686378501015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015611d8c57600a9091611d5e565b5050611dcc602c604051809360208201956b1cdd1bdc9859d94b989bdb9960a21b87525180918484015e81015f838201520301601f198101835282611809565b51902090565b600101611d22565b606460029104920191611d1b565b61271060049104920191611d11565b6305f5e10060089104920191611d06565b662386f26fc1000060109104920191611cf9565b6d04ee2d6d415b85acef810000000060209104920191611ce9565b6040925072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a611cce565b905f611e698351611cac565b6102608401516026820180546001600160a01b0319166001600160a01b039290921691909117905560a084018051600583015560e08501805190939290156125b757610200860192868451155f1461258957610180600c9101510661257a5786905b6101c08201908151612463575b6101a08301918251612390575b60c0840197611ef789518251906136df565b9060068701918255610100860191825191611f196101208901938451906136df565b60098a0155670de0b6b3a7640000611f4660408a0151809c60018d019d8e5560208c01518d5551906136df565b0460108a015560606101e08901519860128b01998a55610180810151600d8c015501519b8c9b624f1a008d60028d019e8f55019d8e81116116bc578e10612325578a90600382019e8f558051155f146122775750602501805460ff191690555050805460088901555b6102408d01805160010361223c57508551156122055760258801805462ff00001916620300001790555b8551600e8901558351600f8901556101408d01948d86519081151590816121f6575b50612183575b505061217e98957f9cc9725ee02d8f0a4d8b30054405939f4d872cc6a5c2d677e02f5bd87e5dea2a89967f05b741eb5649daedcc851ef6f057b1bf89b49d12357d31c478c425b6eb1ce9c59e9f9a6040612159986120ea7f1ada3075f8dc673c9de9ba7c0b8e81065d996d1faa99feb6d0a648c8b7a1516d9d996120e46120de7f091a72ed52432e53c748925ef46b36a19f93cb874539b387d4f3b1f92aa33e119b869b601b7f8a7a5c9c34210b39b0dd6c746e4824f7af2a84c059d4dcbc168a2036d26df990990161ff001981541690555493519051906136df565b82614143565b90611afc565b60078c01558d51905182519182526020820152a18a5190516101608c0151855192835260208301919091526040820152606090a18851905182519182526020820152a1855192549354905490604051948594859094939260609260808301968352602083015260408201520152565b0390a15191549254604051938493846040919493926060820195825260208201520152565b0390a1565b8e6121956101608201928351906136df565b600a8c015551908751905191303b15610253576040516368aea41b60e01b8152600481019190915260248101919091526044810191909152818160648183305af180156102575715612001576121ec828092611809565b6102755780612001565b6101609150015115158f611ffb565b8351156122245760258801805462ff0000191662040000179055611fd9565b60258801805462ff0000191662010000179055611fd9565b8051612256575060258801805462ff000019169055611fd9565b5160011901611fd95760258801805462ff0000191662020000179055611fd9565b80516001036122cf5750602501805460ff19166001179055815190516122c5926122c0926122b0926122a891611b09565b9051906136df565b6703782dace9d900005b9061349f565b611aee565b6008890155611faf565b519091906002146122e3575b505050611faf565b612318926122a861230a9260256122c09501600260ff198254161790558251905190611b09565b6701280f39a34855556122ba565b60088901555f88816122db565b60405162461bcd60e51b815260206004820152603d60248201527f54696d657374616d702073686f756c64206265206561726c696572206f72206560448201527f7175616c20746f207468652063757272656e742074696d657374616d700000006064820152608490fd5b909796959493928551155f1461243057508151600c9006156123bb57635f5e914960e11b8852600488fd5b889791929394959697518351303b1561025357604051916316e588c760e11b835260048301526024820152828160448183305af1801561242557908a94939291612406575b50611ee5565b828094955061241791939293611809565b61039557908892915f612400565b6040513d85823e3d90fd5b929394959697906001875103611ee557825191989796959493509060039006156123bb57634f80c6ed60e01b8852600488fd5b9695949392918451155f146124ef57508051600c90061561248c5762372f6360ea1b8752600487fd5b90919293949587518251303b15610262576040519163772d940560e11b835260048301526024820152818160448183305af180156102575790899392916124d4575b50611ed8565b81809394506124e291611809565b610275579087915f6124ce565b9192939495966001865103611ed85781519097969594939250600390061561252057630701090160e01b8752600487fd5b879691929394959651918151303b1561064f576040519363772d940560e11b8552600485015260248401525f8360448183305af1928315610f405789936125675750611ed8565b61257391505f90611809565b5f5f6124ce565b63034e38cb60e21b5f5260045ffd5b906001855103611ecb57906101806003910151066125a8578690611ecb565b63ecfbd8cf60e01b5f5260045ffd5b6301de42a960e41b5f5260045ffd5b8181106125d1575050565b5f81556001016125c6565b80545f8255806125ea575050565b6125fd915f5260205f20908101906125c6565b565b8054821015611475575f5260205f2001905f90565b8054600160401b81101561182a57612631916001820181556125ff565b8154905f199060031b1b19169055565b8054600160401b81101561182a5761265e916001820181556125ff565b819291549060031b91821b915f19901b1916179055565b9061267f82611cac565b600160ff601b83015460201c16151514612aa55762015180820462010bd981019062010bd982125f82129080158216911516176116bc576226496501905f62253d8c831291129080158216911516176116bc578060021b6004810582036116bc5762023ab19005908162023ab1029062023ab1820583036116bc5760038201915f6003841291129080158216911516176116bc576004612720920590614206565b9060018201600181125f84129080158216911516176116bc5780610fa00290610fa08205036116bc5762164b09612765910592600461275e856141f3565b0590614206565b91601f8301925f601f851291129080158216911516176116bc57826050026050810584036116bc5761098f9005928361098f029061098f820585036116bc5760506127b1920590614206565b92600b81059060028101905f6002831291129080158216911516176116bc5781600c02600c810583036116bc576127e791614206565b9260301981019081136001166116bc57806064029060648205036116bc5761281792612812916141d8565b6141d8565b602584019160ff8354166003811015611b4d5780612a855750600c600d86015404935b5f9483601d88019461284b866125dc565b602189019788545f8a5580612a65575b505f5b8481106128a757505050505050505050509181604092600b7f6d7086ab13fbd1583240e1b6e62b23416e3945f952373732fc183a2a407e462d95015582519182526020820152a1565b60ff8954166003811015611b4d57600281036129bb575090918161298257509050600c850661297b57600182018083116116bc57905b600186018087116116bc57600c9006908115612972575b612908612902878486613582565b89612641565b5f1985018581116116bc57811461295d575b895490600160401b82101561182a5760018201808c55821015611475576001918b5f5260205f208160051c019060ff60f883549260031b161b191690550161285e565b612968868385613582565b600c8c015561291a565b600c91506128f4565b81906128dd565b600c83066129b557600181018091116116bc57915b600181018091116116bc57600c900690816128f457600c91506128f4565b91612997565b60018103612a3f57509081612a0557509050600a85106129fe57600182018083116116bc57905b600386018087116116bc57600c9006908115612972575b6128f4565b81906129e2565b600a811015612a2d575b600381018091116116bc57600c900690816129f957600c91506128f4565b91600181018091116116bc5791612a0f565b6128f4579182612a54575050819085906128f4565b600181018091116116bc57916128f4565b612a7f908a5f52601f60205f20910160051c8101906125c6565b5f61285b565b600103612a9a576003600d860154049361283a565b600d8501549361283a565b636f65570160e11b5f5260045ffd5b90602082549182815201915f5260205f20905f5b818110612ad55750505090565b8254845260209093019260019283019201612ac8565b612af481611cac565b90600160ff601b84015460201c16151514612aa5575f600583015460ff6025850154166003811015611b4d578061347f5750600c600d85015404915b612b3c601c86016125dc565b612b48601e86016125dc565b612b54601f86016125dc565b612b60602086016125dc565b612b6c601f8601612614565b612b7d600586015460208701612641565b612b89601c8601612614565b612b95601e8601612614565b600585015460168601555f905b838210612cbd5750505050612c8f612c88917f2f3e3b3aaadf1f165fa7d634278fa8ee54a0548dbf8fc62a1d301da8f6aa6298604060088601548151908482526020820152a17f1cd0ec0194cd0b5111bf7154d1801ab3549a822fcff5ac188bcaa7f310aa11de601d85019160405190815260c0602082015280612c79612c68612c57612c46612c3560c0860189612ab4565b858103604087015260208c01612ab4565b8481036060860152601f8b01612ab4565b8381036080850152601c8a01612ab4565b82810360a0840152601e8901612ab4565b0390a160405192838092612ab4565b0382611809565b91601e612cba604051612ca981612c8881601c8901612ab4565b93612c886040518094819301612ab4565b90565b602586015491600660ff8460101c1610159182611b4d5760ff8460101c16155f146132ff57505f925b612cf48560088a0154614143565b90670de0b6b3a7640000820291808304670de0b6b3a764000014901517156116bc578160098a0154670de0b6b3a764000003670de0b6b3a764000081116116bc57612d3e91614143565b93611b4d5760ff8160101c16155f14612dd55750855f198101116116bc57600192612dab91612d94905f198901851015612db757612d7e601f8c01612614565b612d8b8860208d01612641565b601c8b01612641565b612da181601e8b01612641565b6016890154611b09565b60168801550190612ba2565b612dc360208c01612614565b612dd088601f8d01612641565b612d8b565b91949091601081901c60ff16600203612e7d575084612e3757600192612d9460209693612dd084612e2e8d612e25670de0b6b3a7640000612e1d612dab9a600a850154614143565b048094611afc565b9b8c9101612641565b601f8d01612641565b9390855f198101116116bc57600192612dab91612d94905f1989018503612e6457612dc360208c01612614565b612e718860208d01612641565b612dd0601f8c01612614565b91949093929091601081901c60ff16600103612f145750909192855f198101116116bc57875f198701841015612edd575060019291612d94612ec286612dab94611afc565b96612ed08860208d01612641565b612dd087601f8d01612641565b91612d94612dab9296612dd0612f0487602088612efe8260019c9b01612614565b016125ff565b90549060031b1c601f8d01612641565b600360ff8260101c16145f14613038575090919260ff60258901541660038110159081611b4d5780159182613025575b8215613000575b8215612fdb575b505015612fc357855f198101116116bc57875f198701841015612f9f575060019291612d94612f8486612dab94611afc565b96612f9287601f8d01612641565b612dd08860208d01612641565b94612dab915091612d948493612dd0612f0460019760205f9b612efe828201612614565b9360019291612d94612dab92612f92601f8c01612614565b909150611b4d5760021480612ff2575b5f80612f52565b50600e880154831015612feb565b505f91506001811480613014575b91612f4b565b506003600e8b01540485101561300e565b9150600c600e8b01540485101591612f44565b600460ff8260101c16145f14613120575090919260ff60258901541660038110159081611b4d578015918261310d575b82156130e8575b82156130c3575b5050156130a857855f198101116116bc57875f198701841015612f9f575060019291612d94612f8486612dab94611afc565b935050600190612dab5f612d945f91612f92601f8c01612614565b909150611b4d57600214806130da575b5f80613076565b50600f8801548310156130d3565b505f915060018114806130fc575b9161306f565b506003600f8b0154048510156130f6565b9150600c600f8b01540485101591613068565b600560ff8260101c1614613141575b50612dab90612d946001949596612d8b565b600360ff82969395961610159081611b4d5760ff81161591826132ec575b82156132c4575b821561329c575b505015613282575f1986018681116116bc57849083101561324d5761319191611afc565b9361319f84601f8a01612641565b6131ac8560208a01612641565b60ff60258901541692600384101580611b4d578415908161323b575b8115613218575b81156131f3575b50600194506131e9575b9094939261312f565b505f9050806131e0565b9050611b4d576002600194148061320b575b5f6131d6565b50600f8901548310613205565b50505f600185148061322b575b906131cf565b506003600f8b0154048410613225565b9050600c600f8b0154048410906131c8565b50505f9361325d60208901612614565b61327d61326d8360208b016125ff565b90549060031b1c601f8a01612641565b6131ac565b9361328f601f8901612614565b61327d8560208a01612641565b909150611b4d5760ff16600214806132b6575b5f8061316d565b50600e8801548210156132af565b505f915060ff8116600114806132db575b91613166565b506003600e8b0154048410156132d5565b9150600c600e8b0154048410159161315f565b5f9250601084901c60ff166001036133305750670de0b6b3a76400006133298660058a01546136df565b0492612ce6565b91505f91600360ff8560101c1614801561346b575b156133d35750600360ff84161015611b4d5760ff831661338757670de0b6b3a76400006133296005890154613381600c600e8c01540489611afc565b906136df565b60ff83166001036133b457670de0b6b3a764000061332960058901546133816003600e8c01540489611afc565b670de0b6b3a76400006133296005890154613381600e8b015489611afc565b9282611b4d57600460ff8260101c1603612ce6579250600360ff84161015611b4d5760ff831661341f57670de0b6b3a76400006133296005890154613381600c600f8c01540489611afc565b60ff831660010361344c57670de0b6b3a764000061332960058901546133816003600f8c01540489611afc565b670de0b6b3a76400006133296005890154613381600f8b015489611afc565b5091505f91600560ff8560101c1614613345565b600103613494576003600d8501540491612b30565b600d84015491612b30565b801580156134bd5750506134b957670de0b6b3a764000090565b5f90565b670de0b6b3a7640000821461357357826134e057505050670de0b6b3a764000090565b670de0b6b3a7640000831461356d57670de0b6b3a764000082111561351a5750612cba916135106135159261379e565b614143565b6138a3565b6135595761353f91613510613515926ec097ce7bc90715b34b9f10000000000461379e565b8015613559576ec097ce7bc90715b34b9f10000000000490565b634e487b7160e01b5f52601260045260245ffd5b50905090565b505050670de0b6b3a764000090565b906107b2821061369b57600d1981016001828213166116bc57600c9005916112c08101905f6112c0831291129080158216911516176116bc57826135c5916141d8565b9160011982019182136001166116bc57600c810290808205600c14901517156116bc576135f191614206565b916135fb826141f3565b918361016f029361016f8505036116bc5760648101905f6064831291129080158216911516176116bc576064900591826003029260038405036116bc57617d4a1982019182136001166116bc5761367093600c613660600494856136689505906141d8565b9105906141d8565b910590614206565b62253d8b1981019081136001166116bc57620151808102908082046201518014901517156116bc5790565b606460405162461bcd60e51b815260206004820152602060248201527f596561722063616e6e6f74206265206561726c696572207468616e20313937306044820152fd5b5f19670de0b6b3a7640000820991670de0b6b3a7640000820291828085109403938085039414613791578184101561377057670de0b6b3a7640000829109600182190182168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b630c740aef60e31b5f52600452670de0b6b3a764000060245260445260645ffd5b5091508115613559570490565b670de0b6b3a7640000811061389157670de0b6b3a764000081046fffffffffffffffffffffffffffffffff811160071b90811c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c11961717171717171790670de0b6b3a76400008202911c670de0b6b3a7640000811461388d576706f05b59d3b2000090815b61385657505090565b80670de0b6b3a764000091020490671bc16d674ec8000082101561387f575b60011c908161384d565b809192019160011c90613875565b5090565b63036d32ef60e41b5f5260045260245ffd5b680a688906bd8affffff811161413157670de0b6b3a76400009060401b04600160bf1b67ff000000000000008216614008575b670de0b6b3a76400009066ff0000000000008316613ef8575b65ff00000000008316613df0575b64ff000000008316613cf0575b63ff0000008316613bf8575b62ff00008316613b08575b61ff008316613a20575b60ff8316613940575b029060401c60bf031c90565b60808316613a0d575b604083166139fa575b602083166139e7575b601083166139d4575b600883166139c1575b600483166139ae575b6002831661399b575b600183161561393457680100000000000000010260401c613934565b680100000000000000010260401c61397f565b680100000000000000030260401c613976565b680100000000000000060260401c61396d565b6801000000000000000b0260401c613964565b680100000000000000160260401c61395b565b6801000000000000002c0260401c613952565b680100000000000000590260401c613949565b6180008316613af5575b6140008316613ae2575b6120008316613acf575b6110008316613abc575b6108008316613aa9575b6104008316613a96575b6102008316613a83575b61010083161561392b57680100000000000000b10260401c61392b565b680100000000000001630260401c613a66565b680100000000000002c60260401c613a5c565b6801000000000000058c0260401c613a52565b68010000000000000b170260401c613a48565b6801000000000000162e0260401c613a3e565b68010000000000002c5d0260401c613a34565b680100000000000058b90260401c613a2a565b628000008316613be5575b624000008316613bd2575b622000008316613bbf575b621000008316613bac575b620800008316613b99575b620400008316613b86575b620200008316613b73575b62010000831615613921576801000000000000b1720260401c613921565b680100000000000162e40260401c613b55565b6801000000000002c5c80260401c613b4a565b68010000000000058b910260401c613b3f565b680100000000000b17210260401c613b34565b68010000000000162e430260401c613b29565b680100000000002c5c860260401c613b1e565b6801000000000058b90c0260401c613b13565b63800000008316613cdd575b63400000008316613cca575b63200000008316613cb7575b63100000008316613ca4575b63080000008316613c91575b63040000008316613c7e575b63020000008316613c6b575b63010000008316156139165768010000000000b172180260401c613916565b6801000000000162e4300260401c613c4c565b68010000000002c5c8600260401c613c40565b680100000000058b90c00260401c613c34565b6801000000000b17217f0260401c613c28565b680100000000162e42ff0260401c613c1c565b6801000000002c5c85fe0260401c613c10565b68010000000058b90bfc0260401c613c04565b6480000000008316613ddd575b6440000000008316613dca575b6420000000008316613db7575b6410000000008316613da4575b6408000000008316613d91575b6404000000008316613d7e575b6402000000008316613d6b575b64010000000083161561390a57680100000000b17217f80260401c61390a565b68010000000162e42ff10260401c613d4b565b680100000002c5c85fe30260401c613d3e565b6801000000058b90bfce0260401c613d31565b68010000000b17217fbb0260401c613d24565b6801000000162e42fff00260401c613d17565b68010000002c5c8601cc0260401c613d0a565b680100000058b90c0b490260401c613cfd565b658000000000008316613ee5575b654000000000008316613ed2575b652000000000008316613ebf575b651000000000008316613eac575b650800000000008316613e99575b650400000000008316613e86575b650200000000008316613e73575b650100000000008316156138fd576801000000b1721835510260401c6138fd565b680100000162e430e5a20260401c613e52565b6801000002c5c863b73f0260401c613e44565b68010000058b90cf1e6e0260401c613e36565b680100000b1721bcfc9a0260401c613e28565b68010000162e43f4f8310260401c613e1a565b680100002c5c89d5ec6d0260401c613e0c565b6801000058b91b5bc9ae0260401c613dfe565b66800000000000008316613ff5575b6