From 5e6e14ccde214e49b9673a567df6d8d1d4d94ef2 Mon Sep 17 00:00:00 2001 From: D Date: Wed, 7 Aug 2024 19:03:27 +0500 Subject: [PATCH] contract types --- src/config.ts | 2 +- .../factories/contracts/Bridge__factory.ts | 319 ++++++++++++++---- 2 files changed, 261 insertions(+), 60 deletions(-) diff --git a/src/config.ts b/src/config.ts index 571d4a4..87963c7 100644 --- a/src/config.ts +++ b/src/config.ts @@ -117,7 +117,7 @@ export const prodBridgeConfig: IBridgeConfig = { intialFund: "50000000000000000", contractAddress: "0xE0ea24108ec2754467D2c1D9320Cb6A16276478f", chainType: "evm", - lastBlock: 41125140, + lastBlock: 41156199, decimals: 18, blockChunks: 1000, }, diff --git a/src/contractsTypes/evm/factories/contracts/Bridge__factory.ts b/src/contractsTypes/evm/factories/contracts/Bridge__factory.ts index 6dc8f8c..d368334 100644 --- a/src/contractsTypes/evm/factories/contracts/Bridge__factory.ts +++ b/src/contractsTypes/evm/factories/contracts/Bridge__factory.ts @@ -7,46 +7,26 @@ import { ContractTransactionResponse, Interface, } from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; import type { NonPayableOverrides } from "../../common"; import type { Bridge, BridgeInterface } from "../../contracts/Bridge"; const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, { inputs: [ - { - internalType: "address[]", - name: "_validators", - type: "address[]", - }, - { - internalType: "string", - name: "_chainType", - type: "string", - }, { internalType: "address", - name: "_collectionDeployer", - type: "address", - }, - { - internalType: "address", - name: "_storageDeployer", - type: "address", - }, - { - internalType: "address", - name: "_collectionOwner", + name: "target", type: "address", }, ], - stateMutability: "nonpayable", - type: "constructor", + name: "AddressEmptyCode", + type: "error", }, { inputs: [], @@ -75,6 +55,53 @@ const _abi = [ name: "ECDSAInvalidSignatureS", type: "error", }, + { + inputs: [ + { + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "ERC1967InvalidImplementation", + type: "error", + }, + { + inputs: [], + name: "ERC1967NonPayable", + type: "error", + }, + { + inputs: [], + name: "FailedInnerCall", + type: "error", + }, + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + inputs: [], + name: "UUPSUnauthorizedCallContext", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "slot", + type: "bytes32", + }, + ], + name: "UUPSUnsupportedProxiableUUID", + type: "error", + }, { anonymous: false, inputs: [ @@ -181,6 +208,19 @@ const _abi = [ name: "Claimed721", type: "event", }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, { anonymous: false, inputs: [ @@ -226,6 +266,12 @@ const _abi = [ name: "sourceChain", type: "string", }, + { + indexed: false, + internalType: "string", + name: "metaDataUri", + type: "string", + }, ], name: "Locked", type: "event", @@ -318,6 +364,45 @@ const _abi = [ name: "UnLock721", type: "event", }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "implementation", + type: "address", + }, + ], + name: "Upgraded", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "_contractAddress", + type: "address", + }, + ], + name: "UpgradedContract", + type: "event", + }, + { + inputs: [], + name: "UPGRADE_INTERFACE_VERSION", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -690,6 +775,39 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "address[]", + name: "_validators", + type: "address[]", + }, + { + internalType: "string", + name: "_chainType", + type: "string", + }, + { + internalType: "address", + name: "_collectionDeployer", + type: "address", + }, + { + internalType: "address", + name: "_storageDeployer", + type: "address", + }, + { + internalType: "address", + name: "_collectionOwner", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [ { @@ -717,6 +835,11 @@ const _abi = [ name: "tokenAmount", type: "uint256", }, + { + internalType: "string", + name: "metaDataUri", + type: "string", + }, ], name: "lock1155", outputs: [], @@ -745,6 +868,11 @@ const _abi = [ name: "sourceNftContractAddress", type: "address", }, + { + internalType: "string", + name: "metaDataUri", + type: "string", + }, ], name: "lock721", outputs: [], @@ -828,6 +956,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "proxiableUUID", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [], name: "selfChain", @@ -873,6 +1014,92 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "uniqueImplementations", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "signerAddress", + type: "string", + }, + { + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + internalType: "struct SignerAndSignature[]", + name: "signatures", + type: "tuple[]", + }, + ], + name: "upgrade", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newImplementation", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "upgradeToAndCall", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "upgradeables", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -917,7 +1144,7 @@ const _abi = [ ] as const; const _bytecode = - "0x6080604090808252346200046f57600090620041df80380380916200002582856200049e565b833981019260a0828503126200046b5781516001600160401b0391908281116200046757830191601f9580878501121562000463578351966020928089116200044f5760059589871b86519a6200007f8783018d6200049e565b8b5285808c019183010191858311620003b85786809101915b8383106200043457509150508701518181116200043057870191838184011215620004305782518281116200041c57601f1993875195620000e088878686011601886200049e565b828752878383010111620003b8578a918791835b82811062000404575050860101526200010f868901620004c2565b936200012c60806200012460608c01620004c2565b9a01620004c2565b938a8955600d948b620001408754620004d7565b858a818311620003e4575b50506000885550506001600160a01b039687169a87906200016e8d15156200052d565b169a6200017d8c15156200052d565b60018060a01b03199b818d600354161760035560049c8d5416178c55803b15620003e0578951630a669ef360e21b8152918816828d01523060248301528c908290604490829084905af18015620003bc57620003ca575b50858a5416803b15620003c65788516313af403560e01b815230818d0152908c908290602490829084905af18015620003bc57908c91620003a0575b505081519384116200038d57908392916200022c8654620004d7565b83811162000351575b5087928411600114620002ee57508a92620002e2575b50508160011b916000199060031b1c19161790555b855b8751811015620002d357818382871b8a0101511687528683528387206001908160ff198254161790558554908101809111620002c05785556000198114620002ad5760010162000262565b634e487b7160e01b875260118652602487fd5b634e487b7160e01b885260118752602488fd5b8351613c6490816200057b8239f35b0151905038806200024b565b858c52878c2093168b5b888282106200033a57505090846001959493921062000320575b505050811b01905562000260565b015160001960f88460031b161c1916905538808062000312565b6001859682939686015181550195019301620002f8565b6200037c908760005289600020858d818901901c8201928c891062000383575b018d1c019062000514565b3862000235565b9250819262000371565b634e487b7160e01b8b5260418a5260248bfd5b620003ab9062000474565b620003b8578a3862000210565b8a80fd5b89513d8e823e3d90fd5b8b80fd5b620003d8909b919b62000474565b9938620001d4565b8c80fd5b838a620003fa95522091018c1c81019062000514565b8b38858a6200014b565b8181018401518982018501528d9450899301620000f4565b634e487b7160e01b8a52604160045260248afd5b8880fd5b81906200044184620004c2565b815201910190869062000098565b634e487b7160e01b88526041600452602488fd5b8580fd5b8480fd5b8280fd5b600080fd5b6001600160401b0381116200048857604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b038211908210176200048857604052565b51906001600160a01b03821682036200046f57565b90600182811c9216801562000509575b6020831014620004f357565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004e7565b81811062000520575050565b6000815560010162000514565b156200053557565b60405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e6e6f74206265207a65726f206164647265737321006044820152606490fdfe6080604052600436101561001b575b361561001957600080fd5b005b600060e08135811c9081630526ddb1146123c1578163064f21fa146123855781631f78b5b91461233c5781633a7dc806146121955781633d73a08d1461214c5781633f45a726146120cb57816350d16d9814611f16578163538e0a1314611ed75781635dbdf50c14611e8e578163697937be14611ad45781636a98ea6114611aab5781637fa5a35014611a7c57816385fbfcbe14611988578163a543de4014611935578163a813761f14611486578163c744080214610b17578163ca5d62b114610aee578163ca6e55da1461016d57508063ed612f8c1461014f5763fa52c7d814610106575061000e565b3461014c57602036600319011261014c5760409081906001600160a01b0361012c612798565b1681528060205220600160ff825416910154825191151582526020820152f35b80fd5b503461014c578060031936011261014c576020600554604051908152f35b90506003196040368201126107b7576001600160401b03600435116107b7576101e090600435360301126107b7576040516101a78161246f565b600435600401358152602460043501356001600160401b0381116107b7576101d690600436918135010161268b565b6020820152604460043501356001600160401b0381116107b75761020190600436918135010161268b565b60408201526102146064600435016127c4565b6060820152608460043501356001600160401b0381116107b75761023f90600436918135010161268b565b608082015260a460043501356001600160401b0381116107b75761026a90600436918135010161268b565b60a082015260c460043501356001600160401b0381116107b75761029590600436918135010161268b565b60c082015260e46004350135828201526102b4610104600435016127c4565b61010082015261012460043501356001600160401b0381116107b7576102e190600436918135010161268b565b61012082015261014460043501356001600160401b0381116107b75761030e90600436918135010161268b565b61014082015261016460043501356101608201526001600160401b036101846004350135116107b75761034c3660048035610184810135010161268b565b6101808201526004356101a48101356101a08301526101c401356001600160401b0381116107b75761038590600436918135010161268b565b6101c08201526001600160401b03602435116107b7573660236024350112156107b757602435600401356103b8816127d8565b906103c660405192836124c1565b80825260208201903660248260051b81350101116107b7576024803501915b60248260051b813501018310610aba57505050610506610511916104106101a0850151341015612c7e565b6104716040850151604051610442602082816104358183019687815193849201612643565b81010380845201826124c1565b51902060405160208101906104688161045a84612a85565b03601f1981018352826124c1565b51902014612cca565b6104c8610180850151604051610497602082816104358183019687815193849201612643565b5190206104a2612c5a565b6040516104bf602082816104358183019687815193849201612643565b51902014612d16565b6104d184613809565b80875260016020526104ea60ff60408920541615612d56565b808752600160205260408720600160ff1982541617905561362f565b6101a083015161353b565b602061053461052f6105266080850151612727565b8385015161274d565b612b14565b01916105508351604051906105488261248b565b868252612c12565b1584811580610a7557610573602087518160405193828580945193849201612643565b8101600b81520301902060405161058981612a85565b918252908190036020019020546001600160a01b0316925b6001600160a01b038416158015918080610a6e575b156107c4575050955161060f96506001600160a01b0391506105d7906130b0565b8551604051627eeac760e11b81526001600160a01b038616600482015260248101919091529691169390602090879081906044820190565b0381875afa958615610779578296610788575b50610160850151958681106106ad57505050606083015183516101608501517f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe965061067b9390929091906001600160a01b03166134b0565b6106a76101c08301519160208401519361014081015191610160825192015192604051968796876133cd565b0390a180f35b6106bd816106d693949698612a14565b60608701518751919591906001600160a01b03166134b0565b60608401518451918501516101008601516101208701516001600160a01b0391821694939091169190883b15610784578694610727926040519788968796632a1b1ec960e21b885260048801613393565b038183885af1801561077957610761575b50507f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe9161067b565b61076a9061242b565b610775578238610738565b8280fd5b6040513d84823e3d90fd5b8680fd5b915094506020813d6020116107bc575b816107a5602093836124c1565b810103126107b7578590519438610622565b600080fd5b3d9150610798565b80989594969890610a67575b156108bb57505091516001600160a01b0392506107ed91506130b0565b169260018060a01b036060840151168351610160850151928501519160018060a01b036101008701511692610120870151883b15610784578694610846926040519788968796632a1b1ec960e21b885260048801613393565b038183885af18015610779576108a7575b50507f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe916106a76101c08301519160208401519361014081015191610160825192015192604051968796876133cd565b6108b09061242b565b610775578238610857565b909294508180945091610a5f575b5015610a2a5750506003546040516379d9a0f760e11b8152859250906020908290600490829086906001600160a01b03165af19081156107795782916109fb575b506001600160a01b03169261095c61092185613ac3565b6040519061092e82612454565b6109366124e2565b8252602082015261095761094d6080870151612727565b602087015161274d565b612e80565b6109a5602084015160808501516040519161097683612454565b825260208201528584526007602052604084206020604051809261099982612a85565b90815203019020612e80565b60608301518351610160850151928501516101008601516101208701516001600160a01b03918216949091169190883b15610784578694610846926040519788968796632a1b1ec960e21b885260048801613393565b610a1d915060203d602011610a23575b610a1581836124c1565b810190612dde565b3861090a565b503d610a0b565b91939181610a57575b5015610a525761060f928460018060a01b036105d760808601516130b0565b612da2565b905038610a33565b9050386108c9565b50806107d0565b50826105b6565b6080850151610ab26020610a926040519384815193849201612643565b8201916009835260208160018060a01b039403019020602088015161274d565b5416926105a1565b8235906001600160401b0382116107b75760208091610ae16024948536918135010161268b565b81520193019290506103e5565b823461014c578060031936011261014c576003546040516001600160a01b039091168152602090f35b9050600319604036820112610775576001600160401b0360043511610775576101e090600435360301126114825760405190610b528261246f565b600435600401358252602460043501356001600160401b03811161147e57610b8190600436918135010161268b565b6020830152604460043501356001600160401b03811161147e57610bac90600436918135010161268b565b6040830152610bbf6064600435016127c4565b6060830152608460043501356001600160401b03811161147e57610bea90600436918135010161268b565b608083015260a460043501356001600160401b03811161147e57610c1590600436918135010161268b565b60a083015260c460043501356001600160401b03811161147e57610c4090600436918135010161268b565b60c083015260e4600435013581830152610c5f610104600435016127c4565b61010083015261012460043501356001600160401b03811161147e57610c8c90600436918135010161268b565b6101208301526001600160401b0361014460043501351161077557610cbc3660048035610144810135010161268b565b61014083015261016460043501356101608301526001600160401b0361018460043501351161077557610cfa3660048035610184810135010161268b565b6101808301526101a460043501356101a08301526001600160401b036101c460043501351161077557610d3836600480356101c4810135010161268b565b6101c08301526001600160401b0360243511610775573660236024350112156107755760243560040135610d6b816127d8565b90610d7960405192836124c1565b80825260208201903660248260051b8135010111610ffe576024803501915b60248260051b81350101831061144c57505050610e22610e2d91610dc36101a0860151341015612c7e565b610de86040860151604051610442602082816104358183019687815193849201612643565b610e19610180860151604051610e0e602082816104358183019687815193849201612643565b5190206104a2612b40565b6104d185613809565b6101a084015161353b565b6020610e4b61052f610e426080860151612727565b8386015161274d565b0183610e67825160405190610e5f8261248b565b838252612c12565b1591821561140757610e89602082518160405193828580945193849201612643565b8101600a815203019020604051610e9f81612a85565b918252908190036020019020546001600160a01b0316925b80806113f5575b1561102b5750516001600160a01b0390610ed7906130b0565b1692818551604051906331a9108f60e11b82526004820152602081602481878a5af184918161100a575b50611002575b506001600160a01b0390811690841603610f6f57505060608301518351600080516020613bef8339815191529492610f4a929091906001600160a01b031661341f565b6106a76101c08201519160208101519361014082015191519160405195869586612e2f565b6060850151855191860151610100870151610120880151949550909392916001600160a01b039081169116863b15610ffe578593610fc2916040519687958695634bd297fd60e01b875260048701612dfd565b038183875af1801561077957610fea575b5050600080516020613bef83398151915291610f4a565b610ff39061242b565b610775578238610fd3565b8580fd5b905038610f07565b61102491925060203d602011610a2357610a1581836124c1565b9038610f01565b9192909180806113e4575b15611101575050516001600160a01b0390611050906130b0565b60608501518551948601516101008701516101208801519390941695909390916001600160a01b039081169116863b15610ffe5785936110a5916040519687958695634bd297fd60e01b875260048701612dfd565b038183875af18015610779576110ed575b5050816106a76101c0600080516020613bef8339815191529401519160208101519361014082015191519160405195869586612e2f565b6110f69061242b565b6107755782386110b6565b91509150801581156113d3575b1561126057505060035460a083015160c084015160405163179e23fb60e31b81528693909260209284926001600160a01b0316918391879183916111559160048401612773565b03925af1908115610779578291611241575b506001600160a01b0316916111b461117e84613ac3565b6040519061118b82612454565b6111936124e2565b825260208201526109576111aa6080880151612727565b602088015161274d565b6111f160208501516080860151604051916111ce83612454565b825260208201528484526007602052604084206020604051809261099982612a85565b6060840151845191850151610100860151610120870151919391926001600160a01b039081169116863b15610ffe5785936110a5916040519687958695634bd297fd60e01b875260048701612dfd565b61125a915060203d602011610a2357610a1581836124c1565b38611167565b92939215806113c1575b15610a525760808401516001600160a01b0390611286906130b0565b16918451604051906331a9108f60e11b8252600482015260208160248188885af19081156113b6578591611397575b506001600160a01b03908116908316036112f4575092610f4a600080516020613bef833981519152939460018060a01b0360608401511683519061341f565b60608501518551918601516101008701516101208801519194506001600160a01b039283169216853b156107845786939291611345916040519687958695634bd297fd60e01b875260048701612dfd565b038183865af1801561138c5761136d575b50600080516020613bef8339815191529192610f4a565b91611386600080516020613bef8339815191529361242b565b91611356565b6040513d85823e3d90fd5b6113b0915060203d602011610a2357610a1581836124c1565b386112b5565b6040513d87823e3d90fd5b506001600160a01b038116151561126a565b506001600160a01b0382161561110e565b506001600160a01b03821615611036565b506001600160a01b0384161515610ebe565b608085015161144460206114246040519384815193849201612643565b8201916008835260208160018060a01b039403019020602088015161274d565b541692610eb7565b6001600160401b0383351161078457602080602492611471368588358135010161268b565b8152019301929050610d98565b8380fd5b5080fd5b9050346114825760a0366003190112611482576001600160401b0390600435602435838111611931576114bd90369060040161268b565b92604435908111611931576114d690369060040161268b565b6114de6127ae565b936001600160a01b03938486169160843591906114fc841515612a21565b82156118ed57838952886020976007895261152f604083208a604051809261152382612a85565b90815203019020612b14565b8981016115448151604051906105488261248b565b1561171b5750508061156c8a6115598d613ac3565b8160405193828580945193849201612643565b810160098152030190208a604051809261158582612a85565b9081520301902054168015611684575b863b156107755760c490836040519889948593637921219560e11b85523360048601521660248401528b604484015288606484015260a060848401528160a48401525af19081156116795761163c6106a79661162e611610600080516020613c0f8339815191529c61165d9961164a9761166a575b50613ac3565b93611619612c5a565b96806040519d8e9d8e528d01528b0190612666565b9089820360408b0152612666565b908782036060890152612666565b91608086015284820360a0860152612666565b82810360c0840152612b64565b6116739061242b565b3861160a565b6040513d8b823e3d90fd5b50818982600454166024604051809481936399a7ce6d60e01b83528c60048401525af1801561138c578b9184916116fe575b50826116c68c6115598495613ac3565b810160098152030190208c60405180926116df82612a85565b9081520301902091166001600160601b0360a01b825416179055611595565b61171591508b3d8d11610a2357610a1581836124c1565b386116b6565b929190939594969a816117318c61155984613ac3565b8101600b8152030190208c604051809261174a82612a85565b908152030190205416908115611848575b508b3b156107755760c490836040519d8e948593637921219560e11b85523360048601521660248401528c604484015288606484015260a060848401528160a48401525af193841561183d576117ff6106a7976117f161180d94600080516020613c0f8339815191529d6118209961182e575b5051936117d9612c5a565b965199806040519e8f9e8f90815201528c0190612666565b908a820360408c0152612666565b9088820360608a0152612666565b91608087015285820360a0870152612666565b9083820360c0850152612666565b6118379061242b565b386117ce565b6040513d8c823e3d90fd5b9050828b8d602485600454169160405194859384926399a7ce6d60e01b845260048401525af19081156118e25784916118c5575b508261188c8d6115598495613ac3565b8101600b8152030190208d60405180926118a582612a85565b9081520301902091166001600160601b0360a01b8254161790553861175b565b6118dc91508c8d3d10610a2357610a1581836124c1565b3861187c565b6040513d86823e3d90fd5b606460405162461bcd60e51b815260206004820152602060248201527f746f6b656e20616d6f756e74206d757374206265203e207468616e207a65726f6044820152fd5b8480fd5b823461014c57602061197e611949366126e1565b836119606040949394519485815193849201612643565b600a90840190815283900384019092206001600160a01b039261274d565b5416604051908152f35b823461014c57602036600319011261014c576001600160a01b036119aa612798565b166119b68115156128eb565b80825281602052600160ff604084205416151503611a375781808080937fc4b044d89af9405903f78d1ff2a194cc7f65b0d821544faddfc65f7800aa9a9e6020604051838152a18082528160205260016040832001908282549255828215611a2e575bf115611a225780f35b604051903d90823e3d90fd5b506108fc611a19565b60405162461bcd60e51b815260206004820152601960248201527f56616c696461746f7220646f6573206e6f7420657869737421000000000000006044820152606490fd5b823461014c57602036600319011261014c5760ff60406020926004358152600184522054166040519015158152f35b823461014c578060031936011261014c576004546040516001600160a01b039091168152602090f35b905034611482576080366003190112611482576001600160401b039060043560243583811161193157611b0b90369060040161268b565b9260443590811161193157611b2490369060040161268b565b611b2c6127ae565b936001600160a01b039384861691611b45831515612a21565b8288528760209660078852611b666040832089604051809261152382612a85565b888101611b7b8151604051906105488261248b565b15611d1057505080611b90896115598c613ac3565b81016008815203019020896040518092611ba982612a85565b9081520301902054168015611c7a575b853b1561077557606490836040519788948593632142170760e11b85523360048601521660248401528a60448401525af1908115611c6f57611c4c6106a795611c3e611c20600080516020613c0f8339815191529b61165d98611c5a9761166a5750613ac3565b93611c29612b40565b96806040519c8d9c8d528c01528a0190612666565b9088820360408a0152612666565b908682036060880152612666565b906001608086015284820360a0860152612666565b6040513d8a823e3d90fd5b50818882600454166024604051809481936223abb760e71b83528b60048401525af1801561138c578a918491611cf3575b5082611cbb8b6115598495613ac3565b810160088152030190208b6040518092611cd482612a85565b9081520301902091166001600160601b0360a01b825416179055611bb9565b611d0a91508a3d8c11610a2357610a1581836124c1565b38611cab565b9291909394959981611d258b61155984613ac3565b8101600a8152030190208b6040518092611d3e82612a85565b908152030190205416908115611df5575b508a3b1561077557606490836040519c8d948593632142170760e11b85523360048601521660248401528b60448401525af19283156116795761163c6106a79661162e611dd194600080516020613c0f8339815191529c61182098611de6575b505193611dba612b40565b965198806040519d8e9d8e528d01528b0190612666565b906001608087015285820360a0870152612666565b611def9061242b565b38611daf565b9050828a8c602485600454169160405194859384926223abb760e71b845260048401525af19081156118e2578491611e71575b5082611e388c6115598495613ac3565b8101600a8152030190208c6040518092611e5182612a85565b9081520301902091166001600160601b0360a01b82541617905538611d4f565b611e8891508b3d8d11610a2357610a1581836124c1565b38611e28565b823461014c57602061197e611ea2366126e1565b83611eb96040949394519485815193849201612643565b600b90840190815283900384019092206001600160a01b039261274d565b823461014c57602036600319011261014c5760209060ff906040906001600160a01b03611f02612798565b168152600284522054166040519015158152f35b823461014c57611f25366127ef565b6001600160a01b0390911690611f3c8215156128eb565b611f4881511515612937565b81835260209083825260ff6040852054161561208d57611f68815161297b565b93805b8251811015611fa6578084611f83611fa193866129ea565b510151611f9082896129ea565b52611f9b81886129ea565b506129c5565b611f6b565b50939050604051828101908482526040808201526009606082015268189b1858dad31a5cdd60ba1b60808201526080815260a081018181106001600160401b0382111761207957604052519020611ffd919061362f565b507fdd8d4caef6bb86c181d1a6588c934686c698499ed5def3a14d4411ae3359f8f681604051848152a1818352828152604083209160ff1992838154169055600554600019810190811161206557600555835260029052604082208054909116600117905580f35b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526041600452602487fd5b60405162461bcd60e51b815260048101839052601660248201527515985b1a59185d1bdc881a5cc81b9bdd08185919195960521b6044820152606490fd5b823461014c57604036600319011261014c576120e5612798565b6024356001600160401b038111610775576121239261210a604092369060040161268b565b6001600160a01b0390931681526007602052209061274d565b6121386001612131836125a1565b92016125a1565b9061214860405192839283612773565b0390f35b823461014c57602061197e612160366126e1565b836121776040949394519485815193849201612643565b600890840190815283900384019092206001600160a01b039261274d565b823461014c576121a4366127ef565b919060018060a01b0316918282526020906002825260ff6040842054166122ff576121d08415156128eb565b6121dc81511515612937565b83835282825260ff6040842054166122ba576121f8815161297b565b92805b825181101561223057808461221361222b93866129ea565b51015161222082886129ea565b52611f9b81876129ea565b6121fb565b50808386612256876040518481019084825285815261224e81612454565b51902061362f565b507ff910fa450d85dbabdd71a7d3256547d80a4a2f84c8b7f6d088cae55c8ffdccb382604051838152a182525260408120600160ff19825416179055600554600181018091116122a65760055580f35b634e487b7160e01b82526011600452602482fd5b60405162461bcd60e51b815260048101839052601760248201527f56616c696461746f7220616c72656164792061646465640000000000000000006044820152606490fd5b60405162461bcd60e51b81526004810183905260156024820152741d985b1a59185d1bdc88189b1858dadb1a5cdd1959605a1b6044820152606490fd5b823461014c57602061197e612350366126e1565b836123676040949394519485815193849201612643565b600990840190815283900384019092206001600160a01b039261274d565b823461014c5761212360206123b161239c366126e1565b92908160405193828580945193849201612643565b810160068152030190209061274d565b823461014c578060031936011261014c576121486123dd6124e2565b604051918291602083526020830190612666565b90600182811c92168015612421575b602083101461240b57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612400565b6001600160401b03811161243e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761243e57604052565b6101e081019081106001600160401b0382111761243e57604052565b602081019081106001600160401b0382111761243e57604052565b606081019081106001600160401b0382111761243e57604052565b90601f801991011681019081106001600160401b0382111761243e57604052565b60405190600082600d54916124f6836123f1565b8083526020936001908181169081156125815750600114612522575b5050612520925003836124c1565b565b90939150600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5936000915b81831061256957505061252093508201013880612512565b85548884018501529485019487945091830191612551565b91505061252094925060ff191682840152151560051b8201013880612512565b906040519182600082546125b4816123f1565b90818452602094600191828116908160001461262157506001146125e2575b505050612520925003836124c1565b600090815285812095935091905b81831061260957505061252093508201013880806125d3565b855488840185015294850194879450918301916125f0565b9250505061252094925060ff191682840152151560051b8201013880806125d3565b60005b8381106126565750506000910152565b8181015183820152602001612646565b9060209161267f81518092818552858086019101612643565b601f01601f1916010190565b81601f820112156107b7578035906001600160401b03821161243e57604051926126bf601f8401601f1916602001856124c1565b828452602083830101116107b757816000926020809301838601378301015290565b9060406003198301126107b7576001600160401b036004358181116107b7578361270d9160040161268b565b926024359182116107b7576127249160040161268b565b90565b6020612740918160405193828580945193849201612643565b8101600681520301902090565b602090612767928260405194838680955193849201612643565b82019081520301902090565b909161278a61272493604084526040840190612666565b916020818403910152612666565b600435906001600160a01b03821682036107b757565b606435906001600160a01b03821682036107b757565b35906001600160a01b03821682036107b757565b6001600160401b03811161243e5760051b60200190565b906040806003198401126107b7576004356001600160a01b03811681036107b7579260248035906001600160401b03908183116107b757836023840112156107b757826004013590612840826127d8565b9561284d815197886124c1565b828752602095828789019460051b870101958187116107b757838101945b87861061287e5750505050505050505090565b85358781116107b7578201908460231983860301126107b7578451906128a382612454565b868301358981116107b75785886128bc9286010161268b565b82526044830135918983116107b7576128dc86898e96958796010161268b565b8382015281520195019461286b565b156128f257565b60405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e6e6f74206265207a65726f206164647265737321006044820152606490fd5b1561293e57565b60405162461bcd60e51b81526020600482015260156024820152744d7573742068617665207369676e6174757265732160581b6044820152606490fd5b90612985826127d8565b61299260405191826124c1565b82815280926129a3601f19916127d8565b019060005b8281106129b457505050565b8060606020809385010152016129a8565b60001981146129d45760010190565b634e487b7160e01b600052601160045260246000fd5b80518210156129fe5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919082039182116129d457565b15612a2857565b60405162461bcd60e51b815260206004820152602f60248201527f736f757263654e6674436f6e7472616374416464726573732063616e6e6f742060448201526e6265207a65726f206164647265737360881b6064820152608490fd5b600d5460009291612a95826123f1565b91600190818116908115612b015750600114612ab057505050565b9091929350600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5906000915b848310612aee575050500190565b8181602092548587015201920191612ae0565b60ff191683525050811515909102019150565b90604051612b2181612454565b6020612b3b60018395612b33816125a1565b8552016125a1565b910152565b60405190612b4d82612454565b600882526739b4b733bab630b960c11b6020830152565b600d5460009291612b74826123f1565b908181526020926001908181169081600014612bf55750600114612b99575b50505050565b9293945090600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592846000945b838610612be1575050505001019038808080612b93565b805485870183015294019385908201612bca565b60ff191685840152505090151560051b0101915038808080612b93565b9060405191602092612c338482816104358183019687815193849201612643565b51902091612c536040519182816104358183019687815193849201612643565b5190201490565b60405190612c6782612454565b60088252676d756c7469706c6560c01b6020830152565b15612c8557565b60405162461bcd60e51b815260206004820152601f60248201527f646174612e666565204c455353205448414e2073656e7420616d6f756e7421006044820152606490fd5b15612cd157565b60405162461bcd60e51b815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e20636861696e210000000000006044820152606490fd5b15612d1d57565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964204e465420747970652160781b6044820152606490fd5b15612d5d57565b60405162461bcd60e51b815260206004820152601760248201527f4461746120616c72656164792070726f636573736564210000000000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062726964676520737461746560601b6044820152606490fd5b908160209103126107b757516001600160a01b03811681036107b75790565b919360a0936127249695600180871b038094168552602085015260408401521660608201528160808201520190612666565b9192612e5e608094612e50612e6c949998979960a0875260a0870190612666565b908582036020870152612666565b908382036040850152612666565b6001600160a01b0390951660608201520152565b81518051906001600160401b039182811161243e5780612ea085546123f1565b92601f9384811161304d575b50602090848311600114612fe857600092612fdd575b50508160011b916000199060031b1c19161783555b60206001809401940151805192831161243e57612ef485546123f1565b828111612f95575b506020918311600114612f3557928293918392600094612f2a575b50501b916000199060031b1c1916179055565b015192503880612f17565b90601f198316918560005283826000209360005b87828210612f7c57505010612f63575b505050811b019055565b015160001960f88460031b161c19169055388080612f59565b8486015187559095019460209485019487935001612f49565b8560005260206000208380860160051c82019260208710612fd4575b0160051c019085905b828110612fc8575050612efc565b60008155018590612fba565b92508192612fb1565b015190503880612ec2565b60008781528281209350601f198516905b818110613035575090846001959493921061301c575b505050811b018355612ed7565b015160001960f88460031b161c1916905538808061300f565b92936020600181928786015181550195019301612ff9565b9091506000868152602081208580860160051c82019360208710613096575b908695949392910160051c01915b828110613088575050612eac565b81815585945060010161307a565b9350819361306c565b9081518110156129fe570160200190565b90818051602a90818114908115613388575b501561334a57815181811461324b575b505050600091825b815184101561323d576130ed848361309f565b5160f81c603081101580613232575b156131835760ff908116602f19019081116129d457905b6001600160a01b039160049180831b6010600160a01b0316919084168015908304601014171561316e5760ff1601918211613159575061315390936129c5565b926130da565b601190634e487b7160e01b6000525260246000fd5b601183634e487b7160e01b6000525260246000fd5b606181101580613227575b156131a95760ff908116605619019081116129d45790613113565b60418110158061321c575b156131cb576036190160ff81116129d45790613113565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c69642063686172616374657220696e206164647265737320737472604482015262696e6760e81b6064820152608490fd5b5060468111156131b4565b50606681111561318e565b5060398111156130fc565b6001600160a01b0316925050565b9091929350156129fe5760208201516001600160f81b0319908116600360fc1b148061332d575b156132f25760405192613284846124a6565b60288452604036602086013760025b8381106132a75750505050903880806130d2565b826132b2828461309f565b51169060011981018181116132dd576132d26132d89360001a918861309f565b536129c5565b613293565b60246000634e487b7160e01b81526011600452fd5b60405162461bcd60e51b815260206004820152601360248201527209ad2e6e6d2dcce404e60f04e40e0e4caccd2f606b1b6044820152606490fd5b508251600110156129fe5760218301518116600f60fb1b14613272565b60405162461bcd60e51b8152602060048201526016602482015275092dcecc2d8d2c840c2c8c8e4cae6e640d8cadccee8d60531b6044820152606490fd5b6028915014386130c2565b929360c0946127249796929360018060a01b0380951686526020860152604085015260608401521660808201528160a08201520190612666565b926133fb60a095989796936133ed6134099460c0885260c0880190612666565b908682036020880152612666565b908482036040860152612666565b95600180851b0316606083015260808201520152565b7f26b5f43c1b8acf29c34ba80744bb118ae1dbff66554aa409f44f466bb41327bd606060018060a01b0380951694604051931692838152846020820152856040820152a1823b156107b7576044600092836040519586948593630399357f60e51b8552600485015260248401525af180156134a45761349b5750565b6125209061242b565b6040513d6000823e3d90fd5b9290917f39500e873c2a8011e5ba210d6fc004842250154c0004132ee4f379a947698caf608060018060a01b0380931692604051961695868152856020820152836040820152846060820152a1803b156107b75760009283606492604051968795869463fead481760e01b86526004860152602485015260448401525af180156134a45761349b5750565b91909180156135fb57479081106135bf5782519081156135a957049160005b81518110156135a3576001600160a01b0361357582846129ea565b5116600052600060205260016040600020019081548581018091116129d45761359e92556129c5565b61355a565b50509050565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206665657360a01b6044820152606490fd5b8151600093929161363f826127d8565b9061365a604093613652855194856124c1565b8084526127d8565b60209490601f19013684870137865b8151811015613752576136cf6136c661368283856129ea565b518751898101907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008252603c888183015281526136be816124a6565b51902061397e565b90929192613a3e565b6001600160a01b031660008181528088528690205460ff908116908161373f575b50613705575b50613700906129c5565b613669565b979060018083018093116129d45761370092998061372384896129ea565b52600052600c8852866000209060ff19825416179055906136f6565b9050600c885286600020541615386136f0565b50505090939260005b825181101561379957613794906001600160a01b0361377a82866129ea565b5116600052600c85528660002060ff1981541690556129c5565b61375b565b509390926005548060011b90808204600214901517156129d4576003900490600182018092116129d457106137cd57505090565b60649250519062461bcd60e51b8252600482015260166024820152755468726573686f6c64206e6f7420726561636865642160501b6044820152fd5b8051602082015190604083015192600160a01b6001900391826060830151169260808301519060a08401519060c08501519060e086015190610100870151166101208701519261014088015194610160890151966101808a0151986101a08b01519a6101c001519b6040519e8f9e8f936020850152604084016101e09052610200840161389591612666565b838103601f190160608501526138aa91612666565b6080909201528c8103601f190160a08e01526138c591612666565b8b8103601f190160c08d01526138da91612666565b8a8103601f190160e08c01526138ef91612666565b916101008a0152610120890152601f198882030161014089015261391291612666565b868103601f190161016088015261392891612666565b90610180860152601f19858203016101a086015261394591612666565b906101c0840152601f19838203016101e084015261396291612666565b03601f198101825261397490826124c1565b8051906020012090565b81519190604183036139af576139a892506020820151906060604084015193015160001a906139ba565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613a3257926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15611a225780516001600160a01b03811615613a2957918190565b50809160019190565b50505060009160039190565b6004811015613aad5780613a50575050565b60018103613a6a5760405163f645eedf60e01b8152600490fd5b60028103613a8b5760405163fce698f760e01b815260048101839052602490fd5b600314613a955750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b604051906001600160a01b0316613ad982612454565b6010825260206f181899199a1a9b1b9c1cb0b131b232b360811b8184015260405192613b04846124a6565b602a845281840160403682378451156129fe57603090538351926001938410156129fe576078602186015360005b60148110613b4257505050505090565b600c81018082116129d457848110156129fe5782901a60046001600160f81b0319600f81613b7485851c83168961309f565b511693858a1b94600290878704821488151715613bd957868201809211613bd957613ba9613bb19493928e9260001a9261309f565b53168761309f565b51169060039283018093116131595750906132d2613bd4939260001a918961309f565b613b32565b601186634e487b7160e01b6000525260246000fdfecff7195d53dc523a0632d4b78ccedc8dea0e74bb445f72f1ba8accaee64b5f59d50d6b7e8a31963b83afcdbc240518dba3a293d249f0e191001a92b587ba5fb1a26469706673582212200f09e77e233973ac0baef4c28fe94d9a8fae0ea5772791b414ee7e17aca09d9764736f6c63430008150033"; + "0x60a08060405234620000d157306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c16620000c257506001600160401b036002600160401b0319828216016200007c575b6040516142b09081620000d782396080518181816111d401526114220152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880806200005c565b63f92ee8a960e01b8152600490fd5b600080fdfe60406080815260049081361015610020575b5050361561001e57600080fd5b005b60009160e0908335821c9182630526ddb114612794578263064f21fa1461275757826306e265491461230f5782631f78b5b9146122c45782633a7dc8061461212e5782633d73a08d146120e35782633f45a726146120675782634167e34614611b5957826349184d60146116cc5782634f1ef286146113e157826350d16d981461123b57826352d1902d146111be578263538e0a13146111805782635dbdf50c146111355782636a98ea611461110b57826376b28f56146110cc5782637fa5a3501461109e57826385fbfcbe14610fa85782638e4f2f3814610edd578263a543de4014610e89578263ad3cb1cc14610e3f578263c744080214610874578263ca5d62b11461084a578263ca6e55da146101f85750508063ea9c7cbc146101bb578063ed612f8c1461019d5763fa52c7d8036100115734610199576020366003190112610199579081906001600160a01b03610179612b61565b1681528060205220600160ff825416910154825191151582526020820152f35b5080fd5b50346101995781600319360112610199576020906007549051908152f35b50346101995760203660031901126101995760209160ff9082906001600160a01b036101e5612b61565b1681526003855220541690519015158152f35b9092915061020536612c9e565b6103146101a08395930161021c815134101561330a565b61030d848701519361028086519560209661025388828161024681830196878151938492016129ea565b810103808452018261287a565b5190208751878101906102778161026984613135565b03601f19810183528261287a565b51902014613356565b6102d361018089015187516102a488828161024681830196878151938492016129ea565b5190206102af6132e6565b88516102ca89828161024681830196878151938492016129ea565b519020146133a2565b6102dc88613e49565b808b52600186526102f360ff888d20541615612fea565b808b5260018652868b20600160ff19825416179055613c6f565b9051613b7b565b608084016103228151612ada565b93878361033b610336828a01988951612b00565b6131b2565b0191610356835187519061034e82612844565b84825261329e565b15928315948460001461080e5761037b878351818b51938285809451938492016129ea565b8101600d815203019020885161039081613135565b9182529081900388019020546001600160a01b0316955b6001600160a01b0395878716158015918080610807575b156105a15750505050506103d38491516136f0565b89518851627eeac760e11b81526001600160a01b0388168d8201908152602081019290925291909216969182908290819060400103818a5afa918215610597578492610561575b505061016089018051909a908083106104935750505050509161046f7f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe979261048d9594606089015116908851855192613af0565b6101c086015194519561014081015190519251935196879687613a0d565b0390a180f35b956104bb6104a88488979998949596986130c4565b9460608d01928d85855116905190613af0565b5116918951948a0151936101008b0151166101208b015190883b1561055d5787956104f8938b519889978897632a1b1ec960e21b895288016139d3565b038183875af1801561055357610537575b5050907f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe9461048d9261046f565b61054390939293612800565b61054f57908538610509565b8580fd5b84513d84823e3d90fd5b8780fd5b8194508092503d8311610590575b610579818361287a565b8101031261058b57899151388061041a565b600080fd5b503d61056f565b88513d86823e3d90fd5b809e989a969e999495979990610800575b15610684575050505050506105c88491516136f0565b1692806060880151168751926101608901998a51908a0151936101008b0151166101208b015190883b1561055d578795610614938b519889978897632a1b1ec960e21b895288016139d3565b038183875af180156105535761066c575b5050907f1f41d1ce828f44485207c043996fe063a199a478cf432ffaeb1425af87feb7fe9461048d926101c086015194519561014081015190519251935196879687613a0d565b61067890939293612800565b61054f57908538610625565b82809495969a97509192916107f8575b50156107c95750505083858360055416858951809481936379d9a0f760e11b83525af19081156107bf57610748929184918791610792575b50169561070e6106db8861410f565b8951906106e782612829565b6106ef61289b565b8252838201526107096107028551612ada565b8c51612b00565b6134c0565b8851915188519261071e84612829565b83528183015286865260098152878620908851809261073c82613135565b908152030190206134c0565b806060880151168751926101608901998a51908a0151936101008b0151166101208b015190883b1561055d578795610614938b519889978897632a1b1ec960e21b895288016139d3565b6107b29150883d8a116107b8575b6107aa818361287a565b81019061341e565b386106cc565b503d6107a0565b87513d87823e3d90fd5b90809296509a9293949a916107f0575b50156107eb57826103d38b93516136f0565b6133e2565b9050386107d9565b905038610694565b50806105b2565b50826103be565b8051610842886108268b5193848151938492016129ea565b820191600b8352898160018060a01b0394030190208b51612b00565b5416956103a7565b5050503461019957816003193601126101995760055490516001600160a01b039091168152602090f35b915061087f36612c9e565b92819361095c6101a08401610897815134101561330a565b61030d88860151936108d78a51956020966108c188828161024681830196878151938492016129ea565b5190208b51878101906102778161026984613135565b6109216101808801518b516108fb88828161024681830196878151938492016129ea565b5190206109066131de565b8c516102ca89828161024681830196878151938492016129ea565b8a61094260ff8c6109318b613e49565b9384815260018a5220541615612fea565b808c52600186528a8c20600160ff19825416179055613c6f565b86608084019261096c8451612ada565b958361097f610336828901998a51612b00565b019361099a85518b519061099282612844565b86825261329e565b15908a82159683600014610e03576109c0838251818551938285809451938492016129ea565b8101600c81520301902082516109d581613135565b9182529081900384019020546001600160a01b0316985b6001600160a01b03988a8a169586158015918080610dfc575b15610b5e57505050505082889360249b9385610a228b95516136f0565b169c8d91859651905195869384926331a9108f60e11b84528c8401525af19182918993610b3f575b5050610b37575b501603610a9e5750505091610a8260008051602061423b833981519152969261048d94606088015116875190613a5f565b6101c0850151935194610140810151905192519586958661346f565b90928092945060608801511690875193880151926101008901511692610120890151873b15610b33578694610ae5928c519788968796634bd297fd60e01b8852870161343d565b038183875af18015610b2957610b11575b505060008051602061423b8339815191529361048d91610a82565b610b1a90612800565b610b25578438610af6565b8480fd5b86513d84823e3d90fd5b8680fd5b905038610a51565b610b56929350803d106107b8576107aa818361287a565b903880610a4a565b91939795509193989a999b95979c5080610df5575b15610c255750505050505050610b8a8291516136f0565b16938160608801511690875193880151926101008901511692610120890151873b15610b33578694610bce928c519788968796634bd297fd60e01b8852870161343d565b038183875af18015610b2957610c11575b505060008051602061423b8339815191529361048d916101c0850151935194610140810151905192519586958661346f565b610c1a90612800565b610b25578438610bdf565b8280949596979c9850919291610ded575b5015610d3b5750505050610c7190868a85600554168b8960c060a0830151920151935180978195829463179e23fb60e31b84528b8401612b26565b03925af1918215610d3157610cd29285918891610d14575b501696610ca4610c988961410f565b8c51906106e782612829565b885191518b5192610cb484612829565b835281830152878752600981528a8720908b51809261073c82613135565b8160608801511690875193880151926101008901511692610120890151873b15610b33578694610bce928c519788968796634bd297fd60e01b8852870161343d565b610d2b9150893d8b116107b8576107aa818361287a565b38610c89565b8a513d88823e3d90fd5b908092939850969493959691610de5575b50156107eb5784610d5e8c95516136f0565b169689518b51906331a9108f60e11b8252848201528181602481898d5af1908115610ddb5787928792610dbe575b50501603610a9e5750505091610a8260008051602061423b833981519152969261048d94606088015116875190613a5f565b610dd49250803d106107b8576107aa818361287a565b3880610d8c565b8c513d88823e3d90fd5b905038610d4c565b905038610c36565b5080610b73565b5082610a05565b8851610e3784610e1b855193848151938492016129ea565b820191600a8352858160018060a01b0394030190208d51612b00565b5416986109ec565b505050346101995781600319360112610199578051610e8591610e6182612829565b60058252640352e302e360dc1b602083015251918291602083526020830190612a0d565b0390f35b5050503461019957602090610ed4610ea036612a94565b84610eb6859493945194858151938492016129ea565b600c90840190815283900385019092206001600160a01b0392612b00565b54169051908152f35b5050503461019957610eee36612ba2565b919060018060a01b03169182845260209360028552610f1360ff848320541615612fea565b610f1d8251613036565b92815b8351811015610f5b578087610f38610f569387612fc0565b510151610f458288612fc0565b52610f508187612fc0565b50612f9b565b610f20565b506001869186610f8287835186810190848252878152610f7a81612829565b519020613c6f565b5084526002835260038185209360ff199484868254161790555283209182541617905580f35b5090503461109a57602036600319011261109a576001600160a01b03610fcc612b61565b1690610fd9821515612f4f565b81845283602052600160ff8486205416151503611057575082808080937fc4b044d89af9405903f78d1ff2a194cc7f65b0d821544faddfc65f7800aa9a9e60208751838152a18082528160205260018683200190828254925582821561104e575bf115611044575080f35b51903d90823e3d90fd5b506108fc61103a565b606490602084519162461bcd60e51b8352820152601960248201527f56616c696461746f7220646f6573206e6f7420657869737421000000000000006044820152fd5b8280fd5b5090503461109a57602036600319011261109a578160209360ff923581526001855220541690519015158152f35b505050346101995760203660031901126101995760209160ff9082906001600160a01b036110f8612b61565b1681526002855220541690519015158152f35b5050503461019957816003193601126101995760065490516001600160a01b039091168152602090f35b5050503461019957602090610ed461114c36612a94565b84611162859493945194858151938492016129ea565b600d90840190815283900385019092206001600160a01b0392612b00565b5090503461109a57602036600319011261109a5760209260ff918391906001600160a01b036111ad612b61565b168252855220541690519015158152f35b50828434611238578060031936011261123857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361122b57602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b80fd5b508284346112385761124c36612ba2565b906001600160a01b0316611261811515612f4f565b61126d82511515613080565b80835260209280845260ff8582205416156113a55761128c8351613036565b94815b84518110156112c45780866112a76112bf9388612fc0565b5101516112b4828a612fc0565b52610f508189612fc0565b61128f565b508490878782518481019087825284808201526009606082015268189b1858dad31a5cdd60ba1b60808201526080815260a081018181106001600160401b038211176113905785525190206113199190613c6f565b507fdd8d4caef6bb86c181d1a6588c934686c698499ed5def3a14d4411ae3359f8f6838351878152a18484528383528184209260ff199384815416905560075495600019870196871161137d57600194959660075586525283209182541617905580f35b634e487b7160e01b865260118352602486fd5b604185634e487b7160e01b6000525260246000fd5b845162461bcd60e51b8152808701859052601660248201527515985b1a59185d1bdc881a5cc81b9bdd08185919195960521b6044820152606490fd5b8482858060031936011261109a576113f7612b61565b9060249384356001600160401b038111610199576114189036908601612a4d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811630811490811561169e575b5061168e578416938483526020906002825260ff85852054161561165a578584526003825260ff858520541615611624577fbb0e7ec411133f2e650f59a5c752be1a0f548c2140421e80171b2f9b1ff833a9828651888152a185845260038252848420805460ff1916905584516352d1902d60e01b8152828189818a5afa8591816115f5575b506114ef5750505050505191634c9c8ce360e01b8352820152fd5b90878787938b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc918281036115e05750843b156115cc575080546001600160a01b0319168217905583518792917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28651156115af5750508085856115a197519101845af4913d156115a5573d61159361158a82612a32565b9251928361287a565b81528581943d92013e612eec565b5080f35b5060609250612eec565b94509450505050346115c057505080f35b63b398979f60e01b8152fd5b8551634c9c8ce360e01b8152808501849052fd5b8651632a87526960e21b815280860191909152fd5b9091508381813d831161161d575b61160d818361287a565b8101031261054f5751908a6114d4565b503d611603565b845162461bcd60e51b81528088018390526011818a015270416c72656164792075706772616465642160781b6044820152606490fd5b845162461bcd60e51b8152808801839052600f818a01526e43616e6e6f7420757067726164652160881b6044820152606490fd5b835163703e46dd60e11b81528690fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158861144e565b8482853461109a5760a036600319011261109a578135906001600160401b0390818311610b255736602384011215610b2557828401359260249261170f85612b8b565b9161171c8451938461287a565b858352602095858785019160051b83010191368311611b3d5786889101915b838310611b415750505050833581811161055d5761175c9036908801612a4d565b936044356001600160a01b038181169491859003611b3d5761177c612b4b565b9360843597828916809903611ac9577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009687549960ff8b8b1c161597848c169b8c1580611b36575b6001809e149081611b2c575b159081611b23575b50611b135767ffffffffffffffff1981168d178b558f929187918b611af4575b50611804851515612f4f565b16611810811515612f4f565b6001600160601b0360a01b848160055416176005556006541617600655823b156101995760448e838d519586948593630a669ef360e21b8552840152308c8401525af18015611aea57611ad7575b508b8360065416803b156101995789516313af403560e01b815230818f015290829082908990829084905af18015611acd57611ab5575b50508051918211611aa35790889392916118b0600f546127c6565b601f8111611a42575b508a908d601f84116001146119cd579190836119c2575b5050600019600383901b1c1916931b92909217600f55905b60078a8155918a885b61195e575b505050505081549560ff87851c16156119505750611912578580f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29468ff00000000000000001916905551908152a181808080808580f35b8351631afcd79f60e31b8152fd5b81518110156119bd57826119728284612fc0565b51168c528b8a52878c208960ff1982541617905583548981018091116119ab57849392916119a2918b9655612f9b565b909192936118f1565b634e487b7160e01b8d5260118c52858dfd5b6118f6565b015190508d806118d0565b600f815260008051602061425b833981519152929190601f198516908e5b828210611a2b5750509084889594939210611a12575b505050811b01600f559091506118e8565b015160001960f88460031b161c191690558d8080611a01565b8385015186558e999095019493840193018e6119eb565b909192939450600f8d5260008051602061425b833981519152601f840160051c8101918c8510611a99575b8b9695949392918f91601f0160051c0191905b828210611a8e5750506118b9565b81558b96018e611a80565b9091508190611a6d565b634e487b7160e01b8c5260418b52848cfd5b611abe90612800565b611ac9578b8d611895565b8b80fd5b8a513d84823e3d90fd5b611ae3909c919c612800565b9a8c61185e565b89513d8f823e3d90fd5b68ffffffffffffffffff191668010000000000000001178c55386117f8565b8b5163f92ee8a960e01b81528f90fd5b905015386117d8565b303b1591506117d0565b50896117c4565b8980fd5b8190611b4c84612b77565b815201910190879061173b565b91509134611d9e5760c0366003190112611d9e578235916001600160401b03602435818111610b3357611b8f9036908701612a4d565b9060443581811161055d57611ba79036908801612a4d565b93611bb0612b4b565b946084359260a435908111611b3d57611bcc9036908a01612a4d565b6001600160a01b0380881699919791611be68b15156130d1565b8515612024578b908b825260209b60098d52611c198d8885209089518092611c0d82613135565b908152030190206131b2565b8d611c35818301518a5190611c2d82612844565b87825261329e565b15611e5057859150611c5c81611c4a8961410f565b818c51938285809451938492016129ea565b8101600b8152030190209089518092611c7482613135565b908152030190205416918215611da2575b813b15611d9e578360c4928e8a519788968795637921219560e11b8752339087015216602485015260448401528a606484015260a060848401528160a48401525af18015611d945790611cde9291611d85575b5061410f565b91611ce76132e6565b948151998a996101009182918c528b01528901611d0391612a0d565b9088820390890152611d1491612a0d565b8681036060880152611d2591612a0d565b90608086015284810360a0860152611d3c91612a0d565b83810360c0850152611d4d90613202565b9083820390840152611d5e91612a0d565b037fb68a7c16716c3a52fbadced40d7c6341930469cf9b90e19b0b444848a222c41b91a180f35b611d8e90612800565b38611cd8565b84513d8d823e3d90fd5b8380fd5b909150828d856006541660248a51809481936399a7ce6d60e01b835288888401525af190811561059757908e9392918591611e33575b50858194611dfc818c81611deb8d61410f565b9151938285809451938492016129ea565b8101600b815203019020908b518092611e1482613135565b9081520301902091166001600160601b0360a01b825416179055611c85565b611e4a9150843d86116107b8576107aa818361287a565b38611dd8565b9290989796958486611e7786611e658561410f565b818d51938285809451938492016129ea565b8101600d815203019020868b518092611e8f82613135565b908152030190205416948515611f7f575b505050813b15611d9e578360c4928e89519788968795637921219560e11b87523390870152166024850152604484015289606484015260a060848401528160a48401525af18015611f7557611f66575b508884015191611efe6132e6565b94519581519a8b9a6101009182918d528c01528a01611f1c91612a0d565b90898203908a0152611f2d91612a0d565b8781036060890152611f3e91612a0d565b90608087015285810360a0870152611f5591612a0d565b84810360c0860152611d4d91612a0d565b611f6f90612800565b38611ef0565b83513d8d823e3d90fd5b90919450866006541660248a51809481936399a7ce6d60e01b835288888401525af190811561201a578f87918793611ffb575b50611fc181611e65859861410f565b8101600d815203019020908a518092611fd982613135565b9081520301902091166001600160601b0360a01b82541617905538848f611ea0565b816120139294503d85116107b8576107aa818361287a565b9138611fb2565b88513d87823e3d90fd5b606490602086519162461bcd60e51b8352820152602060248201527f746f6b656e20616d6f756e74206d757374206265203e207468616e207a65726f6044820152fd5b83828634611238578260031936011261123857612082612b61565b916024356001600160401b03811161109a57916120a785926120c09594369101612a4d565b6001600160a01b03909316815260096020522090612b00565b610e856120d860016120d184612948565b9301612948565b925192839283612b26565b5050503461019957602090610ed46120fa36612a94565b84612110859493945194858151938492016129ea565b600a90840190815283900385019092206001600160a01b0392612b00565b838583346101995761213f36612ba2565b9060018060a01b03169283815260209280845260ff868320541661228957612168851515612f4f565b61217483511515613080565b84825281845260ff86832054166122465761218f8351613036565b95825b84518110156121c75780866121aa6121c29388612fc0565b5101516121b7828b612fc0565b52610f50818a612fc0565b612192565b508285876121e48a855184810190848252858152610f7a81612829565b507ff910fa450d85dbabdd71a7d3256547d80a4a2f84c8b7f6d088cae55c8ffdccb3828551838152a18252528220600160ff198254161790556007549060018201809211612233575060075580f35b634e487b7160e01b835260119052602482fd5b855162461bcd60e51b8152908101849052601760248201527f56616c696461746f7220616c72656164792061646465640000000000000000006044820152606490fd5b855162461bcd60e51b815290810184905260156024820152741d985b1a59185d1bdc88189b1858dadb1a5cdd1959605a1b6044820152606490fd5b5050503461019957602090610ed46122db36612a94565b846122f1859493945194858151938492016129ea565b600b90840190815283900385019092206001600160a01b0392612b00565b90915034611d9e5760a0366003190112611d9e578135906001600160401b03602435818111610b33576123459036908601612a4d565b60443582811161055d5761235c9036908701612a4d565b612364612b4b565b926084359081116127535761237c9036908801612a4d565b6001600160a01b03808516979194918a906123988a15156130d1565b89825260209960098b526123b78c8c81862091518092611c0d82613135565b808c0180518e516123cb91611c2d82612844565b156125b5575050838c8c6123f4816123e28a61410f565b818551938285809451938492016129ea565b8101600a8152030190209151809261240b82613135565b908152030190205416918c8315612512575b50813b15611d9e57836064928e519687958694632142170760e11b865233908601521660248401528c60448401525af18015612508576124fb936124cb7fb68a7c16716c3a52fbadced40d7c6341930469cf9b90e19b0b444848a222c41b9b6124986124ee9661048d9b9a99966124d996611d85575061410f565b926124be6124a46131de565b9683519e8f9e8f9061010092839183528201520190612a0d565b918c8303908d0152612a0d565b9089820360608b0152612a0d565b906001608089015287820360a0890152612a0d565b85810360c0870152613202565b9184830390850152612a0d565b89513d8c823e3d90fd5b9250838c866006541660248651809481936223abb760e71b835288888401525af19081156125ab578d948791879361258c575b508295612555816123e28c61410f565b8101600a8152030190209151809261256c82613135565b9081520301902091166001600160601b0360a01b8254161790558c61241d565b6125a4919350863d88116107b8576107aa818361287a565b9138612545565b84513d87823e3d90fd5b94939286848e9f99988f95949b9c9e9f808c6125d592611deb8c9561410f565b8101600c815203019020868c5180926125ed82613135565b9081520301902054169485156126ad575b505050813b15611d9e57836064928e8a519788968795632142170760e11b8752339087015216602485015260448401525af18015611d945761269e575b5051916126466131de565b9351948151998a996101009182918c528b0152890161266491612a0d565b908882039089015261267591612a0d565b868103606088015261268691612a0d565b6001608087015285810360a0870152611f5591612a0d565b6126a790612800565b3861263b565b90919450866006541660248b51809481936223abb760e71b835288888401525af1908115612749578f8791879361272a575b506126f0818c81611deb879a61410f565b8101600c815203019020908b51809261270882613135565b9081520301902091166001600160601b0360a01b82541617905538848f6125fe565b816127429294503d85116107b8576107aa818361287a565b91386126df565b89513d87823e3d90fd5b8880fd5b83853461123857506120c0602061278461277036612a94565b9290818651938285809451938492016129ea565b8101600881520301902090612b00565b50505034610199578160031936011261019957610e85906127b361289b565b9051918291602083526020830190612a0d565b90600182811c921680156127f6575b60208310146127e057565b634e487b7160e01b600052602260045260246000fd5b91607f16916127d5565b6001600160401b03811161281357604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761281357604052565b602081019081106001600160401b0382111761281357604052565b606081019081106001600160401b0382111761281357604052565b90601f801991011681019081106001600160401b0382111761281357604052565b60405190600082600f54916128af836127c6565b80835260209360019081811690811561292857506001146128db575b50506128d99250038361287a565b565b90939150600f60005260008051602061425b833981519152936000915b8183106129105750506128d9935082010138806128cb565b855488840185015294850194879450918301916128f8565b9150506128d994925060ff191682840152151560051b82010138806128cb565b9060405191826000825461295b816127c6565b9081845260209460019182811690816000146129c85750600114612989575b5050506128d99250038361287a565b600090815285812095935091905b8183106129b05750506128d9935082010138808061297a565b85548884018501529485019487945091830191612997565b925050506128d994925060ff191682840152151560051b82010138808061297a565b60005b8381106129fd5750506000910152565b81810151838201526020016129ed565b90602091612a26815180928185528580860191016129ea565b601f01601f1916010190565b6001600160401b03811161281357601f01601f191660200190565b81601f8201121561058b57803590612a6482612a32565b92612a72604051948561287a565b8284526020838301011161058b57816000926020809301838601378301015290565b90604060031983011261058b576001600160401b0360043581811161058b5783612ac091600401612a4d565b9260243591821161058b57612ad791600401612a4d565b90565b6020612af39181604051938285809451938492016129ea565b8101600881520301902090565b602090612b1a9282604051948386809551938492016129ea565b82019081520301902090565b9091612b3d612ad793604084526040840190612a0d565b916020818403910152612a0d565b606435906001600160a01b038216820361058b57565b600435906001600160a01b038216820361058b57565b35906001600160a01b038216820361058b57565b6001600160401b0381116128135760051b60200190565b9060408060031984011261058b576004356001600160a01b038116810361058b579260248035906001600160401b039081831161058b578360238401121561058b57826004013590612bf382612b8b565b95612c008151978861287a565b828752602095828789019460051b8701019581871161058b57838101945b878610612c315750505050505050505090565b853587811161058b5782019084602319838603011261058b57845190612c5682612829565b8683013589811161058b578588612c6f92860101612a4d565b825260448301359189831161058b57612c8f86898e969587960101612a4d565b83820152815201950194612c1e565b600319919060408382011261058b576004928335906001600160401b0380831161058b576101e08092848603011261058b5760405191820182811082821117612ed7576040528286013582526024918284013582811161058b578588612d0692870101612a4d565b9360209485830152604481013583811161058b578689612d2892840101612a4d565b6040830152612d3960648201612b77565b6060830152608481013583811161058b578689612d5892840101612a4d565b608083015260a481013583811161058b578689612d7792840101612a4d565b60a083015260c481013583811161058b578689612d9692840101612a4d565b60c083015260e481013560e0830152612db26101048201612b77565b61010083015261012481013583811161058b578689612dd392840101612a4d565b61012083015261014481013583811161058b578689612df492840101612a4d565b61014083015261016481013561016083015261018481013583811161058b578689612e2192840101612a4d565b6101808301526101a48101356101a08301526101c481013583811161058b57888791612e4e930101612a4d565b6101c08201529582359082821161058b578560238301121561058b5781013590612e7782612b8b565b95612e85604051978861287a565b828752848688019360051b8301019481861161058b57808301935b868510612eb257505050505050505090565b843586811161058b578891612ecc85858594890101612a4d565b815201940193612ea0565b604187634e487b7160e01b6000525260246000fd5b90612f135750805115612f0157805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612f46575b612f24575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612f1c565b15612f5657565b60405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e6e6f74206265207a65726f206164647265737321006044820152606490fd5b6000198114612faa5760010190565b634e487b7160e01b600052601160045260246000fd5b8051821015612fd45760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b15612ff157565b60405162461bcd60e51b815260206004820152601760248201527f4461746120616c72656164792070726f636573736564210000000000000000006044820152606490fd5b9061304082612b8b565b61304d604051918261287a565b828152809261305e601f1991612b8b565b019060005b82811061306f57505050565b806060602080938501015201613063565b1561308757565b60405162461bcd60e51b81526020600482015260156024820152744d7573742068617665207369676e6174757265732160581b6044820152606490fd5b91908203918211612faa57565b156130d857565b60405162461bcd60e51b815260206004820152602f60248201527f736f757263654e6674436f6e7472616374416464726573732063616e6e6f742060448201526e6265207a65726f206164647265737360881b6064820152608490fd5b600f5460009291613145826127c6565b9160019081811690811561319f575060011461316057505050565b9091929350600f60005260008051602061425b833981519152906000915b84831061318c575050500190565b818160209254858701520192019161317e565b60ff191683525050811515909102019150565b906040516131bf81612829565b60206131d9600183956131d181612948565b855201612948565b910152565b604051906131eb82612829565b600882526739b4b733bab630b960c11b6020830152565b600f5460009291613212826127c6565b9081815260209260019081811690816000146132815750600114613237575b50505050565b9293945090600f60005260008051602061425b83398151915292846000945b83861061326d575050505001019038808080613231565b805485870183015294019385908201613256565b60ff191685840152505090151560051b0101915038808080613231565b90604051916020926132bf84828161024681830196878151938492016129ea565b519020916132df60405191828161024681830196878151938492016129ea565b5190201490565b604051906132f382612829565b60088252676d756c7469706c6560c01b6020830152565b1561331157565b60405162461bcd60e51b815260206004820152601f60248201527f646174612e666565204c455353205448414e2073656e7420616d6f756e7421006044820152606490fd5b1561335d57565b60405162461bcd60e51b815260206004820152601a60248201527f496e76616c69642064657374696e6174696f6e20636861696e210000000000006044820152606490fd5b156133a957565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964204e465420747970652160781b6044820152606490fd5b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062726964676520737461746560601b6044820152606490fd5b9081602091031261058b57516001600160a01b038116810361058b5790565b919360a093612ad79695600180871b038094168552602085015260408401521660608201528160808201520190612a0d565b919261349e6080946134906134ac949998979960a0875260a0870190612a0d565b908582036020870152612a0d565b908382036040850152612a0d565b6001600160a01b0390951660608201520152565b81518051906001600160401b039182811161281357806134e085546127c6565b92601f9384811161368d575b506020908483116001146136285760009261361d575b50508160011b916000199060031b1c19161783555b6020600180940194015180519283116128135761353485546127c6565b8281116135d5575b5060209183116001146135755792829391839260009461356a575b50501b916000199060031b1c1916179055565b015192503880613557565b90601f198316918560005283826000209360005b878282106135bc575050106135a3575b505050811b019055565b015160001960f88460031b161c19169055388080613599565b8486015187559095019460209485019487935001613589565b8560005260206000208380860160051c82019260208710613614575b0160051c019085905b82811061360857505061353c565b600081550185906135fa565b925081926135f1565b015190503880613502565b60008781528281209350601f198516905b818110613675575090846001959493921061365c575b505050811b018355613517565b015160001960f88460031b161c1916905538808061364f565b92936020600181928786015181550195019301613639565b9091506000868152602081208580860160051c820193602087106136d6575b908695949392910160051c01915b8281106136c85750506134ec565b8181558594506001016136ba565b935081936136ac565b908151811015612fd4570160200190565b90818051602a908181149081156139c8575b501561398a57815181811461388b575b505050600091825b815184101561387d5761372d84836136df565b5160f81c603081101580613872575b156137c35760ff908116602f1901908111612faa57905b6001600160a01b039160049180831b6010600160a01b031691908416801590830460101417156137ae5760ff160191821161379957506137939093612f9b565b9261371a565b601190634e487b7160e01b6000525260246000fd5b601183634e487b7160e01b6000525260246000fd5b606181101580613867575b156137e95760ff90811660561901908111612faa5790613753565b60418110158061385c575b1561380b576036190160ff8111612faa5790613753565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c69642063686172616374657220696e206164647265737320737472604482015262696e6760e81b6064820152608490fd5b5060468111156137f4565b5060668111156137ce565b50603981111561373c565b6001600160a01b0316925050565b909192935015612fd45760208201516001600160f81b0319908116600360fc1b148061396d575b1561393257604051926138c48461285f565b60288452604036602086013760025b8381106138e7575050505090388080613712565b826138f282846136df565b511690600119810181811161391d576139126139189360001a91886136df565b53612f9b565b6138d3565b60246000634e487b7160e01b81526011600452fd5b60405162461bcd60e51b815260206004820152601360248201527209ad2e6e6d2dcce404e60f04e40e0e4caccd2f606b1b6044820152606490fd5b50825160011015612fd45760218301518116600f60fb1b146138b2565b60405162461bcd60e51b8152602060048201526016602482015275092dcecc2d8d2c840c2c8c8e4cae6e640d8cadccee8d60531b6044820152606490fd5b602891501438613702565b929360c094612ad79796929360018060a01b0380951686526020860152604085015260608401521660808201528160a08201520190612a0d565b92613a3b60a09598979693613a2d613a499460c0885260c0880190612a0d565b908682036020880152612a0d565b908482036040860152612a0d565b95600180851b0316606083015260808201520152565b7f26b5f43c1b8acf29c34ba80744bb118ae1dbff66554aa409f44f466bb41327bd606060018060a01b0380951694604051931692838152846020820152856040820152a1823b1561058b576044600092836040519586948593630399357f60e51b8552600485015260248401525af18015613ae457613adb5750565b6128d990612800565b6040513d6000823e3d90fd5b9290917f39500e873c2a8011e5ba210d6fc004842250154c0004132ee4f379a947698caf608060018060a01b0380931692604051961695868152856020820152836040820152846060820152a1803b1561058b5760009283606492604051968795869463fead481760e01b86526004860152602485015260448401525af18015613ae457613adb5750565b9190918015613c3b5747908110613bff578251908115613be957049160005b8151811015613be3576001600160a01b03613bb58284612fc0565b511660005260006020526001604060002001908154858101809111612faa57613bde9255612f9b565b613b9a565b50509050565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206665657360a01b6044820152606490fd5b81516000939291613c7f82612b8b565b90613c9a604093613c928551948561287a565b808452612b8b565b60209490601f19013684870137865b8151811015613d9257613d0f613d06613cc28385612fc0565b518751898101907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008252603c88818301528152613cfe8161285f565b519020613fbe565b9092919261408a565b6001600160a01b031660008181528088528690205460ff9081169081613d7f575b50613d45575b50613d4090612f9b565b613ca9565b97906001808301809311612faa57613d40929980613d638489612fc0565b52600052600e8852866000209060ff1982541617905590613d36565b9050600e88528660002054161538613d30565b50505090939260005b8251811015613dd957613dd4906001600160a01b03613dba8286612fc0565b5116600052600e85528660002060ff198154169055612f9b565b613d9b565b509390926007548060011b9080820460021490151715612faa57600390049060018201809211612faa5710613e0d57505090565b60649250519062461bcd60e51b8252600482015260166024820152755468726573686f6c64206e6f7420726561636865642160501b6044820152fd5b8051602082015190604083015192600160a01b6001900391826060830151169260808301519060a08401519060c08501519060e086015190610100870151166101208701519261014088015194610160890151966101808a0151986101a08b01519a6101c001519b6040519e8f9e8f936020850152604084016101e090526102008401613ed591612a0d565b838103601f19016060850152613eea91612a0d565b6080909201528c8103601f190160a08e0152613f0591612a0d565b8b8103601f190160c08d0152613f1a91612a0d565b8a8103601f190160e08c0152613f2f91612a0d565b916101008a0152610120890152601f1988820301610140890152613f5291612a0d565b868103601f1901610160880152613f6891612a0d565b90610180860152601f19858203016101a0860152613f8591612a0d565b906101c0840152601f19838203016101e0840152613fa291612a0d565b03601f1981018252613fb4908261287a565b8051906020012090565b8151919060418303613fef57613fe892506020820151906060604084015193015160001a90613ffa565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161407e57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156140725780516001600160a01b0381161561406957918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60048110156140f9578061409c575050565b600181036140b65760405163f645eedf60e01b8152600490fd5b600281036140d75760405163fce698f760e01b815260048101839052602490fd5b6003146140e15750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b604051906001600160a01b031661412582612829565b6010825260206f181899199a1a9b1b9c1cb0b131b232b360811b81840152604051926141508461285f565b602a84528184016040368237845115612fd45760309053835192600193841015612fd4576078602186015360005b6014811061418e57505050505090565b600c8101808211612faa5784811015612fd45782901a60046001600160f81b0319600f816141c085851c8316896136df565b511693858a1b9460029087870482148815171561422557868201809211614225576141f56141fd9493928e9260001a926136df565b5316876136df565b5116906003928301809311613799575090613912614220939260001a91896136df565b61417e565b601186634e487b7160e01b6000525260246000fdfecff7195d53dc523a0632d4b78ccedc8dea0e74bb445f72f1ba8accaee64b5f598d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802a26469706673582212205622f8e22fbc43c4c4835ac837cb24af26744ac493f8e48e461c0a599b1e6d9064736f6c63430008150033"; type BridgeConstructorParams = | [signer?: Signer] @@ -937,38 +1164,12 @@ export class Bridge__factory extends ContractFactory { } override getDeployTransaction( - _validators: AddressLike[], - _chainType: string, - _collectionDeployer: AddressLike, - _storageDeployer: AddressLike, - _collectionOwner: AddressLike, overrides?: NonPayableOverrides & { from?: string } ): Promise { - return super.getDeployTransaction( - _validators, - _chainType, - _collectionDeployer, - _storageDeployer, - _collectionOwner, - overrides || {} - ); + return super.getDeployTransaction(overrides || {}); } - override deploy( - _validators: AddressLike[], - _chainType: string, - _collectionDeployer: AddressLike, - _storageDeployer: AddressLike, - _collectionOwner: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy( - _validators, - _chainType, - _collectionDeployer, - _storageDeployer, - _collectionOwner, - overrides || {} - ) as Promise< + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< Bridge & { deploymentTransaction(): ContractTransactionResponse; }