UNPKG

skill-wallet

Version:

The SkillWallet is a permissionless, open-source protocol for the creation of universal, self-sovereign Identities - based on Skills instead of personal data. <br/> It comes as an upgradable, Non-Transferable, Non-Fungible-Token (U-NT-NFT) - and it entile

60 lines (59 loc) 38.2 kB
{ "_format": "hh-sol-artifact-1", "contractName": "MembershipFactory", "sourceName": "contracts/main/membershipNFT/MembershipFactory.sol", "abi": [ { "inputs": [ { "internalType": "uint256", "name": "_version", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "_swAddress", "type": "address" }, { "internalType": "address", "name": "_partnersAgreementAddr", "type": "address" } ], "name": "createMembership", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060405161244238038061244283398101604081905261002f91610037565b60005561004f565b600060208284031215610048578081fd5b5051919050565b6123e48061005e6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063310d09971461003b57806354fd4d5014610064575b600080fd5b61004e6100493660046100e6565b610079565b60405161005b919061011a565b60405180910390f35b61006c6100bc565b60405161005b9190610148565b600080838360405161008a906100c2565b61009592919061012e565b604051809103906000f0801580156100b1573d6000803e3d6000fd5b509150505b92915050565b60005481565b61225d8061015283390190565b80356001600160a01b03811681146100b657600080fd5b600080604083850312156100f8578182fd5b61010284846100cf565b915061011184602085016100cf565b90509250929050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b9081526020019056fe60806040523480156200001157600080fd5b506040516200225d3803806200225d833981016040819052620000349162000265565b604080518082018252600a81526904d656d626572736869760b41b6020808301919091528251808401909352600383526226a6a160e91b90830152906200008b6301ffc9a760e01b6001600160e01b036200015c16565b8151620000a0906006906020850190620001c0565b508051620000b6906007906020840190620001c0565b50620000d26380ac58cd60e01b6001600160e01b036200015c16565b620000ed635b5e139f60e01b6001600160e01b036200015c16565b6200010863780e9d6360e01b6001600160e01b036200015c16565b5050600c80546001600160a01b03199081166001600160a01b0384811691909117909255600d805490911691841691909117905562000154600a620001b7602090811b62000b4817901c565b5050620002f3565b6001600160e01b03198082161415620001925760405162461bcd60e51b81526004016200018990620002a3565b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b80546001019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020357805160ff191683800117855562000233565b8280016001018555821562000233579182015b828111156200023357825182559160200191906001019062000216565b506200024192915062000245565b5090565b6200026291905b808211156200024157600081556001016200024c565b90565b6000806040838503121562000278578182fd5b82516200028581620002da565b60208401519092506200029881620002da565b809150509250929050565b6020808252601c908201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604082015260600190565b6001600160a01b0381168114620002f057600080fd5b50565b611f5a80620003036000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636352211e116100ad578063b6a46b3b11610071578063b6a46b3b14610243578063b88d4fde14610256578063bbaf1cc114610269578063c87b56dd1461027c578063e985e9c51461028f57610121565b80636352211e146101fa5780636c0360eb1461020d57806370a082311461021557806395d89b4114610228578063a22cb4651461023057610121565b806318160ddd116100f457806318160ddd1461019957806323b872dd146101ae5780632f745c59146101c157806342842e0e146101d45780634f6ccce7146101e757610121565b806301ffc9a71461012657806306fdde031461014f578063081812fc14610164578063095ea7b314610184575b600080fd5b61013961013436600461176f565b6102a2565b6040516101469190611908565b60405180910390f35b6101576102c5565b6040516101469190611913565b610177610172366004611811565b61035c565b60405161014691906118b7565b610197610192366004611744565b6103a8565b005b6101a1610440565b6040516101469190611e58565b6101976101bc36600461160b565b610451565b6101a16101cf366004611744565b610489565b6101976101e236600461160b565b6104ba565b6101a16101f5366004611811565b6104d5565b610177610208366004611811565b6104f1565b61015761051f565b6101a161022336600461159b565b610580565b6101576105c9565b61019761023e366004611713565b61062a565b6101976102513660046117a7565b6106f8565b61019761026436600461164b565b610983565b6101a1610277366004611811565b6109c2565b61015761028a366004611811565b6109d4565b61013961029d3660046115d3565b610b1a565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b505050505090505b90565b600061036782610b51565b61038c5760405162461bcd60e51b815260040161038390611c5f565b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103b3826104f1565b9050806001600160a01b0316836001600160a01b031614156103e75760405162461bcd60e51b815260040161038390611d8f565b806001600160a01b03166103f9610b64565b6001600160a01b0316148061041557506104158161029d610b64565b6104315760405162461bcd60e51b815260040161038390611b41565b61043b8383610b68565b505050565b600061044c6002610bd6565b905090565b61046261045c610b64565b82610be1565b61047e5760405162461bcd60e51b815260040161038390611dd0565b61043b838383610c66565b6001600160a01b03821660009081526001602052604081206104b1908363ffffffff610d8616565b90505b92915050565b61043b83838360405180602001604052806000815250610983565b6000806104e960028463ffffffff610d9216565b509392505050565b60006104b482604051806060016040528060298152602001611efc602991396002919063ffffffff610dae16565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b60006001600160a01b0382166105a85760405162461bcd60e51b815260040161038390611b9e565b6001600160a01b03821660009081526001602052604090206104b490610bd6565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b610632610b64565b6001600160a01b0316826001600160a01b031614156106635760405162461bcd60e51b815260040161038390611a7d565b8060056000610670610b64565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556106b4610b64565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106ec9190611908565b60405180910390a35050565b600d546040516342ca962960e01b81526000916001600160a01b0316906342ca9629906107299033906004016118b7565b60206040518083038186803b15801561074157600080fd5b505afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190611829565b9050600c60009054906101000a90046001600160a01b03166001600160a01b03166386e476dd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c957600080fd5b505afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906115b7565b600d546040516332e5dbd560e11b81526001600160a01b0392831692909116906365cbb7aa90610835908590600401611e58565b60206040518083038186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088591906115b7565b6001600160a01b0316146108ab5760405162461bcd60e51b8152600401610383906119ba565b6108b433610580565b156108d15760405162461bcd60e51b815260040161038390611b00565b60006108dd600a610dc5565b90506108e93382610dc9565b6109298185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de792505050565b6000828152600b60205260409020819055610944600a610b48565b7fc58f9de6b59a671061c46ebbbec121a5268cf5de9a5a33acd053b311102217828183604051610975929190611e61565b60405180910390a150505050565b61099461098e610b64565b83610be1565b6109b05760405162461bcd60e51b815260040161038390611dd0565b6109bc84848484610e2b565b50505050565b600b6020526000908152604090205481565b60606109df82610b51565b6109fb5760405162461bcd60e51b815260040161038390611d40565b60008281526008602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610a905780601f10610a6557610100808354040283529160200191610a90565b820191906000526020600020905b815481529060010190602001808311610a7357829003601f168201915b505050505090506060610aa161051f565b9050805160001415610ab5575090506102c0565b815115610ae7578082604051602001610acf929190611889565b604051602081830303815290604052925050506102c0565b80610af185610e5e565b604051602001610b02929190611889565b60405160208183030381529060405292505050919050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b80546001019055565b60006104b460028363ffffffff610f3916565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610b9d826104f1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006104b482610dc5565b6000610bec82610b51565b610c085760405162461bcd60e51b815260040161038390611ab4565b6000610c13836104f1565b9050806001600160a01b0316846001600160a01b03161480610c4e5750836001600160a01b0316610c438461035c565b6001600160a01b0316145b80610c5e5750610c5e8185610b1a565b949350505050565b826001600160a01b0316610c79826104f1565b6001600160a01b031614610c9f5760405162461bcd60e51b815260040161038390611cf7565b6001600160a01b038216610cc55760405162461bcd60e51b815260040161038390611a39565b610cd083838361043b565b610cdb600082610b68565b6001600160a01b0383166000908152600160205260409020610d03908263ffffffff610f4516565b506001600160a01b0382166000908152600160205260409020610d2c908263ffffffff610f5116565b50610d3f6002828463ffffffff610f5d16565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006104b18383610f73565b6000808080610da18686610fb8565b9097909650945050505050565b6000610dbb848484611014565b90505b9392505050565b5490565b610de3828260405180602001604052806000815250611073565b5050565b610df082610b51565b610e0c5760405162461bcd60e51b815260040161038390611cab565b6000828152600860209081526040909120825161043b92840190611503565b610e36848484610c66565b610e42848484846110a6565b6109bc5760405162461bcd60e51b815260040161038390611968565b606081610e8357506040805180820190915260018152600360fc1b60208201526102c0565b8160005b8115610e9b57600101600a82049150610e87565b60608167ffffffffffffffff81118015610eb457600080fd5b506040519080825280601f01601f191660200182016040528015610edf576020820181803683370190505b50859350905060001982015b8315610f3057600a840660300160f81b82828060019003935081518110610f0e57fe5b60200101906001600160f81b031916908160001a905350600a84049350610eeb565b50949350505050565b60006104b1838361118b565b60006104b183836111a3565b60006104b18383611269565b6000610dbb84846001600160a01b0385166112b3565b81546000908210610f965760405162461bcd60e51b815260040161038390611926565b826000018281548110610fa557fe5b9060005260206000200154905092915050565b815460009081908310610fdd5760405162461bcd60e51b815260040161038390611be8565b6000846000018481548110610fee57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816110445760405162461bcd60e51b81526004016103839190611913565b5084600001600182038154811061105757fe5b9060005260206000209060020201600101549150509392505050565b61107d838361134a565b61108a60008484846110a6565b61043b5760405162461bcd60e51b815260040161038390611968565b60006110ba846001600160a01b031661141a565b6110c657506001610c5e565b6060611154630a85bd0160e11b6110db610b64565b8887876040516024016110f194939291906118cb565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001611eca603291396001600160a01b038816919063ffffffff61142016565b905060008180602001905181019061116c919061178b565b6001600160e01b031916630a85bd0160e11b1492505050949350505050565b60009081526001919091016020526040902054151590565b6000818152600183016020526040812054801561125f57835460001980830191908101906000908790839081106111d657fe5b90600052602060002001549050808760000184815481106111f357fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061122357fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506104b4565b60009150506104b4565b6000611275838361118b565b6112ab575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104b4565b5060006104b4565b600082815260018401602052604081205480611318575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610dbe565b8285600001600183038154811061132b57fe5b9060005260206000209060020201600101819055506000915050610dbe565b6001600160a01b0382166113705760405162461bcd60e51b815260040161038390611c2a565b61137981610b51565b156113965760405162461bcd60e51b815260040161038390611a02565b6113a26000838361043b565b6001600160a01b03821660009081526001602052604090206113ca908263ffffffff610f5116565b506113dd6002828463ffffffff610f5d16565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b6060610dbb8484600085856114348561141a565b6114505760405162461bcd60e51b815260040161038390611e21565b60006060866001600160a01b0316858760405161146d919061186d565b60006040518083038185875af1925050503d80600081146114aa576040519150601f19603f3d011682016040523d82523d6000602084013e6114af565b606091505b50915091506114bf8282866114ca565b979650505050505050565b606083156114d9575081610dbe565b8251156114e95782518084602001fd5b8160405162461bcd60e51b81526004016103839190611913565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061154457805160ff1916838001178555611571565b82800160010185558215611571579182015b82811115611571578251825591602001919060010190611556565b5061157d929150611581565b5090565b61035991905b8082111561157d5760008155600101611587565b6000602082840312156115ac578081fd5b8135610dbe81611e9b565b6000602082840312156115c8578081fd5b8151610dbe81611e9b565b600080604083850312156115e5578081fd5b82356115f081611e9b565b9150602083013561160081611e9b565b809150509250929050565b60008060006060848603121561161f578081fd5b833561162a81611e9b565b9250602084013561163a81611e9b565b929592945050506040919091013590565b60008060008060808587031215611660578081fd5b843561166b81611e9b565b935060208581013561167c81611e9b565b935060408601359250606086013567ffffffffffffffff8082111561169f578384fd5b81880189601f8201126116b0578485fd5b80359250818311156116c0578485fd5b604051601f8401601f19168101850183811182821017156116df578687fd5b60405283815281840185018b10156116f5578586fd5b83858301868301379283019093019390935294979396509194505050565b60008060408385031215611725578182fd5b823561173081611e9b565b915060208301358015158114611600578182fd5b60008060408385031215611756578182fd5b823561176181611e9b565b946020939093013593505050565b600060208284031215611780578081fd5b8135610dbe81611eb3565b60006020828403121561179c578081fd5b8151610dbe81611eb3565b600080602083850312156117b9578182fd5b823567ffffffffffffffff808211156117d0578384fd5b81850186601f8201126117e1578485fd5b80359250818311156117f1578485fd5b866020848301011115611802578485fd5b60200196919550909350505050565b600060208284031215611822578081fd5b5035919050565b60006020828403121561183a578081fd5b5051919050565b60008151808452611859816020860160208601611e6f565b601f01601f19169290920160200192915050565b6000825161187f818460208701611e6f565b9190910192915050565b6000835161189b818460208801611e6f565b83519083016118ae828260208801611e6f565b01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118fe90830184611841565b9695505050505050565b901515815260200190565b6000602082526104b16020830184611841565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526028908201527f43616e206d696e74206d656d62657273686970204e4654206f6e6c7920696620604082015267309036b2b6b132b960c11b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526021908201527f48617320616c7265616479206d696e746564204d656d62657273686970204e466040820152601560fa1b606082015260800190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526022908201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252602c908201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b90815260200190565b918252602082015260400190565b60005b83811015611e8a578181015183820152602001611e72565b838111156109bc5750506000910152565b6001600160a01b0381168114611eb057600080fd5b50565b6001600160e01b031981168114611eb057600080fdfe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220b5bc811eed0161c4d8af884e9c909678f1b1e483a95f302713647de7c8c1d7ff64736f6c634300060a0033a2646970667358221220d31f6fb40bc26e85352c927c8460fc4e7c3505bcdd19fa2296759aa9d0467ed864736f6c634300060a0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063310d09971461003b57806354fd4d5014610064575b600080fd5b61004e6100493660046100e6565b610079565b60405161005b919061011a565b60405180910390f35b61006c6100bc565b60405161005b9190610148565b600080838360405161008a906100c2565b61009592919061012e565b604051809103906000f0801580156100b1573d6000803e3d6000fd5b509150505b92915050565b60005481565b61225d8061015283390190565b80356001600160a01b03811681146100b657600080fd5b600080604083850312156100f8578182fd5b61010284846100cf565b915061011184602085016100cf565b90509250929050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b9081526020019056fe60806040523480156200001157600080fd5b506040516200225d3803806200225d833981016040819052620000349162000265565b604080518082018252600a81526904d656d626572736869760b41b6020808301919091528251808401909352600383526226a6a160e91b90830152906200008b6301ffc9a760e01b6001600160e01b036200015c16565b8151620000a0906006906020850190620001c0565b508051620000b6906007906020840190620001c0565b50620000d26380ac58cd60e01b6001600160e01b036200015c16565b620000ed635b5e139f60e01b6001600160e01b036200015c16565b6200010863780e9d6360e01b6001600160e01b036200015c16565b5050600c80546001600160a01b03199081166001600160a01b0384811691909117909255600d805490911691841691909117905562000154600a620001b7602090811b62000b4817901c565b5050620002f3565b6001600160e01b03198082161415620001925760405162461bcd60e51b81526004016200018990620002a3565b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b80546001019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020357805160ff191683800117855562000233565b8280016001018555821562000233579182015b828111156200023357825182559160200191906001019062000216565b506200024192915062000245565b5090565b6200026291905b808211156200024157600081556001016200024c565b90565b6000806040838503121562000278578182fd5b82516200028581620002da565b60208401519092506200029881620002da565b809150509250929050565b6020808252601c908201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604082015260600190565b6001600160a01b0381168114620002f057600080fd5b50565b611f5a80620003036000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636352211e116100ad578063b6a46b3b11610071578063b6a46b3b14610243578063b88d4fde14610256578063bbaf1cc114610269578063c87b56dd1461027c578063e985e9c51461028f57610121565b80636352211e146101fa5780636c0360eb1461020d57806370a082311461021557806395d89b4114610228578063a22cb4651461023057610121565b806318160ddd116100f457806318160ddd1461019957806323b872dd146101ae5780632f745c59146101c157806342842e0e146101d45780634f6ccce7146101e757610121565b806301ffc9a71461012657806306fdde031461014f578063081812fc14610164578063095ea7b314610184575b600080fd5b61013961013436600461176f565b6102a2565b6040516101469190611908565b60405180910390f35b6101576102c5565b6040516101469190611913565b610177610172366004611811565b61035c565b60405161014691906118b7565b610197610192366004611744565b6103a8565b005b6101a1610440565b6040516101469190611e58565b6101976101bc36600461160b565b610451565b6101a16101cf366004611744565b610489565b6101976101e236600461160b565b6104ba565b6101a16101f5366004611811565b6104d5565b610177610208366004611811565b6104f1565b61015761051f565b6101a161022336600461159b565b610580565b6101576105c9565b61019761023e366004611713565b61062a565b6101976102513660046117a7565b6106f8565b61019761026436600461164b565b610983565b6101a1610277366004611811565b6109c2565b61015761028a366004611811565b6109d4565b61013961029d3660046115d3565b610b1a565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b505050505090505b90565b600061036782610b51565b61038c5760405162461bcd60e51b815260040161038390611c5f565b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103b3826104f1565b9050806001600160a01b0316836001600160a01b031614156103e75760405162461bcd60e51b815260040161038390611d8f565b806001600160a01b03166103f9610b64565b6001600160a01b0316148061041557506104158161029d610b64565b6104315760405162461bcd60e51b815260040161038390611b41565b61043b8383610b68565b505050565b600061044c6002610bd6565b905090565b61046261045c610b64565b82610be1565b61047e5760405162461bcd60e51b815260040161038390611dd0565b61043b838383610c66565b6001600160a01b03821660009081526001602052604081206104b1908363ffffffff610d8616565b90505b92915050565b61043b83838360405180602001604052806000815250610983565b6000806104e960028463ffffffff610d9216565b509392505050565b60006104b482604051806060016040528060298152602001611efc602991396002919063ffffffff610dae16565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b60006001600160a01b0382166105a85760405162461bcd60e51b815260040161038390611b9e565b6001600160a01b03821660009081526001602052604090206104b490610bd6565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103515780601f1061032657610100808354040283529160200191610351565b610632610b64565b6001600160a01b0316826001600160a01b031614156106635760405162461bcd60e51b815260040161038390611a7d565b8060056000610670610b64565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556106b4610b64565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106ec9190611908565b60405180910390a35050565b600d546040516342ca962960e01b81526000916001600160a01b0316906342ca9629906107299033906004016118b7565b60206040518083038186803b15801561074157600080fd5b505afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190611829565b9050600c60009054906101000a90046001600160a01b03166001600160a01b03166386e476dd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c957600080fd5b505afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906115b7565b600d546040516332e5dbd560e11b81526001600160a01b0392831692909116906365cbb7aa90610835908590600401611e58565b60206040518083038186803b15801561084d57600080fd5b505afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088591906115b7565b6001600160a01b0316146108ab5760405162461bcd60e51b8152600401610383906119ba565b6108b433610580565b156108d15760405162461bcd60e51b815260040161038390611b00565b60006108dd600a610dc5565b90506108e93382610dc9565b6109298185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de792505050565b6000828152600b60205260409020819055610944600a610b48565b7fc58f9de6b59a671061c46ebbbec121a5268cf5de9a5a33acd053b311102217828183604051610975929190611e61565b60405180910390a150505050565b61099461098e610b64565b83610be1565b6109b05760405162461bcd60e51b815260040161038390611dd0565b6109bc84848484610e2b565b50505050565b600b6020526000908152604090205481565b60606109df82610b51565b6109fb5760405162461bcd60e51b815260040161038390611d40565b60008281526008602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610a905780601f10610a6557610100808354040283529160200191610a90565b820191906000526020600020905b815481529060010190602001808311610a7357829003601f168201915b505050505090506060610aa161051f565b9050805160001415610ab5575090506102c0565b815115610ae7578082604051602001610acf929190611889565b604051602081830303815290604052925050506102c0565b80610af185610e5e565b604051602001610b02929190611889565b60405160208183030381529060405292505050919050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b80546001019055565b60006104b460028363ffffffff610f3916565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610b9d826104f1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006104b482610dc5565b6000610bec82610b51565b610c085760405162461bcd60e51b815260040161038390611ab4565b6000610c13836104f1565b9050806001600160a01b0316846001600160a01b03161480610c4e5750836001600160a01b0316610c438461035c565b6001600160a01b0316145b80610c5e5750610c5e8185610b1a565b949350505050565b826001600160a01b0316610c79826104f1565b6001600160a01b031614610c9f5760405162461bcd60e51b815260040161038390611cf7565b6001600160a01b038216610cc55760405162461bcd60e51b815260040161038390611a39565b610cd083838361043b565b610cdb600082610b68565b6001600160a01b0383166000908152600160205260409020610d03908263ffffffff610f4516565b506001600160a01b0382166000908152600160205260409020610d2c908263ffffffff610f5116565b50610d3f6002828463ffffffff610f5d16565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006104b18383610f73565b6000808080610da18686610fb8565b9097909650945050505050565b6000610dbb848484611014565b90505b9392505050565b5490565b610de3828260405180602001604052806000815250611073565b5050565b610df082610b51565b610e0c5760405162461bcd60e51b815260040161038390611cab565b6000828152600860209081526040909120825161043b92840190611503565b610e36848484610c66565b610e42848484846110a6565b6109bc5760405162461bcd60e51b815260040161038390611968565b606081610e8357506040805180820190915260018152600360fc1b60208201526102c0565b8160005b8115610e9b57600101600a82049150610e87565b60608167ffffffffffffffff81118015610eb457600080fd5b506040519080825280601f01601f191660200182016040528015610edf576020820181803683370190505b50859350905060001982015b8315610f3057600a840660300160f81b82828060019003935081518110610f0e57fe5b60200101906001600160f81b031916908160001a905350600a84049350610eeb565b50949350505050565b60006104b1838361118b565b60006104b183836111a3565b60006104b18383611269565b6000610dbb84846001600160a01b0385166112b3565b81546000908210610f965760405162461bcd60e51b815260040161038390611926565b826000018281548110610fa557fe5b9060005260206000200154905092915050565b815460009081908310610fdd5760405162461bcd60e51b815260040161038390611be8565b6000846000018481548110610fee57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816110445760405162461bcd60e51b81526004016103839190611913565b5084600001600182038154811061105757fe5b9060005260206000209060020201600101549150509392505050565b61107d838361134a565b61108a60008484846110a6565b61043b5760405162461bcd60e51b815260040161038390611968565b60006110ba846001600160a01b031661141a565b6110c657506001610c5e565b6060611154630a85bd0160e11b6110db610b64565b8887876040516024016110f194939291906118cb565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001611eca603291396001600160a01b038816919063ffffffff61142016565b905060008180602001905181019061116c919061178b565b6001600160e01b031916630a85bd0160e11b1492505050949350505050565b60009081526001919091016020526040902054151590565b6000818152600183016020526040812054801561125f57835460001980830191908101906000908790839081106111d657fe5b90600052602060002001549050808760000184815481106111f357fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061122357fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506104b4565b60009150506104b4565b6000611275838361118b565b6112ab575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104b4565b5060006104b4565b600082815260018401602052604081205480611318575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610dbe565b8285600001600183038154811061132b57fe5b9060005260206000209060020201600101819055506000915050610dbe565b6001600160a01b0382166113705760405162461bcd60e51b815260040161038390611c2a565b61137981610b51565b156113965760405162461bcd60e51b815260040161038390611a02565b6113a26000838361043b565b6001600160a01b03821660009081526001602052604090206113ca908263ffffffff610f5116565b506113dd6002828463ffffffff610f5d16565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b6060610dbb8484600085856114348561141a565b6114505760405162461bcd60e51b815260040161038390611e21565b60006060866001600160a01b0316858760405161146d919061186d565b60006040518083038185875af1925050503d80600081146114aa576040519150601f19603f3d011682016040523d82523d6000602084013e6114af565b606091505b50915091506114bf8282866114ca565b979650505050505050565b606083156114d9575081610dbe565b8251156114e95782518084602001fd5b8160405162461bcd60e51b81526004016103839190611913565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061154457805160ff1916838001178555611571565b82800160010185558215611571579182015b82811115611571578251825591602001919060010190611556565b5061157d929150611581565b5090565b61035991905b8082111561157d5760008155600101611587565b6000602082840312156115ac578081fd5b8135610dbe81611e9b565b6000602082840312156115c8578081fd5b8151610dbe81611e9b565b600080604083850312156115e5578081fd5b82356115f081611e9b565b9150602083013561160081611e9b565b809150509250929050565b60008060006060848603121561161f578081fd5b833561162a81611e9b565b9250602084013561163a81611e9b565b929592945050506040919091013590565b60008060008060808587031215611660578081fd5b843561166b81611e9b565b935060208581013561167c81611e9b565b935060408601359250606086013567ffffffffffffffff8082111561169f578384fd5b81880189601f8201126116b0578485fd5b80359250818311156116c0578485fd5b604051601f8401601f19168101850183811182821017156116df578687fd5b60405283815281840185018b10156116f5578586fd5b83858301868301379283019093019390935294979396509194505050565b60008060408385031215611725578182fd5b823561173081611e9b565b915060208301358015158114611600578182fd5b60008060408385031215611756578182fd5b823561176181611e9b565b946020939093013593505050565b600060208284031215611780578081fd5b8135610dbe81611eb3565b60006020828403121561179c578081fd5b8151610dbe81611eb3565b600080602083850312156117b9578182fd5b823567ffffffffffffffff808211156117d0578384fd5b81850186601f8201126117e1578485fd5b80359250818311156117f1578485fd5b866020848301011115611802578485fd5b60200196919550909350505050565b600060208284031215611822578081fd5b5035919050565b60006020828403121561183a578081fd5b5051919050565b60008151808452611859816020860160208601611e6f565b601f01601f19169290920160200192915050565b6000825161187f818460208701611e6f565b9190910192915050565b6000835161189b818460208801611e6f565b83519083016118ae828260208801611e6f565b01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118fe90830184611841565b9695505050505050565b901515815260200190565b6000602082526104b16020830184611841565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526028908201527f43616e206d696e74206d656d62657273686970204e4654206f6e6c7920696620604082015267309036b2b6b132b960c11b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526021908201527f48617320616c7265616479206d696e746564204d656d62657273686970204e466040820152601560fa1b606082015260800190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526022908201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252602c908201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b90815260200190565b918252602082015260400190565b60005b83811015611e8a578181015183820152602001611e72565b838111156109bc5750506000910152565b6001600160a01b0381168114611eb057600080fd5b50565b6001600160e01b031981168114611eb057600080fdfe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220b5bc811eed0161c4d8af884e9c909678f1b1e483a95f302713647de7c8c1d7ff64736f6c634300060a0033a2646970667358221220d31f6fb40bc26e85352c927c8460fc4e7c3505bcdd19fa2296759aa9d0467ed864736f6c634300060a0033", "linkReferences": {}, "deployedLinkReferences": {} }