@latticexyz/store 3.0.0-main-fb1cfef0c → 3.0.0-main-69eb63b59

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.
Files changed (60) hide show
  1. package/dist/chunk-3PAPLPW2.js +2 -0
  2. package/dist/chunk-3PAPLPW2.js.map +1 -0
  3. package/dist/codegen.d.ts +27 -13
  4. package/dist/codegen.js +177 -177
  5. package/dist/codegen.js.map +1 -1
  6. package/dist/config/v2.d.ts +3 -3
  7. package/dist/config/v2.js +1 -1
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.js +1 -1
  10. package/dist/{input-48d1368b.d.ts → input-e69ffb2f.d.ts} +9 -3
  11. package/dist/mud.config.d.ts +4 -4
  12. package/dist/mud.config.js +1 -1
  13. package/dist/mud.config.js.map +1 -1
  14. package/dist/{namespacedTables-8a81e0a2.d.ts → namespacedTables-264f21b1.d.ts} +2 -2
  15. package/dist/{store-6077eba5.d.ts → store-3b37a8c0.d.ts} +2 -2
  16. package/out/Callbacks.sol/Callbacks.json +1 -1
  17. package/out/Callbacks.t.sol/CallbacksTest.json +1 -1
  18. package/out/Gas.t.sol/GasTest.json +1 -1
  19. package/out/Gas.t.sol/SolidityStorage.json +1 -1
  20. package/out/Gas.t.sol/SomeContract.json +1 -1
  21. package/out/GasStorageLoad.t.sol/GasStorageLoadTest.json +1 -1
  22. package/out/Hook.sol/HookInstance.json +1 -1
  23. package/out/Hook.sol/HookLib.json +1 -1
  24. package/out/Hook.t.sol/HookTest.json +1 -1
  25. package/out/Hooks.sol/Hooks.json +1 -1
  26. package/out/KeyEncoding.sol/KeyEncoding.json +1 -1
  27. package/out/KeyEncoding.t.sol/KeyEncodingTest.json +1 -1
  28. package/out/MirrorSubscriber.sol/MirrorSubscriber.json +1 -1
  29. package/out/Mixed.sol/Mixed.json +1 -1
  30. package/out/Mixed.t.sol/MixedTest.json +1 -1
  31. package/out/ResourceIds.sol/ResourceIds.json +1 -1
  32. package/out/Store.sol/Store.json +1 -1
  33. package/out/StoreCore.sol/StoreCore.json +1 -1
  34. package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
  35. package/out/StoreCore.t.sol/StoreCoreTest.json +1 -1
  36. package/out/StoreCoreDynamic.t.sol/StoreCoreDynamicTest.json +1 -1
  37. package/out/StoreCoreGas.t.sol/StoreCoreGasTest.json +1 -1
  38. package/out/StoreHook.t.sol/StoreHookTest.json +1 -1
  39. package/out/StoreHooks.sol/StoreHooks.json +1 -1
  40. package/out/StoreHooks.t.sol/StoreHooksTest.json +1 -1
  41. package/out/StoreHooksColdLoad.t.sol/StoreHooksColdLoadTest.json +1 -1
  42. package/out/StoreKernel.sol/StoreKernel.json +1 -1
  43. package/out/StoreMock.sol/StoreMock.json +1 -1
  44. package/out/StoreMock.t.sol/StoreMockTest.json +1 -1
  45. package/out/StoreRead.sol/StoreRead.json +1 -1
  46. package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
  47. package/out/StoreSwitch.t.sol/MockSystem.json +1 -1
  48. package/out/StoreSwitch.t.sol/StoreSwitchTest.json +1 -1
  49. package/out/StoreSwitch.t.sol/StoreSwitchTestStore.json +1 -1
  50. package/out/Tables.sol/Tables.json +1 -1
  51. package/out/Vector2.sol/Vector2.json +1 -1
  52. package/out/Vector2.t.sol/Vector2Test.json +1 -1
  53. package/out/build-info/{ab717ad6a3f348702f22d62ec82363af.json → 946dc2faf2e29137d1fd87e41e62942e.json} +1 -1
  54. package/package.json +7 -7
  55. package/src/codegen/tables/Hooks.sol +1 -1
  56. package/src/codegen/tables/ResourceIds.sol +1 -1
  57. package/src/codegen/tables/StoreHooks.sol +1 -1
  58. package/src/codegen/tables/Tables.sol +3 -3
  59. package/dist/chunk-JX6B2S4J.js +0 -2
  60. package/dist/chunk-JX6B2S4J.js.map +0 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"_tableId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"onAfterDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"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":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","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":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"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":"StoreHook_NotImplemented","inputs":[]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","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_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50604051620029f8380380620029f8833981016040819052620000349162000267565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201526634b73232bc32b960c91b60308201523391630ba51f4991016040516020818303038152906040526200008590620002f8565b87878787876040518763ffffffff1660e01b8152600401620000ad9695949392919062000394565b600060405180830381600087803b158015620000c857600080fd5b505af1158015620000dd573d6000803e3d6000fd5b50505060009690965550620003d5945050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620001345762000134620000f3565b604052919050565b60005b83811015620001595781810151838201526020016200013f565b50506000910152565b6000601f83601f8401126200017657600080fd5b825160206001600160401b0380831115620001955762000195620000f3565b8260051b620001a683820162000109565b9384528681018301938381019089861115620001c157600080fd5b84890192505b858310156200025a57825184811115620001e15760008081fd5b8901603f81018b13620001f45760008081fd5b858101516040868211156200020d576200020d620000f3565b62000220828b01601f1916890162000109565b8281528d82848601011115620002365760008081fd5b62000247838a83018487016200013c565b85525050509184019190840190620001c7565b9998505050505050505050565b60008060008060008060c087890312156200028157600080fd5b86516020880151604089015160608a015160808b0151939950919750955093506001600160401b0380821115620002b757600080fd5b620002c58a838b0162000162565b935060a0890151915080821115620002dc57600080fd5b50620002eb89828a0162000162565b9150509295509295509295565b805160208083015191908110156200031a576000198160200360031b1b821691505b50919050565b600082825180855260208086019550808260051b84010181860160005b848110156200038757601f1980878503018a528251805180865262000368818888018985016200013c565b9a86019a601f019091169390930184019250908301906001016200033d565b5090979650505050505050565b86815285602082015284604082015283606082015260c060808201526000620003c160c083018562000320565b82810360a08401526200025a818562000320565b61261380620003e56000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80636358453311610076578063964f667d1161005b578063964f667d146101595780639faeaf451461016c578063a8ba87211461017f57600080fd5b8063635845331461013d57806383b5c95b1461014b57600080fd5b806355eb5a28116100a757806355eb5a281461010257806357066c9c146101175780635b28cdaf1461012a57600080fd5b806301ffc9a7146100c357806317c9a24c146100eb575b600080fd5b6100d66100d1366004611d72565b61018d565b60405190151581526020015b60405180910390f35b6100f460005481565b6040519081526020016100e2565b610115610110366004611f00565b610226565b005b610115610125366004611fb4565b6102f0565b610115610138366004611fb4565b6103b3565b610115610138366004611f00565b610115610138366004612058565b6101156101673660046120a8565b6103e5565b61011561017a366004612058565b6104a5565b6101156101383660046120a8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a00000000000000000000000000000000000000000000000000000000148061022057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600054871461027c5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c654964000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526102e791016040516020818303038152906040526102dd90612135565b8787878786610562565b50505050505050565b60005486146103415760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207461626c65000000000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526103ab91016040516020818303038152906040526103a290612135565b86868686610635565b505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005484146104365760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261049f910160405160208183030381529060405261049790612135565b848484610704565b50505050565b60005483146104f65760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261055d910160405160208183030381529060405261055790612135565b836107d0565b505050565b600061056c610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361059e576105998787878787876108d1565b6102e7565b6040517fc0a2895a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063c0a2895a906105fa908a908a908a908a908a908a906004016121de565b600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b5050505050505050505050565b600061063f610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036106705761066b86868686866108e9565b6103ab565b6040517f298314fb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063298314fb906106ca9089908990899089908990600401612234565b600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b50505050505050505050565b600061070e610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361073e57610739858585856108ff565b6107c9565b6040517fb047c1eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063b047c1eb90610796908890889088908890600401612285565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050505b5050505050565b60006107da610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036108035761055d8383610b9a565b6040517f505a181d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063505a181d9061085790869086906004016122be565b600060405180830381600087803b15801561087157600080fd5b505af11580156102e7573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806108cc573391505090565b919050565b6103ab8686868686866108e48d8d610bb1565b610bcb565b6107c985858585856108fa8b610fe9565b61106e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361098957837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161097c939291906122d7565b60405180910390a261049f565b600061099585856113a7565b905060006109a2866113fd565b905060005b8151811015610a775760008282815181106109c4576109c4612314565b602002602001015190506109f06004826affffffffffffffffffffff191661148e90919063ffffffff16565b15610a6e576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610a3b908b908b908b908b90600401612285565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050505b506001016109a7565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610aac939291906122d7565b60405180910390a2610ac7828565ffffffffffff16856114ac565b60005b81518110156102e7576000828281518110610ae757610ae7612314565b60200260200101519050610b136008826affffffffffffffffffffff191661148e90919063ffffffff16565b15610b91576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610b5e908b908b908b908b90600401612285565b600060405180830381600087803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b505050505b50600101610aca565b610bad8282610ba885610fe9565b6114c2565b5050565b6000610bc4610bc084846117c1565b5490565b9392505050565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614610c5557613a3160f11b8788604051602001610c1391815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261027393929160040161232a565b6000610c70828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683610c89919061238a565b610c93919061239d565b9050808214158015610cb5575081610cab86886123b0565b64ffffffffff1614155b15610d05576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610273565b818664ffffffffff161115610d56576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610273565b6000610d63848984611817565b90506000610d708b6113fd565b905060005b8151811015610e48576000828281518110610d9257610d92612314565b60200260200101519050610dbe6010826affffffffffffffffffffff191661148e90919063ffffffff16565b15610e3f57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401610e0c97969594939291906123d5565b600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050505b50600101610d75565b5064ffffffffff881660005b8a60ff168160ff161015610e8757610e7b878260ff166028026038011c64ffffffffff1690565b90910190600101610e54565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051610ec296959493929190612433565b60405180910390a250828414610ee3576000610ede8c8c6117c1565b839055505b6000610ef08c8c8c6118e5565b9050610f04818a64ffffffffff16896114ac565b5060005b8151811015610fdb576000828281518110610f2557610f25612314565b60200260200101519050610f516020826affffffffffffffffffffff191661148e90919063ffffffff16565b15610fd257606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401610f9f97969594939291906123d5565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b505050505b50600101610f08565b505050505050505050505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161103857507e60030220202000000000000000000000000000000000000000000000000000919050565b6102206110657f746273746f72650000000000000000005461626c65730000000000000000000084611965565b60206000611981565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036110fa57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516110ed9493929190612482565b60405180910390a26103ab565b6000611105876113fd565b905060005b81518110156111de57600082828151811061112757611127612314565b602002602001015190506111536001826affffffffffffffffffffff191661148e90919063ffffffff16565b156111d5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906111a2908c908c908c908c908c908c906004016124c1565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b5060010161110a565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516112159493929190612482565b60405180910390a2600061122988886113a7565b905060006020870190506112418260008951846119d3565b600061124c85611a92565b11156112d057600061125e8a8a6117c1565b878155905060208601915060008060005b61127888611a92565b8160ff1610156112cb5761128d8d8d836118e5565b92506112a88a8260ff166028026038011c64ffffffffff1690565b91506112b783600084886119d3565b6112c1828661239d565b945060010161126f565b505050505b60005b83518110156106f85760008482815181106112f0576112f0612314565b6020026020010151905061131c6002826affffffffffffffffffffff191661148e90919063ffffffff16565b1561139e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061136b908e908e908e908e908e908e906004016124c1565b600060405180830381600087803b15801561138557600080fd5b505af1158015611399573d6000803e3d6000fd5b505050505b506001016112d3565b600082826040516020016113bc92919061251a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061143757611437612314565b6020908102919091010152600061146f7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611acf565b90506114866114818260008451611b09565b611b97565b949350505050565b60008160ff168261149f8560581c90565b1660ff1614905092915050565b61055d838383516114bd8560200190565b6119d3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361154857827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161153b9190612556565b60405180910390a2505050565b6000611553846113fd565b905060005b815181101561162657600082828151811061157557611575612314565b602002602001015190506115a16040826affffffffffffffffffffff191661148e90919063ffffffff16565b1561161d576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906115ea90899089908990600401612569565b600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b50600101611558565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07846040516116579190612556565b60405180910390a2600061166b85856113a7565b90506116c481600061167c86611ba8565b67ffffffffffffffff81111561169457611694611db4565b6040519080825280601f01601f1916602001820160405280156116be576020820181803683370190505b506114ac565b60006116cf84611a92565b11156116f05760006116e186866117c1565b90506116ee816020611bcb565b505b60005b82518110156103ab57600083828151811061171057611710612314565b6020026020010151905061173c6080826affffffffffffffffffffff191661148e90919063ffffffff16565b156117b8576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611785908a908a908a90600401612569565b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505b506001016116f3565b600082826040516020016117d692919061251a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff82111561185b576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610273565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061188d5780850382019150611895565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b600083836040516020016118fa92919061251a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60408051602081018490529081018290526000906060016113bc565b6000602082106119a7576020820484019350602082816119a3576119a3612592565b0691505b508254600882021b6020829003808411156119cb576001850154600882021c821791505b509392505050565b8215611a4d57602083106119fd576020830484019350602083816119f9576119f9612592565b0692505b8215611a4d5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611a3e57505061049f565b50600194909401939182900391015b5b60208210611a6f5780518455600190930192601f1990910190602001611a4e565b811561049f576000600019600884021c8554835182191691161785555050505050565b60006008600180611aa56002602061238a565b611aaf919061238a565b611ab9919061238a565b611ac391906125a8565b8260ff911c1692915050565b6060611486611adf8585856118e5565b6000611b0485611aef8989610bb1565b9060ff166028026038011c64ffffffffff1690565b611c08565b600081831180611b195750835182115b15611b56578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610273939291906125bf565b60208401611b64848261239d565b90506000611b72858561238a565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bc48360156000611c2b565b60006008611bb86002602061238a565b611bc291906125a8565b9190911c919050565b60006020611bda83601f61239d565b611be491906125e4565b611bee908461239d565b90505b8083101561055d5760008355600183019250611bf1565b60405160208101601f19603f84840101166040528282526119cb85858584611ca6565b60606000611c398560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611c5f57611c5f612592565b04905060405193506020840160208202810160405281855260005b82811015611c9a578451871c825293870193602090910190600101611c7a565b50505050509392505050565b8215611d2d5760208310611cd057602083048401935060208381611ccc57611ccc612592565b0692505b8215611d2d576020839003600081841015611cf35750600019600884021c611cfd565b50600019600882021c5b8554600886021b818451168219821617845250818411611d1e57505061049f565b50600194909401939182900391015b5b60208210611d4f5783548152600190930192601f1990910190602001611d2e565b811561049f576000600019600884021c8251865482191691161782525050505050565b600060208284031215611d8457600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bc457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611df357611df3611db4565b604052919050565b600082601f830112611e0c57600080fd5b8135602067ffffffffffffffff821115611e2857611e28611db4565b8160051b611e37828201611dca565b9283528481018201928281019087851115611e5157600080fd5b83870192505b84831015611e7057823582529183019190830190611e57565b979650505050505050565b803564ffffffffff811681146108cc57600080fd5b600082601f830112611ea157600080fd5b813567ffffffffffffffff811115611ebb57611ebb611db4565b611ece6020601f19601f84011601611dca565b818152846020838601011115611ee357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611f1b57600080fd5b87359650602088013567ffffffffffffffff80821115611f3a57600080fd5b611f468b838c01611dfb565b975060408a0135915060ff82168214611f5e57600080fd5b819650611f6d60608b01611e7b565b9550611f7b60808b01611e7b565b945060a08a0135935060c08a0135915080821115611f9857600080fd5b50611fa58a828b01611e90565b91505092959891949750929550565b60008060008060008060c08789031215611fcd57600080fd5b86359550602087013567ffffffffffffffff80821115611fec57600080fd5b611ff88a838b01611dfb565b9650604089013591508082111561200e57600080fd5b61201a8a838b01611e90565b955060608901359450608089013591508082111561203757600080fd5b5061204489828a01611e90565b92505060a087013590509295509295509295565b60008060006060848603121561206d57600080fd5b83359250602084013567ffffffffffffffff81111561208b57600080fd5b61209786828701611dfb565b925050604084013590509250925092565b600080600080608085870312156120be57600080fd5b84359350602085013567ffffffffffffffff808211156120dd57600080fd5b6120e988838901611dfb565b94506040870135915065ffffffffffff8216821461210657600080fd5b9092506060860135908082111561211c57600080fd5b5061212987828801611e90565b91505092959194509250565b80516020808301519190811015612156576000198160200360031b1b821691505b50919050565b60008151808452602080850194506020840160005b8381101561218d57815187529582019590820190600101612171565b509495945050505050565b6000815180845260005b818110156121be576020818501810151868301820152016121a2565b506000602082860101526020601f19601f83011685010191505092915050565b86815260c0602082015260006121f760c083018861215c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a08401526122278185612198565b9998505050505050505050565b85815260a06020820152600061224d60a083018761215c565b828103604084015261225f8187612198565b905084606084015282810360808401526122798185612198565b98975050505050505050565b84815260806020820152600061229e608083018661215c565b65ffffffffffff851660408401528281036060840152611e708185612198565b828152604060208201526000611486604083018461215c565b6060815260006122ea606083018661215c565b65ffffffffffff85166020840152828103604084015261230a8185612198565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061236b6060830184612198565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561022057610220612374565b8082018082111561022057610220612374565b64ffffffffff8181168382160190808211156123ce576123ce612374565b5092915050565b87815260e0602082015260006123ee60e083018961215c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526124258185612198565b9a9950505050505050505050565b60c08152600061244660c083018961215c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526122278185612198565b608081526000612495608083018761215c565b82810360208401526124a78187612198565b90508460408401528281036060840152611e708185612198565b86815260c0602082015260006124da60c083018861215c565b82810360408401526124ec8188612198565b905085606084015282810360808401526125068186612198565b9150508260a0830152979650505050505050565b8281526000602080830184516020860160005b828110156125495781518452928401929084019060010161252d565b5091979650505050505050565b602081526000610bc4602083018461215c565b838152606060208201526000612582606083018561215c565b9050826040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761022057610220612374565b6060815260006125d26060830186612198565b60208301949094525060400152919050565b60008261260157634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000818000a","sourceMap":"623:1789:71:-:0;;;694:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;546:71;;;-1:-1:-1;;;546:71:71;;;3412:41:102;-1:-1:-1;;;3469:11:102;;;3462:58;-1:-1:-1;;;3536:12:102;;;3529:59;884:10:71;;877:32;;3604:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;926:11;939:9;950:11;963:8;973:10;877:107;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;990:8:71;:37;;;;-1:-1:-1;623:1789:71;;-1:-1:-1;;;;;623:1789:71;14:127:102;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:102;247:40;;-1:-1:-1;;;;;302:34:102;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:102:o;426:250::-;511:1;521:113;535:6;532:1;529:13;521:113;;;611:11;;;605:18;592:11;;;585:39;557:2;550:10;521:113;;;-1:-1:-1;;668:1:102;650:16;;643:27;426:250::o;681:1538::-;745:5;775:4;821:3;814:4;806:6;802:17;798:27;788:55;;839:1;836;829:12;788:55;862:13;;894:4;-1:-1:-1;;;;;947:10:102;;;944:36;;;960:18;;:::i;:::-;1006:2;1003:1;999:10;1029:28;1053:2;1049;1045:11;1029:28;:::i;:::-;1091:15;;;1161;;;1157:24;;;1122:12;;;;1193:15;;;1190:35;;;1221:1;1218;1211:12;1190:35;1257:2;1249:6;1245:15;1234:26;;1269:921;1285:6;1280:3;1277:15;1269:921;;;1364:3;1358:10;1400:2;1387:11;1384:19;1381:109;;;1444:1;1473:2;1469;1462:14;1381:109;1513:24;;1572:2;1564:11;;1560:21;-1:-1:-1;1550:119:102;;1623:1;1652:2;1648;1641:14;1550:119;1706:2;1702;1698:11;1692:18;1734:2;1759;1755;1752:10;1749:36;;;1765:18;;:::i;:::-;1813:51;1837:11;;;-1:-1:-1;;1833:25:102;1829:34;;1813:51;:::i;:::-;1893:2;1884:7;1877:19;1938:3;1932;1927:2;1923;1919:11;1915:21;1912:30;1909:123;;;1984:1;2014:3;2009;2002:16;1909:123;2045:70;2112:2;2107;2098:7;2094:16;2088:3;2084:2;2080:12;2045:70;:::i;:::-;2128:20;;-1:-1:-1;;;1302:12:102;;;;2168;;;;1269:921;;;2208:5;681:1538;-1:-1:-1;;;;;;;;;681:1538:102:o;2224:1000::-;2530:6;2538;2546;2554;2562;2570;2623:3;2611:9;2602:7;2598:23;2594:33;2591:53;;;2640:1;2637;2630:12;2591:53;2663:16;;2719:2;2704:18;;2698:25;2763:2;2748:18;;2742:25;2807:2;2792:18;;2786:25;2855:3;2840:19;;2834:26;2663:16;;-1:-1:-1;2698:25:102;;-1:-1:-1;2742:25:102;-1:-1:-1;2786:25:102;-1:-1:-1;;;;;;2909:14:102;;;2906:34;;;2936:1;2933;2926:12;2906:34;2959:71;3022:7;3013:6;3002:9;2998:22;2959:71;:::i;:::-;2949:81;;3076:3;3065:9;3061:19;3055:26;3039:42;;3106:2;3096:8;3093:16;3090:36;;;3122:1;3119;3112:12;3090:36;;3145:73;3210:7;3199:8;3188:9;3184:24;3145:73;:::i;:::-;3135:83;;;2224:1000;;;;;;;;:::o;3627:297::-;3745:12;;3792:4;3781:16;;;3775:23;;3745:12;3810:16;;3807:111;;;3904:1;3900:6;3890;3884:4;3880:17;3877:1;3873:25;3869:38;3862:5;3858:50;3849:59;;3807:111;;3627:297;;;:::o;3929:819::-;3981:3;4012;4044:5;4038:12;4071:6;4066:3;4059:19;4097:4;4126:2;4121:3;4117:12;4110:19;;4182:2;4172:6;4169:1;4165:14;4158:5;4154:26;4150:35;4219:2;4212:5;4208:14;4240:1;4250:472;4264:6;4261:1;4258:13;4250:472;;;4327:2;4323:7;4377:2;4369:5;4363:4;4359:16;4355:25;4350:3;4343:38;4410:6;4404:13;4452:2;4446:9;4481:8;4475:4;4468:22;4503:72;4566:8;4561:2;4555:4;4551:13;4546:2;4542;4538:11;4503:72;:::i;:::-;4700:12;;;;4628:2;4614:17;4610:26;;;4600:37;;;;4596:46;;;-1:-1:-1;4665:15:102;;;;4286:1;4279:9;4250:472;;;-1:-1:-1;4738:4:102;;3929:819;-1:-1:-1;;;;;;;3929:819:102:o;4753:912::-;5283:6;5272:9;5265:25;5326:6;5321:2;5310:9;5306:18;5299:34;5369:6;5364:2;5353:9;5349:18;5342:34;5412:6;5407:2;5396:9;5392:18;5385:34;5456:3;5450;5439:9;5435:19;5428:32;5246:4;5483:56;5534:3;5523:9;5519:19;5511:6;5483:56;:::i;:::-;5588:9;5580:6;5576:22;5570:3;5559:9;5555:19;5548:51;5616:43;5652:6;5644;5616:43;:::i;4753:912::-;623:1789:71;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80636358453311610076578063964f667d1161005b578063964f667d146101595780639faeaf451461016c578063a8ba87211461017f57600080fd5b8063635845331461013d57806383b5c95b1461014b57600080fd5b806355eb5a28116100a757806355eb5a281461010257806357066c9c146101175780635b28cdaf1461012a57600080fd5b806301ffc9a7146100c357806317c9a24c146100eb575b600080fd5b6100d66100d1366004611d72565b61018d565b60405190151581526020015b60405180910390f35b6100f460005481565b6040519081526020016100e2565b610115610110366004611f00565b610226565b005b610115610125366004611fb4565b6102f0565b610115610138366004611fb4565b6103b3565b610115610138366004611f00565b610115610138366004612058565b6101156101673660046120a8565b6103e5565b61011561017a366004612058565b6104a5565b6101156101383660046120a8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a00000000000000000000000000000000000000000000000000000000148061022057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600054871461027c5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c654964000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526102e791016040516020818303038152906040526102dd90612135565b8787878786610562565b50505050505050565b60005486146103415760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207461626c65000000000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526103ab91016040516020818303038152906040526103a290612135565b86868686610635565b505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005484146104365760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261049f910160405160208183030381529060405261049790612135565b848484610704565b50505050565b60005483146104f65760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261055d910160405160208183030381529060405261055790612135565b836107d0565b505050565b600061056c610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361059e576105998787878787876108d1565b6102e7565b6040517fc0a2895a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063c0a2895a906105fa908a908a908a908a908a908a906004016121de565b600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b5050505050505050505050565b600061063f610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036106705761066b86868686866108e9565b6103ab565b6040517f298314fb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063298314fb906106ca9089908990899089908990600401612234565b600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b50505050505050505050565b600061070e610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361073e57610739858585856108ff565b6107c9565b6040517fb047c1eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063b047c1eb90610796908890889088908890600401612285565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050505b5050505050565b60006107da610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036108035761055d8383610b9a565b6040517f505a181d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063505a181d9061085790869086906004016122be565b600060405180830381600087803b15801561087157600080fd5b505af11580156102e7573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806108cc573391505090565b919050565b6103ab8686868686866108e48d8d610bb1565b610bcb565b6107c985858585856108fa8b610fe9565b61106e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361098957837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161097c939291906122d7565b60405180910390a261049f565b600061099585856113a7565b905060006109a2866113fd565b905060005b8151811015610a775760008282815181106109c4576109c4612314565b602002602001015190506109f06004826affffffffffffffffffffff191661148e90919063ffffffff16565b15610a6e576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610a3b908b908b908b908b90600401612285565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050505b506001016109a7565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610aac939291906122d7565b60405180910390a2610ac7828565ffffffffffff16856114ac565b60005b81518110156102e7576000828281518110610ae757610ae7612314565b60200260200101519050610b136008826affffffffffffffffffffff191661148e90919063ffffffff16565b15610b91576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610b5e908b908b908b908b90600401612285565b600060405180830381600087803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b505050505b50600101610aca565b610bad8282610ba885610fe9565b6114c2565b5050565b6000610bc4610bc084846117c1565b5490565b9392505050565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614610c5557613a3160f11b8788604051602001610c1391815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261027393929160040161232a565b6000610c70828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683610c89919061238a565b610c93919061239d565b9050808214158015610cb5575081610cab86886123b0565b64ffffffffff1614155b15610d05576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610273565b818664ffffffffff161115610d56576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610273565b6000610d63848984611817565b90506000610d708b6113fd565b905060005b8151811015610e48576000828281518110610d9257610d92612314565b60200260200101519050610dbe6010826affffffffffffffffffffff191661148e90919063ffffffff16565b15610e3f57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401610e0c97969594939291906123d5565b600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050505b50600101610d75565b5064ffffffffff881660005b8a60ff168160ff161015610e8757610e7b878260ff166028026038011c64ffffffffff1690565b90910190600101610e54565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051610ec296959493929190612433565b60405180910390a250828414610ee3576000610ede8c8c6117c1565b839055505b6000610ef08c8c8c6118e5565b9050610f04818a64ffffffffff16896114ac565b5060005b8151811015610fdb576000828281518110610f2557610f25612314565b60200260200101519050610f516020826affffffffffffffffffffff191661148e90919063ffffffff16565b15610fd257606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401610f9f97969594939291906123d5565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b505050505b50600101610f08565b505050505050505050505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161103857507e60030220202000000000000000000000000000000000000000000000000000919050565b6102206110657f746273746f72650000000000000000005461626c65730000000000000000000084611965565b60206000611981565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036110fa57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516110ed9493929190612482565b60405180910390a26103ab565b6000611105876113fd565b905060005b81518110156111de57600082828151811061112757611127612314565b602002602001015190506111536001826affffffffffffffffffffff191661148e90919063ffffffff16565b156111d5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906111a2908c908c908c908c908c908c906004016124c1565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b5060010161110a565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516112159493929190612482565b60405180910390a2600061122988886113a7565b905060006020870190506112418260008951846119d3565b600061124c85611a92565b11156112d057600061125e8a8a6117c1565b878155905060208601915060008060005b61127888611a92565b8160ff1610156112cb5761128d8d8d836118e5565b92506112a88a8260ff166028026038011c64ffffffffff1690565b91506112b783600084886119d3565b6112c1828661239d565b945060010161126f565b505050505b60005b83518110156106f85760008482815181106112f0576112f0612314565b6020026020010151905061131c6002826affffffffffffffffffffff191661148e90919063ffffffff16565b1561139e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061136b908e908e908e908e908e908e906004016124c1565b600060405180830381600087803b15801561138557600080fd5b505af1158015611399573d6000803e3d6000fd5b505050505b506001016112d3565b600082826040516020016113bc92919061251a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061143757611437612314565b6020908102919091010152600061146f7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611acf565b90506114866114818260008451611b09565b611b97565b949350505050565b60008160ff168261149f8560581c90565b1660ff1614905092915050565b61055d838383516114bd8560200190565b6119d3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361154857827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161153b9190612556565b60405180910390a2505050565b6000611553846113fd565b905060005b815181101561162657600082828151811061157557611575612314565b602002602001015190506115a16040826affffffffffffffffffffff191661148e90919063ffffffff16565b1561161d576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906115ea90899089908990600401612569565b600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b50600101611558565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07846040516116579190612556565b60405180910390a2600061166b85856113a7565b90506116c481600061167c86611ba8565b67ffffffffffffffff81111561169457611694611db4565b6040519080825280601f01601f1916602001820160405280156116be576020820181803683370190505b506114ac565b60006116cf84611a92565b11156116f05760006116e186866117c1565b90506116ee816020611bcb565b505b60005b82518110156103ab57600083828151811061171057611710612314565b6020026020010151905061173c6080826affffffffffffffffffffff191661148e90919063ffffffff16565b156117b8576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611785908a908a908a90600401612569565b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505b506001016116f3565b600082826040516020016117d692919061251a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff82111561185b576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610273565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061188d5780850382019150611895565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b600083836040516020016118fa92919061251a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60408051602081018490529081018290526000906060016113bc565b6000602082106119a7576020820484019350602082816119a3576119a3612592565b0691505b508254600882021b6020829003808411156119cb576001850154600882021c821791505b509392505050565b8215611a4d57602083106119fd576020830484019350602083816119f9576119f9612592565b0692505b8215611a4d5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611a3e57505061049f565b50600194909401939182900391015b5b60208210611a6f5780518455600190930192601f1990910190602001611a4e565b811561049f576000600019600884021c8554835182191691161785555050505050565b60006008600180611aa56002602061238a565b611aaf919061238a565b611ab9919061238a565b611ac391906125a8565b8260ff911c1692915050565b6060611486611adf8585856118e5565b6000611b0485611aef8989610bb1565b9060ff166028026038011c64ffffffffff1690565b611c08565b600081831180611b195750835182115b15611b56578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610273939291906125bf565b60208401611b64848261239d565b90506000611b72858561238a565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bc48360156000611c2b565b60006008611bb86002602061238a565b611bc291906125a8565b9190911c919050565b60006020611bda83601f61239d565b611be491906125e4565b611bee908461239d565b90505b8083101561055d5760008355600183019250611bf1565b60405160208101601f19603f84840101166040528282526119cb85858584611ca6565b60606000611c398560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611c5f57611c5f612592565b04905060405193506020840160208202810160405281855260005b82811015611c9a578451871c825293870193602090910190600101611c7a565b50505050509392505050565b8215611d2d5760208310611cd057602083048401935060208381611ccc57611ccc612592565b0692505b8215611d2d576020839003600081841015611cf35750600019600884021c611cfd565b50600019600882021c5b8554600886021b818451168219821617845250818411611d1e57505061049f565b50600194909401939182900391015b5b60208210611d4f5783548152600190930192601f1990910190602001611d2e565b811561049f576000600019600884021c8251865482191691161782525050505050565b600060208284031215611d8457600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bc457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611df357611df3611db4565b604052919050565b600082601f830112611e0c57600080fd5b8135602067ffffffffffffffff821115611e2857611e28611db4565b8160051b611e37828201611dca565b9283528481018201928281019087851115611e5157600080fd5b83870192505b84831015611e7057823582529183019190830190611e57565b979650505050505050565b803564ffffffffff811681146108cc57600080fd5b600082601f830112611ea157600080fd5b813567ffffffffffffffff811115611ebb57611ebb611db4565b611ece6020601f19601f84011601611dca565b818152846020838601011115611ee357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611f1b57600080fd5b87359650602088013567ffffffffffffffff80821115611f3a57600080fd5b611f468b838c01611dfb565b975060408a0135915060ff82168214611f5e57600080fd5b819650611f6d60608b01611e7b565b9550611f7b60808b01611e7b565b945060a08a0135935060c08a0135915080821115611f9857600080fd5b50611fa58a828b01611e90565b91505092959891949750929550565b60008060008060008060c08789031215611fcd57600080fd5b86359550602087013567ffffffffffffffff80821115611fec57600080fd5b611ff88a838b01611dfb565b9650604089013591508082111561200e57600080fd5b61201a8a838b01611e90565b955060608901359450608089013591508082111561203757600080fd5b5061204489828a01611e90565b92505060a087013590509295509295509295565b60008060006060848603121561206d57600080fd5b83359250602084013567ffffffffffffffff81111561208b57600080fd5b61209786828701611dfb565b925050604084013590509250925092565b600080600080608085870312156120be57600080fd5b84359350602085013567ffffffffffffffff808211156120dd57600080fd5b6120e988838901611dfb565b94506040870135915065ffffffffffff8216821461210657600080fd5b9092506060860135908082111561211c57600080fd5b5061212987828801611e90565b91505092959194509250565b80516020808301519190811015612156576000198160200360031b1b821691505b50919050565b60008151808452602080850194506020840160005b8381101561218d57815187529582019590820190600101612171565b509495945050505050565b6000815180845260005b818110156121be576020818501810151868301820152016121a2565b506000602082860101526020601f19601f83011685010191505092915050565b86815260c0602082015260006121f760c083018861215c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a08401526122278185612198565b9998505050505050505050565b85815260a06020820152600061224d60a083018761215c565b828103604084015261225f8187612198565b905084606084015282810360808401526122798185612198565b98975050505050505050565b84815260806020820152600061229e608083018661215c565b65ffffffffffff851660408401528281036060840152611e708185612198565b828152604060208201526000611486604083018461215c565b6060815260006122ea606083018661215c565b65ffffffffffff85166020840152828103604084015261230a8185612198565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061236b6060830184612198565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561022057610220612374565b8082018082111561022057610220612374565b64ffffffffff8181168382160190808211156123ce576123ce612374565b5092915050565b87815260e0602082015260006123ee60e083018961215c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526124258185612198565b9a9950505050505050505050565b60c08152600061244660c083018961215c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526122278185612198565b608081526000612495608083018761215c565b82810360208401526124a78187612198565b90508460408401528281036060840152611e708185612198565b86815260c0602082015260006124da60c083018861215c565b82810360408401526124ec8188612198565b905085606084015282810360808401526125068186612198565b9150508260a0830152979650505050505050565b8281526000602080830184516020860160005b828110156125495781518452928401929084019060010161252d565b5091979650505050505050565b602081526000610bc4602083018461215c565b838152606060208201526000612582606083018561215c565b9050826040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761022057610220612374565b6060815260006125d26060830186612198565b60208301949094525060400152919050565b60008261260157634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000818000a","sourceMap":"623:1789:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;931:187:44;;;;;;:::i;:::-;;:::i;:::-;;;516:14:102;;509:22;491:41;;479:2;464:18;931:187:44;;;;;;;;666:23:71;;;;;;;;;689:25:102;;;677:2;662:18;666:23:71;543:177:102;1732:432:71;;;;;;:::i;:::-;;:::i;:::-;;1036:385;;;;;;:::i;:::-;;:::i;2478:267:44:-;;;;;;:::i;:::-;;:::i;6421:292::-;;;;;;:::i;7597:160::-;;;;;;:::i;1425:303:71:-;;;;;;:::i;:::-;;:::i;2168:242::-;;;;;;:::i;:::-;;:::i;4199:192:44:-;;;;;;:::i;931:187::-;1007:4;1026:43;;;1041:28;1026:43;;:87;;-1:-1:-1;1073:40:44;;;1088:25;1073:40;1026:87;1019:94;931:187;-1:-1:-1;;931:187:44:o;1732:432:71:-;2007:8;;1995:7;1977:38;1973:69;;2017:25;;-1:-1:-1;;;2017:25:71;;6490:2:102;2017:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;2017:25:71;;;;;;;;1973:69;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;2048:111:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;2094:8;2104:17;2123:16;2141:11;2154:4;2048:29;:111::i;:::-;1732:432;;;;;;;:::o;1036:385::-;1289:8;;1277:7;1259:38;1255:67;;1299:23;;-1:-1:-1;;;1299:23:71;;7729:2:102;1299:23:71;;;7711:21:102;7768:2;7748:18;;;7741:30;7807:15;7787:18;;;7780:43;7840:18;;1299:23:71;7527:337:102;1255:67:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;1328:88:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;1366:8;1376:10;1388:14;1404:11;1328:21;:88::i;:::-;1036:385;;;;;;:::o;2478:267:44:-;2714:26;;;;;;;;;;;;;;1425:303:71;1615:8;;1603:7;1585:38;1581:69;;1625:25;;-1:-1:-1;;;1625:25:71;;6490:2:102;1625:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;1625:25:71;6288:339:102;1581:69:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;1656:67:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;1701:8;1711:5;1718:4;1656:28;:67::i;:::-;1425:303;;;;:::o;2168:242::-;2314:8;;2302:7;2284:38;2280:69;;2324:25;;-1:-1:-1;;;2324:25:71;;6490:2:102;2324:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;2324:25:71;6288:339:102;2280:69:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;2355:50:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;2396:8;2355:24;:50::i;:::-;2168:242;;;:::o;8207:601:47:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:47;8464:30;;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;:39;;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:47;6696:30;;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;:31;;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;7297:372::-;7418:21;7442:17;:15;:17::i;:::-;7418:41;-1:-1:-1;7494:4:47;7469:30;;;;7465:200;;7509:58;7536:7;7545:8;7555:5;7562:4;7509:26;:58::i;:::-;7465:200;;;7588:70;;;;;:38;;;;;;:70;;7627:7;;7636:8;;7646:5;;7653:4;;7588:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7465:200;7412:257;7297:372;;;;:::o;13847:301::-;13931:21;13955:17;:15;:17::i;:::-;13931:41;-1:-1:-1;14007:4:47;13982:30;;;;13978:166;;14022:41;14045:7;14054:8;14022:22;:41::i;13978:166::-;14084:53;;;;;:34;;;;;;:53;;14119:7;;14128:8;;14084:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:227;1066:42;1925:22;1886:7;;1925:22;;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:47:o;19594:539:43:-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;17013:1682::-;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:55;17798:4:43;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:23;;;;;17851:54:43;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:43;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:55;18455:4:43;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:23;;;;;18507:53:43;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:43;;18365:326;;25552:145;25636:56;25649:7;25658:8;25668:23;25683:7;25668:14;:23::i;:::-;25636:12;:56::i;:::-;25552:145;;:::o;53939:303::-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:41;;4605:137;54154:82:43;54127:110;53939:303;-1:-1:-1;;;53939:303:43:o;44254:4001::-;-1:-1:-1;;;44652:7:43;:35;;;44648:161;;-1:-1:-1;;;44759:7:43;44792;44775:25;;;;;;12252:19:102;;12296:2;12287:12;;12091:214;44775:25:43;;;;-1:-1:-1;;44775:25:43;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:43;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:43;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;13616:12:102;13655:15;;;45340:92:43;;;13637:34:102;13707:15;;;13687:18;;;13680:43;13759:15;;13739:18;;;13732:43;13579:18;;45340:92:43;13410:371:102;45221:218:43;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;13959:25:102;;;14032:12;14020:25;;14000:18;;;13993:53;13932:18;;45581:74:43;13786:266:102;45522:140:43;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:55;46104:4:43;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:23;;;;46158:55:43;;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:43;;46014:486;;;-1:-1:-1;46558:32:43;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:43;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:41;;;-1:-1:-1;47216:248:43;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:55;47858:4:43;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:23;;;;47911:54:43;;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:43;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;4015:652::-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1342:66:52;;4015:652:43;-1:-1:-1;4015:652:43:o;4314:111::-;4469:185;4515:85;1213:66:52;4591:7:43;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:55;13976:4:43;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:23;;;;;14021:47:43;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:43;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:43;894:4:37;884:15;;14520:54:43;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:41;;;14915:102:43;-1:-1:-1;894:4:37;884:15;;15191:47:43;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:43;:14;15615:1;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:43;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:43;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:55;16125:4:43;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:23;;;;;16169:46:43;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:43;;16035:338;;50806:191;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:43;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:43:o;3658:342:51:-;3774:16;;;3788:1;3774:16;;;;;;;;;3715:22;;3745:26;;3774:16;;;;;;;;;;;;-1:-1:-1;3774:16:51;3745:45;;3829:7;3796:9;3806:1;3796:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3844:18;3865:49;971:66;3901:9;3844:18;3865:25;:49::i;:::-;3844:70;;3928:66;:44;3949:5;3956:1;3959:5;:12;3928:20;:44::i;:::-;:64;:66::i;:::-;3920:75;3658:342;-1:-1:-1;;;;3658:342:51:o;3035:136:23:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:41:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::37;884:15;;758:151;1098:24:41;1055:5;:68::i;26296:1804:43:-;26484:23;26463:7;:44;;;26459:173;;26593:7;26561:50;26602:8;26561:50;;;;;;:::i;:::-;;;;;;;;26296:1804;;;:::o;26459:173::-;26773:22;26798:24;26814:7;26798:15;:24::i;:::-;26773:49;;26833:9;26828:235;26848:5;:12;26844:1;:16;26828:235;;;26875:9;26897:5;26903:1;26897:8;;;;;;;;:::i;:::-;;;;;;;26875:31;;26918:36;1049:6:55;26918:4:43;:14;;;;;:36;;;;:::i;:::-;26914:143;;;26966:82;;;;;3536:35:23;;;;;26966:50:43;;:82;;27017:7;;27026:8;;27036:11;;26966:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26914:143;-1:-1:-1;26862:3:43;;26828:235;;;;27143:7;27111:50;27152:8;27111:50;;;;;;:::i;:::-;;;;;;;;27194:26;27223:59;27264:7;27273:8;27223:40;:59::i;:::-;27194:88;;27288:113;27320:18;27348:1;27367:30;:11;:28;:30::i;:::-;27357:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27357:41:43;;27288:13;:113::i;:::-;27620:1;27587:30;:11;:28;:30::i;:::-;:34;27583:236;;;27631:33;27667:66;27715:7;27724:8;27667:47;:66::i;:::-;27631:102;;27741:71;27772:25;27807:2;27741:12;:71::i;:::-;27623:196;27583:236;27868:9;27863:233;27883:5;:12;27879:1;:16;27863:233;;;27910:9;27932:5;27938:1;27932:8;;;;;;;;:::i;:::-;;;;;;;27910:31;;27953:35;1149:6:55;27953:4:43;:14;;;;;:35;;;;:::i;:::-;27949:141;;;28000:81;;;;;3536:35:23;;;;;28000:49:43;;:81;;28050:7;;28059:8;;28069:11;;28000:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27949:141;-1:-1:-1;27897:3:43;;27863:233;;53371:230;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:43;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:43:o;7468:1525:21:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;689:25:102;;;662:18;;7664:67:21;543:177:102;7618:120:21;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:21;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:21;;;;;:::o;52742:274:43:-;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;51249:282::-;51494:30;;;;;;19110:19:102;;;19145:12;;;19138:28;;;51337:7:43;;19182:12:102;;51494:30:43;18921:279:102;8945:812:41;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:41;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9594:159;9059:698;8945:812;;;;;:::o;1489:2340::-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:53;804:25:54;;782:48;2208:18:41;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:41;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:41;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:53;804:25:54;;782:48;3761:21:41;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:41;;;;:::o;5377:173:22:-;5451:7;579:1:53;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:22;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:22:o;37180:522:43:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:43;37440:12;:257::i;2003:574:40:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:40;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:40:o;40103:220:57:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;4598:171:22:-;4672:7;579:1:53;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:22;;;;;4598:171;-1:-1:-1;4598:171:22:o;4032:370:41:-;4154:13;4203:2;4188:11;:6;4197:2;4188:11;:::i;:::-;4187:18;;;;:::i;:::-;4170:35;;:14;:35;:::i;:::-;4154:51;;4211:187;4235:5;4218:14;:22;4211:187;;;4333:1;4317:14;4310:25;4382:1;4366:14;4362:22;4344:40;;4211:187;;5042:669;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:41;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;2681:1129:59:-;2801:22;2831:21;2855;:11;2997:3:40;2975:25;;2901:104;2855:21:59;2831:45;-1:-1:-1;692:17:40;3238:38;;2882:20:59;3044:11;3238:38:40;3044:11:59;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;6076:2380:41:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:53;804:25:54;;782:48;6806:135:41;;;-1:-1:-1;;;579:1:53;804:25:54;;782:48;6806:135:41;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:41;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:41;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:53;804:25:54;;782:48;8389:20:41;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:41;;;;:::o;14:332:102:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;725:184;-1:-1:-1;;;774:1:102;767:88;874:4;871:1;864:15;898:4;895:1;888:15;914:334;985:2;979:9;1041:2;1031:13;;-1:-1:-1;;1027:86:102;1015:99;;1144:18;1129:34;;1165:22;;;1126:62;1123:88;;;1191:18;;:::i;:::-;1227:2;1220:22;914:334;;-1:-1:-1;914:334:102:o;1253:712::-;1307:5;1360:3;1353:4;1345:6;1341:17;1337:27;1327:55;;1378:1;1375;1368:12;1327:55;1414:6;1401:20;1440:4;1463:18;1459:2;1456:26;1453:52;;;1485:18;;:::i;:::-;1531:2;1528:1;1524:10;1554:28;1578:2;1574;1570:11;1554:28;:::i;:::-;1616:15;;;1686;;;1682:24;;;1647:12;;;;1718:15;;;1715:35;;;1746:1;1743;1736:12;1715:35;1782:2;1774:6;1770:15;1759:26;;1794:142;1810:6;1805:3;1802:15;1794:142;;;1876:17;;1864:30;;1827:12;;;;1914;;;;1794:142;;;1954:5;1253:712;-1:-1:-1;;;;;;;1253:712:102:o;1970:165::-;2037:20;;2097:12;2086:24;;2076:35;;2066:63;;2125:1;2122;2115:12;2140:589;2182:5;2235:3;2228:4;2220:6;2216:17;2212:27;2202:55;;2253:1;2250;2243:12;2202:55;2289:6;2276:20;2315:18;2311:2;2308:26;2305:52;;;2337:18;;:::i;:::-;2381:114;2489:4;-1:-1:-1;;2413:4:102;2409:2;2405:13;2401:86;2397:97;2381:114;:::i;:::-;2520:2;2511:7;2504:19;2566:3;2559:4;2554:2;2546:6;2542:15;2538:26;2535:35;2532:55;;;2583:1;2580;2573:12;2532:55;2648:2;2641:4;2633:6;2629:17;2622:4;2613:7;2609:18;2596:55;2696:1;2671:16;;;2689:4;2667:27;2660:38;;;;2675:7;2140:589;-1:-1:-1;;;2140:589:102:o;2734:1076::-;2945:6;2953;2961;2969;2977;2985;2993;3046:3;3034:9;3025:7;3021:23;3017:33;3014:53;;;3063:1;3060;3053:12;3014:53;3099:9;3086:23;3076:33;;3160:2;3149:9;3145:18;3132:32;3183:18;3224:2;3216:6;3213:14;3210:34;;;3240:1;3237;3230:12;3210:34;3263:61;3316:7;3307:6;3296:9;3292:22;3263:61;:::i;:::-;3253:71;;3374:2;3363:9;3359:18;3346:32;3333:45;;3418:4;3411:5;3407:16;3400:5;3397:27;3387:55;;3438:1;3435;3428:12;3387:55;3461:5;3451:15;;3485:37;3518:2;3507:9;3503:18;3485:37;:::i;:::-;3475:47;;3541:38;3574:3;3563:9;3559:19;3541:38;:::i;:::-;3531:48;;3626:3;3615:9;3611:19;3598:33;3588:43;;3684:3;3673:9;3669:19;3656:33;3640:49;;3714:2;3704:8;3701:16;3698:36;;;3730:1;3727;3720:12;3698:36;;3753:51;3796:7;3785:8;3774:9;3770:24;3753:51;:::i;:::-;3743:61;;;2734:1076;;;;;;;;;;:::o;3815:1073::-;4063:6;4071;4079;4087;4095;4103;4156:3;4144:9;4135:7;4131:23;4127:33;4124:53;;;4173:1;4170;4163:12;4124:53;4209:9;4196:23;4186:33;;4270:2;4259:9;4255:18;4242:32;4293:18;4334:2;4326:6;4323:14;4320:34;;;4350:1;4347;4340:12;4320:34;4373:61;4426:7;4417:6;4406:9;4402:22;4373:61;:::i;:::-;4363:71;;4487:2;4476:9;4472:18;4459:32;4443:48;;4516:2;4506:8;4503:16;4500:36;;;4532:1;4529;4522:12;4500:36;4555:51;4598:7;4587:8;4576:9;4572:24;4555:51;:::i;:::-;4545:61;;4653:2;4642:9;4638:18;4625:32;4615:42;;4710:3;4699:9;4695:19;4682:33;4666:49;;4740:2;4730:8;4727:16;4724:36;;;4756:1;4753;4746:12;4724:36;;4779:51;4822:7;4811:8;4800:9;4796:24;4779:51;:::i;:::-;4769:61;;;4877:3;4866:9;4862:19;4849:33;4839:43;;3815:1073;;;;;;;;:::o;4893:549::-;5060:6;5068;5076;5129:2;5117:9;5108:7;5104:23;5100:32;5097:52;;;5145:1;5142;5135:12;5097:52;5181:9;5168:23;5158:33;;5242:2;5231:9;5227:18;5214:32;5269:18;5261:6;5258:30;5255:50;;;5301:1;5298;5291:12;5255:50;5324:61;5377:7;5368:6;5357:9;5353:22;5324:61;:::i;:::-;5314:71;;;5432:2;5421:9;5417:18;5404:32;5394:42;;4893:549;;;;;:::o;5447:836::-;5598:6;5606;5614;5622;5675:3;5663:9;5654:7;5650:23;5646:33;5643:53;;;5692:1;5689;5682:12;5643:53;5728:9;5715:23;5705:33;;5789:2;5778:9;5774:18;5761:32;5812:18;5853:2;5845:6;5842:14;5839:34;;;5869:1;5866;5859:12;5839:34;5892:61;5945:7;5936:6;5925:9;5921:22;5892:61;:::i;:::-;5882:71;;6003:2;5992:9;5988:18;5975:32;5962:45;;6047:14;6040:5;6036:26;6029:5;6026:37;6016:65;;6077:1;6074;6067:12;6016:65;6100:5;;-1:-1:-1;6158:2:102;6143:18;;6130:32;;6174:16;;;6171:36;;;6203:1;6200;6193:12;6171:36;;6226:51;6269:7;6258:8;6247:9;6243:24;6226:51;:::i;:::-;6216:61;;;5447:836;;;;;;;:::o;7165:357::-;7283:12;;7330:4;7319:16;;;7313:23;;7283:12;7348:16;;7345:171;;;-1:-1:-1;;7428:6:102;7422:4;7418:17;7415:1;7411:25;7407:98;7400:5;7396:110;7387:119;;7345:171;;7165:357;;;:::o;7869:439::-;7922:3;7960:5;7954:12;7987:6;7982:3;7975:19;8013:4;8042;8037:3;8033:14;8026:21;;8081:4;8074:5;8070:16;8104:1;8114:169;8128:6;8125:1;8122:13;8114:169;;;8189:13;;8177:26;;8223:12;;;;8258:15;;;;8150:1;8143:9;8114:169;;;-1:-1:-1;8299:3:102;;7869:439;-1:-1:-1;;;;;7869:439:102:o;8313:481::-;8354:3;8392:5;8386:12;8419:6;8414:3;8407:19;8444:1;8454:162;8468:6;8465:1;8462:13;8454:162;;;8530:4;8586:13;;;8582:22;;8576:29;8558:11;;;8554:20;;8547:59;8483:12;8454:162;;;8458:3;8661:1;8654:4;8645:6;8640:3;8636:16;8632:27;8625:38;8783:4;-1:-1:-1;;8708:2:102;8700:6;8696:15;8692:88;8687:3;8683:98;8679:109;8672:116;;;8313:481;;;;:::o;8799:793::-;9160:6;9149:9;9142:25;9203:3;9198:2;9187:9;9183:18;9176:31;9123:4;9230:57;9282:3;9271:9;9267:19;9259:6;9230:57;:::i;:::-;9335:4;9323:17;;9318:2;9303:18;;9296:45;9360:12;9408:15;;;9403:2;9388:18;;9381:43;9461:15;;9455:3;9440:19;;9433:44;9514:22;;;9508:3;9493:19;;9486:51;9554:32;9518:6;9571;9554:32;:::i;:::-;9546:40;8799:793;-1:-1:-1;;;;;;;;;8799:793:102:o;9597:794::-;9992:6;9981:9;9974:25;10035:3;10030:2;10019:9;10015:18;10008:31;9955:4;10062:57;10114:3;10103:9;10099:19;10091:6;10062:57;:::i;:::-;10167:9;10159:6;10155:22;10150:2;10139:9;10135:18;10128:50;10201:32;10226:6;10218;10201:32;:::i;:::-;10187:46;;10269:6;10264:2;10253:9;10249:18;10242:34;10325:9;10317:6;10313:22;10307:3;10296:9;10292:19;10285:51;10353:32;10378:6;10370;10353:32;:::i;:::-;10345:40;9597:794;-1:-1:-1;;;;;;;;9597:794:102:o;10396:616::-;10707:6;10696:9;10689:25;10750:3;10745:2;10734:9;10730:18;10723:31;10670:4;10777:57;10829:3;10818:9;10814:19;10806:6;10777:57;:::i;:::-;10882:14;10874:6;10870:27;10865:2;10854:9;10850:18;10843:55;10946:9;10938:6;10934:22;10929:2;10918:9;10914:18;10907:50;10974:32;10999:6;10991;10974:32;:::i;11017:364::-;11256:6;11245:9;11238:25;11299:2;11294;11283:9;11279:18;11272:30;11219:4;11319:56;11371:2;11360:9;11356:18;11348:6;11319:56;:::i;11386:511::-;11637:2;11626:9;11619:21;11600:4;11663:56;11715:2;11704:9;11700:18;11692:6;11663:56;:::i;:::-;11767:14;11759:6;11755:27;11750:2;11739:9;11735:18;11728:55;11831:9;11823:6;11819:22;11814:2;11803:9;11799:18;11792:50;11859:32;11884:6;11876;11859:32;:::i;:::-;11851:40;11386:511;-1:-1:-1;;;;;;11386:511:102:o;11902:184::-;-1:-1:-1;;;11951:1:102;11944:88;12051:4;12048:1;12041:15;12075:4;12072:1;12065:15;12310:464;12557:66;12549:6;12545:79;12534:9;12527:98;12661:6;12656:2;12645:9;12641:18;12634:34;12704:2;12699;12688:9;12684:18;12677:30;12508:4;12724:44;12764:2;12753:9;12749:18;12741:6;12724:44;:::i;:::-;12716:52;12310:464;-1:-1:-1;;;;;12310:464:102:o;12779:184::-;-1:-1:-1;;;12828:1:102;12821:88;12928:4;12925:1;12918:15;12952:4;12949:1;12942:15;12968:128;13035:9;;;13056:11;;;13053:37;;;13070:18;;:::i;13101:125::-;13166:9;;;13187:10;;;13184:36;;;13200:18;;:::i;13231:174::-;13298:12;13330:10;;;13342;;;13326:27;;13365:11;;;13362:37;;;13379:18;;:::i;:::-;13362:37;13231:174;;;;:::o;14057:901::-;14482:6;14471:9;14464:25;14525:3;14520:2;14509:9;14505:18;14498:31;14445:4;14552:57;14604:3;14593:9;14589:19;14581:6;14552:57;:::i;:::-;14657:4;14645:17;;14640:2;14625:18;;14618:45;14682:12;14730:15;;;14725:2;14710:18;;14703:43;14783:15;;14777:3;14762:19;;14755:44;14830:3;14815:19;;14808:35;;;14880:22;;;14874:3;14859:19;;14852:51;14920:32;14884:6;14937;14920:32;:::i;:::-;14912:40;14057:901;-1:-1:-1;;;;;;;;;;14057:901:102:o;14963:788::-;15328:3;15317:9;15310:22;15291:4;15355:57;15407:3;15396:9;15392:19;15384:6;15355:57;:::i;:::-;15460:4;15452:6;15448:17;15443:2;15432:9;15428:18;15421:45;15514:14;15506:6;15502:27;15497:2;15486:9;15482:18;15475:55;15578:12;15570:6;15566:25;15561:2;15550:9;15546:18;15539:53;15629:6;15623:3;15612:9;15608:19;15601:35;15685:9;15677:6;15673:22;15667:3;15656:9;15652:19;15645:51;15713:32;15738:6;15730;15713:32;:::i;15756:690::-;16091:3;16080:9;16073:22;16054:4;16118:57;16170:3;16159:9;16155:19;16147:6;16118:57;:::i;:::-;16223:9;16215:6;16211:22;16206:2;16195:9;16191:18;16184:50;16257:32;16282:6;16274;16257:32;:::i;:::-;16243:46;;16325:6;16320:2;16309:9;16305:18;16298:34;16380:9;16372:6;16368:22;16363:2;16352:9;16348:18;16341:50;16408:32;16433:6;16425;16408:32;:::i;16451:899::-;16907:6;16896:9;16889:25;16950:3;16945:2;16934:9;16930:18;16923:31;16870:4;16977:57;17029:3;17018:9;17014:19;17006:6;16977:57;:::i;:::-;17082:9;17074:6;17070:22;17065:2;17054:9;17050:18;17043:50;17116:32;17141:6;17133;17116:32;:::i;:::-;17102:46;;17184:6;17179:2;17168:9;17164:18;17157:34;17240:9;17232:6;17228:22;17222:3;17211:9;17207:19;17200:51;17268:32;17293:6;17285;17268:32;:::i;:::-;17260:40;;;17337:6;17331:3;17320:9;17316:19;17309:35;16451:899;;;;;;;;;:::o;17355:640::-;17606:6;17601:3;17594:19;17576:3;17632:2;17665;17660:3;17656:12;17697:6;17691:13;17762:2;17754:6;17750:15;17783:1;17793:175;17807:6;17804:1;17801:13;17793:175;;;17870:13;;17856:28;;17906:14;;;;17943:15;;;;17829:1;17822:9;17793:175;;;-1:-1:-1;17984:5:102;;17355:640;-1:-1:-1;;;;;;;17355:640:102:o;18000:261::-;18179:2;18168:9;18161:21;18142:4;18199:56;18251:2;18240:9;18236:18;18228:6;18199:56;:::i;18266:468::-;18566:6;18555:9;18548:25;18609:2;18604;18593:9;18589:18;18582:30;18529:4;18629:56;18681:2;18670:9;18666:18;18658:6;18629:56;:::i;:::-;18621:64;;18721:6;18716:2;18705:9;18701:18;18694:34;18266:468;;;;;;:::o;19205:184::-;-1:-1:-1;;;19254:1:102;19247:88;19354:4;19351:1;19344:15;19378:4;19375:1;19368:15;19394:168;19467:9;;;19498;;19515:15;;;19509:22;;19495:37;19485:71;;19536:18;;:::i;19567:359::-;19770:2;19759:9;19752:21;19733:4;19790:44;19830:2;19819:9;19815:18;19807:6;19790:44;:::i;:::-;19865:2;19850:18;;19843:34;;;;-1:-1:-1;19908:2:102;19893:18;19886:34;19782:52;19567:359;-1:-1:-1;19567:359:102:o;19931:274::-;19971:1;19997;19987:189;;-1:-1:-1;;;20029:1:102;20022:88;20133:4;20130:1;20123:15;20161:4;20158:1;20151:15;19987:189;-1:-1:-1;20190:9:102;;19931:274::o","linkReferences":{}},"methodIdentifiers":{"_tableId()":"17c9a24c","onAfterDeleteRecord(bytes32,bytes32[],bytes32)":"83b5c95b","onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"5b28cdaf","onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"63584533","onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"a8ba8721","onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":"9faeaf45","onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"57066c9c","onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"55eb5a28","onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"964f667d","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"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\":[],\"name\":\"StoreHook_NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"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\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"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\":\"EncodedLengths\",\"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\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"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\":[],\"name\":\"_tableId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"onBeforeDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"onBeforeSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}]},\"events\":{\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"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_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite 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.\"}},\"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\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"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 was set.\"}},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"supportsInterface(bytes4)\":{\"details\":\"This function is a part of the ERC-165 standard.\",\"params\":{\"interfaceId\":\"The ID of the interface to check.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"StoreHook_NotImplemented()\":[{\"notice\":\"Error emitted when a function is not implemented.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}]},\"events\":{\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs after deleting a record.\"},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs after setting a record.\"},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs after splicing dynamic (variable length) data.\"},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs after splicing static (fixed length) data.\"},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs before splicing static (fixed length) data.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the interface is supported.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MirrorSubscriber.sol\":\"MirrorSubscriber\"},\"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\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"src/StoreHook.sol\":{\"keccak256\":\"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d\",\"dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym\"]},\"src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"test/MirrorSubscriber.sol\":{\"keccak256\":\"0x22402bc241f9c0f40603b09a2d895cedeb46db90a2cbcd9669250b9a283adaa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81beac1c5b150c117a09f9bdbb07fdaa88ad87d1f88c21a3097d4ddf8c3463b8\",\"dweb:/ipfs/QmaSKCCmSv2m7HHXA6HPsQ1fZPogahLs1vjFLzzMRHEGQq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"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":[],"type":"error","name":"StoreHook_NotImplemented"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"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":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"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":"EncodedLengths","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":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","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":[],"stateMutability":"view","type":"function","name":"_tableId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceStaticData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceStaticData"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","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 was set."}},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"supportsInterface(bytes4)":{"details":"This function is a part of the ERC-165 standard.","params":{"interfaceId":"The ID of the interface to check."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs after deleting a record."},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs after setting a record."},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs after splicing dynamic (variable length) data."},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs after splicing static (fixed length) data."},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs before splicing static (fixed length) data."},"supportsInterface(bytes4)":{"notice":"Check if the interface is supported."}},"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":{"test/MirrorSubscriber.sol":"MirrorSubscriber"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"src/StoreHook.sol":{"keccak256":"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173","urls":["bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d","dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym"],"license":"MIT"},"src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"test/MirrorSubscriber.sol":{"keccak256":"0x22402bc241f9c0f40603b09a2d895cedeb46db90a2cbcd9669250b9a283adaa3","urls":["bzz-raw://81beac1c5b150c117a09f9bdbb07fdaa88ad87d1f88c21a3097d4ddf8c3463b8","dweb:/ipfs/QmaSKCCmSv2m7HHXA6HPsQ1fZPogahLs1vjFLzzMRHEGQq"],"license":"MIT"}},"version":1},"id":71}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"_tableId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"onAfterDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"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":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","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":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"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":"StoreHook_NotImplemented","inputs":[]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","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_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b50604051620029f8380380620029f8833981016040819052620000349162000267565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201526634b73232bc32b960c91b60308201523391630ba51f4991016040516020818303038152906040526200008590620002f8565b87878787876040518763ffffffff1660e01b8152600401620000ad9695949392919062000394565b600060405180830381600087803b158015620000c857600080fd5b505af1158015620000dd573d6000803e3d6000fd5b50505060009690965550620003d5945050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620001345762000134620000f3565b604052919050565b60005b83811015620001595781810151838201526020016200013f565b50506000910152565b6000601f83601f8401126200017657600080fd5b825160206001600160401b0380831115620001955762000195620000f3565b8260051b620001a683820162000109565b9384528681018301938381019089861115620001c157600080fd5b84890192505b858310156200025a57825184811115620001e15760008081fd5b8901603f81018b13620001f45760008081fd5b858101516040868211156200020d576200020d620000f3565b62000220828b01601f1916890162000109565b8281528d82848601011115620002365760008081fd5b62000247838a83018487016200013c565b85525050509184019190840190620001c7565b9998505050505050505050565b60008060008060008060c087890312156200028157600080fd5b86516020880151604089015160608a015160808b0151939950919750955093506001600160401b0380821115620002b757600080fd5b620002c58a838b0162000162565b935060a0890151915080821115620002dc57600080fd5b50620002eb89828a0162000162565b9150509295509295509295565b805160208083015191908110156200031a576000198160200360031b1b821691505b50919050565b600082825180855260208086019550808260051b84010181860160005b848110156200038757601f1980878503018a528251805180865262000368818888018985016200013c565b9a86019a601f019091169390930184019250908301906001016200033d565b5090979650505050505050565b86815285602082015284604082015283606082015260c060808201526000620003c160c083018562000320565b82810360a08401526200025a818562000320565b61261380620003e56000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80636358453311610076578063964f667d1161005b578063964f667d146101595780639faeaf451461016c578063a8ba87211461017f57600080fd5b8063635845331461013d57806383b5c95b1461014b57600080fd5b806355eb5a28116100a757806355eb5a281461010257806357066c9c146101175780635b28cdaf1461012a57600080fd5b806301ffc9a7146100c357806317c9a24c146100eb575b600080fd5b6100d66100d1366004611d72565b61018d565b60405190151581526020015b60405180910390f35b6100f460005481565b6040519081526020016100e2565b610115610110366004611f00565b610226565b005b610115610125366004611fb4565b6102f0565b610115610138366004611fb4565b6103b3565b610115610138366004611f00565b610115610138366004612058565b6101156101673660046120a8565b6103e5565b61011561017a366004612058565b6104a5565b6101156101383660046120a8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a00000000000000000000000000000000000000000000000000000000148061022057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600054871461027c5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c654964000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526102e791016040516020818303038152906040526102dd90612135565b8787878786610562565b50505050505050565b60005486146103415760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207461626c65000000000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526103ab91016040516020818303038152906040526103a290612135565b86868686610635565b505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005484146104365760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261049f910160405160208183030381529060405261049790612135565b848484610704565b50505050565b60005483146104f65760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261055d910160405160208183030381529060405261055790612135565b836107d0565b505050565b600061056c610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361059e576105998787878787876108d1565b6102e7565b6040517fc0a2895a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063c0a2895a906105fa908a908a908a908a908a908a906004016121de565b600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b5050505050505050505050565b600061063f610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036106705761066b86868686866108e9565b6103ab565b6040517f298314fb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063298314fb906106ca9089908990899089908990600401612234565b600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b50505050505050505050565b600061070e610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361073e57610739858585856108ff565b6107c9565b6040517fb047c1eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063b047c1eb90610796908890889088908890600401612285565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050505b5050505050565b60006107da610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036108035761055d8383610b9a565b6040517f505a181d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063505a181d9061085790869086906004016122be565b600060405180830381600087803b15801561087157600080fd5b505af11580156102e7573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806108cc573391505090565b919050565b6103ab8686868686866108e48d8d610bb1565b610bcb565b6107c985858585856108fa8b610fe9565b61106e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361098957837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161097c939291906122d7565b60405180910390a261049f565b600061099585856113a7565b905060006109a2866113fd565b905060005b8151811015610a775760008282815181106109c4576109c4612314565b602002602001015190506109f06004826affffffffffffffffffffff191661148e90919063ffffffff16565b15610a6e576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610a3b908b908b908b908b90600401612285565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050505b506001016109a7565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610aac939291906122d7565b60405180910390a2610ac7828565ffffffffffff16856114ac565b60005b81518110156102e7576000828281518110610ae757610ae7612314565b60200260200101519050610b136008826affffffffffffffffffffff191661148e90919063ffffffff16565b15610b91576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610b5e908b908b908b908b90600401612285565b600060405180830381600087803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b505050505b50600101610aca565b610bad8282610ba885610fe9565b6114c2565b5050565b6000610bc4610bc084846117c1565b5490565b9392505050565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614610c5557613a3160f11b8788604051602001610c1391815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261027393929160040161232a565b6000610c70828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683610c89919061238a565b610c93919061239d565b9050808214158015610cb5575081610cab86886123b0565b64ffffffffff1614155b15610d05576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610273565b818664ffffffffff161115610d56576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610273565b6000610d63848984611817565b90506000610d708b6113fd565b905060005b8151811015610e48576000828281518110610d9257610d92612314565b60200260200101519050610dbe6010826affffffffffffffffffffff191661148e90919063ffffffff16565b15610e3f57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401610e0c97969594939291906123d5565b600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050505b50600101610d75565b5064ffffffffff881660005b8a60ff168160ff161015610e8757610e7b878260ff166028026038011c64ffffffffff1690565b90910190600101610e54565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051610ec296959493929190612433565b60405180910390a250828414610ee3576000610ede8c8c6117c1565b839055505b6000610ef08c8c8c6118e5565b9050610f04818a64ffffffffff16896114ac565b5060005b8151811015610fdb576000828281518110610f2557610f25612314565b60200260200101519050610f516020826affffffffffffffffffffff191661148e90919063ffffffff16565b15610fd257606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401610f9f97969594939291906123d5565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b505050505b50600101610f08565b505050505050505050505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161103857507e60030220202000000000000000000000000000000000000000000000000000919050565b6102206110657f746273746f72650000000000000000005461626c65730000000000000000000084611965565b60206000611981565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036110fa57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516110ed9493929190612482565b60405180910390a26103ab565b6000611105876113fd565b905060005b81518110156111de57600082828151811061112757611127612314565b602002602001015190506111536001826affffffffffffffffffffff191661148e90919063ffffffff16565b156111d5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906111a2908c908c908c908c908c908c906004016124c1565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b5060010161110a565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516112159493929190612482565b60405180910390a2600061122988886113a7565b905060006020870190506112418260008951846119d3565b600061124c85611a92565b11156112d057600061125e8a8a6117c1565b878155905060208601915060008060005b61127888611a92565b8160ff1610156112cb5761128d8d8d836118e5565b92506112a88a8260ff166028026038011c64ffffffffff1690565b91506112b783600084886119d3565b6112c1828661239d565b945060010161126f565b505050505b60005b83518110156106f85760008482815181106112f0576112f0612314565b6020026020010151905061131c6002826affffffffffffffffffffff191661148e90919063ffffffff16565b1561139e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061136b908e908e908e908e908e908e906004016124c1565b600060405180830381600087803b15801561138557600080fd5b505af1158015611399573d6000803e3d6000fd5b505050505b506001016112d3565b600082826040516020016113bc92919061251a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061143757611437612314565b6020908102919091010152600061146f7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611acf565b90506114866114818260008451611b09565b611b97565b949350505050565b60008160ff168261149f8560581c90565b1660ff1614905092915050565b61055d838383516114bd8560200190565b6119d3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361154857827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161153b9190612556565b60405180910390a2505050565b6000611553846113fd565b905060005b815181101561162657600082828151811061157557611575612314565b602002602001015190506115a16040826affffffffffffffffffffff191661148e90919063ffffffff16565b1561161d576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906115ea90899089908990600401612569565b600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b50600101611558565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07846040516116579190612556565b60405180910390a2600061166b85856113a7565b90506116c481600061167c86611ba8565b67ffffffffffffffff81111561169457611694611db4565b6040519080825280601f01601f1916602001820160405280156116be576020820181803683370190505b506114ac565b60006116cf84611a92565b11156116f05760006116e186866117c1565b90506116ee816020611bcb565b505b60005b82518110156103ab57600083828151811061171057611710612314565b6020026020010151905061173c6080826affffffffffffffffffffff191661148e90919063ffffffff16565b156117b8576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611785908a908a908a90600401612569565b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505b506001016116f3565b600082826040516020016117d692919061251a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff82111561185b576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610273565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061188d5780850382019150611895565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b600083836040516020016118fa92919061251a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60408051602081018490529081018290526000906060016113bc565b6000602082106119a7576020820484019350602082816119a3576119a3612592565b0691505b508254600882021b6020829003808411156119cb576001850154600882021c821791505b509392505050565b8215611a4d57602083106119fd576020830484019350602083816119f9576119f9612592565b0692505b8215611a4d5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611a3e57505061049f565b50600194909401939182900391015b5b60208210611a6f5780518455600190930192601f1990910190602001611a4e565b811561049f576000600019600884021c8554835182191691161785555050505050565b60006008600180611aa56002602061238a565b611aaf919061238a565b611ab9919061238a565b611ac391906125a8565b8260ff911c1692915050565b6060611486611adf8585856118e5565b6000611b0485611aef8989610bb1565b9060ff166028026038011c64ffffffffff1690565b611c08565b600081831180611b195750835182115b15611b56578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610273939291906125bf565b60208401611b64848261239d565b90506000611b72858561238a565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bc48360156000611c2b565b60006008611bb86002602061238a565b611bc291906125a8565b9190911c919050565b60006020611bda83601f61239d565b611be491906125e4565b611bee908461239d565b90505b8083101561055d5760008355600183019250611bf1565b60405160208101601f19603f84840101166040528282526119cb85858584611ca6565b60606000611c398560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611c5f57611c5f612592565b04905060405193506020840160208202810160405281855260005b82811015611c9a578451871c825293870193602090910190600101611c7a565b50505050509392505050565b8215611d2d5760208310611cd057602083048401935060208381611ccc57611ccc612592565b0692505b8215611d2d576020839003600081841015611cf35750600019600884021c611cfd565b50600019600882021c5b8554600886021b818451168219821617845250818411611d1e57505061049f565b50600194909401939182900391015b5b60208210611d4f5783548152600190930192601f1990910190602001611d2e565b811561049f576000600019600884021c8251865482191691161782525050505050565b600060208284031215611d8457600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bc457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611df357611df3611db4565b604052919050565b600082601f830112611e0c57600080fd5b8135602067ffffffffffffffff821115611e2857611e28611db4565b8160051b611e37828201611dca565b9283528481018201928281019087851115611e5157600080fd5b83870192505b84831015611e7057823582529183019190830190611e57565b979650505050505050565b803564ffffffffff811681146108cc57600080fd5b600082601f830112611ea157600080fd5b813567ffffffffffffffff811115611ebb57611ebb611db4565b611ece6020601f19601f84011601611dca565b818152846020838601011115611ee357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611f1b57600080fd5b87359650602088013567ffffffffffffffff80821115611f3a57600080fd5b611f468b838c01611dfb565b975060408a0135915060ff82168214611f5e57600080fd5b819650611f6d60608b01611e7b565b9550611f7b60808b01611e7b565b945060a08a0135935060c08a0135915080821115611f9857600080fd5b50611fa58a828b01611e90565b91505092959891949750929550565b60008060008060008060c08789031215611fcd57600080fd5b86359550602087013567ffffffffffffffff80821115611fec57600080fd5b611ff88a838b01611dfb565b9650604089013591508082111561200e57600080fd5b61201a8a838b01611e90565b955060608901359450608089013591508082111561203757600080fd5b5061204489828a01611e90565b92505060a087013590509295509295509295565b60008060006060848603121561206d57600080fd5b83359250602084013567ffffffffffffffff81111561208b57600080fd5b61209786828701611dfb565b925050604084013590509250925092565b600080600080608085870312156120be57600080fd5b84359350602085013567ffffffffffffffff808211156120dd57600080fd5b6120e988838901611dfb565b94506040870135915065ffffffffffff8216821461210657600080fd5b9092506060860135908082111561211c57600080fd5b5061212987828801611e90565b91505092959194509250565b80516020808301519190811015612156576000198160200360031b1b821691505b50919050565b60008151808452602080850194506020840160005b8381101561218d57815187529582019590820190600101612171565b509495945050505050565b6000815180845260005b818110156121be576020818501810151868301820152016121a2565b506000602082860101526020601f19601f83011685010191505092915050565b86815260c0602082015260006121f760c083018861215c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a08401526122278185612198565b9998505050505050505050565b85815260a06020820152600061224d60a083018761215c565b828103604084015261225f8187612198565b905084606084015282810360808401526122798185612198565b98975050505050505050565b84815260806020820152600061229e608083018661215c565b65ffffffffffff851660408401528281036060840152611e708185612198565b828152604060208201526000611486604083018461215c565b6060815260006122ea606083018661215c565b65ffffffffffff85166020840152828103604084015261230a8185612198565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061236b6060830184612198565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561022057610220612374565b8082018082111561022057610220612374565b64ffffffffff8181168382160190808211156123ce576123ce612374565b5092915050565b87815260e0602082015260006123ee60e083018961215c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526124258185612198565b9a9950505050505050505050565b60c08152600061244660c083018961215c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526122278185612198565b608081526000612495608083018761215c565b82810360208401526124a78187612198565b90508460408401528281036060840152611e708185612198565b86815260c0602082015260006124da60c083018861215c565b82810360408401526124ec8188612198565b905085606084015282810360808401526125068186612198565b9150508260a0830152979650505050505050565b8281526000602080830184516020860160005b828110156125495781518452928401929084019060010161252d565b5091979650505050505050565b602081526000610bc4602083018461215c565b838152606060208201526000612582606083018561215c565b9050826040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761022057610220612374565b6060815260006125d26060830186612198565b60208301949094525060400152919050565b60008261260157634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000818000a","sourceMap":"623:1789:71:-:0;;;694:338;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;546:71;;;-1:-1:-1;;;546:71:71;;;3412:41:102;-1:-1:-1;;;3469:11:102;;;3462:58;-1:-1:-1;;;3536:12:102;;;3529:59;884:10:71;;877:32;;3604:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;926:11;939:9;950:11;963:8;973:10;877:107;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;990:8:71;:37;;;;-1:-1:-1;623:1789:71;;-1:-1:-1;;;;;623:1789:71;14:127:102;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:102;247:40;;-1:-1:-1;;;;;302:34:102;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:102:o;426:250::-;511:1;521:113;535:6;532:1;529:13;521:113;;;611:11;;;605:18;592:11;;;585:39;557:2;550:10;521:113;;;-1:-1:-1;;668:1:102;650:16;;643:27;426:250::o;681:1538::-;745:5;775:4;821:3;814:4;806:6;802:17;798:27;788:55;;839:1;836;829:12;788:55;862:13;;894:4;-1:-1:-1;;;;;947:10:102;;;944:36;;;960:18;;:::i;:::-;1006:2;1003:1;999:10;1029:28;1053:2;1049;1045:11;1029:28;:::i;:::-;1091:15;;;1161;;;1157:24;;;1122:12;;;;1193:15;;;1190:35;;;1221:1;1218;1211:12;1190:35;1257:2;1249:6;1245:15;1234:26;;1269:921;1285:6;1280:3;1277:15;1269:921;;;1364:3;1358:10;1400:2;1387:11;1384:19;1381:109;;;1444:1;1473:2;1469;1462:14;1381:109;1513:24;;1572:2;1564:11;;1560:21;-1:-1:-1;1550:119:102;;1623:1;1652:2;1648;1641:14;1550:119;1706:2;1702;1698:11;1692:18;1734:2;1759;1755;1752:10;1749:36;;;1765:18;;:::i;:::-;1813:51;1837:11;;;-1:-1:-1;;1833:25:102;1829:34;;1813:51;:::i;:::-;1893:2;1884:7;1877:19;1938:3;1932;1927:2;1923;1919:11;1915:21;1912:30;1909:123;;;1984:1;2014:3;2009;2002:16;1909:123;2045:70;2112:2;2107;2098:7;2094:16;2088:3;2084:2;2080:12;2045:70;:::i;:::-;2128:20;;-1:-1:-1;;;1302:12:102;;;;2168;;;;1269:921;;;2208:5;681:1538;-1:-1:-1;;;;;;;;;681:1538:102:o;2224:1000::-;2530:6;2538;2546;2554;2562;2570;2623:3;2611:9;2602:7;2598:23;2594:33;2591:53;;;2640:1;2637;2630:12;2591:53;2663:16;;2719:2;2704:18;;2698:25;2763:2;2748:18;;2742:25;2807:2;2792:18;;2786:25;2855:3;2840:19;;2834:26;2663:16;;-1:-1:-1;2698:25:102;;-1:-1:-1;2742:25:102;-1:-1:-1;2786:25:102;-1:-1:-1;;;;;;2909:14:102;;;2906:34;;;2936:1;2933;2926:12;2906:34;2959:71;3022:7;3013:6;3002:9;2998:22;2959:71;:::i;:::-;2949:81;;3076:3;3065:9;3061:19;3055:26;3039:42;;3106:2;3096:8;3093:16;3090:36;;;3122:1;3119;3112:12;3090:36;;3145:73;3210:7;3199:8;3188:9;3184:24;3145:73;:::i;:::-;3135:83;;;2224:1000;;;;;;;;:::o;3627:297::-;3745:12;;3792:4;3781:16;;;3775:23;;3745:12;3810:16;;3807:111;;;3904:1;3900:6;3890;3884:4;3880:17;3877:1;3873:25;3869:38;3862:5;3858:50;3849:59;;3807:111;;3627:297;;;:::o;3929:819::-;3981:3;4012;4044:5;4038:12;4071:6;4066:3;4059:19;4097:4;4126:2;4121:3;4117:12;4110:19;;4182:2;4172:6;4169:1;4165:14;4158:5;4154:26;4150:35;4219:2;4212:5;4208:14;4240:1;4250:472;4264:6;4261:1;4258:13;4250:472;;;4327:2;4323:7;4377:2;4369:5;4363:4;4359:16;4355:25;4350:3;4343:38;4410:6;4404:13;4452:2;4446:9;4481:8;4475:4;4468:22;4503:72;4566:8;4561:2;4555:4;4551:13;4546:2;4542;4538:11;4503:72;:::i;:::-;4700:12;;;;4628:2;4614:17;4610:26;;;4600:37;;;;4596:46;;;-1:-1:-1;4665:15:102;;;;4286:1;4279:9;4250:472;;;-1:-1:-1;4738:4:102;;3929:819;-1:-1:-1;;;;;;;3929:819:102:o;4753:912::-;5283:6;5272:9;5265:25;5326:6;5321:2;5310:9;5306:18;5299:34;5369:6;5364:2;5353:9;5349:18;5342:34;5412:6;5407:2;5396:9;5392:18;5385:34;5456:3;5450;5439:9;5435:19;5428:32;5246:4;5483:56;5534:3;5523:9;5519:19;5511:6;5483:56;:::i;:::-;5588:9;5580:6;5576:22;5570:3;5559:9;5555:19;5548:51;5616:43;5652:6;5644;5616:43;:::i;4753:912::-;623:1789:71;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80636358453311610076578063964f667d1161005b578063964f667d146101595780639faeaf451461016c578063a8ba87211461017f57600080fd5b8063635845331461013d57806383b5c95b1461014b57600080fd5b806355eb5a28116100a757806355eb5a281461010257806357066c9c146101175780635b28cdaf1461012a57600080fd5b806301ffc9a7146100c357806317c9a24c146100eb575b600080fd5b6100d66100d1366004611d72565b61018d565b60405190151581526020015b60405180910390f35b6100f460005481565b6040519081526020016100e2565b610115610110366004611f00565b610226565b005b610115610125366004611fb4565b6102f0565b610115610138366004611fb4565b6103b3565b610115610138366004611f00565b610115610138366004612058565b6101156101673660046120a8565b6103e5565b61011561017a366004612058565b6104a5565b6101156101383660046120a8565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a00000000000000000000000000000000000000000000000000000000148061022057507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600054871461027c5760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c654964000000000000000000000000000000000060448201526064015b60405180910390fd5b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526102e791016040516020818303038152906040526102dd90612135565b8787878786610562565b50505050505050565b60005486146103415760405162461bcd60e51b815260206004820152600d60248201527f696e76616c6964207461626c65000000000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e64657865720000000000000000000000000000000000000000000000000060308201526103ab91016040516020818303038152906040526103a290612135565b86868686610635565b505050505050565b6040517fcfd7320c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005484146104365760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261049f910160405160208183030381529060405261049790612135565b848484610704565b50505050565b60005483146104f65760405162461bcd60e51b815260206004820152600f60248201527f696e76616c6964207461626c65496400000000000000000000000000000000006044820152606401610273565b60408051613a3160f11b60208201526536b4b93937b960d11b60228201527f696e646578657200000000000000000000000000000000000000000000000000603082015261055d910160405160208183030381529060405261055790612135565b836107d0565b505050565b600061056c610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361059e576105998787878787876108d1565b6102e7565b6040517fc0a2895a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063c0a2895a906105fa908a908a908a908a908a908a906004016121de565b600060405180830381600087803b15801561061457600080fd5b505af1158015610628573d6000803e3d6000fd5b5050505050505050505050565b600061063f610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036106705761066b86868686866108e9565b6103ab565b6040517f298314fb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063298314fb906106ca9089908990899089908990600401612234565b600060405180830381600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b50505050505050505050565b600061070e610885565b90503073ffffffffffffffffffffffffffffffffffffffff82160361073e57610739858585856108ff565b6107c9565b6040517fb047c1eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063b047c1eb90610796908890889088908890600401612285565b600060405180830381600087803b1580156107b057600080fd5b505af11580156107c4573d6000803e3d6000fd5b505050505b5050505050565b60006107da610885565b90503073ffffffffffffffffffffffffffffffffffffffff8216036108035761055d8383610b9a565b6040517f505a181d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063505a181d9061085790869086906004016122be565b600060405180830381600087803b15801561087157600080fd5b505af11580156102e7573d6000803e3d6000fd5b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff16806108cc573391505090565b919050565b6103ab8686868686866108e48d8d610bb1565b610bcb565b6107c985858585856108fa8b610fe9565b61106e565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff000000000000000000000000000000000000000000000000000000000000160361098957837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be84848460405161097c939291906122d7565b60405180910390a261049f565b600061099585856113a7565b905060006109a2866113fd565b905060005b8151811015610a775760008282815181106109c4576109c4612314565b602002602001015190506109f06004826affffffffffffffffffffff191661148e90919063ffffffff16565b15610a6e576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90610a3b908b908b908b908b90600401612285565b600060405180830381600087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050505b506001016109a7565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051610aac939291906122d7565b60405180910390a2610ac7828565ffffffffffff16856114ac565b60005b81518110156102e7576000828281518110610ae757610ae7612314565b60200260200101519050610b136008826affffffffffffffffffffff191661148e90919063ffffffff16565b15610b91576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190610b5e908b908b908b908b90600401612285565b600060405180830381600087803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b505050505b50600101610aca565b610bad8282610ba885610fe9565b6114c2565b5050565b6000610bc4610bc084846117c1565b5490565b9392505050565b613a3160f11b877fffff0000000000000000000000000000000000000000000000000000000000001614610c5557613a3160f11b8788604051602001610c1391815260200190565b60408051601f19818403018152908290527f31b4668300000000000000000000000000000000000000000000000000000000825261027393929160040161232a565b6000610c70828760ff166028026038011c64ffffffffff1690565b9050600083518564ffffffffff1683610c89919061238a565b610c93919061239d565b9050808214158015610cb5575081610cab86886123b0565b64ffffffffff1614155b15610d05576040517fa65010b400000000000000000000000000000000000000000000000000000000815264ffffffffff8088166004830152808716602483015283166044820152606401610273565b818664ffffffffff161115610d56576040517f7e8578d30000000000000000000000000000000000000000000000000000000081526004810183905264ffffffffff87166024820152604401610273565b6000610d63848984611817565b90506000610d708b6113fd565b905060005b8151811015610e48576000828281518110610d9257610d92612314565b60200260200101519050610dbe6010826affffffffffffffffffffff191661148e90919063ffffffff16565b15610e3f57606081901c73ffffffffffffffffffffffffffffffffffffffff166355eb5a288e8e8e8e8e8d8f6040518863ffffffff1660e01b8152600401610e0c97969594939291906123d5565b600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b505050505b50600101610d75565b5064ffffffffff881660005b8a60ff168160ff161015610e8757610e7b878260ff166028026038011c64ffffffffff1690565b90910190600101610e54565b508b7ffe158a7adba34e256807c8a149028d3162918713c3838afc643ce9f96716ebfd8c8c848c888d604051610ec296959493929190612433565b60405180910390a250828414610ee3576000610ede8c8c6117c1565b839055505b6000610ef08c8c8c6118e5565b9050610f04818a64ffffffffff16896114ac565b5060005b8151811015610fdb576000828281518110610f2557610f25612314565b60200260200101519050610f516020826affffffffffffffffffffff191661148e90919063ffffffff16565b15610fd257606081901c73ffffffffffffffffffffffffffffffffffffffff1663635845338e8e8e8e8e8a8f6040518863ffffffff1660e01b8152600401610f9f97969594939291906123d5565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b505050505b50600101610f08565b505050505050505050505050565b60007f8b9d8c8b908d9affffffffffffffffffab9e9d939a8d00000000000000000000820161103857507e60030220202000000000000000000000000000000000000000000000000000919050565b6102206110657f746273746f72650000000000000000005461626c65730000000000000000000084611965565b60206000611981565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff00000000000000000000000000000000000000000000000000000000000016036110fa57857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9868686866040516110ed9493929190612482565b60405180910390a26103ab565b6000611105876113fd565b905060005b81518110156111de57600082828151811061112757611127612314565b602002602001015190506111536001826affffffffffffffffffffff191661148e90919063ffffffff16565b156111d5576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906111a2908c908c908c908c908c908c906004016124c1565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b5060010161110a565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a9878787876040516112159493929190612482565b60405180910390a2600061122988886113a7565b905060006020870190506112418260008951846119d3565b600061124c85611a92565b11156112d057600061125e8a8a6117c1565b878155905060208601915060008060005b61127888611a92565b8160ff1610156112cb5761128d8d8d836118e5565b92506112a88a8260ff166028026038011c64ffffffffff1690565b91506112b783600084886119d3565b6112c1828661239d565b945060010161126f565b505050505b60005b83518110156106f85760008482815181106112f0576112f0612314565b6020026020010151905061131c6002826affffffffffffffffffffff191661148e90919063ffffffff16565b1561139e576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf9061136b908e908e908e908e908e908e906004016124c1565b600060405180830381600087803b15801561138557600080fd5b505af1158015611399573d6000803e3d6000fd5b505050505b506001016112d3565b600082826040516020016113bc92919061251a565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061143757611437612314565b6020908102919091010152600061146f7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611acf565b90506114866114818260008451611b09565b611b97565b949350505050565b60008160ff168261149f8560581c90565b1660ff1614905092915050565b61055d838383516114bd8560200190565b6119d3565b7f6f74000000000000000000000000000000000000000000000000000000000000837fffff000000000000000000000000000000000000000000000000000000000000160361154857827f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d078360405161153b9190612556565b60405180910390a2505050565b6000611553846113fd565b905060005b815181101561162657600082828151811061157557611575612314565b602002602001015190506115a16040826affffffffffffffffffffff191661148e90919063ffffffff16565b1561161d576040517f9faeaf45000000000000000000000000000000000000000000000000000000008152606082901c90639faeaf45906115ea90899089908990600401612569565b600060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050505b50600101611558565b50837f0e1f72f429eb97e64878619984a91e687ae91610348b9ff4216782cc96e49d07846040516116579190612556565b60405180910390a2600061166b85856113a7565b90506116c481600061167c86611ba8565b67ffffffffffffffff81111561169457611694611db4565b6040519080825280601f01601f1916602001820160405280156116be576020820181803683370190505b506114ac565b60006116cf84611a92565b11156116f05760006116e186866117c1565b90506116ee816020611bcb565b505b60005b82518110156103ab57600083828151811061171057611710612314565b6020026020010151905061173c6080826affffffffffffffffffffff191661148e90919063ffffffff16565b156117b8576040517f83b5c95b000000000000000000000000000000000000000000000000000000008152606082901c906383b5c95b90611785908a908a908a90600401612569565b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505b506001016116f3565b600082826040516020016117d692919061251a565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b600064ffffffffff82111561185b576040517f7149a3c100000000000000000000000000000000000000000000000000000000815260048101839052602401610273565b8366ffffffffffffff811660ff851660280260380182901c64ffffffffff1680851061188d5780850382019150611895565b848103820391505b5064ffffffffff6038602860ff8816020181811b197fffffffffffffffffffffffffffffffffffffffffffffffffff000000000000009490941690921792909216918416901b1790509392505050565b600083836040516020016118fa92919061251a565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60408051602081018490529081018290526000906060016113bc565b6000602082106119a7576020820484019350602082816119a3576119a3612592565b0691505b508254600882021b6020829003808411156119cb576001850154600882021c821791505b509392505050565b8215611a4d57602083106119fd576020830484019350602083816119f9576119f9612592565b0692505b8215611a4d5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611a3e57505061049f565b50600194909401939182900391015b5b60208210611a6f5780518455600190930192601f1990910190602001611a4e565b811561049f576000600019600884021c8554835182191691161785555050505050565b60006008600180611aa56002602061238a565b611aaf919061238a565b611ab9919061238a565b611ac391906125a8565b8260ff911c1692915050565b6060611486611adf8585856118e5565b6000611b0485611aef8989610bb1565b9060ff166028026038011c64ffffffffff1690565b611c08565b600081831180611b195750835182115b15611b56578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610273939291906125bf565b60208401611b64848261239d565b90506000611b72858561238a565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bc48360156000611c2b565b60006008611bb86002602061238a565b611bc291906125a8565b9190911c919050565b60006020611bda83601f61239d565b611be491906125e4565b611bee908461239d565b90505b8083101561055d5760008355600183019250611bf1565b60405160208101601f19603f84840101166040528282526119cb85858584611ca6565b60606000611c398560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611c5f57611c5f612592565b04905060405193506020840160208202810160405281855260005b82811015611c9a578451871c825293870193602090910190600101611c7a565b50505050509392505050565b8215611d2d5760208310611cd057602083048401935060208381611ccc57611ccc612592565b0692505b8215611d2d576020839003600081841015611cf35750600019600884021c611cfd565b50600019600882021c5b8554600886021b818451168219821617845250818411611d1e57505061049f565b50600194909401939182900391015b5b60208210611d4f5783548152600190930192601f1990910190602001611d2e565b811561049f576000600019600884021c8251865482191691161782525050505050565b600060208284031215611d8457600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610bc457600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611df357611df3611db4565b604052919050565b600082601f830112611e0c57600080fd5b8135602067ffffffffffffffff821115611e2857611e28611db4565b8160051b611e37828201611dca565b9283528481018201928281019087851115611e5157600080fd5b83870192505b84831015611e7057823582529183019190830190611e57565b979650505050505050565b803564ffffffffff811681146108cc57600080fd5b600082601f830112611ea157600080fd5b813567ffffffffffffffff811115611ebb57611ebb611db4565b611ece6020601f19601f84011601611dca565b818152846020838601011115611ee357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060e0888a031215611f1b57600080fd5b87359650602088013567ffffffffffffffff80821115611f3a57600080fd5b611f468b838c01611dfb565b975060408a0135915060ff82168214611f5e57600080fd5b819650611f6d60608b01611e7b565b9550611f7b60808b01611e7b565b945060a08a0135935060c08a0135915080821115611f9857600080fd5b50611fa58a828b01611e90565b91505092959891949750929550565b60008060008060008060c08789031215611fcd57600080fd5b86359550602087013567ffffffffffffffff80821115611fec57600080fd5b611ff88a838b01611dfb565b9650604089013591508082111561200e57600080fd5b61201a8a838b01611e90565b955060608901359450608089013591508082111561203757600080fd5b5061204489828a01611e90565b92505060a087013590509295509295509295565b60008060006060848603121561206d57600080fd5b83359250602084013567ffffffffffffffff81111561208b57600080fd5b61209786828701611dfb565b925050604084013590509250925092565b600080600080608085870312156120be57600080fd5b84359350602085013567ffffffffffffffff808211156120dd57600080fd5b6120e988838901611dfb565b94506040870135915065ffffffffffff8216821461210657600080fd5b9092506060860135908082111561211c57600080fd5b5061212987828801611e90565b91505092959194509250565b80516020808301519190811015612156576000198160200360031b1b821691505b50919050565b60008151808452602080850194506020840160005b8381101561218d57815187529582019590820190600101612171565b509495945050505050565b6000815180845260005b818110156121be576020818501810151868301820152016121a2565b506000602082860101526020601f19601f83011685010191505092915050565b86815260c0602082015260006121f760c083018861215c565b60ff8716604084015264ffffffffff86811660608501528516608084015282810360a08401526122278185612198565b9998505050505050505050565b85815260a06020820152600061224d60a083018761215c565b828103604084015261225f8187612198565b905084606084015282810360808401526122798185612198565b98975050505050505050565b84815260806020820152600061229e608083018661215c565b65ffffffffffff851660408401528281036060840152611e708185612198565b828152604060208201526000611486604083018461215c565b6060815260006122ea606083018661215c565b65ffffffffffff85166020840152828103604084015261230a8185612198565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008416815282602082015260606040820152600061236b6060830184612198565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561022057610220612374565b8082018082111561022057610220612374565b64ffffffffff8181168382160190808211156123ce576123ce612374565b5092915050565b87815260e0602082015260006123ee60e083018961215c565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c08401526124258185612198565b9a9950505050505050505050565b60c08152600061244660c083018961215c565b60ff8816602084015265ffffffffffff8716604084015264ffffffffff8616606084015284608084015282810360a08401526122278185612198565b608081526000612495608083018761215c565b82810360208401526124a78187612198565b90508460408401528281036060840152611e708185612198565b86815260c0602082015260006124da60c083018861215c565b82810360408401526124ec8188612198565b905085606084015282810360808401526125068186612198565b9150508260a0830152979650505050505050565b8281526000602080830184516020860160005b828110156125495781518452928401929084019060010161252d565b5091979650505050505050565b602081526000610bc4602083018461215c565b838152606060208201526000612582606083018561215c565b9050826040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761022057610220612374565b6060815260006125d26060830186612198565b60208301949094525060400152919050565b60008261260157634e487b7160e01b600052601260045260246000fd5b50049056fea164736f6c6343000818000a","sourceMap":"623:1789:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;931:187:44;;;;;;:::i;:::-;;:::i;:::-;;;516:14:102;;509:22;491:41;;479:2;464:18;931:187:44;;;;;;;;666:23:71;;;;;;;;;689:25:102;;;677:2;662:18;666:23:71;543:177:102;1732:432:71;;;;;;:::i;:::-;;:::i;:::-;;1036:385;;;;;;:::i;:::-;;:::i;2478:267:44:-;;;;;;:::i;:::-;;:::i;6421:292::-;;;;;;:::i;7597:160::-;;;;;;:::i;1425:303:71:-;;;;;;:::i;:::-;;:::i;2168:242::-;;;;;;:::i;:::-;;:::i;4199:192:44:-;;;;;;:::i;931:187::-;1007:4;1026:43;;;1041:28;1026:43;;:87;;-1:-1:-1;1073:40:44;;;1088:25;1073:40;1026:87;1019:94;931:187;-1:-1:-1;;931:187:44:o;1732:432:71:-;2007:8;;1995:7;1977:38;1973:69;;2017:25;;-1:-1:-1;;;2017:25:71;;6490:2:102;2017:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;2017:25:71;;;;;;;;1973:69;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;2048:111:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;2094:8;2104:17;2123:16;2141:11;2154:4;2048:29;:111::i;:::-;1732:432;;;;;;;:::o;1036:385::-;1289:8;;1277:7;1259:38;1255:67;;1299:23;;-1:-1:-1;;;1299:23:71;;7729:2:102;1299:23:71;;;7711:21:102;7768:2;7748:18;;;7741:30;7807:15;7787:18;;;7780:43;7840:18;;1299:23:71;7527:337:102;1255:67:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;1328:88:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;1366:8;1376:10;1388:14;1404:11;1328:21;:88::i;:::-;1036:385;;;;;;:::o;2478:267:44:-;2714:26;;;;;;;;;;;;;;1425:303:71;1615:8;;1603:7;1585:38;1581:69;;1625:25;;-1:-1:-1;;;1625:25:71;;6490:2:102;1625:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;1625:25:71;6288:339:102;1581:69:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;1656:67:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;1701:8;1711:5;1718:4;1656:28;:67::i;:::-;1425:303;;;;:::o;2168:242::-;2314:8;;2302:7;2284:38;2280:69;;2324:25;;-1:-1:-1;;;2324:25:71;;6490:2:102;2324:25:71;;;6472:21:102;6529:2;6509:18;;;6502:30;6568:17;6548:18;;;6541:45;6603:18;;2324:25:71;6288:339:102;2280:69:71;546:71;;;-1:-1:-1;;;546:71:71;;;6815:92:102;-1:-1:-1;;;6923:11:102;;;6916:100;598:18:71;7032:12:102;;;7025:101;2355:50:71;;7142:12:102;546:71:71;;;;;;;;;;;;538:80;;;:::i;:::-;2396:8;2355:24;:50::i;:::-;2168:242;;;:::o;8207:601:47:-;8413:21;8437:17;:15;:17::i;:::-;8413:41;-1:-1:-1;8489:4:47;8464:30;;;;8460:344;;8504:102;8532:7;8541:8;8551:17;8570:16;8588:11;8601:4;8504:27;:102::i;:::-;8460:344;;;8627:170;;;;;:39;;;;;;:170;;8676:7;;8693:8;;8711:17;;8738:16;;8764:11;;8785:4;;8627:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8407:401;8207:601;;;;;;:::o;6458:480::-;6645:21;6669:17;:15;:17::i;:::-;6645:41;-1:-1:-1;6721:4:47;6696:30;;;;6692:242;;6736:79;6756:7;6765:8;6775:10;6787:14;6803:11;6736:19;:79::i;:::-;6692:242;;;6836:91;;;;;:31;;;;;;:91;;6868:7;;6877:8;;6887:10;;6899:14;;6915:11;;6836:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6639:299;6458:480;;;;;:::o;7297:372::-;7418:21;7442:17;:15;:17::i;:::-;7418:41;-1:-1:-1;7494:4:47;7469:30;;;;7465:200;;7509:58;7536:7;7545:8;7555:5;7562:4;7509:26;:58::i;:::-;7465:200;;;7588:70;;;;;:38;;;;;;:70;;7627:7;;7636:8;;7646:5;;7653:4;;7588:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7465:200;7412:257;7297:372;;;;:::o;13847:301::-;13931:21;13955:17;:15;:17::i;:::-;13931:41;-1:-1:-1;14007:4:47;13982:30;;;;13978:166;;14022:41;14045:7;14054:8;14022:22;:41::i;13978:166::-;14084:53;;;;;:34;;;;;;:53;;14119:7;;14128:8;;14084:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1836:227;1066:42;1925:22;1886:7;;1925:22;;;1953:106;;2001:10;1994:17;;;1836:227;:::o;1953:106::-;2039:13;1836:227;-1:-1:-1;1836:227:47:o;19594:539:43:-;19800:328;19854:7;19879:8;19914:17;19957:16;19994:11;20019:4;20055:66;20103:7;20112:8;20055:47;:66::i;:::-;19800:36;:328::i;12066:286::-;12253:94;12263:7;12272:8;12282:10;12294:14;12310:11;12323:23;12338:7;12323:14;:23::i;:::-;12253:9;:94::i;17013:1682::-;17213:23;17192:7;:44;;;17188:235;;17346:7;17299:103;17365:8;17382:5;17395:4;17299:103;;;;;;;;:::i;:::-;;;;;;;;17410:7;;17188:235;17429:16;17448:59;17489:7;17498:8;17448:40;:59::i;:::-;17429:78;;17653:22;17678:24;17694:7;17678:15;:24::i;:::-;17653:49;;17713:9;17708:328;17728:5;:12;17724:1;:16;17708:328;;;17755:9;17777:5;17783:1;17777:8;;;;;;;;:::i;:::-;;;;;;;17755:31;;17798:41;614:6:55;17798:4:43;:14;;;;;:41;;;;:::i;:::-;17794:236;;;17851:170;;;;;3536:35:23;;;;;17851:54:43;;:170;;17927:7;;17956:8;;17983:5;;18006:4;;17851:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17794:236;-1:-1:-1;17742:3:43;;17708:328;;;;18140:7;18093:103;18159:8;18176:5;18189:4;18093:103;;;;;;;;:::i;:::-;;;;;;;;18246:70;18278:8;18296:5;18246:70;;18309:4;18246:13;:70::i;:::-;18370:9;18365:326;18385:5;:12;18381:1;:16;18365:326;;;18412:9;18434:5;18440:1;18434:8;;;;;;;;:::i;:::-;;;;;;;18412:31;;18455:40;723:6:55;18455:4:43;:14;;;;;:40;;;;:::i;:::-;18451:234;;;18507:169;;;;;3536:35:23;;;;;18507:53:43;;:169;;18582:7;;18611:8;;18638:5;;18661:4;;18507:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18451:234;-1:-1:-1;18399:3:43;;18365:326;;25552:145;25636:56;25649:7;25658:8;25668:23;25683:7;25668:14;:23::i;:::-;25636:12;:56::i;:::-;25552:145;;:::o;53939:303::-;54060:14;54154:82;54185:48;54215:7;54224:8;54185:29;:48::i;:::-;4711:21:41;;4605:137;54154:82:43;54127:110;53939:303;-1:-1:-1;;;53939:303:43:o;44254:4001::-;-1:-1:-1;;;44652:7:43;:35;;;44648:161;;-1:-1:-1;;;44759:7:43;44792;44775:25;;;;;;12252:19:102;;12296:2;12287:12;;12091:214;44775:25:43;;;;-1:-1:-1;;44775:25:43;;;;;;;;;;44704:98;;;;;;;;;;:::i;44648:161::-;44815:27;44845:49;:22;44876:17;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;44845:49:43;44815:79;;44900:26;44965:4;:11;44951;44929:33;;:19;:33;;;;:::i;:::-;:47;;;;:::i;:::-;44900:76;;45248:18;45225:19;:41;;:98;;;;-1:-1:-1;45304:19:43;45270:30;45289:11;45270:16;:30;:::i;:::-;:53;;;;45225:98;45221:218;;;45340:92;;;;;13616:12:102;13655:15;;;45340:92:43;;;13637:34:102;13707:15;;;13687:18;;;13680:43;13759:15;;13739:18;;;13732:43;13579:18;;45340:92:43;13410:371:102;45221:218:43;45545:19;45526:16;:38;;;45522:140;;;45581:74;;;;;;;;13959:25:102;;;14032:12;14020:25;;14000:18;;;13993:53;13932:18;;45581:74:43;13786:266:102;45522:140:43;45701:36;45740:72;:22;45774:17;45793:18;45740:33;:72::i;:::-;45701:111;;45959:22;45984:24;46000:7;45984:15;:24::i;:::-;45959:49;;46019:9;46014:486;46034:5;:12;46030:1;:16;46014:486;;;46061:9;46083:5;46089:1;46083:8;;;;;;;;:::i;:::-;;;;;;;46061:31;;46104:42;836:6:55;46104:4:43;:14;;;;;:42;;;;:::i;:::-;46100:394;;;3536:35:23;;;;46158:55:43;;;46235:7;46264:8;46303:17;46350:16;46391:11;46430:22;46470:4;46158:327;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46100:394;-1:-1:-1;46048:3:43;;46014:486;;;-1:-1:-1;46558:32:43;;;:13;46698:107;46716:17;46712:21;;:1;:21;;;46698:107;;;46761:33;:22;46792:1;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;46761:33:43;46752:42;;;;46735:3;;46698:107;;;;46930:7;46874:277;46957:8;46994:17;47035:5;47064:11;47101:21;47138:4;46874:277;;;;;;;;;;;:::i;:::-;;;;;;;;46506:652;47243:18;47220:19;:41;47216:248;;47271:31;47305:48;47335:7;47344:8;47305:29;:48::i;:::-;695:28:41;;;-1:-1:-1;47216:248:43;47521:27;47551:61;47575:7;47584:8;47594:17;47551:23;:61::i;:::-;47521:91;;47620:92;47652:19;47681:16;47620:92;;47705:4;47620:13;:92::i;:::-;47513:206;47773:9;47768:483;47788:5;:12;47784:1;:16;47768:483;;;47815:9;47837:5;47843:1;47837:8;;;;;;;;:::i;:::-;;;;;;;47815:31;;47858:41;947:6:55;47858:4:43;:14;;;;;:41;;;;:::i;:::-;47854:391;;;3536:35:23;;;;47911:54:43;;;47987:7;48016:8;48055:17;48102:16;48143:11;48182:21;48221:4;47911:325;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47854:391;-1:-1:-1;47802:3:43;;47768:483;;;;44498:3757;;;;44254:4001;;;;;;;:::o;4015:652::-;4082:11;4318:64;;;4314:111;;-1:-1:-1;1336:66:52;;4015:652:43;-1:-1:-1;4015:652:43:o;4314:111::-;4469:185;4515:85;1207:66:52;4591:7:43;4515:40;:85::i;:::-;4620:2;4642:1;4469:17;:185::i;13212:3165::-;13507:23;13486:7;:44;;;13482:211;;13613:7;13584:88;13622:8;13632:10;13644:14;13660:11;13584:88;;;;;;;;;:::i;:::-;;;;;;;;13680:7;;13482:211;13831:22;13856:24;13872:7;13856:15;:24::i;:::-;13831:49;;13891:9;13886:340;13906:5;:12;13902:1;:16;13886:340;;;13933:9;13955:5;13961:1;13955:8;;;;;;;;:::i;:::-;;;;;;;13933:31;;13976:33;409:6:55;13976:4:43;:14;;;;;:33;;;;:::i;:::-;13972:248;;;14021:190;;;;;3536:35:23;;;;;14021:47:43;;:190;;14080:7;;14099:8;;14119:10;;14141:14;;14167:11;;14190;;14021:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:248;-1:-1:-1;13920:3:43;;13886:340;;;;14303:7;14274:88;14312:8;14322:10;14334:14;14350:11;14274:88;;;;;;;;;:::i;:::-;;;;;;;;14426:26;14455:59;14496:7;14505:8;14455:40;:59::i;:::-;14426:88;-1:-1:-1;14520:21:43;894:4:37;884:15;;14520:54:43;;14580:149;14618:18;14652:1;14669:10;:17;14709:13;14580;:149::i;:::-;14829:1;14796:30;:11;:28;:30::i;:::-;:34;14792:1174;;;14915:33;14951:66;14999:7;15008:8;14951:47;:66::i;:::-;695:28:41;;;14915:102:43;-1:-1:-1;894:4:37;884:15;;15191:47:43;;15347:27;15382:25;15420:7;15415:545;15433:30;:11;:28;:30::i;:::-;15429:1;:34;;;15415:545;;;15499:63;15541:7;15550:8;15560:1;15499:41;:63::i;:::-;15477:85;-1:-1:-1;15592:25:43;:14;15615:1;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;15592:25:43;15572:45;;15627:170;15669:19;15708:1;15729:17;15773:13;15627;:170::i;:::-;15807:34;15824:17;15807:34;;:::i;:::-;;-1:-1:-1;15938:3:43;;15415:545;;;;14832:1134;;;14792:1174;16040:9;16035:338;16055:5;:12;16051:1;:16;16035:338;;;16082:9;16104:5;16110:1;16104:8;;;;;;;;:::i;:::-;;;;;;;16082:31;;16125:32;503:6:55;16125:4:43;:14;;;;;:32;;;;:::i;:::-;16121:246;;;16169:189;;;;;3536:35:23;;;;;16169:46:43;;:189;;16227:7;;16246:8;;16266:10;;16288:14;;16314:11;;16337;;16169:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16121:246;-1:-1:-1;16069:3:43;;16035:338;;50806:191;50908:7;50972;50981:8;50955:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;50955:35:43;;;;;;;;;50945:46;;50955:35;50945:46;;;;42361:22;50938:53;;50806:191;-1:-1:-1;;;50806:191:43:o;3656:342:51:-;3772:16;;;3786:1;3772:16;;;;;;;;;3713:22;;3743:26;;3772:16;;;;;;;;;;;;-1:-1:-1;3772:16:51;3743:45;;3827:7;3794:9;3804:1;3794:12;;;;;;;;:::i;:::-;;;;;;;;;;:41;3842:18;3863:49;969:66;3899:9;3842:18;3863:25;:49::i;:::-;3842:70;;3926:66;:44;3947:5;3954:1;3957:5;:12;3926:20;:44::i;:::-;:64;:66::i;:::-;3918:75;3656:342;-1:-1:-1;;;;3656:342:51:o;3035:136:23:-;3105:4;3157:9;3124:42;;3143:9;3125:15;3135:4;3934:26;;;3804:162;3125:15;:27;3124:42;;;3117:49;;3035:136;;;;:::o;966:162:41:-;1055:68;1061:14;1077:6;1085:4;:11;1098:24;1117:4;894::37;884:15;;758:151;1098:24:41;1055:5;:68::i;26296:1804:43:-;26484:23;26463:7;:44;;;26459:173;;26593:7;26561:50;26602:8;26561:50;;;;;;:::i;:::-;;;;;;;;26296:1804;;;:::o;26459:173::-;26773:22;26798:24;26814:7;26798:15;:24::i;:::-;26773:49;;26833:9;26828:235;26848:5;:12;26844:1;:16;26828:235;;;26875:9;26897:5;26903:1;26897:8;;;;;;;;:::i;:::-;;;;;;;26875:31;;26918:36;1049:6:55;26918:4:43;:14;;;;;:36;;;;:::i;:::-;26914:143;;;26966:82;;;;;3536:35:23;;;;;26966:50:43;;:82;;27017:7;;27026:8;;27036:11;;26966:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26914:143;-1:-1:-1;26862:3:43;;26828:235;;;;27143:7;27111:50;27152:8;27111:50;;;;;;:::i;:::-;;;;;;;;27194:26;27223:59;27264:7;27273:8;27223:40;:59::i;:::-;27194:88;;27288:113;27320:18;27348:1;27367:30;:11;:28;:30::i;:::-;27357:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27357:41:43;;27288:13;:113::i;:::-;27620:1;27587:30;:11;:28;:30::i;:::-;:34;27583:236;;;27631:33;27667:66;27715:7;27724:8;27667:47;:66::i;:::-;27631:102;;27741:71;27772:25;27807:2;27741:12;:71::i;:::-;27623:196;27583:236;27868:9;27863:233;27883:5;:12;27879:1;:16;27863:233;;;27910:9;27932:5;27938:1;27932:8;;;;;;;;:::i;:::-;;;;;;;27910:31;;27953:35;1149:6:55;27953:4:43;:14;;;;;:35;;;;:::i;:::-;27949:141;;;28000:81;;;;;3536:35:23;;;;;28000:49:43;;:81;;28050:7;;28059:8;;28069:11;;28000:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27949:141;-1:-1:-1;27897:3:43;;27863:233;;53371:230;53492:7;53576;53585:8;53559:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;53559:35:43;;;;;;;;;53549:46;;53559:35;53549:46;;;;42524:40;53522:73;;53371:230;-1:-1:-1;;;53371:230:43:o;7468:1525:21:-;7596:14;1145:16;7622:25;;7618:120;;;7664:67;;;;;;;;689:25:102;;;662:18;;7664:67:21;543:177:102;7618:120:21;7802:14;6445:61;;;7070:16;;;1063;7070;975;7059:27;7017:70;;;6995:94;;8068:38;;;8064:192;;8151:19;8133:15;:37;8118:52;;;;8064:192;;;8232:15;8210:19;:37;8195:52;;;;8064:192;-1:-1:-1;8572:16:21;975;1063;8439;;;;8428:27;8564:35;;;8882:5;8719:26;8699:46;;;;8698:62;;;8862:25;;;;8892:34;;;;;8861:66;;-1:-1:-1;7468:1525:21;;;;;:::o;52742:274:43:-;52886:7;52991;53000:8;52974:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;52964:46;;;;;;52943:17;52936:25;;52916:45;;;42433:34;52916:45;:94;52908:103;;52901:110;;52742:274;;;;;:::o;51249:282::-;51494:30;;;;;;19110:19:102;;;19145:12;;;19138:28;;;51337:7:43;;19182:12:102;;51494:30:43;18921:279:102;8945:812:41;9043:14;9079:2;9069:6;:12;9065:112;;9138:2;9129:6;:11;9111:29;;;;9160:2;9150:12;;;;;;:::i;:::-;;;;9065:112;-1:-1:-1;9368:21:41;;9353:12;9341:25;;9337:53;9516:2;:11;;;9598:22;;;9594:159;;;9734:1;9718:14;9714:22;9708:29;9693:12;9678:13;9674:32;9670:68;9662:6;9659:80;9649:90;;9594:159;9059:698;8945:812;;;;;:::o;1489:2340::-;1602:10;;1598:1504;;1755:2;1745:6;:12;1741:122;;1818:2;1809:6;:11;1791:29;;;;1842:2;1832:12;;;;;;:::i;:::-;;;;1741:122;1953:10;;1949:1147;;2161:2;:11;;;2035:21;-1:-1:-1;;579:1:53;804:25:54;;782:48;2208:18:41;2193:33;;2395:12;2387:6;2383:25;2442:4;2431:9;2427:20;2419:28;;2497:13;2491:20;2480:9;2476:36;2458:54;;2745:4;2741:9;2724:14;2718:21;2714:37;2645:4;2633:10;2629:21;2572:193;2544:14;2524:253;;2836:13;2826:6;:23;2822:36;;2851:7;;;;2822:36;-1:-1:-1;2999:1:41;2981:19;;;;;3054:23;;;;;3012:30;1949:1147;3132:253;3149:2;3139:6;:12;3132:253;;3244:20;;3221:44;;3318:1;3300:19;;;;-1:-1:-1;;3358:12:41;;;;3346:2;3329:19;3132:253;;;3453:10;;3449:376;;3473:12;-1:-1:-1;;579:1:53;804:25:54;;782:48;3761:21:41;;3672:20;;3694:9;;3668:36;3757:32;;3617:184;3573:238;;-1:-1:-1;1489:2340:41;;;;:::o;5377:173:22:-;5451:7;579:1:53;1704;;1684:13;1696:1;376:2;1684:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1683:38;;;;:::i;:::-;5487:11:22;5466:79;5479:65;;5466:79;;5377:173;-1:-1:-1;;5377:173:22:o;37180:522:43:-;37316:12;37440:257;37479:79;37521:7;37530:8;37540:17;37479:41;:79::i;:::-;37576:1;37595:93;37670:17;37595:66;37643:7;37652:8;37595:47;:66::i;:::-;:74;7070:16:21;;1063;7070;975;7059:27;7017:70;6995:94;;;6878:222;37595:93:43;37440:12;:257::i;2003:574:40:-;2094:5;2189:3;2181:5;:11;:32;;;;2202:4;:11;2196:3;:17;2181:32;2177:93;;;2253:4;2259:5;2266:3;2222:48;;;;;;;;;;;;;:::i;2177:93::-;2336:4;2326:15;;2383:16;2394:5;2326:15;2383:16;:::i;:::-;;-1:-1:-1;2405:12:40;2420:11;2426:5;2420:3;:11;:::i;:::-;692:17;2555:15;2547:3;2536:14;;;;2535:36;;;;;;-1:-1:-1;;;;;2003:574:40:o;40103:220:57:-;40169:24;40201:30;40234:32;40252:6;40260:2;40264:1;40234:17;:32::i;4598:171:22:-;4672:7;579:1:53;1354:13;1366:1;376:2;1354:13;:::i;:::-;1353:30;;;;:::i;:::-;4694:70:22;;;;;4598:171;-1:-1:-1;4598:171:22:o;4032:370:41:-;4154:13;4203:2;4188:11;:6;4197:2;4188:11;:::i;:::-;4187:18;;;;:::i;:::-;4170:35;;:14;:35;:::i;:::-;4154:51;;4211:187;4235:5;4218:14;:22;4211:187;;;4333:1;4317:14;4310:25;4382:1;4366:14;4362:22;4344:40;;4211:187;;5042:669;5458:4;5452:11;5499:4;5487:17;;-1:-1:-1;;5373:16:41;5546:26;;;5373:16;5369:32;5518:4;5511:63;5618:6;5610;5603:22;5636:51;5641:14;5657:6;5665;5673:13;5636:4;:51::i;2681:1129:59:-;2801:22;2831:21;2855;:11;2997:3:40;2975:25;;2901:104;2855:21:59;2831:45;-1:-1:-1;692:17:40;3238:38;;2882:20:59;3044:11;3238:38:40;3044:11:59;3029:26;;;;:::i;:::-;;3015:40;;3164:4;3158:11;3149:20;;3207:4;3200:5;3196:16;3267:4;3254:11;3250:22;3236:12;3232:41;3226:4;3219:55;3317:11;3310:5;3303:26;3360:1;3337:463;3376:11;3373:1;3370:18;3337:463;;;3770:20;;3749:42;;3728:64;;3642:31;;;;3555:4;3537:23;;;;3463:1;3456:9;3337:463;;;3341:28;;3116:690;;;2681:1129;;;;;:::o;6076:2380:41:-;6193:10;;6189:1542;;6346:2;6336:6;:12;6332:122;;6409:2;6400:6;:11;6382:29;;;;6433:2;6423:12;;;;;;:::i;:::-;;;;6332:122;6544:10;;6540:1185;;6752:2;:11;;;6626:21;6810:22;;;6806:135;;;-1:-1:-1;;;579:1:53;804:25:54;;782:48;6806:135:41;;;-1:-1:-1;;;579:1:53;804:25:54;;782:48;6806:135:41;7135:14;7129:21;7114:12;7106:6;7102:25;7098:53;7375:4;7359:13;7353:20;7349:31;7285:4;7281:9;7269:10;7265:26;7210:184;7183:13;7163:243;;7465:13;7455:6;:23;7451:36;;7480:7;;;;7451:36;-1:-1:-1;7628:1:41;7610:19;;;;;7683:23;;;;;7641:30;6540:1185;7760:253;7777:2;7767:6;:12;7760:253;;7871:21;;7849:44;;7946:1;7928:19;;;;-1:-1:-1;;7986:12:41;;;;7974:2;7957:19;7760:253;;;8081:10;;8077:375;;8101:12;-1:-1:-1;;579:1:53;804:25:54;;782:48;8389:20:41;;8299:21;;8322:9;;8295:37;8385:31;;8244:184;8201:237;;-1:-1:-1;6076:2380:41;;;;:::o;14:332:102:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;725:184;-1:-1:-1;;;774:1:102;767:88;874:4;871:1;864:15;898:4;895:1;888:15;914:334;985:2;979:9;1041:2;1031:13;;-1:-1:-1;;1027:86:102;1015:99;;1144:18;1129:34;;1165:22;;;1126:62;1123:88;;;1191:18;;:::i;:::-;1227:2;1220:22;914:334;;-1:-1:-1;914:334:102:o;1253:712::-;1307:5;1360:3;1353:4;1345:6;1341:17;1337:27;1327:55;;1378:1;1375;1368:12;1327:55;1414:6;1401:20;1440:4;1463:18;1459:2;1456:26;1453:52;;;1485:18;;:::i;:::-;1531:2;1528:1;1524:10;1554:28;1578:2;1574;1570:11;1554:28;:::i;:::-;1616:15;;;1686;;;1682:24;;;1647:12;;;;1718:15;;;1715:35;;;1746:1;1743;1736:12;1715:35;1782:2;1774:6;1770:15;1759:26;;1794:142;1810:6;1805:3;1802:15;1794:142;;;1876:17;;1864:30;;1827:12;;;;1914;;;;1794:142;;;1954:5;1253:712;-1:-1:-1;;;;;;;1253:712:102:o;1970:165::-;2037:20;;2097:12;2086:24;;2076:35;;2066:63;;2125:1;2122;2115:12;2140:589;2182:5;2235:3;2228:4;2220:6;2216:17;2212:27;2202:55;;2253:1;2250;2243:12;2202:55;2289:6;2276:20;2315:18;2311:2;2308:26;2305:52;;;2337:18;;:::i;:::-;2381:114;2489:4;-1:-1:-1;;2413:4:102;2409:2;2405:13;2401:86;2397:97;2381:114;:::i;:::-;2520:2;2511:7;2504:19;2566:3;2559:4;2554:2;2546:6;2542:15;2538:26;2535:35;2532:55;;;2583:1;2580;2573:12;2532:55;2648:2;2641:4;2633:6;2629:17;2622:4;2613:7;2609:18;2596:55;2696:1;2671:16;;;2689:4;2667:27;2660:38;;;;2675:7;2140:589;-1:-1:-1;;;2140:589:102:o;2734:1076::-;2945:6;2953;2961;2969;2977;2985;2993;3046:3;3034:9;3025:7;3021:23;3017:33;3014:53;;;3063:1;3060;3053:12;3014:53;3099:9;3086:23;3076:33;;3160:2;3149:9;3145:18;3132:32;3183:18;3224:2;3216:6;3213:14;3210:34;;;3240:1;3237;3230:12;3210:34;3263:61;3316:7;3307:6;3296:9;3292:22;3263:61;:::i;:::-;3253:71;;3374:2;3363:9;3359:18;3346:32;3333:45;;3418:4;3411:5;3407:16;3400:5;3397:27;3387:55;;3438:1;3435;3428:12;3387:55;3461:5;3451:15;;3485:37;3518:2;3507:9;3503:18;3485:37;:::i;:::-;3475:47;;3541:38;3574:3;3563:9;3559:19;3541:38;:::i;:::-;3531:48;;3626:3;3615:9;3611:19;3598:33;3588:43;;3684:3;3673:9;3669:19;3656:33;3640:49;;3714:2;3704:8;3701:16;3698:36;;;3730:1;3727;3720:12;3698:36;;3753:51;3796:7;3785:8;3774:9;3770:24;3753:51;:::i;:::-;3743:61;;;2734:1076;;;;;;;;;;:::o;3815:1073::-;4063:6;4071;4079;4087;4095;4103;4156:3;4144:9;4135:7;4131:23;4127:33;4124:53;;;4173:1;4170;4163:12;4124:53;4209:9;4196:23;4186:33;;4270:2;4259:9;4255:18;4242:32;4293:18;4334:2;4326:6;4323:14;4320:34;;;4350:1;4347;4340:12;4320:34;4373:61;4426:7;4417:6;4406:9;4402:22;4373:61;:::i;:::-;4363:71;;4487:2;4476:9;4472:18;4459:32;4443:48;;4516:2;4506:8;4503:16;4500:36;;;4532:1;4529;4522:12;4500:36;4555:51;4598:7;4587:8;4576:9;4572:24;4555:51;:::i;:::-;4545:61;;4653:2;4642:9;4638:18;4625:32;4615:42;;4710:3;4699:9;4695:19;4682:33;4666:49;;4740:2;4730:8;4727:16;4724:36;;;4756:1;4753;4746:12;4724:36;;4779:51;4822:7;4811:8;4800:9;4796:24;4779:51;:::i;:::-;4769:61;;;4877:3;4866:9;4862:19;4849:33;4839:43;;3815:1073;;;;;;;;:::o;4893:549::-;5060:6;5068;5076;5129:2;5117:9;5108:7;5104:23;5100:32;5097:52;;;5145:1;5142;5135:12;5097:52;5181:9;5168:23;5158:33;;5242:2;5231:9;5227:18;5214:32;5269:18;5261:6;5258:30;5255:50;;;5301:1;5298;5291:12;5255:50;5324:61;5377:7;5368:6;5357:9;5353:22;5324:61;:::i;:::-;5314:71;;;5432:2;5421:9;5417:18;5404:32;5394:42;;4893:549;;;;;:::o;5447:836::-;5598:6;5606;5614;5622;5675:3;5663:9;5654:7;5650:23;5646:33;5643:53;;;5692:1;5689;5682:12;5643:53;5728:9;5715:23;5705:33;;5789:2;5778:9;5774:18;5761:32;5812:18;5853:2;5845:6;5842:14;5839:34;;;5869:1;5866;5859:12;5839:34;5892:61;5945:7;5936:6;5925:9;5921:22;5892:61;:::i;:::-;5882:71;;6003:2;5992:9;5988:18;5975:32;5962:45;;6047:14;6040:5;6036:26;6029:5;6026:37;6016:65;;6077:1;6074;6067:12;6016:65;6100:5;;-1:-1:-1;6158:2:102;6143:18;;6130:32;;6174:16;;;6171:36;;;6203:1;6200;6193:12;6171:36;;6226:51;6269:7;6258:8;6247:9;6243:24;6226:51;:::i;:::-;6216:61;;;5447:836;;;;;;;:::o;7165:357::-;7283:12;;7330:4;7319:16;;;7313:23;;7283:12;7348:16;;7345:171;;;-1:-1:-1;;7428:6:102;7422:4;7418:17;7415:1;7411:25;7407:98;7400:5;7396:110;7387:119;;7345:171;;7165:357;;;:::o;7869:439::-;7922:3;7960:5;7954:12;7987:6;7982:3;7975:19;8013:4;8042;8037:3;8033:14;8026:21;;8081:4;8074:5;8070:16;8104:1;8114:169;8128:6;8125:1;8122:13;8114:169;;;8189:13;;8177:26;;8223:12;;;;8258:15;;;;8150:1;8143:9;8114:169;;;-1:-1:-1;8299:3:102;;7869:439;-1:-1:-1;;;;;7869:439:102:o;8313:481::-;8354:3;8392:5;8386:12;8419:6;8414:3;8407:19;8444:1;8454:162;8468:6;8465:1;8462:13;8454:162;;;8530:4;8586:13;;;8582:22;;8576:29;8558:11;;;8554:20;;8547:59;8483:12;8454:162;;;8458:3;8661:1;8654:4;8645:6;8640:3;8636:16;8632:27;8625:38;8783:4;-1:-1:-1;;8708:2:102;8700:6;8696:15;8692:88;8687:3;8683:98;8679:109;8672:116;;;8313:481;;;;:::o;8799:793::-;9160:6;9149:9;9142:25;9203:3;9198:2;9187:9;9183:18;9176:31;9123:4;9230:57;9282:3;9271:9;9267:19;9259:6;9230:57;:::i;:::-;9335:4;9323:17;;9318:2;9303:18;;9296:45;9360:12;9408:15;;;9403:2;9388:18;;9381:43;9461:15;;9455:3;9440:19;;9433:44;9514:22;;;9508:3;9493:19;;9486:51;9554:32;9518:6;9571;9554:32;:::i;:::-;9546:40;8799:793;-1:-1:-1;;;;;;;;;8799:793:102:o;9597:794::-;9992:6;9981:9;9974:25;10035:3;10030:2;10019:9;10015:18;10008:31;9955:4;10062:57;10114:3;10103:9;10099:19;10091:6;10062:57;:::i;:::-;10167:9;10159:6;10155:22;10150:2;10139:9;10135:18;10128:50;10201:32;10226:6;10218;10201:32;:::i;:::-;10187:46;;10269:6;10264:2;10253:9;10249:18;10242:34;10325:9;10317:6;10313:22;10307:3;10296:9;10292:19;10285:51;10353:32;10378:6;10370;10353:32;:::i;:::-;10345:40;9597:794;-1:-1:-1;;;;;;;;9597:794:102:o;10396:616::-;10707:6;10696:9;10689:25;10750:3;10745:2;10734:9;10730:18;10723:31;10670:4;10777:57;10829:3;10818:9;10814:19;10806:6;10777:57;:::i;:::-;10882:14;10874:6;10870:27;10865:2;10854:9;10850:18;10843:55;10946:9;10938:6;10934:22;10929:2;10918:9;10914:18;10907:50;10974:32;10999:6;10991;10974:32;:::i;11017:364::-;11256:6;11245:9;11238:25;11299:2;11294;11283:9;11279:18;11272:30;11219:4;11319:56;11371:2;11360:9;11356:18;11348:6;11319:56;:::i;11386:511::-;11637:2;11626:9;11619:21;11600:4;11663:56;11715:2;11704:9;11700:18;11692:6;11663:56;:::i;:::-;11767:14;11759:6;11755:27;11750:2;11739:9;11735:18;11728:55;11831:9;11823:6;11819:22;11814:2;11803:9;11799:18;11792:50;11859:32;11884:6;11876;11859:32;:::i;:::-;11851:40;11386:511;-1:-1:-1;;;;;;11386:511:102:o;11902:184::-;-1:-1:-1;;;11951:1:102;11944:88;12051:4;12048:1;12041:15;12075:4;12072:1;12065:15;12310:464;12557:66;12549:6;12545:79;12534:9;12527:98;12661:6;12656:2;12645:9;12641:18;12634:34;12704:2;12699;12688:9;12684:18;12677:30;12508:4;12724:44;12764:2;12753:9;12749:18;12741:6;12724:44;:::i;:::-;12716:52;12310:464;-1:-1:-1;;;;;12310:464:102:o;12779:184::-;-1:-1:-1;;;12828:1:102;12821:88;12928:4;12925:1;12918:15;12952:4;12949:1;12942:15;12968:128;13035:9;;;13056:11;;;13053:37;;;13070:18;;:::i;13101:125::-;13166:9;;;13187:10;;;13184:36;;;13200:18;;:::i;13231:174::-;13298:12;13330:10;;;13342;;;13326:27;;13365:11;;;13362:37;;;13379:18;;:::i;:::-;13362:37;13231:174;;;;:::o;14057:901::-;14482:6;14471:9;14464:25;14525:3;14520:2;14509:9;14505:18;14498:31;14445:4;14552:57;14604:3;14593:9;14589:19;14581:6;14552:57;:::i;:::-;14657:4;14645:17;;14640:2;14625:18;;14618:45;14682:12;14730:15;;;14725:2;14710:18;;14703:43;14783:15;;14777:3;14762:19;;14755:44;14830:3;14815:19;;14808:35;;;14880:22;;;14874:3;14859:19;;14852:51;14920:32;14884:6;14937;14920:32;:::i;:::-;14912:40;14057:901;-1:-1:-1;;;;;;;;;;14057:901:102:o;14963:788::-;15328:3;15317:9;15310:22;15291:4;15355:57;15407:3;15396:9;15392:19;15384:6;15355:57;:::i;:::-;15460:4;15452:6;15448:17;15443:2;15432:9;15428:18;15421:45;15514:14;15506:6;15502:27;15497:2;15486:9;15482:18;15475:55;15578:12;15570:6;15566:25;15561:2;15550:9;15546:18;15539:53;15629:6;15623:3;15612:9;15608:19;15601:35;15685:9;15677:6;15673:22;15667:3;15656:9;15652:19;15645:51;15713:32;15738:6;15730;15713:32;:::i;15756:690::-;16091:3;16080:9;16073:22;16054:4;16118:57;16170:3;16159:9;16155:19;16147:6;16118:57;:::i;:::-;16223:9;16215:6;16211:22;16206:2;16195:9;16191:18;16184:50;16257:32;16282:6;16274;16257:32;:::i;:::-;16243:46;;16325:6;16320:2;16309:9;16305:18;16298:34;16380:9;16372:6;16368:22;16363:2;16352:9;16348:18;16341:50;16408:32;16433:6;16425;16408:32;:::i;16451:899::-;16907:6;16896:9;16889:25;16950:3;16945:2;16934:9;16930:18;16923:31;16870:4;16977:57;17029:3;17018:9;17014:19;17006:6;16977:57;:::i;:::-;17082:9;17074:6;17070:22;17065:2;17054:9;17050:18;17043:50;17116:32;17141:6;17133;17116:32;:::i;:::-;17102:46;;17184:6;17179:2;17168:9;17164:18;17157:34;17240:9;17232:6;17228:22;17222:3;17211:9;17207:19;17200:51;17268:32;17293:6;17285;17268:32;:::i;:::-;17260:40;;;17337:6;17331:3;17320:9;17316:19;17309:35;16451:899;;;;;;;;;:::o;17355:640::-;17606:6;17601:3;17594:19;17576:3;17632:2;17665;17660:3;17656:12;17697:6;17691:13;17762:2;17754:6;17750:15;17783:1;17793:175;17807:6;17804:1;17801:13;17793:175;;;17870:13;;17856:28;;17906:14;;;;17943:15;;;;17829:1;17822:9;17793:175;;;-1:-1:-1;17984:5:102;;17355:640;-1:-1:-1;;;;;;;17355:640:102:o;18000:261::-;18179:2;18168:9;18161:21;18142:4;18199:56;18251:2;18240:9;18236:18;18228:6;18199:56;:::i;18266:468::-;18566:6;18555:9;18548:25;18609:2;18604;18593:9;18589:18;18582:30;18529:4;18629:56;18681:2;18670:9;18666:18;18658:6;18629:56;:::i;:::-;18621:64;;18721:6;18716:2;18705:9;18701:18;18694:34;18266:468;;;;;;:::o;19205:184::-;-1:-1:-1;;;19254:1:102;19247:88;19354:4;19351:1;19344:15;19378:4;19375:1;19368:15;19394:168;19467:9;;;19498;;19515:15;;;19509:22;;19495:37;19485:71;;19536:18;;:::i;19567:359::-;19770:2;19759:9;19752:21;19733:4;19790:44;19830:2;19819:9;19815:18;19807:6;19790:44;:::i;:::-;19865:2;19850:18;;19843:34;;;;-1:-1:-1;19908:2:102;19893:18;19886:34;19782:52;19567:359;-1:-1:-1;19567:359:102:o;19931:274::-;19971:1;19997;19987:189;;-1:-1:-1;;;20029:1:102;20022:88;20133:4;20130:1;20123:15;20161:4;20158:1;20151:15;19987:189;-1:-1:-1;20190:9:102;;19931:274::o","linkReferences":{}},"methodIdentifiers":{"_tableId()":"17c9a24c","onAfterDeleteRecord(bytes32,bytes32[],bytes32)":"83b5c95b","onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"5b28cdaf","onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"63584533","onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"a8ba8721","onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":"9faeaf45","onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"57066c9c","onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"55eb5a28","onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"964f667d","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"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\":[],\"name\":\"StoreHook_NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"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\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"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\":\"EncodedLengths\",\"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\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"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\":[],\"name\":\"_tableId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"onBeforeDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"onBeforeSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}]},\"events\":{\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"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_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite 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.\"}},\"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\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"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 was set.\"}},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"supportsInterface(bytes4)\":{\"details\":\"This function is a part of the ERC-165 standard.\",\"params\":{\"interfaceId\":\"The ID of the interface to check.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"StoreHook_NotImplemented()\":[{\"notice\":\"Error emitted when a function is not implemented.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}]},\"events\":{\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs after deleting a record.\"},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs after setting a record.\"},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs after splicing dynamic (variable length) data.\"},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs after splicing static (fixed length) data.\"},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs before splicing static (fixed length) data.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the interface is supported.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MirrorSubscriber.sol\":\"MirrorSubscriber\"},\"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\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"src/StoreHook.sol\":{\"keccak256\":\"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d\",\"dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym\"]},\"src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a\",\"dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo\"]},\"src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36\",\"dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD\"]},\"src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160\",\"dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV\"]},\"src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080\",\"dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw\"]},\"src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"test/MirrorSubscriber.sol\":{\"keccak256\":\"0x22402bc241f9c0f40603b09a2d895cedeb46db90a2cbcd9669250b9a283adaa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81beac1c5b150c117a09f9bdbb07fdaa88ad87d1f88c21a3097d4ddf8c3463b8\",\"dweb:/ipfs/QmaSKCCmSv2m7HHXA6HPsQ1fZPogahLs1vjFLzzMRHEGQq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"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":[],"type":"error","name":"StoreHook_NotImplemented"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"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":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"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":"EncodedLengths","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":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","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":[],"stateMutability":"view","type":"function","name":"_tableId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceStaticData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceStaticData"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","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 was set."}},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data 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 be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"supportsInterface(bytes4)":{"details":"This function is a part of the ERC-165 standard.","params":{"interfaceId":"The ID of the interface to check."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs after deleting a record."},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs after setting a record."},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs after splicing dynamic (variable length) data."},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs after splicing static (fixed length) data."},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs before splicing static (fixed length) data."},"supportsInterface(bytes4)":{"notice":"Check if the interface is supported."}},"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":{"test/MirrorSubscriber.sol":"MirrorSubscriber"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"src/StoreHook.sol":{"keccak256":"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173","urls":["bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d","dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym"],"license":"MIT"},"src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"src/codegen/tables/Hooks.sol":{"keccak256":"0xcc0fa969a57724e7a9184009e2b1ea8ecb209a06e283c6d2b6a15cabff35f39d","urls":["bzz-raw://d91985b8f48fcb8259b776c10bc17a1656e8dbeaa15c0c0e73368af38e6cfc8a","dweb:/ipfs/QmRiYbrXqqWcTrvwz95kN6ZiMhUBfLiUycxQiSGeZFDkuo"],"license":"MIT"},"src/codegen/tables/ResourceIds.sol":{"keccak256":"0xa52e8323cc7227d69a3c6b2e244b4e0face106eeaa5cf23e759b0278b0f4a7ab","urls":["bzz-raw://bf5d3ede2d114c26abe7b5268ed17aedb56d6ded91af19019ecebb75edf48b36","dweb:/ipfs/QmWwqNFjqWFhfv8ABRXV9mbZBGumz741YCmVuQPqtiVZaD"],"license":"MIT"},"src/codegen/tables/StoreHooks.sol":{"keccak256":"0x155aa0e073774674596a28371a3a863ad1d6c44d418140269d2982a45e40734b","urls":["bzz-raw://c849ad6563c4afbdd7eec40042c9afa0d9919ece10c2acab390e358095ddd160","dweb:/ipfs/QmbB7eVhKe3simEvugH18e1fBJKmwqionms3YWbWuRBDYV"],"license":"MIT"},"src/codegen/tables/Tables.sol":{"keccak256":"0x7930483bedccb95dd73447108e67d576924c83ec591cb70c699cdea7ebaabccc","urls":["bzz-raw://5c23093bf098e8e1f224a0e20beb6860d461a5f8d33265d382e3d43bdc431080","dweb:/ipfs/QmSQwjDCEgTUgUWajjETvCRJd18ZPRhYPyS6Rcg6wDizXw"],"license":"MIT"},"src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"test/MirrorSubscriber.sol":{"keccak256":"0x22402bc241f9c0f40603b09a2d895cedeb46db90a2cbcd9669250b9a283adaa3","urls":["bzz-raw://81beac1c5b150c117a09f9bdbb07fdaa88ad87d1f88c21a3097d4ddf8c3463b8","dweb:/ipfs/QmaSKCCmSv2m7HHXA6HPsQ1fZPogahLs1vjFLzzMRHEGQq"],"license":"MIT"}},"version":1},"id":71}