{
  "_format": "hh-sol-artifact-1",
  "contractName": "SomaEarnFactory",
  "sourceName": "contracts/soma/SomaEarn/SomaEarnFactory.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "templateVersion",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "instance",
          "type": "address"
        }
      ],
      "name": "SomaEarnCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "deployment",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "TemplateDeployed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "CREATE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "FACTORY",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INIT_CODE_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SOMA",
      "outputs": [
        {
          "internalType": "contract ISOMA",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TEMPLATE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "TEMPLATE_VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "withdrawTo",
          "type": "address"
        },
        {
          "internalType": "uint48",
          "name": "startDate",
          "type": "uint48"
        },
        {
          "internalType": "uint48",
          "name": "endDate",
          "type": "uint48"
        }
      ],
      "name": "create",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "deployed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "deployment",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "deploymentInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "exists",
              "type": "bool"
            },
            {
              "internalType": "uint64",
              "name": "block",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "templateId",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "version",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            },
            {
              "internalType": "bytes[]",
              "name": "functionCalls",
              "type": "bytes[]"
            },
            {
              "internalType": "bool",
              "name": "cloned",
              "type": "bool"
            }
          ],
          "internalType": "struct ITemplateFactory.DeploymentInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes[]",
          "name": "data",
          "type": "bytes[]"
        }
      ],
      "name": "multicall",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "results",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalDeployments",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x610120604052730f3dc00189dbcd1d0c574e48031270cae04c4adf60805273812dd6988ca35be1ba27095d90864298722f915a60a05234801561004157600080fd5b50604051611a26380380611a2683398101604081905261006091610146565b6000805460ff19169055604051600181526729b7b6b0a2b0b93760c11b9082907f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a160e082905261010081905260a051604051631de0a1b760e21b8152600481018490526024810183905260606044820152600060648201526001600160a01b039091169063778286dc90608401602060405180830381865afa158015610116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013a9190610146565b60c0525061015f915050565b60006020828403121561015857600080fd5b5051919050565b60805160a05160c05160e051610100516118366101f0600039600081816101f50152610e370152600081816102960152610e160152600061018f0152600081816101b601528181610c250152610df401526000818161022e0152818161034201528181610441015281816104dd015281816105c801528181610834015281816108d001526109d301526118366000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80637016b198116100a25780638bfd9174116100715780638bfd91741461029157806391d14854146102b8578063ac9650d8146102cb578063ce3220f6146102eb578063fb35b4e41461030b57600080fd5b80637016b19814610250578063732e17ce146102635780638456cb591461027657806385bb39231461027e57600080fd5b80632dd31000116100e95780632dd31000146101b15780632e23efce146101f05780633f4ba83a146102175780635c975abb1461022157806363727fc21461022957600080fd5b80626f53c91461011a57806301ffc9a714610154578063248a9ca314610177578063257671f51461018a575b600080fd5b6101417f5416d6415bb47cc21d82a4f05a3093f1dea48001145b42891151a24b8cfc3e1681565b6040519081526020015b60405180910390f35b610167610162366004611102565b610313565b604051901515815260200161014b565b61014161018536600461112c565b61033e565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014b565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b61021f610430565b005b6101676105c4565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b6101d861025e36600461112c565b61065d565b61021f610271366004611175565b61068d565b61021f610823565b61016761028c3660046111cd565b6109af565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b6101676102c63660046111ea565b6109cf565b6102de6102d936600461121a565b610acd565b60405161014b9190611334565b6102fe6102f93660046111cd565b610bc2565b60405161014b9190611347565b600154610141565b60006001600160e01b0319821663b55bd4f760e01b1480610338575061033882610c94565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c2919061140f565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b81526004016103ef91815260200190565b602060405180830381865afa15801561040c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610338919061142c565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561049d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c1919061140f565b6001600160a01b031614806105685750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061140f565b6001600160a01b0316145b6105b95760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064015b60405180910390fd5b6105c1610cc9565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106489190611455565b8061065857505060005460ff1690565b905090565b60006001828154811061067257610672611470565b6000918252602090912001546001600160a01b031692915050565b7f5416d6415bb47cc21d82a4f05a3093f1dea48001145b42891151a24b8cfc3e166106b881336109cf565b6107345760405162461bcd60e51b815260206004820152604160248201527f536f6d61416363657373436f6e74726f6c3a2063616c6c657220646f6573206e60448201527f6f7420686176652074686520617070726f70726961746520617574686f7269746064820152607960f81b608482015260a4016105b0565b600061073f60015490565b9050600061074c82610d1b565b60405163447bbe2160e11b8152600481018490526001600160a01b038981166024830152888116604483015265ffffffffffff808916606484015287166084830152919250908216906388f77c429060a401600060405180830381600087803b1580156107b857600080fd5b505af11580156107cc573d6000803e3d6000fd5b5050604080518581526001600160a01b038b8116602083015285168183015290517f4b3c58d548ffa59051f3047e9907f31f9a4985a7d901dd0624bebd29108229069350908190036060019150a150505050505050565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b4919061140f565b6001600160a01b0316148061095b5750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610950919061140f565b6001600160a01b0316145b6109a75760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b0565b6105c1610d36565b6000306109bb83610bc2565b606001516001600160a01b03161492915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a53919061140f565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190611455565b9392505050565b60608167ffffffffffffffff811115610ae857610ae8611486565b604051908082528060200260200182016040528015610b1b57816020015b6060815260200190600190039081610b065790505b50905060005b82811015610bbb57610b8b30858584818110610b3f57610b3f611470565b9050602002810190610b51919061149c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d7392505050565b828281518110610b9d57610b9d611470565b60200260200101819052508080610bb3906114ea565b915050610b21565b5092915050565b604080516101208101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c0830181905260e08301526101008201529051636719107b60e11b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ce3220f690602401600060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610338919081019061168f565b60006001600160e01b0319821663d86f1ca160e01b148061033857506301ffc9a760e01b6001600160e01b0319831614610338565b610cd1610d98565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006103386040518060200160405280600081525083610de5565b610d3e610edc565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cfe3390565b6060610ac6838360405180606001604052806027815260200161180360279139610f24565b610da06105c4565b610de35760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b0565b565b6000610e5d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008686611001565b60018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051929350339290917fbb335adc2c61b7badda271abf9381de878cc630d6d425e20cc1e58a3cad6f01591a392915050565b610ee46105c4565b15610de35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b0565b60606001600160a01b0384163b610f8c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105b0565b600080856001600160a01b031685604051610fa7919061178f565b600060405180830381855af49150503d8060008114610fe2576040519150601f19603f3d011682016040523d82523d6000602084013e610fe7565b606091505b5091509150610ff7828286611045565b9695505050505050565b6000610ff7868686868560405190808252806020026020018201604052801561103e57816020015b60608152602001906001900390816110295790505b508761107e565b60608315611054575081610ac6565b8251156110645782518084602001fd5b8160405162461bcd60e51b81526004016105b091906117ab565b6040516294d4bf60e51b81526000906001600160a01b0388169063129a97e0906110b490899089908990899089906004016117be565b6020604051808303816000875af11580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f7919061140f565b979650505050505050565b60006020828403121561111457600080fd5b81356001600160e01b031981168114610ac657600080fd5b60006020828403121561113e57600080fd5b5035919050565b6001600160a01b03811681146105c157600080fd5b803565ffffffffffff8116811461117057600080fd5b919050565b6000806000806080858703121561118b57600080fd5b843561119681611145565b935060208501356111a681611145565b92506111b46040860161115a565b91506111c26060860161115a565b905092959194509250565b6000602082840312156111df57600080fd5b8135610ac681611145565b600080604083850312156111fd57600080fd5b82359150602083013561120f81611145565b809150509250929050565b6000806020838503121561122d57600080fd5b823567ffffffffffffffff8082111561124557600080fd5b818501915085601f83011261125957600080fd5b81358181111561126857600080fd5b8660208260051b850101111561127d57600080fd5b60209290920196919550909350505050565b60005b838110156112aa578181015183820152602001611292565b50506000910152565b600081518084526112cb81602086016020860161128f565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156113275782840389526113158483516112b3565b988501989350908401906001016112fd565b5091979650505050505050565b602081526000610ac660208301846112df565b6020815261135a60208201835115159052565b60006020830151611377604084018267ffffffffffffffff169052565b50604083015167ffffffffffffffff811660608401525060608301516001600160a01b038116608084015250608083015160a083015260a083015160c083015260c08301516101208060e08501526113d36101408501836112b3565b915060e0850151610100601f1986850301818701526113f284836112df565b96015115159190940152509192915050565b805161117081611145565b60006020828403121561142157600080fd5b8151610ac681611145565b60006020828403121561143e57600080fd5b5051919050565b8051801515811461117057600080fd5b60006020828403121561146757600080fd5b610ac682611445565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6000808335601e198436030181126114b357600080fd5b83018035915067ffffffffffffffff8211156114ce57600080fd5b6020019150368190038213156114e357600080fd5b9250929050565b60006001820161150a57634e487b7160e01b600052601160045260246000fd5b5060010190565b604051610120810167ffffffffffffffff8111828210171561153557611535611486565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561156457611564611486565b604052919050565b805167ffffffffffffffff8116811461117057600080fd5b600082601f83011261159557600080fd5b815167ffffffffffffffff8111156115af576115af611486565b6115c2601f8201601f191660200161153b565b8181528460208386010111156115d757600080fd5b6115e882602083016020870161128f565b949350505050565b600082601f83011261160157600080fd5b8151602067ffffffffffffffff8083111561161e5761161e611486565b8260051b61162d83820161153b565b938452858101830193838101908886111561164757600080fd5b84880192505b85831015611683578251848111156116655760008081fd5b6116738a87838c0101611584565b835250918401919084019061164d565b98975050505050505050565b6000602082840312156116a157600080fd5b815167ffffffffffffffff808211156116b957600080fd5b9083019061012082860312156116ce57600080fd5b6116d6611511565b6116df83611445565b81526116ed6020840161156c565b60208201526116fe6040840161156c565b604082015261170f60608401611404565b60608201526080830151608082015260a083015160a082015260c08301518281111561173a57600080fd5b61174687828601611584565b60c08301525060e08301518281111561175e57600080fd5b61176a878286016115f0565b60e0830152506101009150611780828401611445565b91810191909152949350505050565b600082516117a181846020870161128f565b9190910192915050565b602081526000610ac660208301846112b3565b85815284602082015260a0604082015260006117dd60a08301866112b3565b82810360608401526117ef81866112df565b915050826080830152969550505050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101155760003560e01c80637016b198116100a25780638bfd9174116100715780638bfd91741461029157806391d14854146102b8578063ac9650d8146102cb578063ce3220f6146102eb578063fb35b4e41461030b57600080fd5b80637016b19814610250578063732e17ce146102635780638456cb591461027657806385bb39231461027e57600080fd5b80632dd31000116100e95780632dd31000146101b15780632e23efce146101f05780633f4ba83a146102175780635c975abb1461022157806363727fc21461022957600080fd5b80626f53c91461011a57806301ffc9a714610154578063248a9ca314610177578063257671f51461018a575b600080fd5b6101417f5416d6415bb47cc21d82a4f05a3093f1dea48001145b42891151a24b8cfc3e1681565b6040519081526020015b60405180910390f35b610167610162366004611102565b610313565b604051901515815260200161014b565b61014161018536600461112c565b61033e565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014b565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b61021f610430565b005b6101676105c4565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b6101d861025e36600461112c565b61065d565b61021f610271366004611175565b61068d565b61021f610823565b61016761028c3660046111cd565b6109af565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b6101676102c63660046111ea565b6109cf565b6102de6102d936600461121a565b610acd565b60405161014b9190611334565b6102fe6102f93660046111cd565b610bc2565b60405161014b9190611347565b600154610141565b60006001600160e01b0319821663b55bd4f760e01b1480610338575061033882610c94565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c2919061140f565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b81526004016103ef91815260200190565b602060405180830381865afa15801561040c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610338919061142c565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561049d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c1919061140f565b6001600160a01b031614806105685750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061140f565b6001600160a01b0316145b6105b95760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064015b60405180910390fd5b6105c1610cc9565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106489190611455565b8061065857505060005460ff1690565b905090565b60006001828154811061067257610672611470565b6000918252602090912001546001600160a01b031692915050565b7f5416d6415bb47cc21d82a4f05a3093f1dea48001145b42891151a24b8cfc3e166106b881336109cf565b6107345760405162461bcd60e51b815260206004820152604160248201527f536f6d61416363657373436f6e74726f6c3a2063616c6c657220646f6573206e60448201527f6f7420686176652074686520617070726f70726961746520617574686f7269746064820152607960f81b608482015260a4016105b0565b600061073f60015490565b9050600061074c82610d1b565b60405163447bbe2160e11b8152600481018490526001600160a01b038981166024830152888116604483015265ffffffffffff808916606484015287166084830152919250908216906388f77c429060a401600060405180830381600087803b1580156107b857600080fd5b505af11580156107cc573d6000803e3d6000fd5b5050604080518581526001600160a01b038b8116602083015285168183015290517f4b3c58d548ffa59051f3047e9907f31f9a4985a7d901dd0624bebd29108229069350908190036060019150a150505050505050565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b4919061140f565b6001600160a01b0316148061095b5750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610950919061140f565b6001600160a01b0316145b6109a75760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b0565b6105c1610d36565b6000306109bb83610bc2565b606001516001600160a01b03161492915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a53919061140f565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190611455565b9392505050565b60608167ffffffffffffffff811115610ae857610ae8611486565b604051908082528060200260200182016040528015610b1b57816020015b6060815260200190600190039081610b065790505b50905060005b82811015610bbb57610b8b30858584818110610b3f57610b3f611470565b9050602002810190610b51919061149c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d7392505050565b828281518110610b9d57610b9d611470565b60200260200101819052508080610bb3906114ea565b915050610b21565b5092915050565b604080516101208101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c0830181905260e08301526101008201529051636719107b60e11b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ce3220f690602401600060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610338919081019061168f565b60006001600160e01b0319821663d86f1ca160e01b148061033857506301ffc9a760e01b6001600160e01b0319831614610338565b610cd1610d98565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006103386040518060200160405280600081525083610de5565b610d3e610edc565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610cfe3390565b6060610ac6838360405180606001604052806027815260200161180360279139610f24565b610da06105c4565b610de35760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b0565b565b6000610e5d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008686611001565b60018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038416908117909155604051929350339290917fbb335adc2c61b7badda271abf9381de878cc630d6d425e20cc1e58a3cad6f01591a392915050565b610ee46105c4565b15610de35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b0565b60606001600160a01b0384163b610f8c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105b0565b600080856001600160a01b031685604051610fa7919061178f565b600060405180830381855af49150503d8060008114610fe2576040519150601f19603f3d011682016040523d82523d6000602084013e610fe7565b606091505b5091509150610ff7828286611045565b9695505050505050565b6000610ff7868686868560405190808252806020026020018201604052801561103e57816020015b60608152602001906001900390816110295790505b508761107e565b60608315611054575081610ac6565b8251156110645782518084602001fd5b8160405162461bcd60e51b81526004016105b091906117ab565b6040516294d4bf60e51b81526000906001600160a01b0388169063129a97e0906110b490899089908990899089906004016117be565b6020604051808303816000875af11580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f7919061140f565b979650505050505050565b60006020828403121561111457600080fd5b81356001600160e01b031981168114610ac657600080fd5b60006020828403121561113e57600080fd5b5035919050565b6001600160a01b03811681146105c157600080fd5b803565ffffffffffff8116811461117057600080fd5b919050565b6000806000806080858703121561118b57600080fd5b843561119681611145565b935060208501356111a681611145565b92506111b46040860161115a565b91506111c26060860161115a565b905092959194509250565b6000602082840312156111df57600080fd5b8135610ac681611145565b600080604083850312156111fd57600080fd5b82359150602083013561120f81611145565b809150509250929050565b6000806020838503121561122d57600080fd5b823567ffffffffffffffff8082111561124557600080fd5b818501915085601f83011261125957600080fd5b81358181111561126857600080fd5b8660208260051b850101111561127d57600080fd5b60209290920196919550909350505050565b60005b838110156112aa578181015183820152602001611292565b50506000910152565b600081518084526112cb81602086016020860161128f565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156113275782840389526113158483516112b3565b988501989350908401906001016112fd565b5091979650505050505050565b602081526000610ac660208301846112df565b6020815261135a60208201835115159052565b60006020830151611377604084018267ffffffffffffffff169052565b50604083015167ffffffffffffffff811660608401525060608301516001600160a01b038116608084015250608083015160a083015260a083015160c083015260c08301516101208060e08501526113d36101408501836112b3565b915060e0850151610100601f1986850301818701526113f284836112df565b96015115159190940152509192915050565b805161117081611145565b60006020828403121561142157600080fd5b8151610ac681611145565b60006020828403121561143e57600080fd5b5051919050565b8051801515811461117057600080fd5b60006020828403121561146757600080fd5b610ac682611445565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6000808335601e198436030181126114b357600080fd5b83018035915067ffffffffffffffff8211156114ce57600080fd5b6020019150368190038213156114e357600080fd5b9250929050565b60006001820161150a57634e487b7160e01b600052601160045260246000fd5b5060010190565b604051610120810167ffffffffffffffff8111828210171561153557611535611486565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561156457611564611486565b604052919050565b805167ffffffffffffffff8116811461117057600080fd5b600082601f83011261159557600080fd5b815167ffffffffffffffff8111156115af576115af611486565b6115c2601f8201601f191660200161153b565b8181528460208386010111156115d757600080fd5b6115e882602083016020870161128f565b949350505050565b600082601f83011261160157600080fd5b8151602067ffffffffffffffff8083111561161e5761161e611486565b8260051b61162d83820161153b565b938452858101830193838101908886111561164757600080fd5b84880192505b85831015611683578251848111156116655760008081fd5b6116738a87838c0101611584565b835250918401919084019061164d565b98975050505050505050565b6000602082840312156116a157600080fd5b815167ffffffffffffffff808211156116b957600080fd5b9083019061012082860312156116ce57600080fd5b6116d6611511565b6116df83611445565b81526116ed6020840161156c565b60208201526116fe6040840161156c565b604082015261170f60608401611404565b60608201526080830151608082015260a083015160a082015260c08301518281111561173a57600080fd5b61174687828601611584565b60c08301525060e08301518281111561175e57600080fd5b61176a878286016115f0565b60e0830152506101009150611780828401611445565b91810191909152949350505050565b600082516117a181846020870161128f565b9190910192915050565b602081526000610ac660208301846112b3565b85815284602082015260a0604082015260006117dd60a08301866112b3565b82810360608401526117ef81866112df565b915050826080830152969550505050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
