@latticexyz/world-modules 2.0.0-main-2699630c → 2.0.0-main-747d8d1b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"register","inputs":[{"name":"world","type":"address","internalType":"contract IBaseWorld"},{"name":"namespace","type":"bytes14","internalType":"bytes14"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"PackedCounter"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"FieldLayoutLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614873806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"3359:506:228:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"3359:506:228:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:372;;;;;;:::i;:::-;;:::i;:::-;;;3586:50;3606:29;3625:9;3606:18;:29::i;:::-;3586:19;:50::i;:::-;3642:46;3660:27;3677:9;3660:16;:27::i;:::-;3642:17;:46::i;:::-;3694:51;3717:27;3734:9;3717:16;:27::i;:::-;3694:22;:51::i;:::-;3786:5;:20;;;3807:25;3822:9;3807:14;:25::i;:::-;3834:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3786:72:228;;;;;;;;;;;;;827:25:307;;;;900:42;888:55;868:18;;;861:83;3853:4:228;960:18:307;;;953:50;800:18;;3786:72:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:372;;:::o;487:185:240:-;548:10;571:98;-1:-1:-1;;;634:9:240;651:15;571:25;:98::i;:::-;564:105;487:185;-1:-1:-1;;487:185:240:o;2793:174:236:-;2847:115;2873:8;1162:66;2897:14;:12;:14::i;:::-;2913:16;:14;:16::i;:::-;2931:13;:11;:13::i;:::-;2946:15;:13;:15::i;:::-;2847:25;:115::i;:::-;2793:174;:::o;674:181:240:-;733:10;756:96;-1:-1:-1;;;819:9:240;836:13;756:25;:96::i;2722:174:289:-;2776:115;2802:8;1162:66;2826:14;:12;:14::i;:::-;2842:16;:14;:16::i;:::-;2860:13;:11;:13::i;1047:181:240:-;1106:10;1129:96;-1:-1:-1;;;1192:9:240;1209:13;1129:25;:96::i;2879:174:237:-;2933:115;2959:8;1162:66;2983:14;:12;:14::i;:::-;2999:16;:14;:16::i;:::-;3017:13;:11;:13::i;:::-;3032:15;:13;:15::i;1230:184:240:-;1287:10;1310:101;1346:15;1374:9;1391:17;1008:257:164;1095:10;1224:26;399:6;336:5:122;1224:26:164;:::i;:::-;1151:15;;;1170:31;336:5:122;1170:31:164;;;;1151:51;1206:13;;;:45;;;1151:101;;-1:-1:-1;1008:257:164;;;;;:::o;1578:240:236:-;1672:19;;;1689:1;1672:19;;;;;;;;1625:6;;;;1672:19;1689:1;1672:19;;;;;;;;;;-1:-1:-1;1672:19:236;1639:52;;1713:18;1697:10;1708:1;1697:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1753:18;1737:10;1748:1;1737:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1785:28:236;1802:10;1785:16;:28::i;:::-;1778:35;;;1578:240;:::o;1935:208::-;2033:19;;;2050:1;2033:19;;;;;;;;;1984:6;;;;2033:19;;;;;;;;;;;;-1:-1:-1;2033:19:236;1998:54;;2076:18;2058:12;2071:1;2058:15;;;;;;;;:::i;2277:167::-;2366:15;;;2379:1;2366:15;;;2323:24;2366:15;;;;;;;;;;;;;;;;;;;;;;;;;;2355:26;;2387:23;;;;;;;;;;;;;;;;;:8;2396:1;2387:11;;;;;;;;:::i;:::-;;;;;;:23;;;;2416;;;;;;;;;;;;;;;;;:8;2425:1;2416:11;;;;;;;;:::i;:::-;;;;;;:23;;;;2277:167;:::o;2584:144::-;2679:15;;;2692:1;2679:15;;;;;;;;;2632:26;;2679:15;;;;;;;;;;;;;;;;;;;;2666:28;;2700:23;;;;;;;;;;;;;;;;;:10;2711:1;2700:13;;;;;;;;:::i;5574:520:130:-;5777:21;5801:17;:15;:17::i;:::-;5777:41;-1:-1:-1;5853:4:130;5828:30;;;;5824:266;;5868:91;5892:7;5901:11;5914:9;5925:11;5938:8;5948:10;5868:23;:91::i;:::-;5824:266;;;5980:103;;;;;:35;;;;;;:103;;6016:7;;6025:11;;6038:9;;6049:11;;6062:8;;6072:10;;5980:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:266;5771:323;5574:520;;;;;;:::o;1576:200:289:-;1670:19;;;1687:1;1670:19;;;;;;;;;1623:6;;;;1670:19;;;;;;;;;;;;-1:-1:-1;1670:19:289;1637:52;;1711:18;1695:10;1706:1;1695:13;;;;;;;;:::i;2235:138::-;2324:15;;;2337:1;2324:15;;;;;;;;;2281:24;;2324:15;;;;;;;;;;;;;;;;;;;;2313:26;;2345:23;;;;;;;;;;;;;;;;;:8;2354:1;2345:11;;;;;;;;:::i;1661:160:237:-;1755:19;;;1708:6;1755:19;;;;;;;;;1788:28;1805:10;1788:16;:28::i;1938:288::-;2036:19;;;2053:1;2036:19;;;;;;;;;1987:6;;;;2036:19;;;;;;;;;;;-1:-1:-1;2036:19:237;2001:54;;2079:16;2061:12;2074:1;2061:15;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2119:17;2101:12;2114:1;2101:15;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2160:17;2142:12;2155:1;2142:15;;;;;;;;:::i;2360:109::-;2449:15;;;2462:1;2449:15;;;;;;;;;2406:24;;2449:15;;;;;;;;;;;;;;;;;;;;2438:26;;2360:109;:::o;2609:205::-;2704:15;;;2717:1;2704:15;;;;;;;;;2657:26;;2704:15;;;;;;;;;;;;;;;;;;;;2691:28;;2725:26;;;;;;;;;;;;;;;;;:10;2736:1;2725:13;;;;;;;;:::i;:::-;;;;;;:26;;;;2757:22;;;;;;;;;;;;;;;;;:10;2768:1;2757:13;;;;;;;;:::i;:::-;;;;;;:22;;;;2785:24;;;;;;;;;;;;;;;;;:10;2796:1;2785:13;;;;;;;;:::i;1247:2059:123:-;1315:6;647:2:136;1333:7:123;:14;:33;1329:85;;;1399:7;:14;1375:39;;-1:-1:-1;;;1375:39:123;;;;;;4209:25:307;;4197:2;4182:18;;4063:177;1375:39:123;;;;;;;;1329:85;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:136;2531::123;2527;437:2:136;2509:19:123;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:123;;1621:956;;;;902:1:136;2621:13:123;:34;2617:85;;;2664:38;;-1:-1:-1;;;2664:38:123;;;;;4209:25:307;;;4182:18;;2664:38:123;4063:177:307;2617:85:123;2802:14;;:30;;;537:1:136;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:123;;;3080:51;;;;;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:123;;;3137:57;;;;;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:123;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:123:o;1766:227:130:-;996:42;1855:22;1816:7;;1855:22;;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1969:13;1766:227;-1:-1:-1;1766:227:130:o;7479:1764:126:-;-1:-1:-1;;;7739:7:126;:35;;;;;;:83;;-1:-1:-1;7799:23:126;7778:7;:44;;;;7739:83;7735:209;;;-1:-1:-1;;;7894:7:126;7927;7910:25;;;;;;4712:19:307;;4756:2;4747:12;;4551:214;7910:25:126;;;;-1:-1:-1;;7910:25:126;;;;;;;;;;7839:98;;;;;;;;;;:::i;7735:209::-;7990:43;:11;8025:5;7990:20;:43::i;:::-;8074:40;:9;8107:4;8074:18;:40::i;:::-;8120:43;:11;8155:5;8120:20;:43::i;:::-;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8251:8:126;:15;:40;8247:148;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8372:15:126;;8308:80;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8308:80:126;5240:248:307;8247:148:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8445:10:126;:17;:44;8441:158;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8574:17:126;;8506:86;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8506:86:126;5240:248:307;8441:158:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8656:50:126;8652:171;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8723:93:126;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8723:93:126;5240:248:307;8652:171:126;8885:31;8908:7;8885:22;:31::i;:::-;8881:140;;;8971:7;9004;8987:25;;;;;;4712:19:307;;4756:2;4747:12;;4551:214;8987:25:126;;;;-1:-1:-1;;8987:25:126;;;;;;;;;;8933:81;;;;;;;;;:::i;8881:140::-;9062:103;9074:7;9083:11;9096:9;9107:11;9131:8;9120:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;9153:10;9142:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:11;:103::i;:::-;9201:37;9224:7;9233:4;9201:22;:37::i;3195:520:107:-;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:107:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;-1:-1:-1;3707:1:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;3270:445;3195:520;;;:::o;6418:1197:109:-;6540:10;6539:11;:36;;;;-1:-1:-1;6022:45:109;;6554:21;6535:95;;;6584:46;;;;;6628:1;6584:46;;;4209:25:307;4182:18;;6584:46:109;4063:177:307;6535:95:109;6698:25;6726:30;:11;:28;:30::i;:::-;6698:58;;902:1:136;6766:17:109;:38;6762:113;;;6813:62;;;;;;;;4209:25:307;;;4182:18;;6813:62:109;4063:177:307;6762:113:109;6882:24;6909:29;:11;:27;:29::i;:::-;6882:56;-1:-1:-1;7013:23:109;7039:36;7058:17;6882:56;7039:36;:::i;:::-;7013:62;;647:2:136;7085:15:109;:34;7081:107;;;7128:60;;;;;;;;4209:25:307;;;4182:18;;7128:60:109;4063:177:307;7081:107:109;7236:9;7231:380;7251:16;7247:1;:20;7231:380;;;3996:93;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;7279:24;7340:21;;;7336:230;;7380:50;;;;;;;;;;;;;;7336:230;334:2:136;7449:16:109;:28;7445:121;;;7496:61;;;;;;;;;;;;;;7445:121;-1:-1:-1;7593:3:109;;7231:380;;5689:1683:123;5796:10;5795:11;:31;;;;-1:-1:-1;6022:45:109;;5810:16:123;5791:80;;;5835:36;;-1:-1:-1;;;5835:36:123;;5869:1;5835:36;;;4209:25:307;4182:18;;5835:36:123;4063:177:307;5791:80:123;5934:25;5962;:6;:23;:25::i;:::-;5934:53;;902:1:136;5997:17:123;:38;5993:103;;;6044:52;;-1:-1:-1;;;6044:52:123;;;;;4209:25:307;;;4182:18;;6044:52:123;4063:177:307;5993:103:123;6103:24;6130;:6;:22;:24::i;:::-;6103:51;-1:-1:-1;6224:23:123;6250:36;6269:17;6103:51;6250:36;:::i;:::-;6224:62;;647:2:136;6296:15:123;:34;6292:97;;;6339:50;;-1:-1:-1;;;6339:50:123;;;;;4209:25:307;;;4182:18;;6339:50:123;4063:177:307;6292:97:123;6448:25;6479:26;6516:9;6511:551;6531:15;6527:1;:19;6511:551;;;6604:1;6562:39;:17;:6;6577:1;6562:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6558:459;;;6666:16;6661:1;:21;6657:82;;6691:48;;;;;;;;;;;;;;6657:82;6771:19;;;;;6558:459;;;6873:16;6869:1;:20;6865:81;;;6898:48;;;;;;;;;;;;;;6865:81;6978:20;;;;;6558:459;7044:3;;6511:551;;;;7135:16;7114:17;:37;7110:102;;7160:52;;-1:-1:-1;;;7160:52:123;;;;;4209:25:307;;;4182:18;;7160:52:123;4063:177:307;7110:102:123;7288:17;7266:18;:39;7262:105;;7314:53;;-1:-1:-1;;;7314:53:123;;;;;4209:25:307;;;4182:18;;7314:53:123;4063:177:307;3569:314:133;3683:16;;;3697:1;3683:16;;;;;;;;;3635:11;;;;3683:16;;;;;;;;;;;;-1:-1:-1;3683:16:133;3654:45;;3738:10;3705:9;3715:1;3705:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:22:133;6696:12:307;;;6689:101;1047:74:133;;;;;;;;;;6806:12:307;;1047:74:133;;-1:-1:-1;;3772:62:133;;1039:83;;;:::i;:::-;3807:9;3818:1;1234:66;3772:24;:62::i;:::-;3756:78;;3848:29;3869:5;3856:20;;1596:10:122;1487:126;3848:29:133;3840:38;3569:314;-1:-1:-1;;;;3569:314:133:o;20632:676:135:-;25186:53;;;;;;7671:19:307;;;7706:12;;;7699:28;;;25159:12:135;7743::307;;;7736:28;;;25186:53:135;;;;;;;;;;7780:12:307;;;;25186:53:135;;;20923:29;20955:55;20969:18;20989:20;20955:13;:55::i;:::-;20923:87;;21016:25;21044:55;21058:18;21078:20;21044:13;:55::i;:::-;21135:16;;;21149:1;21135:16;;;;;;;;;21016:83;;-1:-1:-1;21106:26:135;;21135:16;;;;;;;;;;;;-1:-1:-1;21135:16:135;21106:45;;21190:7;21157:9;21167:1;21157:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1147:69;;;-1:-1:-1;;;1147:69:135;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1198:17:135;6696:12:307;;;6689:101;1147:69:135;;;;;;;;;;6806:12:307;;1147:69:135;;21205:98;;1139:78;;;:::i;:::-;21235:9;21246:11;21259:15;21276:12;1324:66;21205:19;:98::i;:::-;20834:474;;;;20632:676;;;;;;:::o;4933:268:133:-;5033:16;;;5047:1;5033:16;;;;;;;;;5004:26;;5033:16;;;;;;;;;;;-1:-1:-1;5033:16:133;5004:45;;5088:10;5055:9;5065:1;5055:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:22:133;6696:12:307;;;6689:101;1047:74:133;;;;;;;;;;6806:12:307;;1047:74:133;;5106:90;;1039:83;;;:::i;:::-;5141:9;5152:1;5173:6;5155:26;;;;;;7342:14:307;7335:22;7330:3;7326:32;7314:45;;7384:1;7375:11;;7191:201;5155:26:133;;;;-1:-1:-1;;5155:26:133;;;;;;;;;1234:66;5106:24;:90::i;:::-;4998:203;4933:268;;:::o;5098:173:109:-;5172:7;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;5208:11:109;5187:79;5200:65;;5187:79;;5098:173;-1:-1:-1;;5098:173:109:o;4700:171::-;4773:7;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;3948:206:123:-;4018:10;4108:19;:27;;;4139:1;4107:33;4086:6;4061:82;4078:63;;4061:82;;;;;;;;;:::i;:::-;4054:89;3948:206;-1:-1:-1;;;3948:206:123:o;35212:541:126:-;35369:7;35506:242;35550:59;35591:7;35600:8;35550:40;:59::i;:::-;35627:31;;;;4044:19:109;:27;537:1:136;4043:44:109;4009:79;;;3996:93;35676:63:126;35715:11;35728:10;35676:38;:63::i;:::-;35506:17;:242::i;:::-;35493:255;35212:541;-1:-1:-1;;;;;35212:541:126:o;25435:388:135:-;25743:32;;25777:34;;25561:29;;2377:5:121;;;785;2408:39;;;;2390:58;2489:23;2474:39;;;;2456:58;25721:91:135;2236:344:121;25988:234:135;26114:12;26165:18;26194:20;26141:76;;;;;;;;;:::i;:::-;;;;;;;;;;;;;26134:83;;25988:234;;;;:::o;12721:3002:126:-;12994:7;12978:75;13003:8;13013:10;13025:14;13041:11;12978:75;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;13118:7:126;:35;;;13163:7;13114:62;13314:22;13339:24;13355:7;13339:15;:24::i;:::-;13314:49;;13374:9;13369:340;13389:5;:12;13385:1;:16;13369:340;;;13416:9;13438:5;13444:1;13438:8;;;;;;;;:::i;:::-;;;;;;;13416:31;;13459:33;343:6:138;13459:4:126;:14;;;;;:33;;;;:::i;:::-;13455:248;;;13504:190;;;;;3392:35:110;;;;;13504:47:126;;:190;;13563:7;;13582:8;;13602:10;;13624:14;;13650:11;;13673;;13504:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13455:248;-1:-1:-1;13403:3:126;;;;:::i;:::-;;;;13369:340;;;;13772:26;13801:59;13842:7;13851:8;13801:40;:59::i;:::-;13772:88;-1:-1:-1;13866:21:126;826:4:120;816:15;;13866:54:126;;13926:149;13964:18;13998:1;14022:13;14051:10;:17;13926:13;:149::i;:::-;14175:1;14142:30;:11;:28;:30::i;:::-;:34;14138:1174;;;14261:33;14297:66;14345:7;14354:8;14297:47;:66::i;:::-;579:28:125;;;14261:102:126;-1:-1:-1;826:4:120;816:15;;14537:47:126;;14693:27;14728:25;14766:7;14761:545;14779:30;:11;:28;:30::i;:::-;14775:1;:34;;;14761:545;;;14845:63;14887:7;14896:8;14906:1;14845:41;:63::i;:::-;14823:85;-1:-1:-1;14938:25:126;:14;14961:1;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;14938:25:126;14918:45;;14973:170;15015:19;15054:1;15082:13;15115:17;14973:13;:170::i;:::-;15153:34;15170:17;15153:34;;:::i;:::-;;-1:-1:-1;15284:3:126;;14761:545;;;;14178:1134;;;14138:1174;15386:9;15381:338;15401:5;:12;15397:1;:16;15381:338;;;15428:9;15450:5;15456:1;15450:8;;;;;;;;:::i;:::-;;;;;;;15428:31;;15471:32;437:6:138;15471:4:126;:14;;;;;:32;;;;:::i;:::-;15467:246;;;15515:189;;;;;3392:35:110;;;;;15515:46:126;;:189;;15573:7;;15592:8;;15612:10;;15634:14;;15660:11;;15683;;15515:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15467:246;-1:-1:-1;15415:3:126;;;;:::i;:::-;;;;15381:338;;22277:355;22449:178;22483:7;22508:8;22538:63;22577:11;22590:10;22538:38;:63::i;:::-;22616:4;22449:16;:178::i;:::-;22277:355;;;;;:::o;49619:191::-;49721:7;49785;49794:8;49768:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;49768:35:126;;;;;;;;;49758:46;;49768:35;49758:46;;;;41226:22;49751:53;;49619:191;-1:-1:-1;;;49619:191:126:o;50636:242::-;50732:7;;;50771:84;50791:10;50787:14;;:1;:14;50771:84;;;50816:32;3996:93:109;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;50816:32:126;;:::i;:::-;;-1:-1:-1;50803:3:126;;;;:::i;:::-;;;;50771:84;;;-1:-1:-1;50867:6:126;50636:242;-1:-1:-1;;;50636:242:126:o;8680:790:125:-;8778:14;8814:2;8804:6;:12;8800:112;;8873:2;8864:6;:11;8846:29;;;;8895:2;8885:12;;;;;;:::i;:::-;;;;8800:112;-1:-1:-1;9092:21:125;;9088:1;9076:14;;9072:42;9240:2;:11;;;9322:22;;;9318:148;;;9447:1;9431:14;9427:22;9421:29;9417:1;9402:13;9398:21;9394:57;9386:6;9383:69;9373:79;;8794:676;8680:790;;;;;:::o;4372:342:134:-;4488:16;;;4502:1;4488:16;;;;;;;;;4429:22;;4459:26;;4488:16;;;;;;;;;;;;-1:-1:-1;4488:16:134;4459:45;;4543:7;4510:9;4520:1;4510:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1047:73;;;-1:-1:-1;;;1047:73:134;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:21:134;6696:12:307;;;6689:101;1047:73:134;;;;;;;;;;6806:12:307;;1047:73:134;;-1:-1:-1;;4579:49:134;;1039:82;;;:::i;:::-;4615:9;4626:1;4579:25;:49::i;:::-;4558:70;;4642:66;:44;4663:5;4670:1;4673:5;:12;4642:20;:44::i;:::-;:64;:66::i;2891:136:110:-;2961:4;3013:9;2980:42;;2999:9;2981:15;2991:4;3790:26;;;3660:162;2981:15;:27;2980:42;;;2973:49;;2891:136;;;;:::o;1373:2326:125:-;1486:10;;1482:1491;;1639:2;1629:6;:12;1625:122;;1702:2;1693:6;:11;1675:29;;;;1726:2;1716:12;;;;;;:::i;:::-;;;;1625:122;1837:10;;1833:1134;;2045:2;:11;;;1919:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;2077:31:125;;2277:1;2269:6;2265:14;2313:4;2302:9;2298:20;2290:28;;2368:13;2362:20;2351:9;2347:36;2329:54;;2616:4;2612:9;2595:14;2589:21;2585:37;2516:4;2504:10;2500:21;2443:193;2415:14;2395:253;;2707:13;2697:6;:23;2693:36;;2722:7;;;;2693:36;-1:-1:-1;2870:1:125;2852:19;;;;;2883:30;;;;2925:23;;1833:1134;3003:253;3020:2;3010:6;:12;3003:253;;3115:20;;3092:44;;3189:1;3171:19;;;;3217:2;3200:19;;;;-1:-1:-1;;3229:12:125;3003:253;;;3324:10;;3320:375;;3626:21;;3542:20;;-1:-1:-1;;1080:1:137;1067:14;;1045:37;3622::125;;;1043:40:137;;3538:31:125;3487:184;3443:238;;3320:375;1373:2326;;;;:::o;52184:230:126:-;52305:7;52389;52398:8;52372:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52372:35:126;;;;;;;;;52362:46;;52372:35;52362:46;;;;41389:40;52335:73;;52184:230;-1:-1:-1;;;52184:230:126:o;51555:274::-;51699:7;51804;51813:8;51787:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;51777:46;;;;;;51756:17;51749:25;;51729:45;;;41298:34;51729:45;:94;51721:103;;51714:110;;51555:274;;;;;:::o;16359:1506::-;16480:16;16499:59;16540:7;16549:8;16499:40;:59::i;:::-;16480:78;;16660:7;16616:100;16679:8;16696:5;16709:4;16616:100;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;16781:7:126;:35;;;16777:62;;16826:7;;;16777:62;16984:22;17009:24;17025:7;17009:15;:24::i;:::-;16984:49;;17044:9;17039:328;17059:5;:12;17055:1;:16;17039:328;;;17086:9;17108:5;17114:1;17108:8;;;;;;;;:::i;:::-;;;;;;;17086:31;;17129:41;548:6:138;17129:4:126;:14;;;;;:41;;;;:::i;:::-;17125:236;;;17182:170;;;;;3392:35:110;;;;;17182:54:126;;:170;;17258:7;;17287:8;;17314:5;;17337:4;;17182:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17125:236;-1:-1:-1;17073:3:126;;;;:::i;:::-;;;;17039:328;;;;17416:70;17448:8;17466:5;17416:70;;17479:4;17416:13;:70::i;:::-;17540:9;17535:326;17555:5;:12;17551:1;:16;17535:326;;;17582:9;17604:5;17610:1;17604:8;;;;;;;;:::i;:::-;;;;;;;17582:31;;17625:40;657:6:138;17625:4:126;:14;;;;;:40;;;;:::i;:::-;17621:234;;;17677:169;;;;;3392:35:110;;;;;17677:53:126;;:169;;17752:7;;17781:8;;17808:5;;17831:4;;17677:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17621:234;-1:-1:-1;17569:3:126;;;;:::i;:::-;;;;17535:326;;36221:522;36357:12;36481:257;36520:79;36562:7;36571:8;36581:17;36520:41;:79::i;:::-;36617:93;36692:17;36617:66;36665:7;36674:8;36617:47;:66::i;:::-;:74;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;36617:93:126;36728:1;36481:12;:257::i;2022:570:124:-;2113:5;2211:3;2202:5;:12;;:34;;;;;2225:4;:11;2218:3;:18;;2202:34;2196:85;;2264:4;2270:5;2277:3;2246:35;;;;;;;;;;;;;:::i;2196:85::-;2349:4;2339:15;;2396:17;2408:5;2339:15;2396:17;:::i;:::-;;-1:-1:-1;2419:12:124;2434:11;2440:5;2434:3;:11;:::i;:::-;643:17;2570:15;2562:3;2550:15;;;;2549:37;;;;;;-1:-1:-1;;;;;2022:570:124:o;40037:220:140:-;40103:24;40135:30;40168:32;40186:6;40194:2;40198:1;40168:17;:32::i;850:162:125:-;939:68;945:14;961:6;826:4:120;816:15;;995:4:125;:11;939:5;:68::i;52752:301:126:-;52873:13;52965:82;52996:48;53026:7;53035:8;52996:29;:48::i;:::-;4572:21:125;;4466:137;4903:665;5315:4;5309:11;5356:4;5344:17;;-1:-1:-1;;5234:14:125;5403:26;;;5234:14;5230:28;5375:4;5368:63;5475:6;5467;5460:22;5493:51;5498:14;5514:6;5522;5530:13;5493:4;:51::i;2631:1127:142:-;2751:22;2781:21;2805;:11;2946:3:124;2924:25;;2850:104;2805:21:142;2781:45;-1:-1:-1;643:17:124;3187:38;;2832:20:142;2994:11;3187:38:124;2994:11:142;2979:26;;;;:::i;:::-;;2965:40;;3114:4;3108:11;3099:20;;3157:4;3150:5;3146:16;3217:2;3204:11;3200:20;3186:12;3182:39;3176:4;3169:53;3265:11;3258:5;3251:26;3308:1;3285:463;3324:11;3321:1;3318:18;3285:463;;;3718:20;;3697:42;;3676:64;;3590:31;;;;3503:4;3485:23;;;;3411:1;3404:9;3285:463;;;3289:28;;3066:688;;;2631:1127;;;;;:::o;5933:2258:125:-;6050:10;;6046:1421;;6203:2;6193:6;:12;6189:122;;6266:2;6257:6;:11;6239:29;;;;6290:2;6280:12;;;;;;:::i;:::-;;;;6189:122;6401:10;;6397:1064;;6609:2;:11;;;6483:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;6641:38:125;;6863:14;6857:21;6853:1;6845:6;6841:14;6837:42;7110:4;7106:9;7090:13;7084:20;7080:36;7011:4;6999:10;6995:21;6938:192;6911:13;6891:251;;7201:13;7191:6;:23;7187:36;;7216:7;;;;7187:36;-1:-1:-1;7364:1:125;7346:19;;;;;7419:23;;;;;7377:30;6397:1064;7496:253;7513:2;7503:6;:12;7496:253;;7607:21;;7585:44;;7682:1;7664:19;;;;-1:-1:-1;;7722:12:125;;;;7710:2;7693:19;7496:253;;;7817:10;;7813:374;;7837:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;8119:20:125;;8034:21;;8030:32;;8141:9;;8115:36;7979:184;7936:237;;-1:-1:-1;5933:2258:125;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:558:307:-;102:6;110;163:2;151:9;142:7;138:23;134:32;131:52;;;179:1;176;169:12;131:52;218:9;205:23;268:42;261:5;257:54;250:5;247:65;237:93;;326:1;323;316:12;237:93;349:5;-1:-1:-1;406:2:307;391:18;;378:32;454:66;441:80;;429:93;;419:121;;536:1;533;526:12;419:121;559:7;549:17;;;14:558;;;;;:::o;1014:184::-;-1:-1:-1;;;1063:1:307;1056:88;1163:4;1160:1;1153:15;1187:4;1184:1;1177:15;1203:125;1268:9;;;1289:10;;;1286:36;;;1302:18;;:::i;1522:184::-;-1:-1:-1;;;1571:1:307;1564:88;1671:4;1668:1;1661:15;1695:4;1692:1;1685:15;1711:184;-1:-1:-1;;;1760:1:307;1753:88;1860:4;1857:1;1850:15;1884:4;1881:1;1874:15;1900:250;1985:1;1995:113;2009:6;2006:1;2003:13;1995:113;;;2085:11;;;2079:18;2066:11;;;2059:39;2031:2;2024:10;1995:113;;;-1:-1:-1;;2142:1:307;2124:16;;2117:27;1900:250::o;2155:330::-;2197:3;2235:5;2229:12;2262:6;2257:3;2250:19;2278:76;2347:6;2340:4;2335:3;2331:14;2324:4;2317:5;2313:16;2278:76;:::i;:::-;2399:2;2387:15;-1:-1:-1;;2383:88:307;2374:98;;;;2474:4;2370:109;;2155:330;-1:-1:-1;;2155:330:307:o;2490:651::-;2542:3;2573;2605:5;2599:12;2632:6;2627:3;2620:19;2658:4;2687:2;2682:3;2678:12;2671:19;;2743:2;2733:6;2730:1;2726:14;2719:5;2715:26;2711:35;2780:2;2773:5;2769:14;2801:1;2811:304;2825:6;2822:1;2819:13;2811:304;;;-1:-1:-1;;2900:5:307;2894:4;2890:16;2886:89;2881:3;2874:102;2997:38;3030:4;3021:6;3015:13;2997:38;:::i;:::-;3093:12;;;;2989:46;-1:-1:-1;3058:15:307;;;;2847:1;2840:9;2811:304;;;-1:-1:-1;3131:4:307;;2490:651;-1:-1:-1;;;;;;;2490:651:307:o;3146:912::-;3676:6;3665:9;3658:25;3719:6;3714:2;3703:9;3699:18;3692:34;3762:6;3757:2;3746:9;3742:18;3735:34;3805:6;3800:2;3789:9;3785:18;3778:34;3849:3;3843;3832:9;3828:19;3821:32;3639:4;3876:56;3927:3;3916:9;3912:19;3904:6;3876:56;:::i;:::-;3981:9;3973:6;3969:22;3963:3;3952:9;3948:19;3941:51;4009:43;4045:6;4037;4009:43;:::i;:::-;4001:51;3146:912;-1:-1:-1;;;;;;;;;3146:912:307:o;4245:128::-;4312:9;;;4333:11;;;4330:37;;;4347:18;;:::i;4378:168::-;4451:9;;;4482;;4499:15;;;4493:22;;4479:37;4469:71;;4520:18;;:::i;4770:465::-;5017:66;5009:6;5005:79;4994:9;4987:98;5121:6;5116:2;5105:9;5101:18;5094:34;5164:2;5159;5148:9;5144:18;5137:30;4968:4;5184:45;5225:2;5214:9;5210:18;5202:6;5184:45;:::i;5493:323::-;5702:6;5691:9;5684:25;5745:2;5740;5729:9;5725:18;5718:30;5665:4;5765:45;5806:2;5795:9;5791:18;5783:6;5765:45;:::i;5821:280::-;6020:2;6009:9;6002:21;5983:4;6040:55;6091:2;6080:9;6076:18;6068:6;6040:55;:::i;6829:357::-;6947:12;;6994:4;6983:16;;;6977:23;;6947:12;7012:16;;7009:171;;;-1:-1:-1;;7086:4:307;7082:17;;;;7079:1;7075:25;7071:98;7060:110;;6829:357;-1:-1:-1;6829:357:307:o;7803:492::-;7978:3;8016:6;8010:13;8032:66;8091:6;8086:3;8079:4;8071:6;8067:17;8032:66;:::i;:::-;8161:13;;8120:16;;;;8183:70;8161:13;8120:16;8230:4;8218:17;;8183:70;:::i;:::-;8269:20;;7803:492;-1:-1:-1;;;;7803:492:307:o;8300:435::-;8353:3;8391:5;8385:12;8418:6;8413:3;8406:19;8444:4;8473:2;8468:3;8464:12;8457:19;;8510:2;8503:5;8499:14;8531:1;8541:169;8555:6;8552:1;8549:13;8541:169;;;8616:13;;8604:26;;8650:12;;;;8685:15;;;;8577:1;8570:9;8541:169;;;-1:-1:-1;8726:3:307;;8300:435;-1:-1:-1;;;;;8300:435:307:o;8740:691::-;9074:3;9063:9;9056:22;9037:4;9101:57;9153:3;9142:9;9138:19;9130:6;9101:57;:::i;:::-;9206:9;9198:6;9194:22;9189:2;9178:9;9174:18;9167:50;9240:33;9266:6;9258;9240:33;:::i;:::-;9226:47;;9309:6;9304:2;9293:9;9289:18;9282:34;9364:9;9356:6;9352:22;9347:2;9336:9;9332:18;9325:50;9392:33;9418:6;9410;9392:33;:::i;:::-;9384:41;8740:691;-1:-1:-1;;;;;;;8740:691:307:o;9436:900::-;9891:6;9880:9;9873:25;9934:3;9929:2;9918:9;9914:18;9907:31;9854:4;9961:57;10013:3;10002:9;9998:19;9990:6;9961:57;:::i;:::-;10066:9;10058:6;10054:22;10049:2;10038:9;10034:18;10027:50;10100:33;10126:6;10118;10100:33;:::i;:::-;10086:47;;10169:6;10164:2;10153:9;10149:18;10142:34;10225:9;10217:6;10213:22;10207:3;10196:9;10192:19;10185:51;10253:33;10279:6;10271;10253:33;:::i;:::-;10245:41;;;10323:6;10317:3;10306:9;10302:19;10295:35;9436:900;;;;;;;;;:::o;10341:195::-;10380:3;-1:-1:-1;;10404:5:307;10401:77;10398:103;;10481:18;;:::i;:::-;-1:-1:-1;10528:1:307;10517:13;;10341:195::o;10541:640::-;10792:6;10787:3;10780:19;10762:3;10818:2;10851;10846:3;10842:12;10883:6;10877:13;10948:2;10940:6;10936:15;10969:1;10979:175;10993:6;10990:1;10987:13;10979:175;;;11056:13;;11042:28;;11092:14;;;;11129:15;;;;11015:1;11008:9;10979:175;;;-1:-1:-1;11170:5:307;;10541:640;-1:-1:-1;;;;;;;10541:640:307:o;11186:184::-;-1:-1:-1;;;11235:1:307;11228:88;11335:4;11332:1;11325:15;11359:4;11356:1;11349:15;11375:512;11626:2;11615:9;11608:21;11589:4;11652:56;11704:2;11693:9;11689:18;11681:6;11652:56;:::i;:::-;11756:14;11748:6;11744:27;11739:2;11728:9;11724:18;11717:55;11820:9;11812:6;11808:22;11803:2;11792:9;11788:18;11781:50;11848:33;11874:6;11866;11848:33;:::i;:::-;11840:41;11375:512;-1:-1:-1;;;;;;11375:512:307:o;11892:617::-;12203:6;12192:9;12185:25;12246:3;12241:2;12230:9;12226:18;12219:31;12166:4;12273:57;12325:3;12314:9;12310:19;12302:6;12273:57;:::i;:::-;12378:14;12370:6;12366:27;12361:2;12350:9;12346:18;12339:55;12442:9;12434:6;12430:22;12425:2;12414:9;12410:18;12403:50;12470:33;12496:6;12488;12470:33;:::i;12514:360::-;12717:2;12706:9;12699:21;12680:4;12737:45;12778:2;12767:9;12763:18;12755:6;12737:45;:::i;:::-;12813:2;12798:18;;12791:34;;;;-1:-1:-1;12856:2:307;12841:18;12834:34;12729:53;12514:360;-1:-1:-1;12514:360:307:o","linkReferences":{}},"methodIdentifiers":{"register(address,bytes14)":"472466c2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"PackedCounter\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IBaseWorld\",\"name\":\"world\",\"type\":\"address\"},{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"register(address,bytes14)\":{\"notice\":\"Register systems and tables for a new ERC20 token in a given namespace\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/erc20-puppet/ERC20Module.sol\":\"ERC20ModuleRegistrationLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5\",\"dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751\",\"dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95\",\"dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a\",\"dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/world/src/DelegationControl.sol\":{\"keccak256\":\"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c\",\"dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883\",\"dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510\",\"dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5\",\"dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8\",\"dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b\",\"dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198\",\"dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac\",\"dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93\",\"dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae\",\"dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1\",\"dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]},\"src/modules/erc20-puppet/ERC20Module.sol\":{\"keccak256\":\"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6\",\"dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR\"]},\"src/modules/erc20-puppet/ERC20System.sol\":{\"keccak256\":\"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85\",\"dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot\"]},\"src/modules/erc20-puppet/IERC20.sol\":{\"keccak256\":\"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9\",\"dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS\"]},\"src/modules/erc20-puppet/IERC20Errors.sol\":{\"keccak256\":\"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b\",\"dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6\"]},\"src/modules/erc20-puppet/IERC20Events.sol\":{\"keccak256\":\"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f\",\"dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5\"]},\"src/modules/erc20-puppet/IERC20Mintable.sol\":{\"keccak256\":\"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205\",\"dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E\"]},\"src/modules/erc20-puppet/constants.sol\":{\"keccak256\":\"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b\",\"dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk\"]},\"src/modules/erc20-puppet/tables/Allowances.sol\":{\"keccak256\":\"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768\",\"dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo\"]},\"src/modules/erc20-puppet/tables/ERC20Metadata.sol\":{\"keccak256\":\"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee\",\"dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51\"]},\"src/modules/erc20-puppet/tables/ERC20Registry.sol\":{\"keccak256\":\"0x64ed658a41d86dc88c1eea8a18a0ed69dd940cd9b6ccf9375052a023ea1b62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30f4d7586232cbca686229cf9247d9dd3ed23638624c8d51455f628e13beeeb2\",\"dweb:/ipfs/QmbozJbJZPosWFwNmPBQyVSiQLZRWCZLvg5nNSHBPNdUHy\"]},\"src/modules/erc20-puppet/tables/TotalSupply.sol\":{\"keccak256\":\"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b\",\"dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9\"]},\"src/modules/erc20-puppet/utils.sol\":{\"keccak256\":\"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e\",\"dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN\"]},\"src/modules/puppet/Puppet.sol\":{\"keccak256\":\"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b\",\"dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD\"]},\"src/modules/puppet/PuppetDelegationControl.sol\":{\"keccak256\":\"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b\",\"dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW\"]},\"src/modules/puppet/PuppetFactorySystem.sol\":{\"keccak256\":\"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a\",\"dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t\"]},\"src/modules/puppet/PuppetMaster.sol\":{\"keccak256\":\"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f\",\"dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9\"]},\"src/modules/puppet/constants.sol\":{\"keccak256\":\"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449\",\"dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur\"]},\"src/modules/puppet/createPuppet.sol\":{\"keccak256\":\"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c\",\"dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3\"]},\"src/modules/puppet/tables/PuppetRegistry.sol\":{\"keccak256\":\"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436\",\"dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE\"]},\"src/modules/puppet/utils.sol\":{\"keccak256\":\"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c\",\"dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf\"]},\"src/modules/tokens/tables/Balances.sol\":{\"keccak256\":\"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d\",\"dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe\"]},\"src/utils/AccessControlLib.sol\":{\"keccak256\":\"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0\",\"dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"FieldLayoutLib_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"PackedCounter","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[{"internalType":"contract IBaseWorld","name":"world","type":"address"},{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"stateMutability":"nonpayable","type":"function","name":"register"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"register(address,bytes14)":{"notice":"Register systems and tables for a new ERC20 token in a given namespace"}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/modules/erc20-puppet/ERC20Module.sol":"ERC20ModuleRegistrationLibrary"},"libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558","urls":["bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4","dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0","urls":["bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba","dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd","urls":["bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18","dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e","urls":["bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e","dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb","urls":["bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0","dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed","urls":["bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d","dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32","urls":["bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c","dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5","urls":["bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648","dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180","urls":["bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534","dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e","urls":["bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5","dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789","urls":["bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751","dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14","urls":["bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95","dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb","urls":["bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a","dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f","urls":["bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401","dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b","urls":["bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256","dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/world/src/DelegationControl.sol":{"keccak256":"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9","urls":["bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c","dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581","urls":["bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883","dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db","urls":["bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510","dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500","urls":["bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d","dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719","urls":["bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5","dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417","urls":["bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb","dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc","urls":["bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8","dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol":{"keccak256":"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57","urls":["bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b","dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c","urls":["bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198","dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d","urls":["bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac","dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60","urls":["bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93","dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d","urls":["bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae","dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9","urls":["bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1","dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746","urls":["bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2","dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9"],"license":"MIT"},"src/modules/erc20-puppet/ERC20Module.sol":{"keccak256":"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453","urls":["bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6","dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR"],"license":"MIT"},"src/modules/erc20-puppet/ERC20System.sol":{"keccak256":"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154","urls":["bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85","dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot"],"license":"MIT"},"src/modules/erc20-puppet/IERC20.sol":{"keccak256":"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a","urls":["bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9","dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Errors.sol":{"keccak256":"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3","urls":["bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b","dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Events.sol":{"keccak256":"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d","urls":["bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f","dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Mintable.sol":{"keccak256":"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f","urls":["bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205","dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E"],"license":"MIT"},"src/modules/erc20-puppet/constants.sol":{"keccak256":"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889","urls":["bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b","dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk"],"license":"MIT"},"src/modules/erc20-puppet/tables/Allowances.sol":{"keccak256":"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74","urls":["bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768","dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Metadata.sol":{"keccak256":"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253","urls":["bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee","dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Registry.sol":{"keccak256":"0x64ed658a41d86dc88c1eea8a18a0ed69dd940cd9b6ccf9375052a023ea1b62c6","urls":["bzz-raw://30f4d7586232cbca686229cf9247d9dd3ed23638624c8d51455f628e13beeeb2","dweb:/ipfs/QmbozJbJZPosWFwNmPBQyVSiQLZRWCZLvg5nNSHBPNdUHy"],"license":"MIT"},"src/modules/erc20-puppet/tables/TotalSupply.sol":{"keccak256":"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385","urls":["bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b","dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9"],"license":"MIT"},"src/modules/erc20-puppet/utils.sol":{"keccak256":"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4","urls":["bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e","dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN"],"license":"MIT"},"src/modules/puppet/Puppet.sol":{"keccak256":"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab","urls":["bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b","dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD"],"license":"MIT"},"src/modules/puppet/PuppetDelegationControl.sol":{"keccak256":"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0","urls":["bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b","dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW"],"license":"MIT"},"src/modules/puppet/PuppetFactorySystem.sol":{"keccak256":"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85","urls":["bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a","dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t"],"license":"MIT"},"src/modules/puppet/PuppetMaster.sol":{"keccak256":"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5","urls":["bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f","dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9"],"license":"MIT"},"src/modules/puppet/constants.sol":{"keccak256":"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207","urls":["bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449","dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur"],"license":"MIT"},"src/modules/puppet/createPuppet.sol":{"keccak256":"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e","urls":["bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c","dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3"],"license":"MIT"},"src/modules/puppet/tables/PuppetRegistry.sol":{"keccak256":"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4","urls":["bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436","dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE"],"license":"MIT"},"src/modules/puppet/utils.sol":{"keccak256":"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66","urls":["bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c","dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf"],"license":"MIT"},"src/modules/tokens/tables/Balances.sol":{"keccak256":"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283","urls":["bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d","dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe"],"license":"MIT"},"src/utils/AccessControlLib.sol":{"keccak256":"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88","urls":["bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0","dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/modules/erc20-puppet/ERC20Module.sol","id":121869,"exportedSymbols":{"Allowances":[123839],"Balances":[156591],"ERC20Metadata":[125908],"ERC20MetadataData":[123885],"ERC20Module":[121820],"ERC20ModuleRegistrationLibrary":[121868],"ERC20Registry":[126666],"ERC20System":[122506],"ERC20_REGISTRY_TABLE_ID":[122741],"IBaseWorld":[96356],"InstalledModules":[98969],"MODULE_NAME":[122691],"MODULE_NAMESPACE":[122694],"MODULE_NAMESPACE_ID":[122708],"Module":[94903],"PUPPET_MODULE_NAME":[150956],"Puppet":[150648],"ResourceId":[82352],"ResourceIds":[87847],"WorldResourceIdLib":[96164],"_allowancesTableId":[127309],"_balancesTableId":[127325],"_erc20SystemId":[127373],"_metadataTableId":[127357],"createPuppet":[151083]},"nodeType":"SourceUnit","src":"32:3834:228","nodes":[{"id":121585,"nodeType":"PragmaDirective","src":"32:25:228","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":121587,"nodeType":"ImportDirective","src":"59:83:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol","file":"@latticexyz/store/src/codegen/tables/ResourceIds.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":87858,"symbolAliases":[{"foreign":{"id":121586,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"68:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121589,"nodeType":"ImportDirective","src":"143:66:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":82424,"symbolAliases":[{"foreign":{"id":121588,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"152:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121591,"nodeType":"ImportDirective","src":"210:58:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/Module.sol","file":"@latticexyz/world/src/Module.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":94904,"symbolAliases":[{"foreign":{"id":121590,"name":"Module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94903,"src":"219:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121593,"nodeType":"ImportDirective","src":"269:79:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96286,"symbolAliases":[{"foreign":{"id":121592,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"278:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121595,"nodeType":"ImportDirective","src":"349:85:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96357,"symbolAliases":[{"foreign":{"id":121594,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"358:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121597,"nodeType":"ImportDirective","src":"435:93:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol","file":"@latticexyz/world/src/codegen/tables/InstalledModules.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":98970,"symbolAliases":[{"foreign":{"id":121596,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"444:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121599,"nodeType":"ImportDirective","src":"530:46:228","nodes":[],"absolutePath":"src/modules/puppet/Puppet.sol","file":"../puppet/Puppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":150649,"symbolAliases":[{"foreign":{"id":121598,"name":"Puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150648,"src":"539:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121601,"nodeType":"ImportDirective","src":"577:58:228","nodes":[],"absolutePath":"src/modules/puppet/createPuppet.sol","file":"../puppet/createPuppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151084,"symbolAliases":[{"foreign":{"id":121600,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"586:12:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121603,"nodeType":"ImportDirective","src":"636:76:228","nodes":[],"absolutePath":"src/modules/puppet/constants.sol","file":"../puppet/constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151017,"symbolAliases":[{"foreign":{"id":121602,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"645:11:228","typeDescriptions":{}},"local":"PUPPET_MODULE_NAME","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121605,"nodeType":"ImportDirective","src":"713:57:228","nodes":[],"absolutePath":"src/modules/tokens/tables/Balances.sol","file":"../tokens/tables/Balances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":156592,"symbolAliases":[{"foreign":{"id":121604,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"722:8:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121610,"nodeType":"ImportDirective","src":"772:110:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122742,"symbolAliases":[{"foreign":{"id":121606,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"781:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121607,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"794:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121608,"name":"MODULE_NAMESPACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122708,"src":"812:19:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121609,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"833:23:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121615,"nodeType":"ImportDirective","src":"883:101:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/utils.sol","file":"./utils.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":127374,"symbolAliases":[{"foreign":{"id":121611,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"892:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121612,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"912:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121613,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"930:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121614,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"948:14:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121617,"nodeType":"ImportDirective","src":"985:48:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/ERC20System.sol","file":"./ERC20System.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122507,"symbolAliases":[{"foreign":{"id":121616,"name":"ERC20System","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122506,"src":"994:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121619,"nodeType":"ImportDirective","src":"1035:59:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Registry.sol","file":"./tables/ERC20Registry.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":126667,"symbolAliases":[{"foreign":{"id":121618,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"1044:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121621,"nodeType":"ImportDirective","src":"1095:53:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/Allowances.sol","file":"./tables/Allowances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":123840,"symbolAliases":[{"foreign":{"id":121620,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"1104:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121624,"nodeType":"ImportDirective","src":"1149:78:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Metadata.sol","file":"./tables/ERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":125909,"symbolAliases":[{"foreign":{"id":121622,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"1158:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121623,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"1173:17:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121820,"nodeType":"ContractDefinition","src":"1229:2128:228","nodes":[{"id":121630,"nodeType":"ErrorDefinition","src":"1264:54:228","nodes":[],"errorSelector":"0f31c63c","name":"ERC20Module_InvalidNamespace","nameLocation":"1270:28:228","parameters":{"id":121629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121628,"mutability":"mutable","name":"namespace","nameLocation":"1307:9:228","nodeType":"VariableDeclaration","scope":121630,"src":"1299:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121627,"name":"bytes14","nodeType":"ElementaryTypeName","src":"1299:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"1298:19:228"}},{"id":121639,"nodeType":"VariableDeclaration","src":"1322:85:228","nodes":[],"constant":false,"mutability":"immutable","name":"registrationLibrary","nameLocation":"1340:19:228","scope":121820,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121631,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1370:34:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"function () returns (contract ERC20ModuleRegistrationLibrary)"},"typeName":{"id":121635,"nodeType":"UserDefinedTypeName","pathNode":{"id":121634,"name":"ERC20ModuleRegistrationLibrary","nameLocations":["1374:30:228"],"nodeType":"IdentifierPath","referencedDeclaration":121868,"src":"1374:30:228"},"referencedDeclaration":121868,"src":"1374:30:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}},"id":121637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1370:36:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}],"id":121633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1362:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121632,"name":"address","nodeType":"ElementaryTypeName","src":"1362:7:228","typeDescriptions":{}}},"id":121638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":121648,"nodeType":"FunctionDefinition","src":"1412:87:228","nodes":[],"body":{"id":121647,"nodeType":"Block","src":"1470:29:228","nodes":[],"statements":[{"expression":{"id":121645,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1483:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"functionReturnParameters":121644,"id":121646,"nodeType":"Return","src":"1476:18:228"}]},"baseFunctions":[94638],"functionSelector":"17d7de7c","implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"1421:7:228","overrides":{"id":121641,"nodeType":"OverrideSpecifier","overrides":[],"src":"1443:8:228"},"parameters":{"id":121640,"nodeType":"ParameterList","parameters":[],"src":"1428:2:228"},"returnParameters":{"id":121644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121648,"src":"1461:7:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":121642,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1461:7:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"1460:9:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":121680,"nodeType":"FunctionDefinition","src":"1503:273:228","nodes":[],"body":{"id":121679,"nodeType":"Block","src":"1549:227:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121653,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1624:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":121657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1654:9:228","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":121655,"name":"bytes","nodeType":"ElementaryTypeName","src":"1658:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":121658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1644:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:23:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121651,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1603:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1620:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1603:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:65:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":121663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1680:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1672:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121661,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:228","typeDescriptions":{}}},"id":121664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1603:79:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121678,"nodeType":"IfStatement","src":"1599:173:228","trueBody":{"id":121677,"nodeType":"Block","src":"1684:88:228","statements":[{"errorCall":{"arguments":[{"arguments":[{"arguments":[{"id":121672,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1744:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":121670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1731:5:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":121669,"name":"bytes","nodeType":"ElementaryTypeName","src":"1731:5:228","typeDescriptions":{}}},"id":121671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:6:228","memberName":"concat","nodeType":"MemberAccess","src":"1731:12:228","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1731:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1724:6:228","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":121667,"name":"string","nodeType":"ElementaryTypeName","src":"1724:6:228","typeDescriptions":{}}},"id":121674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1724:40:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":121666,"name":"Module_MissingDependency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94632,"src":"1699:24:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:66:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121676,"nodeType":"RevertStatement","src":"1692:73:228"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_requireDependencies","nameLocation":"1512:20:228","parameters":{"id":121649,"nodeType":"ParameterList","parameters":[],"src":"1532:2:228"},"returnParameters":{"id":121650,"nodeType":"ParameterList","parameters":[],"src":"1549:0:228"},"scope":121820,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":121810,"nodeType":"FunctionDefinition","src":"1780:1474:228","nodes":[],"body":{"id":121809,"nodeType":"Block","src":"1823:1431:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121687,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1920:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"id":121689,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"1943:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1933:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:15:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121685,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1899:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1899:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":121694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1961:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121692,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:228","typeDescriptions":{}}},"id":121695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1899:64:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121701,"nodeType":"IfStatement","src":"1895:117:228","trueBody":{"id":121700,"nodeType":"Block","src":"1965:47:228","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121697,"name":"Module_AlreadyInstalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94628,"src":"1980:23:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121699,"nodeType":"RevertStatement","src":"1973:32:228"}]}},{"assignments":[121703,121706],"declarations":[{"constant":false,"id":121703,"mutability":"mutable","name":"namespace","nameLocation":"2047:9:228","nodeType":"VariableDeclaration","scope":121809,"src":"2039:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121702,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2039:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"},{"constant":false,"id":121706,"mutability":"mutable","name":"metadata","nameLocation":"2083:8:228","nodeType":"VariableDeclaration","scope":121809,"src":"2058:33:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData"},"typeName":{"id":121705,"nodeType":"UserDefinedTypeName","pathNode":{"id":121704,"name":"ERC20MetadataData","nameLocations":["2058:17:228"],"nodeType":"IdentifierPath","referencedDeclaration":123885,"src":"2058:17:228"},"referencedDeclaration":123885,"src":"2058:17:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_storage_ptr","typeString":"struct ERC20MetadataData"}},"visibility":"internal"}],"id":121715,"initialValue":{"arguments":[{"id":121709,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"2106:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":121711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes14_$","typeString":"type(bytes14)"},"typeName":{"id":121710,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2113:7:228","typeDescriptions":{}}},{"id":121712,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"2122:17:228","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$","typeString":"type(struct ERC20MetadataData storage pointer)"}}],"id":121713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:28:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}],"expression":{"id":121707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:6:228","memberName":"decode","nodeType":"MemberAccess","src":"2095:10:228","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":121714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes14_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$","typeString":"tuple(bytes14,struct ERC20MetadataData memory)"}},"nodeType":"VariableDeclarationStatement","src":"2038:103:228"},{"condition":{"commonType":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"id":121718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121716,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2214:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":121717,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"2227:16:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"src":"2214:29:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121724,"nodeType":"IfStatement","src":"2210:96:228","trueBody":{"id":121723,"nodeType":"Block","src":"2245:61:228","statements":[{"errorCall":{"arguments":[{"id":121720,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2289:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121719,"name":"ERC20Module_InvalidNamespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121630,"src":"2260:28:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes14_$returns$__$","typeString":"function (bytes14) pure"}},"id":121721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2260:39:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121722,"nodeType":"RevertStatement","src":"2253:46:228"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":121725,"name":"_requireDependencies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121680,"src":"2340:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":121726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:22:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121727,"nodeType":"ExpressionStatement","src":"2340:22:228"},{"assignments":[121730],"declarations":[{"constant":false,"id":121730,"mutability":"mutable","name":"world","nameLocation":"2424:5:228","nodeType":"VariableDeclaration","scope":121809,"src":"2413:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121729,"nodeType":"UserDefinedTypeName","pathNode":{"id":121728,"name":"IBaseWorld","nameLocations":["2413:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"2413:10:228"},"referencedDeclaration":96356,"src":"2413:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"}],"id":121735,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121732,"name":"_world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95789,"src":"2443:6:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:8:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121731,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"2432:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$96356_$","typeString":"type(contract IBaseWorld)"}},"id":121734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2432:20:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"nodeType":"VariableDeclarationStatement","src":"2413:39:228"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":121741,"name":"ERC20ModuleRegistrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121868,"src":"2506:30:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"type(contract ERC20ModuleRegistrationLibrary)"}},"id":121742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2537:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":121867,"src":"2506:39:228","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"}},{"components":[{"id":121743,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2548:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121744,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2555:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"id":121745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2547:18:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"},{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}],"expression":{"id":121739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:10:228","memberName":"encodeCall","nodeType":"MemberAccess","src":"2491:14:228","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:75:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":121736,"name":"registrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121639,"src":"2458:19:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2478:12:228","memberName":"delegatecall","nodeType":"MemberAccess","src":"2458:32:228","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":121747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:109:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":121748,"nodeType":"ExpressionStatement","src":"2458:109:228"},{"expression":{"arguments":[{"arguments":[{"id":121753,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2640:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121752,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"2623:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121755,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121706,"src":"2652:8:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}],"expression":{"id":121749,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"2605:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":125535,"src":"2605:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$returns$__$","typeString":"function (ResourceId,struct ERC20MetadataData memory)"}},"id":121756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:56:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121757,"nodeType":"ExpressionStatement","src":"2605:56:228"},{"assignments":[121760],"declarations":[{"constant":false,"id":121760,"mutability":"mutable","name":"erc20SystemId","nameLocation":"2724:13:228","nodeType":"VariableDeclaration","scope":121809,"src":"2713:24:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121759,"nodeType":"UserDefinedTypeName","pathNode":{"id":121758,"name":"ResourceId","nameLocations":["2713:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2713:10:228"},"referencedDeclaration":82352,"src":"2713:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121764,"initialValue":{"arguments":[{"id":121762,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2755:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121761,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"2740:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2740:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2713:52:228"},{"assignments":[121766],"declarations":[{"constant":false,"id":121766,"mutability":"mutable","name":"puppet","nameLocation":"2779:6:228","nodeType":"VariableDeclaration","scope":121809,"src":"2771:14:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121765,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":121771,"initialValue":{"arguments":[{"id":121768,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2801:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121769,"name":"erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121760,"src":"2808:13:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"id":121767,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"2788:12:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_address_$","typeString":"function (contract IBaseWorld,ResourceId) returns (address)"}},"id":121770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:34:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2771:51:228"},{"assignments":[121774],"declarations":[{"constant":false,"id":121774,"mutability":"mutable","name":"namespaceId","nameLocation":"2897:11:228","nodeType":"VariableDeclaration","scope":121809,"src":"2886:22:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121773,"nodeType":"UserDefinedTypeName","pathNode":{"id":121772,"name":"ResourceId","nameLocations":["2886:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2886:10:228"},"referencedDeclaration":82352,"src":"2886:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121779,"initialValue":{"arguments":[{"id":121777,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2946:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":121775,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"2911:18:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$96164_$","typeString":"type(library WorldResourceIdLib)"}},"id":121776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2930:15:228","memberName":"encodeNamespace","nodeType":"MemberAccess","referencedDeclaration":96119,"src":"2911:34:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2886:70:228"},{"expression":{"arguments":[{"id":121783,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"2986:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121784,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95767,"src":"2999:10:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121780,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2962:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2968:17:228","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":180199,"src":"2962:23:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,address) external"}},"id":121786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121787,"nodeType":"ExpressionStatement","src":"2962:50:228"},{"condition":{"id":121792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3070:47:228","subExpression":{"arguments":[{"id":121790,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3093:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121788,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"3071:11:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceIds_$87847_$","typeString":"type(library ResourceIds)"}},"id":121789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:9:228","memberName":"getExists","nodeType":"MemberAccess","referencedDeclaration":87367,"src":"3071:21:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_bool_$","typeString":"function (ResourceId) view returns (bool)"}},"id":121791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121800,"nodeType":"IfStatement","src":"3066:115:228","trueBody":{"id":121799,"nodeType":"Block","src":"3119:62:228","statements":[{"expression":{"arguments":[{"id":121796,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3150:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121793,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3127:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":126090,"src":"3127:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3127:47:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121798,"nodeType":"ExpressionStatement","src":"3127:47:228"}]}},{"expression":{"arguments":[{"id":121804,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3204:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121805,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"3229:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121806,"name":"puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121766,"src":"3242:6:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121801,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3186:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":126462,"src":"3186:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,ResourceId,address)"}},"id":121807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:63:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121808,"nodeType":"ExpressionStatement","src":"3186:63:228"}]},"baseFunctions":[94650],"functionSelector":"13861fb5","implemented":true,"kind":"function","modifiers":[],"name":"install","nameLocation":"1789:7:228","parameters":{"id":121683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121682,"mutability":"mutable","name":"args","nameLocation":"1810:4:228","nodeType":"VariableDeclaration","scope":121810,"src":"1797:17:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121681,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1796:19:228"},"returnParameters":{"id":121684,"nodeType":"ParameterList","parameters":[],"src":"1823:0:228"},"scope":121820,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121819,"nodeType":"FunctionDefinition","src":"3258:97:228","nodes":[],"body":{"id":121818,"nodeType":"Block","src":"3305:50:228","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121815,"name":"Module_RootInstallNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94624,"src":"3318:30:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3318:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121817,"nodeType":"RevertStatement","src":"3311:39:228"}]},"baseFunctions":[94644],"functionSelector":"7c5b0335","implemented":true,"kind":"function","modifiers":[],"name":"installRoot","nameLocation":"3267:11:228","parameters":{"id":121813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121819,"src":"3279:12:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121811,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:228"},"returnParameters":{"id":121814,"nodeType":"ParameterList","parameters":[],"src":"3305:0:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":121625,"name":"Module","nameLocations":["1253:6:228"],"nodeType":"IdentifierPath","referencedDeclaration":94903,"src":"1253:6:228"},"id":121626,"nodeType":"InheritanceSpecifier","src":"1253:6:228"}],"canonicalName":"ERC20Module","contractDependencies":[121868],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121820,94903,95807,177303,94651,177260],"name":"ERC20Module","nameLocation":"1238:11:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928,94624,94626,94628,94632,121630],"usedEvents":[83227,83240]},{"id":121868,"nodeType":"ContractDefinition","src":"3359:506:228","nodes":[{"id":121867,"nodeType":"FunctionDefinition","src":"3491:372:228","nodes":[],"body":{"id":121866,"nodeType":"Block","src":"3553:310:228","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":121833,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3625:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121832,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"3606:18:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3606:29:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121829,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"3586:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Allowances_$123839_$","typeString":"type(library Allowances)"}},"id":121831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":123021,"src":"3586:19:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3586:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121836,"nodeType":"ExpressionStatement","src":"3586:50:228"},{"expression":{"arguments":[{"arguments":[{"id":121841,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3677:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121840,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"3660:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121837,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"3642:8:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Balances_$156591_$","typeString":"type(library Balances)"}},"id":121839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3651:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":155960,"src":"3642:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121844,"nodeType":"ExpressionStatement","src":"3642:46:228"},{"expression":{"arguments":[{"arguments":[{"id":121849,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3734:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121848,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"3717:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121845,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"3694:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3708:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":124039,"src":"3694:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:51:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121852,"nodeType":"ExpressionStatement","src":"3694:51:228"},{"expression":{"arguments":[{"arguments":[{"id":121857,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3822:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121856,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"3807:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3834:15:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20System_$122506_$","typeString":"function () returns (contract ERC20System)"},"typeName":{"id":121860,"nodeType":"UserDefinedTypeName","pathNode":{"id":121859,"name":"ERC20System","nameLocations":["3838:11:228"],"nodeType":"IdentifierPath","referencedDeclaration":122506,"src":"3838:11:228"},"referencedDeclaration":122506,"src":"3838:11:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}}},"id":121862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:17:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}},{"hexValue":"74727565","id":121863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3853:4:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":121853,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121824,"src":"3786:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:14:228","memberName":"registerSystem","nodeType":"MemberAccess","referencedDeclaration":180318,"src":"3786:20:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_contract$_WorldContextConsumer_$95807_$_t_bool_$returns$__$","typeString":"function (ResourceId,contract WorldContextConsumer,bool) external"}},"id":121864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3786:72:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121865,"nodeType":"ExpressionStatement","src":"3786:72:228"}]},"documentation":{"id":121821,"nodeType":"StructuredDocumentation","src":"3403:85:228","text":" Register systems and tables for a new ERC20 token in a given namespace"},"functionSelector":"472466c2","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"3500:8:228","parameters":{"id":121827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121824,"mutability":"mutable","name":"world","nameLocation":"3520:5:228","nodeType":"VariableDeclaration","scope":121867,"src":"3509:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121823,"nodeType":"UserDefinedTypeName","pathNode":{"id":121822,"name":"IBaseWorld","nameLocations":["3509:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"3509:10:228"},"referencedDeclaration":96356,"src":"3509:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"constant":false,"id":121826,"mutability":"mutable","name":"namespace","nameLocation":"3535:9:228","nodeType":"VariableDeclaration","scope":121867,"src":"3527:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121825,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3527:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3508:37:228"},"returnParameters":{"id":121828,"nodeType":"ParameterList","parameters":[],"src":"3553:0:228"},"scope":121868,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC20ModuleRegistrationLibrary","contractDependencies":[122506],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121868],"name":"ERC20ModuleRegistrationLibrary","nameLocation":"3368:30:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928],"usedEvents":[83227,83240]}],"license":"MIT"},"id":228}
1
+ {"abi":[{"type":"function","name":"register","inputs":[{"name":"world","type":"address","internalType":"contract IBaseWorld"},{"name":"namespace","type":"bytes14","internalType":"bytes14"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"PackedCounter"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"FieldLayoutLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50614873806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"3359:506:228:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"3359:506:228:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:372;;;;;;:::i;:::-;;:::i;:::-;;;3586:50;3606:29;3625:9;3606:18;:29::i;:::-;3586:19;:50::i;:::-;3642:46;3660:27;3677:9;3660:16;:27::i;:::-;3642:17;:46::i;:::-;3694:51;3717:27;3734:9;3717:16;:27::i;:::-;3694:22;:51::i;:::-;3786:5;:20;;;3807:25;3822:9;3807:14;:25::i;:::-;3834:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3786:72:228;;;;;;;;;;;;;827:25:307;;;;900:42;888:55;868:18;;;861:83;3853:4:228;960:18:307;;;953:50;800:18;;3786:72:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:372;;:::o;487:185:240:-;548:10;571:98;-1:-1:-1;;;634:9:240;651:15;571:25;:98::i;:::-;564:105;487:185;-1:-1:-1;;487:185:240:o;2793:174:236:-;2847:115;2873:8;1162:66;2897:14;:12;:14::i;:::-;2913:16;:14;:16::i;:::-;2931:13;:11;:13::i;:::-;2946:15;:13;:15::i;:::-;2847:25;:115::i;:::-;2793:174;:::o;674:181:240:-;733:10;756:96;-1:-1:-1;;;819:9:240;836:13;756:25;:96::i;2722:174:289:-;2776:115;2802:8;1162:66;2826:14;:12;:14::i;:::-;2842:16;:14;:16::i;:::-;2860:13;:11;:13::i;1047:181:240:-;1106:10;1129:96;-1:-1:-1;;;1192:9:240;1209:13;1129:25;:96::i;2879:174:237:-;2933:115;2959:8;1162:66;2983:14;:12;:14::i;:::-;2999:16;:14;:16::i;:::-;3017:13;:11;:13::i;:::-;3032:15;:13;:15::i;1230:184:240:-;1287:10;1310:101;1346:15;1374:9;1391:17;1008:257:164;1095:10;1224:26;399:6;336:5:122;1224:26:164;:::i;:::-;1151:15;;;1170:31;336:5:122;1170:31:164;;;;1151:51;1206:13;;;:45;;;1151:101;;-1:-1:-1;1008:257:164;;;;;:::o;1578:240:236:-;1672:19;;;1689:1;1672:19;;;;;;;;1625:6;;;;1672:19;1689:1;1672:19;;;;;;;;;;-1:-1:-1;1672:19:236;1639:52;;1713:18;1697:10;1708:1;1697:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1753:18;1737:10;1748:1;1737:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1785:28:236;1802:10;1785:16;:28::i;:::-;1778:35;;;1578:240;:::o;1935:208::-;2033:19;;;2050:1;2033:19;;;;;;;;;1984:6;;;;2033:19;;;;;;;;;;;;-1:-1:-1;2033:19:236;1998:54;;2076:18;2058:12;2071:1;2058:15;;;;;;;;:::i;2277:167::-;2366:15;;;2379:1;2366:15;;;2323:24;2366:15;;;;;;;;;;;;;;;;;;;;;;;;;;2355:26;;2387:23;;;;;;;;;;;;;;;;;:8;2396:1;2387:11;;;;;;;;:::i;:::-;;;;;;:23;;;;2416;;;;;;;;;;;;;;;;;:8;2425:1;2416:11;;;;;;;;:::i;:::-;;;;;;:23;;;;2277:167;:::o;2584:144::-;2679:15;;;2692:1;2679:15;;;;;;;;;2632:26;;2679:15;;;;;;;;;;;;;;;;;;;;2666:28;;2700:23;;;;;;;;;;;;;;;;;:10;2711:1;2700:13;;;;;;;;:::i;5574:520:130:-;5777:21;5801:17;:15;:17::i;:::-;5777:41;-1:-1:-1;5853:4:130;5828:30;;;;5824:266;;5868:91;5892:7;5901:11;5914:9;5925:11;5938:8;5948:10;5868:23;:91::i;:::-;5824:266;;;5980:103;;;;;:35;;;;;;:103;;6016:7;;6025:11;;6038:9;;6049:11;;6062:8;;6072:10;;5980:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:266;5771:323;5574:520;;;;;;:::o;1576:200:289:-;1670:19;;;1687:1;1670:19;;;;;;;;;1623:6;;;;1670:19;;;;;;;;;;;;-1:-1:-1;1670:19:289;1637:52;;1711:18;1695:10;1706:1;1695:13;;;;;;;;:::i;2235:138::-;2324:15;;;2337:1;2324:15;;;;;;;;;2281:24;;2324:15;;;;;;;;;;;;;;;;;;;;2313:26;;2345:23;;;;;;;;;;;;;;;;;:8;2354:1;2345:11;;;;;;;;:::i;1661:160:237:-;1755:19;;;1708:6;1755:19;;;;;;;;;1788:28;1805:10;1788:16;:28::i;1938:288::-;2036:19;;;2053:1;2036:19;;;;;;;;;1987:6;;;;2036:19;;;;;;;;;;;-1:-1:-1;2036:19:237;2001:54;;2079:16;2061:12;2074:1;2061:15;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2119:17;2101:12;2114:1;2101:15;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;2160:17;2142:12;2155:1;2142:15;;;;;;;;:::i;2360:109::-;2449:15;;;2462:1;2449:15;;;;;;;;;2406:24;;2449:15;;;;;;;;;;;;;;;;;;;;2438:26;;2360:109;:::o;2609:205::-;2704:15;;;2717:1;2704:15;;;;;;;;;2657:26;;2704:15;;;;;;;;;;;;;;;;;;;;2691:28;;2725:26;;;;;;;;;;;;;;;;;:10;2736:1;2725:13;;;;;;;;:::i;:::-;;;;;;:26;;;;2757:22;;;;;;;;;;;;;;;;;:10;2768:1;2757:13;;;;;;;;:::i;:::-;;;;;;:22;;;;2785:24;;;;;;;;;;;;;;;;;:10;2796:1;2785:13;;;;;;;;:::i;1247:2059:123:-;1315:6;647:2:136;1333:7:123;:14;:33;1329:85;;;1399:7;:14;1375:39;;-1:-1:-1;;;1375:39:123;;;;;;4209:25:307;;4197:2;4182:18;;4063:177;1375:39:123;;;;;;;;1329:85;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:136;2531::123;2527;437:2:136;2509:19:123;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:123;;1621:956;;;;902:1:136;2621:13:123;:34;2617:85;;;2664:38;;-1:-1:-1;;;2664:38:123;;;;;4209:25:307;;;4182:18;;2664:38:123;4063:177:307;2617:85:123;2802:14;;:30;;;537:1:136;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:123;;;3080:51;;;;;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:123;;;3137:57;;;;;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:123;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:123:o;1766:227:130:-;996:42;1855:22;1816:7;;1855:22;;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1969:13;1766:227;-1:-1:-1;1766:227:130:o;7479:1764:126:-;-1:-1:-1;;;7739:7:126;:35;;;;;;:83;;-1:-1:-1;7799:23:126;7778:7;:44;;;;7739:83;7735:209;;;-1:-1:-1;;;7894:7:126;7927;7910:25;;;;;;4712:19:307;;4756:2;4747:12;;4551:214;7910:25:126;;;;-1:-1:-1;;7910:25:126;;;;;;;;;;7839:98;;;;;;;;;;:::i;7735:209::-;7990:43;:11;8025:5;7990:20;:43::i;:::-;8074:40;:9;8107:4;8074:18;:40::i;:::-;8120:43;:11;8155:5;8120:20;:43::i;:::-;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8251:8:126;:15;:40;8247:148;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8372:15:126;;8308:80;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8308:80:126;5240:248:307;8247:148:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8445:10:126;:17;:44;8441:158;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8574:17:126;;8506:86;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8506:86:126;5240:248:307;8441:158:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8656:50:126;8652:171;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8723:93:126;;;;;;;;5414:25:307;;;;5455:18;;;5448:34;5387:18;;8723:93:126;5240:248:307;8652:171:126;8885:31;8908:7;8885:22;:31::i;:::-;8881:140;;;8971:7;9004;8987:25;;;;;;4712:19:307;;4756:2;4747:12;;4551:214;8987:25:126;;;;-1:-1:-1;;8987:25:126;;;;;;;;;;8933:81;;;;;;;;;:::i;8881:140::-;9062:103;9074:7;9083:11;9096:9;9107:11;9131:8;9120:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;9153:10;9142:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:11;:103::i;:::-;9201:37;9224:7;9233:4;9201:22;:37::i;3195:520:107:-;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:107:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;-1:-1:-1;3707:1:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;3270:445;3195:520;;;:::o;6418:1197:109:-;6540:10;6539:11;:36;;;;-1:-1:-1;6022:45:109;;6554:21;6535:95;;;6584:46;;;;;6628:1;6584:46;;;4209:25:307;4182:18;;6584:46:109;4063:177:307;6535:95:109;6698:25;6726:30;:11;:28;:30::i;:::-;6698:58;;902:1:136;6766:17:109;:38;6762:113;;;6813:62;;;;;;;;4209:25:307;;;4182:18;;6813:62:109;4063:177:307;6762:113:109;6882:24;6909:29;:11;:27;:29::i;:::-;6882:56;-1:-1:-1;7013:23:109;7039:36;7058:17;6882:56;7039:36;:::i;:::-;7013:62;;647:2:136;7085:15:109;:34;7081:107;;;7128:60;;;;;;;;4209:25:307;;;4182:18;;7128:60:109;4063:177:307;7081:107:109;7236:9;7231:380;7251:16;7247:1;:20;7231:380;;;3996:93;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;7279:24;7340:21;;;7336:230;;7380:50;;;;;;;;;;;;;;7336:230;334:2:136;7449:16:109;:28;7445:121;;;7496:61;;;;;;;;;;;;;;7445:121;-1:-1:-1;7593:3:109;;7231:380;;5689:1683:123;5796:10;5795:11;:31;;;;-1:-1:-1;6022:45:109;;5810:16:123;5791:80;;;5835:36;;-1:-1:-1;;;5835:36:123;;5869:1;5835:36;;;4209:25:307;4182:18;;5835:36:123;4063:177:307;5791:80:123;5934:25;5962;:6;:23;:25::i;:::-;5934:53;;902:1:136;5997:17:123;:38;5993:103;;;6044:52;;-1:-1:-1;;;6044:52:123;;;;;4209:25:307;;;4182:18;;6044:52:123;4063:177:307;5993:103:123;6103:24;6130;:6;:22;:24::i;:::-;6103:51;-1:-1:-1;6224:23:123;6250:36;6269:17;6103:51;6250:36;:::i;:::-;6224:62;;647:2:136;6296:15:123;:34;6292:97;;;6339:50;;-1:-1:-1;;;6339:50:123;;;;;4209:25:307;;;4182:18;;6339:50:123;4063:177:307;6292:97:123;6448:25;6479:26;6516:9;6511:551;6531:15;6527:1;:19;6511:551;;;6604:1;6562:39;:17;:6;6577:1;6562:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6558:459;;;6666:16;6661:1;:21;6657:82;;6691:48;;;;;;;;;;;;;;6657:82;6771:19;;;;;6558:459;;;6873:16;6869:1;:20;6865:81;;;6898:48;;;;;;;;;;;;;;6865:81;6978:20;;;;;6558:459;7044:3;;6511:551;;;;7135:16;7114:17;:37;7110:102;;7160:52;;-1:-1:-1;;;7160:52:123;;;;;4209:25:307;;;4182:18;;7160:52:123;4063:177:307;7110:102:123;7288:17;7266:18;:39;7262:105;;7314:53;;-1:-1:-1;;;7314:53:123;;;;;4209:25:307;;;4182:18;;7314:53:123;4063:177:307;3569:314:133;3683:16;;;3697:1;3683:16;;;;;;;;;3635:11;;;;3683:16;;;;;;;;;;;;-1:-1:-1;3683:16:133;3654:45;;3738:10;3705:9;3715:1;3705:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:22:133;6696:12:307;;;6689:101;1047:74:133;;;;;;;;;;6806:12:307;;1047:74:133;;-1:-1:-1;;3772:62:133;;1039:83;;;:::i;:::-;3807:9;3818:1;1234:66;3772:24;:62::i;:::-;3756:78;;3848:29;3869:5;3856:20;;1596:10:122;1487:126;3848:29:133;3840:38;3569:314;-1:-1:-1;;;;3569:314:133:o;20632:676:135:-;25186:53;;;;;;7671:19:307;;;7706:12;;;7699:28;;;25159:12:135;7743::307;;;7736:28;;;25186:53:135;;;;;;;;;;7780:12:307;;;;25186:53:135;;;20923:29;20955:55;20969:18;20989:20;20955:13;:55::i;:::-;20923:87;;21016:25;21044:55;21058:18;21078:20;21044:13;:55::i;:::-;21135:16;;;21149:1;21135:16;;;;;;;;;21016:83;;-1:-1:-1;21106:26:135;;21135:16;;;;;;;;;;;;-1:-1:-1;21135:16:135;21106:45;;21190:7;21157:9;21167:1;21157:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1147:69;;;-1:-1:-1;;;1147:69:135;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1198:17:135;6696:12:307;;;6689:101;1147:69:135;;;;;;;;;;6806:12:307;;1147:69:135;;21205:98;;1139:78;;;:::i;:::-;21235:9;21246:11;21259:15;21276:12;1324:66;21205:19;:98::i;:::-;20834:474;;;;20632:676;;;;;;:::o;4933:268:133:-;5033:16;;;5047:1;5033:16;;;;;;;;;5004:26;;5033:16;;;;;;;;;;;-1:-1:-1;5033:16:133;5004:45;;5088:10;5055:9;5065:1;5055:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:22:133;6696:12:307;;;6689:101;1047:74:133;;;;;;;;;;6806:12:307;;1047:74:133;;5106:90;;1039:83;;;:::i;:::-;5141:9;5152:1;5173:6;5155:26;;;;;;7342:14:307;7335:22;7330:3;7326:32;7314:45;;7384:1;7375:11;;7191:201;5155:26:133;;;;-1:-1:-1;;5155:26:133;;;;;;;;;1234:66;5106:24;:90::i;:::-;4998:203;4933:268;;:::o;5098:173:109:-;5172:7;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;5208:11:109;5187:79;5200:65;;5187:79;;5098:173;-1:-1:-1;;5098:173:109:o;4700:171::-;4773:7;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;3948:206:123:-;4018:10;4108:19;:27;;;4139:1;4107:33;4086:6;4061:82;4078:63;;4061:82;;;;;;;;;:::i;:::-;4054:89;3948:206;-1:-1:-1;;;3948:206:123:o;35212:541:126:-;35369:7;35506:242;35550:59;35591:7;35600:8;35550:40;:59::i;:::-;35627:31;;;;4044:19:109;:27;537:1:136;4043:44:109;4009:79;;;3996:93;35676:63:126;35715:11;35728:10;35676:38;:63::i;:::-;35506:17;:242::i;:::-;35493:255;35212:541;-1:-1:-1;;;;;35212:541:126:o;25435:388:135:-;25743:32;;25777:34;;25561:29;;2377:5:121;;;785;2408:39;;;;2390:58;2489:23;2474:39;;;;2456:58;25721:91:135;2236:344:121;25988:234:135;26114:12;26165:18;26194:20;26141:76;;;;;;;;;:::i;:::-;;;;;;;;;;;;;26134:83;;25988:234;;;;:::o;12721:3002:126:-;12994:7;12978:75;13003:8;13013:10;13025:14;13041:11;12978:75;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;13118:7:126;:35;;;13163:7;13114:62;13314:22;13339:24;13355:7;13339:15;:24::i;:::-;13314:49;;13374:9;13369:340;13389:5;:12;13385:1;:16;13369:340;;;13416:9;13438:5;13444:1;13438:8;;;;;;;;:::i;:::-;;;;;;;13416:31;;13459:33;343:6:138;13459:4:126;:14;;;;;:33;;;;:::i;:::-;13455:248;;;13504:190;;;;;3392:35:110;;;;;13504:47:126;;:190;;13563:7;;13582:8;;13602:10;;13624:14;;13650:11;;13673;;13504:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13455:248;-1:-1:-1;13403:3:126;;;;:::i;:::-;;;;13369:340;;;;13772:26;13801:59;13842:7;13851:8;13801:40;:59::i;:::-;13772:88;-1:-1:-1;13866:21:126;826:4:120;816:15;;13866:54:126;;13926:149;13964:18;13998:1;14022:13;14051:10;:17;13926:13;:149::i;:::-;14175:1;14142:30;:11;:28;:30::i;:::-;:34;14138:1174;;;14261:33;14297:66;14345:7;14354:8;14297:47;:66::i;:::-;579:28:125;;;14261:102:126;-1:-1:-1;826:4:120;816:15;;14537:47:126;;14693:27;14728:25;14766:7;14761:545;14779:30;:11;:28;:30::i;:::-;14775:1;:34;;;14761:545;;;14845:63;14887:7;14896:8;14906:1;14845:41;:63::i;:::-;14823:85;-1:-1:-1;14938:25:126;:14;14961:1;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;14938:25:126;14918:45;;14973:170;15015:19;15054:1;15082:13;15115:17;14973:13;:170::i;:::-;15153:34;15170:17;15153:34;;:::i;:::-;;-1:-1:-1;15284:3:126;;14761:545;;;;14178:1134;;;14138:1174;15386:9;15381:338;15401:5;:12;15397:1;:16;15381:338;;;15428:9;15450:5;15456:1;15450:8;;;;;;;;:::i;:::-;;;;;;;15428:31;;15471:32;437:6:138;15471:4:126;:14;;;;;:32;;;;:::i;:::-;15467:246;;;15515:189;;;;;3392:35:110;;;;;15515:46:126;;:189;;15573:7;;15592:8;;15612:10;;15634:14;;15660:11;;15683;;15515:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15467:246;-1:-1:-1;15415:3:126;;;;:::i;:::-;;;;15381:338;;22277:355;22449:178;22483:7;22508:8;22538:63;22577:11;22590:10;22538:38;:63::i;:::-;22616:4;22449:16;:178::i;:::-;22277:355;;;;;:::o;49619:191::-;49721:7;49785;49794:8;49768:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;49768:35:126;;;;;;;;;49758:46;;49768:35;49758:46;;;;41226:22;49751:53;;49619:191;-1:-1:-1;;;49619:191:126:o;50636:242::-;50732:7;;;50771:84;50791:10;50787:14;;:1;:14;50771:84;;;50816:32;3996:93:109;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;50816:32:126;;:::i;:::-;;-1:-1:-1;50803:3:126;;;;:::i;:::-;;;;50771:84;;;-1:-1:-1;50867:6:126;50636:242;-1:-1:-1;;;50636:242:126:o;8680:790:125:-;8778:14;8814:2;8804:6;:12;8800:112;;8873:2;8864:6;:11;8846:29;;;;8895:2;8885:12;;;;;;:::i;:::-;;;;8800:112;-1:-1:-1;9092:21:125;;9088:1;9076:14;;9072:42;9240:2;:11;;;9322:22;;;9318:148;;;9447:1;9431:14;9427:22;9421:29;9417:1;9402:13;9398:21;9394:57;9386:6;9383:69;9373:79;;8794:676;8680:790;;;;;:::o;4372:342:134:-;4488:16;;;4502:1;4488:16;;;;;;;;;4429:22;;4459:26;;4488:16;;;;;;;;;;;;-1:-1:-1;4488:16:134;4459:45;;4543:7;4510:9;4520:1;4510:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1047:73;;;-1:-1:-1;;;1047:73:134;;;6479:92:307;-1:-1:-1;;;6587:11:307;;;6580:100;1098:21:134;6696:12:307;;;6689:101;1047:73:134;;;;;;;;;;6806:12:307;;1047:73:134;;-1:-1:-1;;4579:49:134;;1039:82;;;:::i;:::-;4615:9;4626:1;4579:25;:49::i;:::-;4558:70;;4642:66;:44;4663:5;4670:1;4673:5;:12;4642:20;:44::i;:::-;:64;:66::i;2891:136:110:-;2961:4;3013:9;2980:42;;2999:9;2981:15;2991:4;3790:26;;;3660:162;2981:15;:27;2980:42;;;2973:49;;2891:136;;;;:::o;1373:2326:125:-;1486:10;;1482:1491;;1639:2;1629:6;:12;1625:122;;1702:2;1693:6;:11;1675:29;;;;1726:2;1716:12;;;;;;:::i;:::-;;;;1625:122;1837:10;;1833:1134;;2045:2;:11;;;1919:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;2077:31:125;;2277:1;2269:6;2265:14;2313:4;2302:9;2298:20;2290:28;;2368:13;2362:20;2351:9;2347:36;2329:54;;2616:4;2612:9;2595:14;2589:21;2585:37;2516:4;2504:10;2500:21;2443:193;2415:14;2395:253;;2707:13;2697:6;:23;2693:36;;2722:7;;;;2693:36;-1:-1:-1;2870:1:125;2852:19;;;;;2883:30;;;;2925:23;;1833:1134;3003:253;3020:2;3010:6;:12;3003:253;;3115:20;;3092:44;;3189:1;3171:19;;;;3217:2;3200:19;;;;-1:-1:-1;;3229:12:125;3003:253;;;3324:10;;3320:375;;3626:21;;3542:20;;-1:-1:-1;;1080:1:137;1067:14;;1045:37;3622::125;;;1043:40:137;;3538:31:125;3487:184;3443:238;;3320:375;1373:2326;;;;:::o;52184:230:126:-;52305:7;52389;52398:8;52372:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52372:35:126;;;;;;;;;52362:46;;52372:35;52362:46;;;;41389:40;52335:73;;52184:230;-1:-1:-1;;;52184:230:126:o;51555:274::-;51699:7;51804;51813:8;51787:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;51777:46;;;;;;51756:17;51749:25;;51729:45;;;41298:34;51729:45;:94;51721:103;;51714:110;;51555:274;;;;;:::o;16359:1506::-;16480:16;16499:59;16540:7;16549:8;16499:40;:59::i;:::-;16480:78;;16660:7;16616:100;16679:8;16696:5;16709:4;16616:100;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;16781:7:126;:35;;;16777:62;;16826:7;;;16777:62;16984:22;17009:24;17025:7;17009:15;:24::i;:::-;16984:49;;17044:9;17039:328;17059:5;:12;17055:1;:16;17039:328;;;17086:9;17108:5;17114:1;17108:8;;;;;;;;:::i;:::-;;;;;;;17086:31;;17129:41;548:6:138;17129:4:126;:14;;;;;:41;;;;:::i;:::-;17125:236;;;17182:170;;;;;3392:35:110;;;;;17182:54:126;;:170;;17258:7;;17287:8;;17314:5;;17337:4;;17182:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17125:236;-1:-1:-1;17073:3:126;;;;:::i;:::-;;;;17039:328;;;;17416:70;17448:8;17466:5;17416:70;;17479:4;17416:13;:70::i;:::-;17540:9;17535:326;17555:5;:12;17551:1;:16;17535:326;;;17582:9;17604:5;17610:1;17604:8;;;;;;;;:::i;:::-;;;;;;;17582:31;;17625:40;657:6:138;17625:4:126;:14;;;;;:40;;;;:::i;:::-;17621:234;;;17677:169;;;;;3392:35:110;;;;;17677:53:126;;:169;;17752:7;;17781:8;;17808:5;;17831:4;;17677:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17621:234;-1:-1:-1;17569:3:126;;;;:::i;:::-;;;;17535:326;;36221:522;36357:12;36481:257;36520:79;36562:7;36571:8;36581:17;36520:41;:79::i;:::-;36617:93;36692:17;36617:66;36665:7;36674:8;36617:47;:66::i;:::-;:74;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;36617:93:126;36728:1;36481:12;:257::i;2022:570:124:-;2113:5;2211:3;2202:5;:12;;:34;;;;;2225:4;:11;2218:3;:18;;2202:34;2196:85;;2264:4;2270:5;2277:3;2246:35;;;;;;;;;;;;;:::i;2196:85::-;2349:4;2339:15;;2396:17;2408:5;2339:15;2396:17;:::i;:::-;;-1:-1:-1;2419:12:124;2434:11;2440:5;2434:3;:11;:::i;:::-;643:17;2570:15;2562:3;2550:15;;;;2549:37;;;;;;-1:-1:-1;;;;;2022:570:124:o;40037:220:140:-;40103:24;40135:30;40168:32;40186:6;40194:2;40198:1;40168:17;:32::i;850:162:125:-;939:68;945:14;961:6;826:4:120;816:15;;995:4:125;:11;939:5;:68::i;52752:301:126:-;52873:13;52965:82;52996:48;53026:7;53035:8;52996:29;:48::i;:::-;4572:21:125;;4466:137;4903:665;5315:4;5309:11;5356:4;5344:17;;-1:-1:-1;;5234:14:125;5403:26;;;5234:14;5230:28;5375:4;5368:63;5475:6;5467;5460:22;5493:51;5498:14;5514:6;5522;5530:13;5493:4;:51::i;2631:1127:142:-;2751:22;2781:21;2805;:11;2946:3:124;2924:25;;2850:104;2805:21:142;2781:45;-1:-1:-1;643:17:124;3187:38;;2832:20:142;2994:11;3187:38:124;2994:11:142;2979:26;;;;:::i;:::-;;2965:40;;3114:4;3108:11;3099:20;;3157:4;3150:5;3146:16;3217:2;3204:11;3200:20;3186:12;3182:39;3176:4;3169:53;3265:11;3258:5;3251:26;3308:1;3285:463;3324:11;3321:1;3318:18;3285:463;;;3718:20;;3697:42;;3676:64;;3590:31;;;;3503:4;3485:23;;;;3411:1;3404:9;3285:463;;;3289:28;;3066:688;;;2631:1127;;;;;:::o;5933:2258:125:-;6050:10;;6046:1421;;6203:2;6193:6;:12;6189:122;;6266:2;6257:6;:11;6239:29;;;;6290:2;6280:12;;;;;;:::i;:::-;;;;6189:122;6401:10;;6397:1064;;6609:2;:11;;;6483:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;6641:38:125;;6863:14;6857:21;6853:1;6845:6;6841:14;6837:42;7110:4;7106:9;7090:13;7084:20;7080:36;7011:4;6999:10;6995:21;6938:192;6911:13;6891:251;;7201:13;7191:6;:23;7187:36;;7216:7;;;;7187:36;-1:-1:-1;7364:1:125;7346:19;;;;;7419:23;;;;;7377:30;6397:1064;7496:253;7513:2;7503:6;:12;7496:253;;7607:21;;7585:44;;7682:1;7664:19;;;;-1:-1:-1;;7722:12:125;;;;7710:2;7693:19;7496:253;;;7817:10;;7813:374;;7837:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;8119:20:125;;8034:21;;8030:32;;8141:9;;8115:36;7979:184;7936:237;;-1:-1:-1;5933:2258:125;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:558:307:-;102:6;110;163:2;151:9;142:7;138:23;134:32;131:52;;;179:1;176;169:12;131:52;218:9;205:23;268:42;261:5;257:54;250:5;247:65;237:93;;326:1;323;316:12;237:93;349:5;-1:-1:-1;406:2:307;391:18;;378:32;454:66;441:80;;429:93;;419:121;;536:1;533;526:12;419:121;559:7;549:17;;;14:558;;;;;:::o;1014:184::-;-1:-1:-1;;;1063:1:307;1056:88;1163:4;1160:1;1153:15;1187:4;1184:1;1177:15;1203:125;1268:9;;;1289:10;;;1286:36;;;1302:18;;:::i;1522:184::-;-1:-1:-1;;;1571:1:307;1564:88;1671:4;1668:1;1661:15;1695:4;1692:1;1685:15;1711:184;-1:-1:-1;;;1760:1:307;1753:88;1860:4;1857:1;1850:15;1884:4;1881:1;1874:15;1900:250;1985:1;1995:113;2009:6;2006:1;2003:13;1995:113;;;2085:11;;;2079:18;2066:11;;;2059:39;2031:2;2024:10;1995:113;;;-1:-1:-1;;2142:1:307;2124:16;;2117:27;1900:250::o;2155:330::-;2197:3;2235:5;2229:12;2262:6;2257:3;2250:19;2278:76;2347:6;2340:4;2335:3;2331:14;2324:4;2317:5;2313:16;2278:76;:::i;:::-;2399:2;2387:15;-1:-1:-1;;2383:88:307;2374:98;;;;2474:4;2370:109;;2155:330;-1:-1:-1;;2155:330:307:o;2490:651::-;2542:3;2573;2605:5;2599:12;2632:6;2627:3;2620:19;2658:4;2687:2;2682:3;2678:12;2671:19;;2743:2;2733:6;2730:1;2726:14;2719:5;2715:26;2711:35;2780:2;2773:5;2769:14;2801:1;2811:304;2825:6;2822:1;2819:13;2811:304;;;-1:-1:-1;;2900:5:307;2894:4;2890:16;2886:89;2881:3;2874:102;2997:38;3030:4;3021:6;3015:13;2997:38;:::i;:::-;3093:12;;;;2989:46;-1:-1:-1;3058:15:307;;;;2847:1;2840:9;2811:304;;;-1:-1:-1;3131:4:307;;2490:651;-1:-1:-1;;;;;;;2490:651:307:o;3146:912::-;3676:6;3665:9;3658:25;3719:6;3714:2;3703:9;3699:18;3692:34;3762:6;3757:2;3746:9;3742:18;3735:34;3805:6;3800:2;3789:9;3785:18;3778:34;3849:3;3843;3832:9;3828:19;3821:32;3639:4;3876:56;3927:3;3916:9;3912:19;3904:6;3876:56;:::i;:::-;3981:9;3973:6;3969:22;3963:3;3952:9;3948:19;3941:51;4009:43;4045:6;4037;4009:43;:::i;:::-;4001:51;3146:912;-1:-1:-1;;;;;;;;;3146:912:307:o;4245:128::-;4312:9;;;4333:11;;;4330:37;;;4347:18;;:::i;4378:168::-;4451:9;;;4482;;4499:15;;;4493:22;;4479:37;4469:71;;4520:18;;:::i;4770:465::-;5017:66;5009:6;5005:79;4994:9;4987:98;5121:6;5116:2;5105:9;5101:18;5094:34;5164:2;5159;5148:9;5144:18;5137:30;4968:4;5184:45;5225:2;5214:9;5210:18;5202:6;5184:45;:::i;5493:323::-;5702:6;5691:9;5684:25;5745:2;5740;5729:9;5725:18;5718:30;5665:4;5765:45;5806:2;5795:9;5791:18;5783:6;5765:45;:::i;5821:280::-;6020:2;6009:9;6002:21;5983:4;6040:55;6091:2;6080:9;6076:18;6068:6;6040:55;:::i;6829:357::-;6947:12;;6994:4;6983:16;;;6977:23;;6947:12;7012:16;;7009:171;;;-1:-1:-1;;7086:4:307;7082:17;;;;7079:1;7075:25;7071:98;7060:110;;6829:357;-1:-1:-1;6829:357:307:o;7803:492::-;7978:3;8016:6;8010:13;8032:66;8091:6;8086:3;8079:4;8071:6;8067:17;8032:66;:::i;:::-;8161:13;;8120:16;;;;8183:70;8161:13;8120:16;8230:4;8218:17;;8183:70;:::i;:::-;8269:20;;7803:492;-1:-1:-1;;;;7803:492:307:o;8300:435::-;8353:3;8391:5;8385:12;8418:6;8413:3;8406:19;8444:4;8473:2;8468:3;8464:12;8457:19;;8510:2;8503:5;8499:14;8531:1;8541:169;8555:6;8552:1;8549:13;8541:169;;;8616:13;;8604:26;;8650:12;;;;8685:15;;;;8577:1;8570:9;8541:169;;;-1:-1:-1;8726:3:307;;8300:435;-1:-1:-1;;;;;8300:435:307:o;8740:691::-;9074:3;9063:9;9056:22;9037:4;9101:57;9153:3;9142:9;9138:19;9130:6;9101:57;:::i;:::-;9206:9;9198:6;9194:22;9189:2;9178:9;9174:18;9167:50;9240:33;9266:6;9258;9240:33;:::i;:::-;9226:47;;9309:6;9304:2;9293:9;9289:18;9282:34;9364:9;9356:6;9352:22;9347:2;9336:9;9332:18;9325:50;9392:33;9418:6;9410;9392:33;:::i;:::-;9384:41;8740:691;-1:-1:-1;;;;;;;8740:691:307:o;9436:900::-;9891:6;9880:9;9873:25;9934:3;9929:2;9918:9;9914:18;9907:31;9854:4;9961:57;10013:3;10002:9;9998:19;9990:6;9961:57;:::i;:::-;10066:9;10058:6;10054:22;10049:2;10038:9;10034:18;10027:50;10100:33;10126:6;10118;10100:33;:::i;:::-;10086:47;;10169:6;10164:2;10153:9;10149:18;10142:34;10225:9;10217:6;10213:22;10207:3;10196:9;10192:19;10185:51;10253:33;10279:6;10271;10253:33;:::i;:::-;10245:41;;;10323:6;10317:3;10306:9;10302:19;10295:35;9436:900;;;;;;;;;:::o;10341:195::-;10380:3;-1:-1:-1;;10404:5:307;10401:77;10398:103;;10481:18;;:::i;:::-;-1:-1:-1;10528:1:307;10517:13;;10341:195::o;10541:640::-;10792:6;10787:3;10780:19;10762:3;10818:2;10851;10846:3;10842:12;10883:6;10877:13;10948:2;10940:6;10936:15;10969:1;10979:175;10993:6;10990:1;10987:13;10979:175;;;11056:13;;11042:28;;11092:14;;;;11129:15;;;;11015:1;11008:9;10979:175;;;-1:-1:-1;11170:5:307;;10541:640;-1:-1:-1;;;;;;;10541:640:307:o;11186:184::-;-1:-1:-1;;;11235:1:307;11228:88;11335:4;11332:1;11325:15;11359:4;11356:1;11349:15;11375:512;11626:2;11615:9;11608:21;11589:4;11652:56;11704:2;11693:9;11689:18;11681:6;11652:56;:::i;:::-;11756:14;11748:6;11744:27;11739:2;11728:9;11724:18;11717:55;11820:9;11812:6;11808:22;11803:2;11792:9;11788:18;11781:50;11848:33;11874:6;11866;11848:33;:::i;:::-;11840:41;11375:512;-1:-1:-1;;;;;;11375:512:307:o;11892:617::-;12203:6;12192:9;12185:25;12246:3;12241:2;12230:9;12226:18;12219:31;12166:4;12273:57;12325:3;12314:9;12310:19;12302:6;12273:57;:::i;:::-;12378:14;12370:6;12366:27;12361:2;12350:9;12346:18;12339:55;12442:9;12434:6;12430:22;12425:2;12414:9;12410:18;12403:50;12470:33;12496:6;12488;12470:33;:::i;12514:360::-;12717:2;12706:9;12699:21;12680:4;12737:45;12778:2;12767:9;12763:18;12755:6;12737:45;:::i;:::-;12813:2;12798:18;;12791:34;;;;-1:-1:-1;12856:2:307;12841:18;12834:34;12729:53;12514:360;-1:-1:-1;12514:360:307:o","linkReferences":{}},"methodIdentifiers":{"register(address,bytes14)":"472466c2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"PackedCounter\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IBaseWorld\",\"name\":\"world\",\"type\":\"address\"},{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"register(address,bytes14)\":{\"notice\":\"Register systems and tables for a new ERC20 token in a given namespace\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/erc20-puppet/ERC20Module.sol\":\"ERC20ModuleRegistrationLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5\",\"dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751\",\"dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95\",\"dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a\",\"dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/world/src/DelegationControl.sol\":{\"keccak256\":\"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c\",\"dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883\",\"dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510\",\"dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5\",\"dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8\",\"dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b\",\"dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198\",\"dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac\",\"dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93\",\"dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae\",\"dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1\",\"dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]},\"src/modules/erc20-puppet/ERC20Module.sol\":{\"keccak256\":\"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6\",\"dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR\"]},\"src/modules/erc20-puppet/ERC20System.sol\":{\"keccak256\":\"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85\",\"dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot\"]},\"src/modules/erc20-puppet/IERC20.sol\":{\"keccak256\":\"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9\",\"dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS\"]},\"src/modules/erc20-puppet/IERC20Errors.sol\":{\"keccak256\":\"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b\",\"dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6\"]},\"src/modules/erc20-puppet/IERC20Events.sol\":{\"keccak256\":\"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f\",\"dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5\"]},\"src/modules/erc20-puppet/IERC20Mintable.sol\":{\"keccak256\":\"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205\",\"dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E\"]},\"src/modules/erc20-puppet/constants.sol\":{\"keccak256\":\"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b\",\"dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk\"]},\"src/modules/erc20-puppet/tables/Allowances.sol\":{\"keccak256\":\"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768\",\"dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo\"]},\"src/modules/erc20-puppet/tables/ERC20Metadata.sol\":{\"keccak256\":\"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee\",\"dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51\"]},\"src/modules/erc20-puppet/tables/ERC20Registry.sol\":{\"keccak256\":\"0xd84e88798b32ca0a8d5321b832262f4aaf74fe2cb28a0bb1073d17f4fe3b649e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac87a8c584663f797aaedfa76fccf0641e1db326e276a602746147eb84419ab7\",\"dweb:/ipfs/Qmdjcr9mEoZ5RDDyaHjZcysaimsocLmDmPiRXxD3YtbiEM\"]},\"src/modules/erc20-puppet/tables/TotalSupply.sol\":{\"keccak256\":\"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b\",\"dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9\"]},\"src/modules/erc20-puppet/utils.sol\":{\"keccak256\":\"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e\",\"dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN\"]},\"src/modules/puppet/Puppet.sol\":{\"keccak256\":\"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b\",\"dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD\"]},\"src/modules/puppet/PuppetDelegationControl.sol\":{\"keccak256\":\"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b\",\"dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW\"]},\"src/modules/puppet/PuppetFactorySystem.sol\":{\"keccak256\":\"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a\",\"dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t\"]},\"src/modules/puppet/PuppetMaster.sol\":{\"keccak256\":\"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f\",\"dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9\"]},\"src/modules/puppet/constants.sol\":{\"keccak256\":\"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449\",\"dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur\"]},\"src/modules/puppet/createPuppet.sol\":{\"keccak256\":\"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c\",\"dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3\"]},\"src/modules/puppet/tables/PuppetRegistry.sol\":{\"keccak256\":\"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436\",\"dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE\"]},\"src/modules/puppet/utils.sol\":{\"keccak256\":\"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c\",\"dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf\"]},\"src/modules/tokens/tables/Balances.sol\":{\"keccak256\":\"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d\",\"dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe\"]},\"src/utils/AccessControlLib.sol\":{\"keccak256\":\"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0\",\"dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"FieldLayoutLib_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"PackedCounter","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[{"internalType":"contract IBaseWorld","name":"world","type":"address"},{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"stateMutability":"nonpayable","type":"function","name":"register"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"register(address,bytes14)":{"notice":"Register systems and tables for a new ERC20 token in a given namespace"}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/modules/erc20-puppet/ERC20Module.sol":"ERC20ModuleRegistrationLibrary"},"libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558","urls":["bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4","dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0","urls":["bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba","dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd","urls":["bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18","dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e","urls":["bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e","dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb","urls":["bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0","dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed","urls":["bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d","dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32","urls":["bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c","dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5","urls":["bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648","dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180","urls":["bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534","dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e","urls":["bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5","dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789","urls":["bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751","dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14","urls":["bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95","dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb","urls":["bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a","dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f","urls":["bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401","dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b","urls":["bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256","dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/world/src/DelegationControl.sol":{"keccak256":"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9","urls":["bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c","dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581","urls":["bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883","dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db","urls":["bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510","dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500","urls":["bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d","dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719","urls":["bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5","dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417","urls":["bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb","dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc","urls":["bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8","dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol":{"keccak256":"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57","urls":["bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b","dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c","urls":["bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198","dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d","urls":["bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac","dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60","urls":["bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93","dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d","urls":["bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae","dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9","urls":["bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1","dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746","urls":["bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2","dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9"],"license":"MIT"},"src/modules/erc20-puppet/ERC20Module.sol":{"keccak256":"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453","urls":["bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6","dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR"],"license":"MIT"},"src/modules/erc20-puppet/ERC20System.sol":{"keccak256":"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154","urls":["bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85","dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot"],"license":"MIT"},"src/modules/erc20-puppet/IERC20.sol":{"keccak256":"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a","urls":["bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9","dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Errors.sol":{"keccak256":"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3","urls":["bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b","dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Events.sol":{"keccak256":"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d","urls":["bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f","dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Mintable.sol":{"keccak256":"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f","urls":["bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205","dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E"],"license":"MIT"},"src/modules/erc20-puppet/constants.sol":{"keccak256":"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889","urls":["bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b","dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk"],"license":"MIT"},"src/modules/erc20-puppet/tables/Allowances.sol":{"keccak256":"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74","urls":["bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768","dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Metadata.sol":{"keccak256":"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253","urls":["bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee","dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Registry.sol":{"keccak256":"0xd84e88798b32ca0a8d5321b832262f4aaf74fe2cb28a0bb1073d17f4fe3b649e","urls":["bzz-raw://ac87a8c584663f797aaedfa76fccf0641e1db326e276a602746147eb84419ab7","dweb:/ipfs/Qmdjcr9mEoZ5RDDyaHjZcysaimsocLmDmPiRXxD3YtbiEM"],"license":"MIT"},"src/modules/erc20-puppet/tables/TotalSupply.sol":{"keccak256":"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385","urls":["bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b","dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9"],"license":"MIT"},"src/modules/erc20-puppet/utils.sol":{"keccak256":"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4","urls":["bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e","dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN"],"license":"MIT"},"src/modules/puppet/Puppet.sol":{"keccak256":"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab","urls":["bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b","dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD"],"license":"MIT"},"src/modules/puppet/PuppetDelegationControl.sol":{"keccak256":"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0","urls":["bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b","dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW"],"license":"MIT"},"src/modules/puppet/PuppetFactorySystem.sol":{"keccak256":"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85","urls":["bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a","dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t"],"license":"MIT"},"src/modules/puppet/PuppetMaster.sol":{"keccak256":"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5","urls":["bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f","dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9"],"license":"MIT"},"src/modules/puppet/constants.sol":{"keccak256":"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207","urls":["bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449","dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur"],"license":"MIT"},"src/modules/puppet/createPuppet.sol":{"keccak256":"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e","urls":["bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c","dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3"],"license":"MIT"},"src/modules/puppet/tables/PuppetRegistry.sol":{"keccak256":"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4","urls":["bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436","dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE"],"license":"MIT"},"src/modules/puppet/utils.sol":{"keccak256":"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66","urls":["bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c","dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf"],"license":"MIT"},"src/modules/tokens/tables/Balances.sol":{"keccak256":"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283","urls":["bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d","dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe"],"license":"MIT"},"src/utils/AccessControlLib.sol":{"keccak256":"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88","urls":["bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0","dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/modules/erc20-puppet/ERC20Module.sol","id":121869,"exportedSymbols":{"Allowances":[123839],"Balances":[156591],"ERC20Metadata":[125908],"ERC20MetadataData":[123885],"ERC20Module":[121820],"ERC20ModuleRegistrationLibrary":[121868],"ERC20Registry":[126666],"ERC20System":[122506],"ERC20_REGISTRY_TABLE_ID":[122741],"IBaseWorld":[96356],"InstalledModules":[98969],"MODULE_NAME":[122691],"MODULE_NAMESPACE":[122694],"MODULE_NAMESPACE_ID":[122708],"Module":[94903],"PUPPET_MODULE_NAME":[150956],"Puppet":[150648],"ResourceId":[82352],"ResourceIds":[87847],"WorldResourceIdLib":[96164],"_allowancesTableId":[127309],"_balancesTableId":[127325],"_erc20SystemId":[127373],"_metadataTableId":[127357],"createPuppet":[151083]},"nodeType":"SourceUnit","src":"32:3834:228","nodes":[{"id":121585,"nodeType":"PragmaDirective","src":"32:25:228","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":121587,"nodeType":"ImportDirective","src":"59:83:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol","file":"@latticexyz/store/src/codegen/tables/ResourceIds.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":87858,"symbolAliases":[{"foreign":{"id":121586,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"68:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121589,"nodeType":"ImportDirective","src":"143:66:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":82424,"symbolAliases":[{"foreign":{"id":121588,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"152:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121591,"nodeType":"ImportDirective","src":"210:58:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/Module.sol","file":"@latticexyz/world/src/Module.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":94904,"symbolAliases":[{"foreign":{"id":121590,"name":"Module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94903,"src":"219:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121593,"nodeType":"ImportDirective","src":"269:79:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96286,"symbolAliases":[{"foreign":{"id":121592,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"278:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121595,"nodeType":"ImportDirective","src":"349:85:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96357,"symbolAliases":[{"foreign":{"id":121594,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"358:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121597,"nodeType":"ImportDirective","src":"435:93:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol","file":"@latticexyz/world/src/codegen/tables/InstalledModules.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":98970,"symbolAliases":[{"foreign":{"id":121596,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"444:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121599,"nodeType":"ImportDirective","src":"530:46:228","nodes":[],"absolutePath":"src/modules/puppet/Puppet.sol","file":"../puppet/Puppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":150649,"symbolAliases":[{"foreign":{"id":121598,"name":"Puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150648,"src":"539:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121601,"nodeType":"ImportDirective","src":"577:58:228","nodes":[],"absolutePath":"src/modules/puppet/createPuppet.sol","file":"../puppet/createPuppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151084,"symbolAliases":[{"foreign":{"id":121600,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"586:12:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121603,"nodeType":"ImportDirective","src":"636:76:228","nodes":[],"absolutePath":"src/modules/puppet/constants.sol","file":"../puppet/constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151017,"symbolAliases":[{"foreign":{"id":121602,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"645:11:228","typeDescriptions":{}},"local":"PUPPET_MODULE_NAME","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121605,"nodeType":"ImportDirective","src":"713:57:228","nodes":[],"absolutePath":"src/modules/tokens/tables/Balances.sol","file":"../tokens/tables/Balances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":156592,"symbolAliases":[{"foreign":{"id":121604,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"722:8:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121610,"nodeType":"ImportDirective","src":"772:110:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122742,"symbolAliases":[{"foreign":{"id":121606,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"781:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121607,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"794:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121608,"name":"MODULE_NAMESPACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122708,"src":"812:19:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121609,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"833:23:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121615,"nodeType":"ImportDirective","src":"883:101:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/utils.sol","file":"./utils.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":127374,"symbolAliases":[{"foreign":{"id":121611,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"892:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121612,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"912:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121613,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"930:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121614,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"948:14:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121617,"nodeType":"ImportDirective","src":"985:48:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/ERC20System.sol","file":"./ERC20System.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122507,"symbolAliases":[{"foreign":{"id":121616,"name":"ERC20System","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122506,"src":"994:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121619,"nodeType":"ImportDirective","src":"1035:59:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Registry.sol","file":"./tables/ERC20Registry.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":126667,"symbolAliases":[{"foreign":{"id":121618,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"1044:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121621,"nodeType":"ImportDirective","src":"1095:53:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/Allowances.sol","file":"./tables/Allowances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":123840,"symbolAliases":[{"foreign":{"id":121620,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"1104:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121624,"nodeType":"ImportDirective","src":"1149:78:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Metadata.sol","file":"./tables/ERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":125909,"symbolAliases":[{"foreign":{"id":121622,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"1158:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121623,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"1173:17:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121820,"nodeType":"ContractDefinition","src":"1229:2128:228","nodes":[{"id":121630,"nodeType":"ErrorDefinition","src":"1264:54:228","nodes":[],"errorSelector":"0f31c63c","name":"ERC20Module_InvalidNamespace","nameLocation":"1270:28:228","parameters":{"id":121629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121628,"mutability":"mutable","name":"namespace","nameLocation":"1307:9:228","nodeType":"VariableDeclaration","scope":121630,"src":"1299:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121627,"name":"bytes14","nodeType":"ElementaryTypeName","src":"1299:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"1298:19:228"}},{"id":121639,"nodeType":"VariableDeclaration","src":"1322:85:228","nodes":[],"constant":false,"mutability":"immutable","name":"registrationLibrary","nameLocation":"1340:19:228","scope":121820,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121631,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1370:34:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"function () returns (contract ERC20ModuleRegistrationLibrary)"},"typeName":{"id":121635,"nodeType":"UserDefinedTypeName","pathNode":{"id":121634,"name":"ERC20ModuleRegistrationLibrary","nameLocations":["1374:30:228"],"nodeType":"IdentifierPath","referencedDeclaration":121868,"src":"1374:30:228"},"referencedDeclaration":121868,"src":"1374:30:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}},"id":121637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1370:36:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}],"id":121633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1362:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121632,"name":"address","nodeType":"ElementaryTypeName","src":"1362:7:228","typeDescriptions":{}}},"id":121638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":121648,"nodeType":"FunctionDefinition","src":"1412:87:228","nodes":[],"body":{"id":121647,"nodeType":"Block","src":"1470:29:228","nodes":[],"statements":[{"expression":{"id":121645,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1483:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"functionReturnParameters":121644,"id":121646,"nodeType":"Return","src":"1476:18:228"}]},"baseFunctions":[94638],"functionSelector":"17d7de7c","implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"1421:7:228","overrides":{"id":121641,"nodeType":"OverrideSpecifier","overrides":[],"src":"1443:8:228"},"parameters":{"id":121640,"nodeType":"ParameterList","parameters":[],"src":"1428:2:228"},"returnParameters":{"id":121644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121648,"src":"1461:7:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":121642,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1461:7:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"1460:9:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":121680,"nodeType":"FunctionDefinition","src":"1503:273:228","nodes":[],"body":{"id":121679,"nodeType":"Block","src":"1549:227:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121653,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1624:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":121657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1654:9:228","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":121655,"name":"bytes","nodeType":"ElementaryTypeName","src":"1658:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":121658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1644:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:23:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121651,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1603:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1620:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1603:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:65:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":121663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1680:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1672:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121661,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:228","typeDescriptions":{}}},"id":121664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1603:79:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121678,"nodeType":"IfStatement","src":"1599:173:228","trueBody":{"id":121677,"nodeType":"Block","src":"1684:88:228","statements":[{"errorCall":{"arguments":[{"arguments":[{"arguments":[{"id":121672,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1744:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":121670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1731:5:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":121669,"name":"bytes","nodeType":"ElementaryTypeName","src":"1731:5:228","typeDescriptions":{}}},"id":121671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:6:228","memberName":"concat","nodeType":"MemberAccess","src":"1731:12:228","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1731:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1724:6:228","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":121667,"name":"string","nodeType":"ElementaryTypeName","src":"1724:6:228","typeDescriptions":{}}},"id":121674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1724:40:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":121666,"name":"Module_MissingDependency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94632,"src":"1699:24:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:66:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121676,"nodeType":"RevertStatement","src":"1692:73:228"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_requireDependencies","nameLocation":"1512:20:228","parameters":{"id":121649,"nodeType":"ParameterList","parameters":[],"src":"1532:2:228"},"returnParameters":{"id":121650,"nodeType":"ParameterList","parameters":[],"src":"1549:0:228"},"scope":121820,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":121810,"nodeType":"FunctionDefinition","src":"1780:1474:228","nodes":[],"body":{"id":121809,"nodeType":"Block","src":"1823:1431:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121687,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1920:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"id":121689,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"1943:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1933:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:15:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121685,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1899:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1899:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":121694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1961:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121692,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:228","typeDescriptions":{}}},"id":121695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1899:64:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121701,"nodeType":"IfStatement","src":"1895:117:228","trueBody":{"id":121700,"nodeType":"Block","src":"1965:47:228","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121697,"name":"Module_AlreadyInstalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94628,"src":"1980:23:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121699,"nodeType":"RevertStatement","src":"1973:32:228"}]}},{"assignments":[121703,121706],"declarations":[{"constant":false,"id":121703,"mutability":"mutable","name":"namespace","nameLocation":"2047:9:228","nodeType":"VariableDeclaration","scope":121809,"src":"2039:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121702,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2039:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"},{"constant":false,"id":121706,"mutability":"mutable","name":"metadata","nameLocation":"2083:8:228","nodeType":"VariableDeclaration","scope":121809,"src":"2058:33:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData"},"typeName":{"id":121705,"nodeType":"UserDefinedTypeName","pathNode":{"id":121704,"name":"ERC20MetadataData","nameLocations":["2058:17:228"],"nodeType":"IdentifierPath","referencedDeclaration":123885,"src":"2058:17:228"},"referencedDeclaration":123885,"src":"2058:17:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_storage_ptr","typeString":"struct ERC20MetadataData"}},"visibility":"internal"}],"id":121715,"initialValue":{"arguments":[{"id":121709,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"2106:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":121711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes14_$","typeString":"type(bytes14)"},"typeName":{"id":121710,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2113:7:228","typeDescriptions":{}}},{"id":121712,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"2122:17:228","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$","typeString":"type(struct ERC20MetadataData storage pointer)"}}],"id":121713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:28:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}],"expression":{"id":121707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:6:228","memberName":"decode","nodeType":"MemberAccess","src":"2095:10:228","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":121714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes14_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$","typeString":"tuple(bytes14,struct ERC20MetadataData memory)"}},"nodeType":"VariableDeclarationStatement","src":"2038:103:228"},{"condition":{"commonType":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"id":121718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121716,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2214:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":121717,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"2227:16:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"src":"2214:29:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121724,"nodeType":"IfStatement","src":"2210:96:228","trueBody":{"id":121723,"nodeType":"Block","src":"2245:61:228","statements":[{"errorCall":{"arguments":[{"id":121720,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2289:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121719,"name":"ERC20Module_InvalidNamespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121630,"src":"2260:28:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes14_$returns$__$","typeString":"function (bytes14) pure"}},"id":121721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2260:39:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121722,"nodeType":"RevertStatement","src":"2253:46:228"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":121725,"name":"_requireDependencies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121680,"src":"2340:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":121726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:22:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121727,"nodeType":"ExpressionStatement","src":"2340:22:228"},{"assignments":[121730],"declarations":[{"constant":false,"id":121730,"mutability":"mutable","name":"world","nameLocation":"2424:5:228","nodeType":"VariableDeclaration","scope":121809,"src":"2413:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121729,"nodeType":"UserDefinedTypeName","pathNode":{"id":121728,"name":"IBaseWorld","nameLocations":["2413:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"2413:10:228"},"referencedDeclaration":96356,"src":"2413:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"}],"id":121735,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121732,"name":"_world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95789,"src":"2443:6:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:8:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121731,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"2432:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$96356_$","typeString":"type(contract IBaseWorld)"}},"id":121734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2432:20:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"nodeType":"VariableDeclarationStatement","src":"2413:39:228"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":121741,"name":"ERC20ModuleRegistrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121868,"src":"2506:30:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"type(contract ERC20ModuleRegistrationLibrary)"}},"id":121742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2537:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":121867,"src":"2506:39:228","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"}},{"components":[{"id":121743,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2548:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121744,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2555:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"id":121745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2547:18:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"},{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}],"expression":{"id":121739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:10:228","memberName":"encodeCall","nodeType":"MemberAccess","src":"2491:14:228","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:75:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":121736,"name":"registrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121639,"src":"2458:19:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2478:12:228","memberName":"delegatecall","nodeType":"MemberAccess","src":"2458:32:228","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":121747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:109:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":121748,"nodeType":"ExpressionStatement","src":"2458:109:228"},{"expression":{"arguments":[{"arguments":[{"id":121753,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2640:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121752,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"2623:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121755,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121706,"src":"2652:8:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}],"expression":{"id":121749,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"2605:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":125535,"src":"2605:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$returns$__$","typeString":"function (ResourceId,struct ERC20MetadataData memory)"}},"id":121756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:56:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121757,"nodeType":"ExpressionStatement","src":"2605:56:228"},{"assignments":[121760],"declarations":[{"constant":false,"id":121760,"mutability":"mutable","name":"erc20SystemId","nameLocation":"2724:13:228","nodeType":"VariableDeclaration","scope":121809,"src":"2713:24:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121759,"nodeType":"UserDefinedTypeName","pathNode":{"id":121758,"name":"ResourceId","nameLocations":["2713:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2713:10:228"},"referencedDeclaration":82352,"src":"2713:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121764,"initialValue":{"arguments":[{"id":121762,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2755:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121761,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"2740:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2740:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2713:52:228"},{"assignments":[121766],"declarations":[{"constant":false,"id":121766,"mutability":"mutable","name":"puppet","nameLocation":"2779:6:228","nodeType":"VariableDeclaration","scope":121809,"src":"2771:14:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121765,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":121771,"initialValue":{"arguments":[{"id":121768,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2801:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121769,"name":"erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121760,"src":"2808:13:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"id":121767,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"2788:12:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_address_$","typeString":"function (contract IBaseWorld,ResourceId) returns (address)"}},"id":121770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:34:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2771:51:228"},{"assignments":[121774],"declarations":[{"constant":false,"id":121774,"mutability":"mutable","name":"namespaceId","nameLocation":"2897:11:228","nodeType":"VariableDeclaration","scope":121809,"src":"2886:22:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121773,"nodeType":"UserDefinedTypeName","pathNode":{"id":121772,"name":"ResourceId","nameLocations":["2886:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2886:10:228"},"referencedDeclaration":82352,"src":"2886:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121779,"initialValue":{"arguments":[{"id":121777,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2946:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":121775,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"2911:18:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$96164_$","typeString":"type(library WorldResourceIdLib)"}},"id":121776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2930:15:228","memberName":"encodeNamespace","nodeType":"MemberAccess","referencedDeclaration":96119,"src":"2911:34:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2886:70:228"},{"expression":{"arguments":[{"id":121783,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"2986:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121784,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95767,"src":"2999:10:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121780,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2962:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2968:17:228","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":180199,"src":"2962:23:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,address) external"}},"id":121786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121787,"nodeType":"ExpressionStatement","src":"2962:50:228"},{"condition":{"id":121792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3070:47:228","subExpression":{"arguments":[{"id":121790,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3093:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121788,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"3071:11:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceIds_$87847_$","typeString":"type(library ResourceIds)"}},"id":121789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:9:228","memberName":"getExists","nodeType":"MemberAccess","referencedDeclaration":87367,"src":"3071:21:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_bool_$","typeString":"function (ResourceId) view returns (bool)"}},"id":121791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121800,"nodeType":"IfStatement","src":"3066:115:228","trueBody":{"id":121799,"nodeType":"Block","src":"3119:62:228","statements":[{"expression":{"arguments":[{"id":121796,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3150:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121793,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3127:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":126090,"src":"3127:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3127:47:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121798,"nodeType":"ExpressionStatement","src":"3127:47:228"}]}},{"expression":{"arguments":[{"id":121804,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3204:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121805,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"3229:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121806,"name":"puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121766,"src":"3242:6:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121801,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3186:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":126462,"src":"3186:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,ResourceId,address)"}},"id":121807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:63:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121808,"nodeType":"ExpressionStatement","src":"3186:63:228"}]},"baseFunctions":[94650],"functionSelector":"13861fb5","implemented":true,"kind":"function","modifiers":[],"name":"install","nameLocation":"1789:7:228","parameters":{"id":121683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121682,"mutability":"mutable","name":"args","nameLocation":"1810:4:228","nodeType":"VariableDeclaration","scope":121810,"src":"1797:17:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121681,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1796:19:228"},"returnParameters":{"id":121684,"nodeType":"ParameterList","parameters":[],"src":"1823:0:228"},"scope":121820,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121819,"nodeType":"FunctionDefinition","src":"3258:97:228","nodes":[],"body":{"id":121818,"nodeType":"Block","src":"3305:50:228","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121815,"name":"Module_RootInstallNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94624,"src":"3318:30:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3318:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121817,"nodeType":"RevertStatement","src":"3311:39:228"}]},"baseFunctions":[94644],"functionSelector":"7c5b0335","implemented":true,"kind":"function","modifiers":[],"name":"installRoot","nameLocation":"3267:11:228","parameters":{"id":121813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121819,"src":"3279:12:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121811,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:228"},"returnParameters":{"id":121814,"nodeType":"ParameterList","parameters":[],"src":"3305:0:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":121625,"name":"Module","nameLocations":["1253:6:228"],"nodeType":"IdentifierPath","referencedDeclaration":94903,"src":"1253:6:228"},"id":121626,"nodeType":"InheritanceSpecifier","src":"1253:6:228"}],"canonicalName":"ERC20Module","contractDependencies":[121868],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121820,94903,95807,177303,94651,177260],"name":"ERC20Module","nameLocation":"1238:11:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928,94624,94626,94628,94632,121630],"usedEvents":[83227,83240]},{"id":121868,"nodeType":"ContractDefinition","src":"3359:506:228","nodes":[{"id":121867,"nodeType":"FunctionDefinition","src":"3491:372:228","nodes":[],"body":{"id":121866,"nodeType":"Block","src":"3553:310:228","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":121833,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3625:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121832,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"3606:18:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3606:29:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121829,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"3586:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Allowances_$123839_$","typeString":"type(library Allowances)"}},"id":121831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":123021,"src":"3586:19:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3586:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121836,"nodeType":"ExpressionStatement","src":"3586:50:228"},{"expression":{"arguments":[{"arguments":[{"id":121841,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3677:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121840,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"3660:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121837,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"3642:8:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Balances_$156591_$","typeString":"type(library Balances)"}},"id":121839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3651:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":155960,"src":"3642:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121844,"nodeType":"ExpressionStatement","src":"3642:46:228"},{"expression":{"arguments":[{"arguments":[{"id":121849,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3734:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121848,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"3717:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121845,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"3694:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3708:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":124039,"src":"3694:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:51:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121852,"nodeType":"ExpressionStatement","src":"3694:51:228"},{"expression":{"arguments":[{"arguments":[{"id":121857,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3822:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121856,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"3807:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3834:15:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20System_$122506_$","typeString":"function () returns (contract ERC20System)"},"typeName":{"id":121860,"nodeType":"UserDefinedTypeName","pathNode":{"id":121859,"name":"ERC20System","nameLocations":["3838:11:228"],"nodeType":"IdentifierPath","referencedDeclaration":122506,"src":"3838:11:228"},"referencedDeclaration":122506,"src":"3838:11:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}}},"id":121862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:17:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}},{"hexValue":"74727565","id":121863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3853:4:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":121853,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121824,"src":"3786:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:14:228","memberName":"registerSystem","nodeType":"MemberAccess","referencedDeclaration":180318,"src":"3786:20:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_contract$_WorldContextConsumer_$95807_$_t_bool_$returns$__$","typeString":"function (ResourceId,contract WorldContextConsumer,bool) external"}},"id":121864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3786:72:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121865,"nodeType":"ExpressionStatement","src":"3786:72:228"}]},"documentation":{"id":121821,"nodeType":"StructuredDocumentation","src":"3403:85:228","text":" Register systems and tables for a new ERC20 token in a given namespace"},"functionSelector":"472466c2","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"3500:8:228","parameters":{"id":121827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121824,"mutability":"mutable","name":"world","nameLocation":"3520:5:228","nodeType":"VariableDeclaration","scope":121867,"src":"3509:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121823,"nodeType":"UserDefinedTypeName","pathNode":{"id":121822,"name":"IBaseWorld","nameLocations":["3509:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"3509:10:228"},"referencedDeclaration":96356,"src":"3509:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"constant":false,"id":121826,"mutability":"mutable","name":"namespace","nameLocation":"3535:9:228","nodeType":"VariableDeclaration","scope":121867,"src":"3527:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121825,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3527:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3508:37:228"},"returnParameters":{"id":121828,"nodeType":"ParameterList","parameters":[],"src":"3553:0:228"},"scope":121868,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC20ModuleRegistrationLibrary","contractDependencies":[122506],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121868],"name":"ERC20ModuleRegistrationLibrary","nameLocation":"3368:30:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928],"usedEvents":[83227,83240]}],"license":"MIT"},"id":228}