UNPKG

@layerzerolabs/oapp-alt-evm

Version:

LayerZero Labs reference EVM OmniChain Application (OAppAlt) for EndpointV2Alt implementation

1 lines 93.1 kB
{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"data","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_nativeFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"receipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NativeTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x610100604052601560c09081527f4e6f7468696e67207265636569766564207965742e000000000000000000000060e0526002906200003f9082620002a3565b503480156200004c575f80fd5b5060405162001b2738038062001b278339810160408190526200006f916200038b565b81818181806001600160a01b038116620000a257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000ad81620001b6565b506001600160a01b038083166080528116620000dc57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b15801562000121575f80fd5b505af115801562000134573d5f803e3d5ffd5b5050505050506080516001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000179573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019f9190620003c1565b6001600160a01b031660a05250620003e492505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200022e57607f821691505b6020821081036200024d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200029e57805f5260205f20601f840160051c810160208510156200027a5750805b601f840160051c820191505b818110156200029b575f815560010162000286565b50505b505050565b81516001600160401b03811115620002bf57620002bf62000205565b620002d781620002d0845462000219565b8462000253565b602080601f8311600181146200030d575f8415620002f55750858301515b5f19600386901b1c1916600185901b17855562000367565b5f85815260208120601f198616915b828110156200033d578886015182559484019460019091019084016200031c565b50858210156200035b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80516001600160a01b038116811462000386575f80fd5b919050565b5f80604083850312156200039d575f80fd5b620003a8836200036f565b9150620003b8602084016200036f565b90509250929050565b5f60208284031215620003d2575f80fd5b620003dd826200036f565b9392505050565b60805160a0516116e2620004455f395f818161030f01528181610b080152610b8d01525f818161015e0152818161039d0152818161064a0152818161094501528181610a2f01528181610bb001528181610bdc0152610cd301526116e25ff3fe6080604052600436106100ef575f3560e01c80638da5cb5b11610087578063e1758bd811610057578063e1758bd8146102fe578063f2fde38b14610331578063f77e5dd314610350578063ff7bd03d1461037c575f80fd5b80638da5cb5b1461025d578063b4ab5dd114610286578063bb0b6a53146102a6578063ca5eb5e1146102df575f80fd5b8063715018a6116100c2578063715018a6146101a557806373d4a13a146101b95780637d25a05e146101da57806382413eac14610212575f80fd5b806313137d65146100f357806317442b70146101085780633400288b1461012e5780635e280f111461014d575b5f80fd5b610106610101366004610eee565b61039b565b005b348015610113575f80fd5b50604080516001815260026020820152015b60405180910390f35b348015610139575f80fd5b50610106610148366004610f9f565b61049a565b348015610158575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610125565b3480156101b0575f80fd5b506101066104b0565b3480156101c4575f80fd5b506101cd6104c3565b6040516101259190611028565b3480156101e5575f80fd5b506101f96101f4366004610f9f565b61054f565b60405167ffffffffffffffff9091168152602001610125565b34801561021d575f80fd5b5061024d61022c366004611041565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b6040519015158152602001610125565b348015610268575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610180565b610299610294366004611180565b610557565b60405161012591906111f9565b3480156102b1575f80fd5b506102d16102c036600461123b565b60016020525f908152604090205481565b604051908152602001610125565b3480156102ea575f80fd5b506101066102f9366004611254565b6105fd565b348015610309575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b34801561033c575f80fd5b5061010661034b366004611254565b6106a4565b34801561035b575f80fd5b5061036f61036a36600461126f565b610707565b60405161012591906112fd565b348015610387575f80fd5b5061024d610396366004611314565b610753565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610411576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061042b90610426908a61123b565b610787565b146104825761043d602088018861123b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610408565b610491878787878787876107db565b50505050505050565b6104a26107fe565b6104ac8282610850565b5050565b6104b86107fe565b6104c15f6108a4565b565b600280546104d09061132e565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc9061132e565b80156105475780601f1061051e57610100808354040283529160200191610547565b820191905f5260205f20905b81548152906001019060200180831161052a57829003601f168201915b505050505081565b5f5b92915050565b61055f610e2e565b5f856040516020016105719190611028565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020601f880181900481028401810190925286835292506105f291899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506109189050565b979650505050505050565b6106056107fe565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561068b575f80fd5b505af115801561069d573d5f803e3d5ffd5b5050505050565b6106ac6107fe565b73ffffffffffffffffffffffffffffffffffffffff81166106fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610408565b610704816108a4565b50565b604080518082019091525f80825260208201525f8460405160200161072c9190611028565b604051602081830303815290604052905061074986828686610a1a565b9695505050505050565b5f60208201803590600190839061076a908661123b565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f9081526001602052604081205480610551576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610408565b6107e784860186611379565b6002906107f490826113fc565b5050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146104c1576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610408565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610920610e2e565b825161092b90610b05565b50602083015115610943576109438360200151610bd9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff16815260200161099f8a610787565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b81526004016109da929190611518565b6080604051808303815f875af11580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107499190611608565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001610a8989610787565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610abe929190611518565b6040805180830381865afa158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611677565b95945050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b73576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085610cf4565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611691565b905073ffffffffffffffffffffffffffffffffffffffff8116610cb6576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ac73ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610d89908590610d8f565b50505050565b5f8060205f8451602086015f885af180610dae576040513d5f823e3d81fd5b50505f513d91508115610dc5578060011415610ddf565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15610d89576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610408565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001610e6d60405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610e82575f80fd5b50919050565b5f8083601f840112610e98575f80fd5b50813567ffffffffffffffff811115610eaf575f80fd5b602083019150836020828501011115610ec6575f80fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610704575f80fd5b5f805f805f805f60e0888a031215610f04575f80fd5b610f0e8989610e72565b965060608801359550608088013567ffffffffffffffff80821115610f31575f80fd5b610f3d8b838c01610e88565b909750955060a08a01359150610f5282610ecd565b90935060c08901359080821115610f67575f80fd5b50610f748a828b01610e88565b989b979a50959850939692959293505050565b803563ffffffff81168114610f9a575f80fd5b919050565b5f8060408385031215610fb0575f80fd5b610fb983610f87565b946020939093013593505050565b5f81518084525f5b81811015610feb57602081850181015186830182015201610fcf565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61103a6020830184610fc7565b9392505050565b5f805f8060a08587031215611054575f80fd5b61105e8686610e72565b9350606085013567ffffffffffffffff811115611079575f80fd5b61108587828801610e88565b909450925050608085013561109981610ecd565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff808411156110eb576110eb6110a4565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611131576111316110a4565b81604052809350858152868686011115611149575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112611171575f80fd5b61103a838335602085016110d1565b5f805f805f60808688031215611194575f80fd5b61119d86610f87565b9450602086013567ffffffffffffffff808211156111b9575f80fd5b6111c589838a01611162565b955060408801359150808211156111da575f80fd5b506111e788828901610e88565b96999598509660600135949350505050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151611234604084018280518252602090810151910152565b5092915050565b5f6020828403121561124b575f80fd5b61103a82610f87565b5f60208284031215611264575f80fd5b813561103a81610ecd565b5f805f8060808587031215611282575f80fd5b61128b85610f87565b9350602085013567ffffffffffffffff808211156112a7575f80fd5b6112b388838901611162565b945060408701359150808211156112c8575f80fd5b508501601f810187136112d9575f80fd5b6112e8878235602084016110d1565b92505060608501358015158114611099575f80fd5b815181526020808301519082015260408101610551565b5f60608284031215611324575f80fd5b61103a8383610e72565b600181811c9082168061134257607f821691505b602082108103610e82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215611389575f80fd5b813567ffffffffffffffff81111561139f575f80fd5b6113ab84828501611162565b949350505050565b601f8211156113f757805f5260205f20601f840160051c810160208510156113d85750805b601f840160051c820191505b8181101561069d575f81556001016113e4565b505050565b815167ffffffffffffffff811115611416576114166110a4565b61142a81611424845461132e565b846113b3565b602080601f83116001811461147c575f84156114465750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611510565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156114c8578886015182559484019460019091019084016114a9565b508582101561150457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261154d60e0840182610fc7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526115888282610fc7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156115cb575f80fd5b6040516040810181811067ffffffffffffffff821117156115ee576115ee6110a4565b604052825181526020928301519281019290925250919050565b5f60808284031215611618575f80fd5b6040516060810167ffffffffffffffff828210818311171561163c5761163c6110a4565b8160405284518352602085015191508082168214611658575f80fd5b50602082015261166b84604085016115bb565b60408201529392505050565b5f60408284031215611687575f80fd5b61103a83836115bb565b5f602082840312156116a1575f80fd5b815161103a81610ecd56fea264697066735822122058a5d1db4a3021da207c8d27434f623ddcca52c84230c6cb3a2de84acd6e170f64736f6c63430008160033","sourceMap":"470:44:125:-:0;327:2776;470:44;;327:2776;470:44;;;;;;;;;;;;:::i;:::-;;363:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;421:9;432;421;432;;-1:-1:-1;;;;;1273:26:104;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:104;;1350:1;1322:31;;;3327:51:126;3300:18;;1322:31:104;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:57;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:57;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:57;;-1:-1:-1;;;;;3345:32:126;;;1163:31:57;;;3327:51:126;1163:20:57;;;;;;3300:18:126;;1163:31:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;823:8:3;;-1:-1:-1;;;;;823:20:3;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;809:36:3;;;-1:-1:-1;327:2776:125;;-1:-1:-1;;;327:2776:125;2912:187:104;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:104;;;-1:-1:-1;;;;;;3020:17:104;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:126:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:126;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:126;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:126;;;2546:26;2497:89;-1:-1:-1;;1308:1:126;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:126;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:126;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;2701:177::-;2780:13;;-1:-1:-1;;;;;2822:31:126;;2812:42;;2802:70;;2868:1;2865;2858:12;2802:70;2701:177;;;:::o;2883:293::-;2962:6;2970;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3062:40;3092:9;3062:40;:::i;:::-;3052:50;;3121:49;3166:2;3155:9;3151:18;3121:49;:::i;:::-;3111:59;;2883:293;;;;;:::o;3389:208::-;3459:6;3512:2;3500:9;3491:7;3487:23;3483:32;3480:52;;;3528:1;3525;3518:12;3480:52;3551:40;3581:9;3551:40;:::i;:::-;3541:50;3389:208;-1:-1:-1;;;3389:208:126:o;:::-;327:2776:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100ef575f3560e01c80638da5cb5b11610087578063e1758bd811610057578063e1758bd8146102fe578063f2fde38b14610331578063f77e5dd314610350578063ff7bd03d1461037c575f80fd5b80638da5cb5b1461025d578063b4ab5dd114610286578063bb0b6a53146102a6578063ca5eb5e1146102df575f80fd5b8063715018a6116100c2578063715018a6146101a557806373d4a13a146101b95780637d25a05e146101da57806382413eac14610212575f80fd5b806313137d65146100f357806317442b70146101085780633400288b1461012e5780635e280f111461014d575b5f80fd5b610106610101366004610eee565b61039b565b005b348015610113575f80fd5b50604080516001815260026020820152015b60405180910390f35b348015610139575f80fd5b50610106610148366004610f9f565b61049a565b348015610158575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610125565b3480156101b0575f80fd5b506101066104b0565b3480156101c4575f80fd5b506101cd6104c3565b6040516101259190611028565b3480156101e5575f80fd5b506101f96101f4366004610f9f565b61054f565b60405167ffffffffffffffff9091168152602001610125565b34801561021d575f80fd5b5061024d61022c366004611041565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b6040519015158152602001610125565b348015610268575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610180565b610299610294366004611180565b610557565b60405161012591906111f9565b3480156102b1575f80fd5b506102d16102c036600461123b565b60016020525f908152604090205481565b604051908152602001610125565b3480156102ea575f80fd5b506101066102f9366004611254565b6105fd565b348015610309575f80fd5b506101807f000000000000000000000000000000000000000000000000000000000000000081565b34801561033c575f80fd5b5061010661034b366004611254565b6106a4565b34801561035b575f80fd5b5061036f61036a36600461126f565b610707565b60405161012591906112fd565b348015610387575f80fd5b5061024d610396366004611314565b610753565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610411576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6020870180359061042b90610426908a61123b565b610787565b146104825761043d602088018861123b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610408565b610491878787878787876107db565b50505050505050565b6104a26107fe565b6104ac8282610850565b5050565b6104b86107fe565b6104c15f6108a4565b565b600280546104d09061132e565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc9061132e565b80156105475780601f1061051e57610100808354040283529160200191610547565b820191905f5260205f20905b81548152906001019060200180831161052a57829003601f168201915b505050505081565b5f5b92915050565b61055f610e2e565b5f856040516020016105719190611028565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020601f880181900481028401810190925286835292506105f291899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506109189050565b979650505050505050565b6106056107fe565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561068b575f80fd5b505af115801561069d573d5f803e3d5ffd5b5050505050565b6106ac6107fe565b73ffffffffffffffffffffffffffffffffffffffff81166106fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610408565b610704816108a4565b50565b604080518082019091525f80825260208201525f8460405160200161072c9190611028565b604051602081830303815290604052905061074986828686610a1a565b9695505050505050565b5f60208201803590600190839061076a908661123b565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f9081526001602052604081205480610551576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610408565b6107e784860186611379565b6002906107f490826113fc565b5050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146104c1576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610408565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610920610e2e565b825161092b90610b05565b50602083015115610943576109438360200151610bd9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff16815260200161099f8a610787565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b81526004016109da929190611518565b6080604051808303815f875af11580156109f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107499190611608565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001610a8989610787565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401610abe929190611518565b6040805180830381865afa158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611677565b95945050505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b73576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085610cf4565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190611691565b905073ffffffffffffffffffffffffffffffffffffffff8116610cb6576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ac73ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610d89908590610d8f565b50505050565b5f8060205f8451602086015f885af180610dae576040513d5f823e3d81fd5b50505f513d91508115610dc5578060011415610ddf565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15610d89576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610408565b60405180606001604052805f80191681526020015f67ffffffffffffffff168152602001610e6d60405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610e82575f80fd5b50919050565b5f8083601f840112610e98575f80fd5b50813567ffffffffffffffff811115610eaf575f80fd5b602083019150836020828501011115610ec6575f80fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610704575f80fd5b5f805f805f805f60e0888a031215610f04575f80fd5b610f0e8989610e72565b965060608801359550608088013567ffffffffffffffff80821115610f31575f80fd5b610f3d8b838c01610e88565b909750955060a08a01359150610f5282610ecd565b90935060c08901359080821115610f67575f80fd5b50610f748a828b01610e88565b989b979a50959850939692959293505050565b803563ffffffff81168114610f9a575f80fd5b919050565b5f8060408385031215610fb0575f80fd5b610fb983610f87565b946020939093013593505050565b5f81518084525f5b81811015610feb57602081850181015186830182015201610fcf565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61103a6020830184610fc7565b9392505050565b5f805f8060a08587031215611054575f80fd5b61105e8686610e72565b9350606085013567ffffffffffffffff811115611079575f80fd5b61108587828801610e88565b909450925050608085013561109981610ecd565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff808411156110eb576110eb6110a4565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611131576111316110a4565b81604052809350858152868686011115611149575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112611171575f80fd5b61103a838335602085016110d1565b5f805f805f60808688031215611194575f80fd5b61119d86610f87565b9450602086013567ffffffffffffffff808211156111b9575f80fd5b6111c589838a01611162565b955060408801359150808211156111da575f80fd5b506111e788828901610e88565b96999598509660600135949350505050565b5f6080820190508251825267ffffffffffffffff60208401511660208301526040830151611234604084018280518252602090810151910152565b5092915050565b5f6020828403121561124b575f80fd5b61103a82610f87565b5f60208284031215611264575f80fd5b813561103a81610ecd565b5f805f8060808587031215611282575f80fd5b61128b85610f87565b9350602085013567ffffffffffffffff808211156112a7575f80fd5b6112b388838901611162565b945060408701359150808211156112c8575f80fd5b508501601f810187136112d9575f80fd5b6112e8878235602084016110d1565b92505060608501358015158114611099575f80fd5b815181526020808301519082015260408101610551565b5f60608284031215611324575f80fd5b61103a8383610e72565b600181811c9082168061134257607f821691505b602082108103610e82577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215611389575f80fd5b813567ffffffffffffffff81111561139f575f80fd5b6113ab84828501611162565b949350505050565b601f8211156113f757805f5260205f20601f840160051c810160208510156113d85750805b601f840160051c820191505b8181101561069d575f81556001016113e4565b505050565b815167ffffffffffffffff811115611416576114166110a4565b61142a81611424845461132e565b846113b3565b602080601f83116001811461147c575f84156114465750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611510565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156114c8578886015182559484019460019091019084016114a9565b508582101561150457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261154d60e0840182610fc7565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526115888282610fc7565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156115cb575f80fd5b6040516040810181811067ffffffffffffffff821117156115ee576115ee6110a4565b604052825181526020928301519281019290925250919050565b5f60808284031215611618575f80fd5b6040516060810167ffffffffffffffff828210818311171561163c5761163c6110a4565b8160405284518352602085015191508082168214611658575f80fd5b50602082015261166b84604085016115bb565b60408201529392505050565b5f60408284031215611687575f80fd5b61103a83836115bb565b5f602082840312156116a1575f80fd5b815161103a81610ecd56fea264697066735822122058a5d1db4a3021da207c8d27434f623ddcca52c84230c6cb3a2de84acd6e170f64736f6c63430008160033","sourceMap":"327:2776:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4368:708:58;;;;;;:::i;:::-;;:::i;:::-;;1587:235:2;;;;;;;;;;-1:-1:-1;1587:235:2;;;843:1:59;1944:34:126;;678:1:58;2009:2:126;1994:18;;1987:43;1880:18;1587:235:2;;;;;;;;1724:108:57;;;;;;;;;;-1:-1:-1;1724:108:57;;;;;:::i;:::-;;:::i;446:46::-;;;;;;;;;;;;;;;;;;2671:42:126;2659:55;;;2641:74;;2629:2;2614:18;446:46:57;2466:255:126;2293:101:104;;;;;;;;;;;;;:::i;470:44:125:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3507:128:58:-;;;;;;;;;;-1:-1:-1;3507:128:58;;;;;:::i;:::-;;:::i;:::-;;;3612:18:126;3600:31;;;3582:50;;3570:2;3555:18;3507:128:58;3438:200:126;2013:216:58;;;;;;;;;;-1:-1:-1;2013:216:58;;;;;:::i;:::-;2198:24;;;2217:4;2198:24;2013:216;;;;;;;;;;4483:14:126;;4476:22;4458:41;;4446:2;4431:18;2013:216:58;4318:187:126;1638:85:104;;;;;;;;;;-1:-1:-1;1684:7:104;1710:6;;;1638:85;;981:363:125;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;569:48:57:-;;;;;;;;;;-1:-1:-1;569:48:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7596:25:126;;;7584:2;7569:18;569:48:57;7450:177:126;3252:105:57;;;;;;;;;;-1:-1:-1;3252:105:57;;;;;:::i;:::-;;:::i;742:36:3:-;;;;;;;;;;;;;;;2543:215:104;;;;;;;;;;-1:-1:-1;2543:215:104;;;;;:::i;:::-;;:::i;1835:307:125:-;;;;;;;;;;-1:-1:-1;1835:307:125;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2771:149:58:-;;;;;;;;;;-1:-1:-1;2771:149:58;;;;;:::i;:::-;;:::i;4368:708::-;4681:8;4673:31;;4694:10;4673:31;4669:68;;4713:24;;;;;4726:10;4713:24;;;2641:74:126;2614:18;;4713:24:58;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;;;;9503:10:126;9491:23;;;4896:40:58;;;9473:42:126;4921:14:58;;;;9531:18:126;;;9524:34;9446:18;;4896:40:58;9301:263:126;4833:103:58;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;1724:108:57:-;1531:13:104;:11;:13::i;:::-;1804:21:57::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;2293:101:104:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;470:44:125:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3507:128:58:-;3596:12;3507:128;;;;;:::o;981:363:125:-;1144:31;;:::i;:::-;1187:21;1222:8;1211:20;;;;;;;;:::i;:::-;;;;;;;;;;;;1251:86;;;;;;;;;;;;;;;;;;1211:20;-1:-1:-1;1251:86:125;;1259:7;;1211:20;;;1278:8;;;;;;1251:86;;1278:8;;;;1251:86;;;;;;;;-1:-1:-1;1288:27:125;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1325:10:125;;-1:-1:-1;1251:7:125;;-1:-1:-1;1251:86:125:i;:::-;1241:96;981:363;-1:-1:-1;;;;;;;981:363:125:o;3252:105:57:-;1531:13:104;:11;:13::i;:::-;3319:31:57::1;::::0;;;;:20:::1;2659:55:126::0;;;3319:31:57::1;::::0;::::1;2641:74:126::0;3319:8:57::1;:20;::::0;::::1;::::0;2614:18:126;;3319:31:57::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;2543:215:104:-;1531:13;:11;:13::i;:::-;2627:22:::1;::::0;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;2641:74:126::0;2614:18;;2672:31:104::1;2466:255:126::0;2623:91:104::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1835:307:125:-;-1:-1:-1;;;;;;;;;;;;;;;;;2027:20:125;2061:8;2050:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2027:43;;2086:49;2093:7;2102;2111:8;2121:13;2086:6;:49::i;:::-;2080:55;1835:307;-1:-1:-1;;;;;;1835:307:125:o;2771:149:58:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:58;;:37;;2771:149;-1:-1:-1;;2771:149:58:o;2718:196:57:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;;;;10185:10:126;10173:23;;2874:12:57;;;10155:42:126;10128:18;;2874:12:57;10011:192:126;2838:263:125;3065:29;;;;3076:7;3065:29;:::i;:::-;3058:4;;:36;;:4;:36;:::i;:::-;;2838:263;;;;;;;:::o;1796:162:104:-;1684:7;1710:6;1855:23;1710:6;735:10:114;1855:23:104;1851:101;;1901:40;;;;;735:10:114;1901:40:104;;;2641:74:126;2614:18;;1901:40:104;2466:255:126;2286:134:57;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;9473:42:126;;;9531:18;;9524:34;;;2393:20:57;;9446:18:126;2393:20:57;;;;;;;2286:134;;:::o;2912:187:104:-;2985:16;3004:6;;;3020:17;;;;;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1658:721:3:-;1860:31;;:::i;:::-;2036:14;;2025:26;;:10;:26::i;:::-;-1:-1:-1;2065:15:3;;;;:19;2061:53;;2086:28;2098:4;:15;;;2086:11;:28::i;:::-;2203:8;:13;;;2234:92;;;;;;;;2250:7;2234:92;;;;;;2259:25;2276:7;2259:16;:25::i;:::-;2234:92;;;;2286:8;2234:92;;;;2296:8;2234:92;;;;2324:1;2306:4;:15;;;:19;2234:92;;;;;2344:14;2203:169;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2038:391:59:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:59;:14;;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;2038:391;-1:-1:-1;;;;;2038:391:59:o;3014:350:3:-;3081:17;3114:11;:25;;3110:62;;3148:24;;;;;;;;;;;;;;3110:62;3250:79;:36;3257:11;3250:36;3287:10;3307:8;3318:10;3250:36;:79::i;:::-;-1:-1:-1;3347:10:3;3014:350::o;5218:410:59:-;5371:15;5389:8;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;5421:21:59;;;5417:54;;5451:20;;;;;;;;;;;;;;5417:54;5545:76;:32;;;5578:10;5598:8;5609:11;1670:188:112;1797:53;;;1812:18;15878:15:126;;;1797:53:112;;;15860:34:126;15930:15;;15910:18;;;15903:43;15962:18;;;;15955:34;;;1797:53:112;;;;;;;;;;15772:18:126;;;;1797:53:112;;;;;;;;;;;;;;1770:81;;1790:5;;1770:19;:81::i;:::-;1670:188;;;;:::o;7738:720::-;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:112;8278:8;8234:16;;-1:-1:-1;8310:15:112;;:68;;8362:11;8377:1;8362:16;;8310:68;;;8328:26;;;;:31;8310:68;8306:146;;;8401:40;;;;;2671:42:126;2659:55;;8401:40:112;;;2641:74:126;2614:18;;8401:40:112;2466:255:126;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:126:-;73:5;118:2;109:6;104:3;100:16;96:25;93:45;;;134:1;131;124:12;93:45;-1:-1:-1;156:6:126;14:154;-1:-1:-1;14:154:126:o;173:347::-;224:8;234:6;288:3;281:4;273:6;269:17;265:27;255:55;;306:1;303;296:12;255:55;-1:-1:-1;329:20:126;;372:18;361:30;;358:50;;;404:1;401;394:12;358:50;441:4;433:6;429:17;417:29;;493:3;486:4;477:6;469;465:19;461:30;458:39;455:59;;;510:1;507;500:12;455:59;173:347;;;;;:::o;525:154::-;611:42;604:5;600:54;593:5;590:65;580:93;;669:1;666;659:12;684:1048;827:6;835;843;851;859;867;875;928:3;916:9;907:7;903:23;899:33;896:53;;;945:1;942;935:12;896:53;968;1013:7;1002:9;968:53;:::i;:::-;958:63;;1068:2;1057:9;1053:18;1040:32;1030:42;;1123:3;1112:9;1108:19;1095:33;1147:18;1188:2;1180:6;1177:14;1174:34;;;1204:1;1201;1194:12;1174:34;1243:58;1293:7;1284:6;1273:9;1269:22;1243:58;:::i;:::-;1320:8;;-1:-1:-1;1217:84:126;-1:-1:-1;1405:3:126;1390:19;;1377:33;;-1:-1:-1;1419:31:126;1377:33;1419:31;:::i;:::-;1469:5;;-1:-1:-1;1527:3:126;1512:19;;1499:33;;1544:16;;;1541:36;;;1573:1;1570;1563:12;1541:36;;1612:60;1664:7;1653:8;1642:9;1638:24;1612:60;:::i;:::-;684:1048;;;;-1:-1:-1;684:1048:126;;-1:-1:-1;684:1048:126;;;;1586:86;;-1:-1:-1;;;684:1048:126:o;2041:163::-;2108:20;;2168:10;2157:22;;2147:33;;2137:61;;2194:1;2191;2184:12;2137:61;2041:163;;;:::o;2209:252::-;2276:6;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;2376:28;2394:9;2376:28;:::i;:::-;2366:38;2451:2;2436:18;;;;2423:32;;-1:-1:-1;;;2209:252:126:o;2726:482::-;2768:3;2806:5;2800:12;2833:6;2828:3;2821:19;2858:1;2868:162;2882:6;2879:1;2876:13;2868:162;;;2944:4;3000:13;;;2996:22;;2990:29;2972:11;;;2968:20;;2961:59;2897:12;2868:162;;;2872:3;3075:1;3068:4;3059:6;3054:3;3050:16;3046:27;3039:38;3197:4;3127:66;3122:2;3114:6;3110:15;3106:88;3101:3;3097:98;3093:109;3086:116;;;2726:482;;;;:::o;3213:220::-;3362:2;3351:9;3344:21;3325:4;3382:45;3423:2;3412:9;3408:18;3400:6;3382:45;:::i;:::-;3374:53;3213:220;-1:-1:-1;;;3213:220:126:o;3643:670::-;3757:6;3765;3773;3781;3834:3;3822:9;3813:7;3809:23;3805:33;3802:53;;;3851:1;3848;3841:12;3802:53;3874;3919:7;3908:9;3874:53;:::i;:::-;3864:63;;3978:2;3967:9;3963:18;3950:32;4005:18;3997:6;3994:30;3991:50;;;4037:1;4034;4027:12;3991:50;4076:58;4126:7;4117:6;4106:9;4102:22;4076:58;:::i;:::-;4153:8;;-1:-1:-1;4050:84:126;-1:-1:-1;;4238:3:126;4223:19;;4210:33;4252:31;4210:33;4252:31;:::i;:::-;3643:670;;;;-1:-1:-1;3643:670:126;;-1:-1:-1;;3643:670:126:o;4741:184::-;4793:77;4790:1;4783:88;4890:4;4887:1;4880:15;4914:4;4911:1;4904:15;4930:691;4995:5;5025:18;5066:2;5058:6;5055:14;5052:40;;;5072:18;;:::i;:::-;5206:2;5200:9;5272:2;5260:15;;5111:66;5256:24;;;5282:2;5252:33;5248:42;5236:55;;;5306:18;;;5326:22;;;5303:46;5300:72;;;5352:18;;:::i;:::-;5392:10;5388:2;5381:22;5421:6;5412:15;;5451:6;5443;5436:22;5491:3;5482:6;5477:3;5473:16;5470:25;5467:45;;;5508:1;5505;5498:12;5467:45;5558:6;5553:3;5546:4;5538:6;5534:17;5521:44;5613:1;5606:4;5597:6;5589;5585:19;5581:30;5574:41;;;;4930:691;;;;;:::o;5626:222::-;5669:5;5722:3;5715:4;5707:6;5703:17;5699:27;5689:55;;5740:1;5737;5730:12;5689:55;5762:80;5838:3;5829:6;5816:20;5809:4;5801:6;5797:17;5762:80;:::i;5853:771::-;5959:6;5967;5975;5983;5991;6044:3;6032:9;6023:7;6019:23;6015:33;6012:53;;;6061:1;6058;6051:12;6012:53;6084:28;6102:9;6084:28;:::i;:::-;6074:38;;6163:2;6152:9;6148:18;6135:32;6186:18;6227:2;6219:6;6216:14;6213:34;;;6243:1;6240;6233:12;6213:34;6266:50;6308:7;6299:6;6288:9;6284:22;6266:50;:::i;:::-;6256:60;;6369:2;6358:9;6354:18;6341:32;6325:48;;6398:2;6388:8;6385:16;6382:36;;;6414:1;6411;6404:12;6382:36;;6453:60;6505:7;6494:8;6483:9;6479:24;6453:60;:::i;:::-;5853:771;;;;-1:-1:-1;6532:8:126;6614:2;6599:18;6586:32;;5853:771;-1:-1:-1;;;;5853:771:126:o;6787:469::-;6947:4;6989:3;6978:9;6974:19;6966:27;;7026:6;7020:13;7009:9;7002:32;7102:18;7094:4;7086:6;7082:17;7076:24;7072:49;7065:4;7054:9;7050:20;7043:79;7169:4;7161:6;7157:17;7151:24;7184:66;7244:4;7233:9;7229:20;7215:12;6707;;6695:25;;6769:4;6758:16;;;6752:23;6736:14;;6729:47;6629:153;7184:66;;6787:469;;;;:::o;7261:184::-;7319:6;7372:2;7360:9;7351:7;7347:23;7343:32;7340:52;;;7388:1;7385;7378:12;7340:52;7411:28;7429:9;7411:28;:::i;7632:247::-;7691:6;7744:2;7732:9;7723:7;7719:23;7715:32;7712:52;;;7760:1;7757;7750:12;7712:52;7799:9;7786:23;7818:31;7843:5;7818:31;:::i;7884:905::-;7985:6;7993;8001;8009;8062:3;8050:9;8041:7;8037:23;8033:33;8030:53;;;8079:1;8076;8069:12;8030:53;8102:28;8120:9;8102:28;:::i;:::-;8092:38;;8181:2;8170:9;8166:18;8153:32;8204:18;8245:2;8237:6;8234:14;8231:34;;;8261:1;8258;8251:12;8231:34;8284:50;8326:7;8317:6;8306:9;8302:22;8284:50;:::i;:::-;8274:60;;8387:2;8376:9;8372:18;8359:32;8343:48;;8416:2;8406:8;8403:16;8400:36;;;8432:1;8429;8422:12;8400:36;-1:-1:-1;8455:24:126;;8510:4;8502:13;;8498:27;-1:-1:-1;8488:55:126;;8539:1;8536;8529:12;8488:55;8562:74;8628:7;8623:2;8610:16;8605:2;8601;8597:11;8562:74;:::i;:::-;8552:84;;;8686:2;8675:9;8671:18;8658:32;8733:5;8726:13;8719:21;8712:5;8709:32;8699:60;;8755:1;8752;8745:12;8794:261;6707:12;;6695:25;;6769:4;6758:16;;;6752:23;6736:14;;;6729:47;8988:2;8973:18;;9000:49;6629:153;9060:236;9145:6;9198:2;9186:9;9177:7;9173:23;9169:32;9166:52;;;9214:1;9211;9204:12;9166:52;9237:53;9282:7;9271:9;9237:53;:::i;9569:437::-;9648:1;9644:12;;;;9691;;;9712:61;;9766:4;9758:6;9754:17;9744:27;;9712:61;9819:2;9811:6;9808:14;9788:18;9785:38;9782:218;;9856:77;9853:1;9846:88;9957:4;9954:1;9947:15;9985:4;9982:1;9975:15;10208:322;10277:6;10330:2;10318:9;10309:7;10305:23;10301:32;10298:52;;;10346:1;10343;10336:12;10298:52;10386:9;10373:23;10419:18;10411:6;10408:30;10405:50;;;10451:1;10448;10441:12;10405:50;10474;10516:7;10507:6;10496:9;10492:22;10474:50;:::i;:::-;10464:60;10208:322;-1:-1:-1;;;;10208:322:126:o;10661:518::-;10763:2;10758:3;10755:11;10752:421;;;10799:5;10796:1;10789:16;10843:4;10840:1;10830:18;10913:2;10901:10;10897:19;10894:1;10890:27;10884:4;10880:38;10949:4;10937:10;10934:20;10931:47;;;-1:-1:-1;10972:4:126;10931:47;11027:2;11022:3;11018:12;11015:1;11011:20;11005:4;11001:31;10991:41;;11082:81;11100:2;11093:5;11090:13;11082:81;;;11159:1;11145:16;;11126:1;11115:13;11082:81;;10752:421;10661:518;;;:::o;11415:1464::-;11541:3;11535:10;11568:18;11560:6;11557:30;11554:56;;;11590:18;;:::i;:::-;11619:97;11709:6;11669:38;11701:4;11695:11;11669:38;:::i;:::-;11663:4;11619:97;:::i;:::-;11771:4;;11828:2;11817:14;;11845:1;11840:782;;;;12666:1;12683:6;12680:89;;;-1:-1:-1;12735:19:126;;;12729:26;12680:89;11321:66;11312:1;11308:11;;;11304:84;11300:89;11290:100;11396:1;11392:11;;;11287:117;12782:81;;11810:1063;;11840:782;10608:1;10601:14;;;10645:4;10632:18;;11888:66;11876:79;;;12053:236;12067:7;12064:1;12061:14;12053:236;;;12156:19;;;12150:26;12135:42;;12248:27;;;;12216:1;12204:14;;;;12083:19;;12053:236;;;12057:3;12317:6;12308:7;12305:19;12302:261;;;12378:19;;;12372:26;12479:66;12461:1;12457:14;;;12473:3;12453:24;12449:97;12445:102;12430:118;12415:134;;12302:261;;;12609:1;12600:6;12597:1;12593:14;12589:22;12583:4;12576:36;11810:1063;;;;;11415:1464;;:::o;12884:973::-;13107:2;13096:9;13089:21;13165:10;13156:6;13150:13;13146:30;13141:2;13130:9;13126:18;13119:58;13231:4;13223:6;13219:17;13213:24;13208:2;13197:9;13193:18;13186:52;13070:4;13285:2;13277:6;13273:15;13267:22;13326:4;13320:3;13309:9;13305:19;13298:33;13354:52;13401:3;13390:9;13386:19;13372:12;13354:52;:::i;:::-;13340:66;;13455:2;13447:6;13443:15;13437:22;13525:66;13513:9;13505:6;13501:22;13497:95;13490:4;13479:9;13475:20;13468:125;13616:41;13650:6;13634:14;13616:41;:::i;:::-;13726:3;13714:16;;;;13708:23;13701:31;13694:39;13688:3;13673:19;;13666:68;-1:-1:-1;;;13807:42:126;13795:55;;;;13788:4;13773:20;;;13766:85;13602:55;12884:973::o;13862:478::-;13932:5;13980:4;13968:9;13963:3;13959:19;13955:30;13952:50;;;13998:1;13995;13988:12;13952:50;14031:4;14025:11;14075:4;14067:6;14063:17;14146:6;14134:10;14131:22;14110:18;14098:10;14095:34;14092:62;14089:88;;;14157:18;;:::i;:::-;14193:4;14186:24;14258:16;;14243:32;;14329:2;14314:18;;;14308:25;14291:15;;;14284:50;;;;-1:-1:-1;14228:6:126;13862:478;-1:-1:-1;13862:478:126:o;14345:727::-;14449:6;14502:3;14490:9;14481:7;14477:23;14473:33;14470:53;;;14519:1;14516;14509:12;14470:53;14552:2;14546:9;14594:4;14586:6;14582:17;14618:18;14686:6;14674:10;14671:22;14666:2;14654:10;14651:18;14648:46;14645:72;;;14697:18;;:::i;:::-;14737:10;14733:2;14726:22;14778:9;14772:16;14764:6;14757:32;14832:2;14821:9;14817:18;14811:25;14798:38;;14876:2;14869:5;14865:14;14858:5;14855:25;14845:53;;14894:1;14891;14884:12;14845:53;-1:-1:-1;14926:2:126;14914:15;;14907:30;14970:70;15032:7;15027:2;15012:18;;14970:70;:::i;:::-;14965:2;14953:15;;14946:95;14957:6;14345:727;-1:-1:-1;;;14345:727:126:o;15077:259::-;15177:6;15230:2;15218:9;15209:7;15205:23;15201:32;15198:52;;;15246:1;15243;15236:12;15198:52;15269:61;15322:7;15311:9;15269:61;:::i;15341:251::-;15411:6;15464:2;15452:9;15443:7;15439:23;15435:32;15432:52;;;15480:1;15477;15470:12;15432:52;15512:9;15506:16;15531:31;15556:5;15531:31;:::i","linkReferences":{},"immutableReferences":{"11250":[{"start":350,"length":32},{"start":925,"length":32},{"start":1610,"length":32},{"start":2373,"length":32}