{
  "_format": "hh-sol-artifact-1",
  "contractName": "AirdropModule",
  "sourceName": "contracts/protocol/modules/v1/AirdropModule.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IController",
          "name": "_controller",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_component",
          "type": "address"
        }
      ],
      "name": "AirdropComponentAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_component",
          "type": "address"
        }
      ],
      "name": "AirdropComponentRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newFee",
          "type": "uint256"
        }
      ],
      "name": "AirdropFeeUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_anyoneAbsorb",
          "type": "bool"
        }
      ],
      "name": "AnyoneAbsorbUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_absorbedToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_absorbedQuantity",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_managerFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_protocolFee",
          "type": "uint256"
        }
      ],
      "name": "ComponentAbsorbed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_newFeeRecipient",
          "type": "address"
        }
      ],
      "name": "FeeRecipientUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "AIRDROP_MODULE_PROTOCOL_FEE_INDEX",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "absorb",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_airdrop",
          "type": "address"
        }
      ],
      "name": "addAirdrop",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "",
          "type": "address"
        }
      ],
      "name": "airdropSettings",
      "outputs": [
        {
          "internalType": "address",
          "name": "feeRecipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "airdropFee",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "anyoneAbsorb",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        }
      ],
      "name": "batchAbsorb",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "controller",
      "outputs": [
        {
          "internalType": "contract IController",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "getAirdrops",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "airdrops",
              "type": "address[]"
            },
            {
              "internalType": "address",
              "name": "feeRecipient",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "airdropFee",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "anyoneAbsorb",
              "type": "bool"
            }
          ],
          "internalType": "struct AirdropModule.AirdropSettings",
          "name": "_airdropSettings",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isAirdrop",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "isAirdropToken",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_airdrop",
          "type": "address"
        }
      ],
      "name": "removeAirdrop",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "removeModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_newFee",
          "type": "uint256"
        }
      ],
      "name": "updateAirdropFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_anyoneAbsorb",
          "type": "bool"
        }
      ],
      "name": "updateAnyoneAbsorb",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_newFeeRecipient",
          "type": "address"
        }
      ],
      "name": "updateFeeRecipient",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620027253803806200272583398101604081905262000034916200005e565b600080546001600160a01b0319166001600160a01b0392909216919091179055600180556200008e565b60006020828403121562000070578081fd5b81516001600160a01b038116811462000087578182fd5b9392505050565b612687806200009e6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063847ef08d11610097578063cd8b529c11610066578063cd8b529c146101da578063e30a3a14146101ed578063e92f09351461020f578063f77c47911461022f576100f5565b8063847ef08d1461018c57806391ad34651461019457806392efd45e146101a75780639cf4e378146101ba576100f5565b806339de2849116100d357806339de2849146101355780635d98c373146101535780636cf8293d1461016657806370eaf35914610179576100f5565b8063032a3bd6146100fa5780631bc1e9ba1461010f5780631bee032d14610122575b600080fd5b61010d610108366004611f5a565b610244565b005b61010d61011d366004611ecd565b61042f565b61010d610130366004611f48565b61049b565b61013d610555565b60405161014a919061259c565b60405180910390f35b61010d610161366004611e95565b61055a565b61010d610174366004611f48565b6105fa565b61010d61018736600461200c565b6106ad565b61010d6107c1565b61010d6101a2366004611f48565b6108d3565b61010d6101b5366004611f1b565b610935565b6101cd6101c8366004611f48565b610996565b60405161014a919061213f565b6101cd6101e8366004611f48565b6109b6565b6102006101fb366004611e79565b6109e6565b60405161014a939291906120cf565b61022261021d366004611e79565b610a18565b60405161014a91906120f2565b610237610a8f565b60405161014a919061207b565b81336102508282610a9e565b8361025a81610ac8565b610262610b8c565b8460400151111561028e5760405162461bcd60e51b8152600401610285906122a7565b60405180910390fd5b60208401516001600160a01b03166102b85760405162461bcd60e51b81526004016102859061230a565b835151156102e85783516102cb90610b99565b156102e85760405162461bcd60e51b81526004016102859061215d565b6001600160a01b0385166000908152600260209081526040909120855180518793610317928492910190611bda565b5060208201516001820180546001600160a01b0319166001600160a01b03909216919091179055604082015160028201556060909101516003909101805460ff191691151591909117905560005b8451518110156103d4576001600160a01b03861660009081526003602052604081208651805160019391908590811061039a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610365565b50846001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505050505050505050565b600260015414156104525760405162461bcd60e51b815260040161028590612517565b60026001558161046181610c48565b61047d5760405162461bcd60e51b8152600401610285906121c3565b8261048781610c77565b6104918484610c9c565b5050600180555050565b816104a581610cd2565b6104af83836109b6565b156104cc5760405162461bcd60e51b815260040161028590612382565b6001600160a01b0383811660008181526002602090815260408083208054600180820183559185528385200180546001600160a01b031916968916968717905584845260038352818420868552909252808320805460ff1916909217909155517f7ba030f8dfa541ce4c08cf2837d8d86294f6d151af52931f4abd8a14e77d630e9190a3505050565b600081565b8161056481610cd2565b6001600160a01b03821661058a5760405162461bcd60e51b8152600401610285906121f1565b6001600160a01b038381166000818152600260205260409081902060010180546001600160a01b0319169386169390931790925590517faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3906105ed90859061207b565b60405180910390a2505050565b8161060481610cd2565b61060e83836109b6565b61062a5760405162461bcd60e51b81526004016102859061254e565b6001600160a01b0383166000908152600260205260409020610652908363ffffffff610cf816565b6001600160a01b03808416600081815260036020908152604080832094871680845294909152808220805460ff19169055517f337ced2b71f7147077a1a18ace9de250785d78659f1575cf1e2455d40327b4519190a3505050565b81336106b98282610a9e565b836106c381610c77565b6106cb610b8c565b8411156106ea5760405162461bcd60e51b8152600401610285906123e7565b6001600160a01b03851660009081526002602090815260409182902080548351818402810184019094528084526107649389939092919083018282801561075a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161073c575b5050505050610c9c565b6001600160a01b03851660008181526002602081905260409182902001869055517f95222050802776b3e0f9562f442ed0f46989fac68bed3dd5f91f42701d32681b906107b290879061259c565b60405180910390a25050505050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561082257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610804575b50939450600093505050505b8151811015610890573360009081526003602052604081208351829085908590811061085657fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161082e565b50336000908152600260205260408120906108ab8282611c3b565b506001810180546001600160a01b031916905560006002820155600301805460ff1916905550565b600260015414156108f65760405162461bcd60e51b815260040161028590612517565b60026001558161090581610c48565b6109215760405162461bcd60e51b8152600401610285906121c3565b8261092b81610c77565b6104918484610e25565b8161093f81610cd2565b6001600160a01b03831660008181526002602052604090819020600301805460ff1916851515179055517f4aecd1a5b60506f3a234069f01cd2e5f1eb0bdd2c4d16b79979ae5caa268dd89906105ed90859061213f565b600360209081526000928352604080842090915290825290205460ff1681565b6001600160a01b0380831660009081526003602090815260408083209385168352929052205460ff165b92915050565b60026020819052600091825260409091206001810154918101546003909101546001600160a01b039092169160ff1683565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610a8257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a64575b505050505090505b919050565b6000546001600160a01b031681565b610aa88282610e55565b610ac45760405162461bcd60e51b8152600401610285906124a9565b5050565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610af890849060040161207b565b60206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190611dd1565b610b645760405162461bcd60e51b815260040161028590612466565b610b6d81610ee3565b610b895760405162461bcd60e51b815260040161028590612270565b50565b670de0b6b3a76400005b90565b600080825111610bbb5760405162461bcd60e51b815260040161028590612578565b60005b6001835103811015610c3f576000838281518110610bd857fe5b6020026020010151905060008260010190505b8451811015610c3557848181518110610c0057fe5b60200260200101516001600160a01b0316826001600160a01b03161415610c2d5760019350505050610a8a565b600101610beb565b5050600101610bbe565b50600092915050565b6001600160a01b03811660009081526002602052604081206003015460ff16806109e057506109e08233610e55565b610c8081610f62565b610b895760405162461bcd60e51b815260040161028590612228565b60005b8151811015610ccd57610cc583838381518110610cb857fe5b6020026020010151610e25565b600101610c9f565b505050565b610cdc8133610e55565b610c775760405162461bcd60e51b8152600401610285906124a9565b600080610d5e84805480602002602001604051908101604052809291908181526020018280548015610d5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d35575b505050505084611016565b9150915080610d7f5760405162461bcd60e51b815260040161028590612194565b835460001901828114610df157848181548110610d9857fe5b9060005260206000200160009054906101000a90046001600160a01b0316858481548110610dc257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b84805480610dfb57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505b50505050565b610e2f82826109b6565b610e4b5760405162461bcd60e51b8152600401610285906124e0565b610ac4828261107c565b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed29190611d19565b6001600160a01b0316149392505050565b6040516353bae5f760e01b81526000906001600160a01b038316906353bae5f790610f1290309060040161207b565b60206040518083038186803b158015610f2a57600080fd5b505afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e09190611dd1565b60008054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610f9390859060040161207b565b60206040518083038186803b158015610fab57600080fd5b505afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190611dd1565b80156109e057506040516335fc6c9f60e21b81526001600160a01b0383169063d7f1b27c90610f1290309060040161207b565b81516000908190815b8181101561106957846001600160a01b031686828151811061103d57fe5b60200260200101516001600160a01b03161415611061579250600191506110759050565b60010161101f565b50600019600092509250505b9250929050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906110ab90869060040161207b565b60206040518083038186803b1580156110c357600080fd5b505afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612037565b9050600061112861111b6001600160a01b0386168563ffffffff6111c816565b839063ffffffff6112da16565b90508015610e1f576000806000611140878786611323565b92509250925060006111538887846113d3565b905061116f6001600160a01b038916888363ffffffff61147216565b866001600160a01b0316886001600160a01b03167f55973614a7f79cfa12e7b54f93f3ad973a4eb12d31bbeacb485279ad5b690b4c8787876040516111b6939291906125a5565b60405180910390a35050505050505050565b600080836001600160a01b03166366cb8d2f846040518263ffffffff1660e01b81526004016111f7919061207b565b60206040518083038186803b15801561120f57600080fd5b505afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612037565b90506112d2611255826115f0565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561128e57600080fd5b505afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190612037565b9063ffffffff61161616565b949350505050565b600061131c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611640565b9392505050565b6001600160a01b0383166000908152600260208190526040822001548190819080156113be57611359858263ffffffff61161616565b915061136660008361166c565b9250611378828463ffffffff6112da16565b6001600160a01b038089166000818152600260205260409020600101549296506113ad9290918991168763ffffffff61170116565b6113b887878561184b565b506113ca565b50600092508291508190505b93509350939050565b600080846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561140f57600080fd5b505afa158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190612037565b905061146961145c858563ffffffff6112da16565b829063ffffffff6118f216565b95945050505050565b600061147e8484611904565b90508015801561148e5750600082115b156115055761149d848461198b565b611500576040516304e3532760e41b81526001600160a01b03851690634e353270906114cd90869060040161207b565b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050505b611582565b808015611510575081155b156115825761151f848461198b565b61158257604051636f86c89760e01b81526001600160a01b03851690636f86c8979061154f90869060040161207b565b600060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050505b836001600160a01b0316632ba57d178461159b85611a17565b6040518363ffffffff1660e01b81526004016115b892919061208f565b600060405180830381600087803b1580156115d257600080fd5b505af11580156115e6573d6000803e3d6000fd5b5050505050505050565b6000808212156116125760405162461bcd60e51b8152600401610285906122d5565b5090565b600061131c670de0b6b3a7640000611634858563ffffffff611a3c16565b9063ffffffff611a7616565b600081848411156116645760405162461bcd60e51b8152600401610285919061214a565b505050900390565b6000805460405163792aa04f60e01b815282916001600160a01b03169063792aa04f9061169f903090889060040161208f565b60206040518083038186803b1580156116b757600080fd5b505afa1580156116cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ef9190612037565b90506112d2838263ffffffff61161616565b8015610e1f576040516370a0823160e01b81526000906001600160a01b038516906370a082319061173690889060040161207b565b60206040518083038186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117869190612037565b905061179485858585611ab8565b6040516370a0823160e01b81526000906001600160a01b038616906370a08231906117c390899060040161207b565b60206040518083038186803b1580156117db57600080fd5b505afa1580156117ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118139190612037565b9050611825828463ffffffff6112da16565b81146118435760405162461bcd60e51b8152600401610285906123b0565b505050505050565b8015610ccd57610ccd826000809054906101000a90046001600160a01b03166001600160a01b031663469048406040518163ffffffff1660e01b815260040160206040518083038186803b1580156118a257600080fd5b505afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190611d19565b6001600160a01b03861691908463ffffffff61170116565b600061131c828463ffffffff611b8516565b600080836001600160a01b03166366cb8d2f846040518263ffffffff1660e01b8152600401611933919061207b565b60206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612037565b139392505050565b600080836001600160a01b031663a7bdad03846040518263ffffffff1660e01b81526004016119ba919061207b565b60006040518083038186803b1580156119d257600080fd5b505afa1580156119e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a0e9190810190611d35565b51119392505050565b6000600160ff1b82106116125760405162461bcd60e51b81526004016102859061241e565b600082611a4b575060006109e0565b82820282848281611a5857fe5b041461131c5760405162461bcd60e51b815260040161028590612341565b600061131c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba3565b8015610e1f5760608282604051602401611ad392919061208f565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516347b7819960e11b81529091506001600160a01b03861690638f6f033290611b2f90879060009086906004016120a8565b600060405180830381600087803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118439190810190611ded565b600061131c8261163485670de0b6b3a764000063ffffffff611a3c16565b60008183611bc45760405162461bcd60e51b8152600401610285919061214a565b506000838581611bd057fe5b0495945050505050565b828054828255906000526020600020908101928215611c2f579160200282015b82811115611c2f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611bfa565b50611612929150611c59565b5080546000825590600052602060002090810190610b899190611c7d565b610b9691905b808211156116125780546001600160a01b0319168155600101611c5f565b610b9691905b808211156116125760008155600101611c83565b600082601f830112611ca7578081fd5b8135611cba611cb5826125e2565b6125bb565b818152915060208083019084810181840286018201871015611cdb57600080fd5b60005b84811015611d03578135611cf18161262e565b84529282019290820190600101611cde565b505050505092915050565b80356109e081612643565b600060208284031215611d2a578081fd5b815161131c8161262e565b60006020808385031215611d47578182fd5b825167ffffffffffffffff811115611d5d578283fd5b80840185601f820112611d6e578384fd5b80519150611d7e611cb5836125e2565b8281528381019082850185850284018601891015611d9a578687fd5b8693505b84841015611dc5578051611db18161262e565b835260019390930192918501918501611d9e565b50979650505050505050565b600060208284031215611de2578081fd5b815161131c81612643565b600060208284031215611dfe578081fd5b815167ffffffffffffffff80821115611e15578283fd5b81840185601f820112611e26578384fd5b8051925081831115611e36578384fd5b611e49601f8401601f19166020016125bb565b9150828252856020848301011115611e5f578384fd5b611e70836020840160208401612602565b50949350505050565b600060208284031215611e8a578081fd5b813561131c8161262e565b60008060408385031215611ea7578081fd5b8235611eb28161262e565b91506020830135611ec28161262e565b809150509250929050565b60008060408385031215611edf578182fd5b8235611eea8161262e565b9150602083013567ffffffffffffffff811115611f05578182fd5b611f1185828601611c97565b9150509250929050565b60008060408385031215611f2d578182fd5b8235611f388161262e565b91506020830135611ec281612643565b60008060408385031215611ea7578182fd5b60008060408385031215611f6c578182fd5b8235611f778161262e565b9150602083013567ffffffffffffffff80821115611f93578283fd5b81850160808188031215611fa5578384fd5b611faf60806125bb565b9250803582811115611fbf578485fd5b611fcb88828401611c97565b84525060208101359150611fde8261262e565b81602084015260408101356040840152611ffb8760608301611d0e565b606084015250929590945092505050565b6000806040838503121561201e578182fd5b82356120298161262e565b946020939093013593505050565b600060208284031215612048578081fd5b5051919050565b60008151808452612067816020860160208601612602565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825283602083015260606040830152611469606083018461204f565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6020808252825182820181905260009190848201906040850190845b818110156121335783516001600160a01b03168352928401929184019160010161210e565b50909695505050505050565b901515815260200190565b60006020825261131c602083018461204f565b6020808252601e908201527f4475706c69636174652061697264726f7020746f6b656e207061737365640000604082015260600190565b60208082526015908201527420b2323932b9b9903737ba1034b71030b93930bc9760591b604082015260600190565b60208082526014908201527326bab9ba103132903b30b634b21031b0b63632b960611b604082015260600190565b6020808252601f908201527f5061737365642061646472657373206d757374206265206e6f6e2d7a65726f00604082015260600190565b60208082526028908201527f4d75737420626520612076616c696420616e6420696e697469616c697a65642060408201526729b2ba2a37b5b2b760c11b606082015260800190565b6020808252601e908201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604082015260600190565b6020808252601490820152732332b29036bab9ba103132901e1e90189818129760611b604082015260600190565b6020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b60208082526017908201527f5a65726f20666565206164647265737320706173736564000000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152732a37b5b2b71030b63932b0b23c9030b23232b21760611b604082015260600190565b6020808252601d908201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604082015260600190565b6020808252601d908201527f41697264726f70206665652063616e2774206578636565642031303025000000604082015260600190565b60208082526028908201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604082015267371034b73a191a9b60c11b606082015260800190565b60208082526023908201527f4d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f60408201526235b2b760e91b606082015260800190565b6020808252601c908201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604082015260600190565b60208082526017908201527f4d75737420626520617070726f76656420746f6b656e2e000000000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526010908201526f2a37b5b2b7103737ba1030b23232b21760811b604082015260600190565b6020808252600a90820152694120697320656d70747960b01b604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff811182821017156125da57600080fd5b604052919050565b600067ffffffffffffffff8211156125f8578081fd5b5060209081020190565b60005b8381101561261d578181015183820152602001612605565b83811115610e1f5750506000910152565b6001600160a01b0381168114610b8957600080fd5b8015158114610b8957600080fdfea264697066735822122012700f979598f87fe79120b72bcdffd1eb98d036a8a04b16a48dcf312cabbd7064736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063847ef08d11610097578063cd8b529c11610066578063cd8b529c146101da578063e30a3a14146101ed578063e92f09351461020f578063f77c47911461022f576100f5565b8063847ef08d1461018c57806391ad34651461019457806392efd45e146101a75780639cf4e378146101ba576100f5565b806339de2849116100d357806339de2849146101355780635d98c373146101535780636cf8293d1461016657806370eaf35914610179576100f5565b8063032a3bd6146100fa5780631bc1e9ba1461010f5780631bee032d14610122575b600080fd5b61010d610108366004611f5a565b610244565b005b61010d61011d366004611ecd565b61042f565b61010d610130366004611f48565b61049b565b61013d610555565b60405161014a919061259c565b60405180910390f35b61010d610161366004611e95565b61055a565b61010d610174366004611f48565b6105fa565b61010d61018736600461200c565b6106ad565b61010d6107c1565b61010d6101a2366004611f48565b6108d3565b61010d6101b5366004611f1b565b610935565b6101cd6101c8366004611f48565b610996565b60405161014a919061213f565b6101cd6101e8366004611f48565b6109b6565b6102006101fb366004611e79565b6109e6565b60405161014a939291906120cf565b61022261021d366004611e79565b610a18565b60405161014a91906120f2565b610237610a8f565b60405161014a919061207b565b81336102508282610a9e565b8361025a81610ac8565b610262610b8c565b8460400151111561028e5760405162461bcd60e51b8152600401610285906122a7565b60405180910390fd5b60208401516001600160a01b03166102b85760405162461bcd60e51b81526004016102859061230a565b835151156102e85783516102cb90610b99565b156102e85760405162461bcd60e51b81526004016102859061215d565b6001600160a01b0385166000908152600260209081526040909120855180518793610317928492910190611bda565b5060208201516001820180546001600160a01b0319166001600160a01b03909216919091179055604082015160028201556060909101516003909101805460ff191691151591909117905560005b8451518110156103d4576001600160a01b03861660009081526003602052604081208651805160019391908590811061039a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610365565b50846001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505050505050505050565b600260015414156104525760405162461bcd60e51b815260040161028590612517565b60026001558161046181610c48565b61047d5760405162461bcd60e51b8152600401610285906121c3565b8261048781610c77565b6104918484610c9c565b5050600180555050565b816104a581610cd2565b6104af83836109b6565b156104cc5760405162461bcd60e51b815260040161028590612382565b6001600160a01b0383811660008181526002602090815260408083208054600180820183559185528385200180546001600160a01b031916968916968717905584845260038352818420868552909252808320805460ff1916909217909155517f7ba030f8dfa541ce4c08cf2837d8d86294f6d151af52931f4abd8a14e77d630e9190a3505050565b600081565b8161056481610cd2565b6001600160a01b03821661058a5760405162461bcd60e51b8152600401610285906121f1565b6001600160a01b038381166000818152600260205260409081902060010180546001600160a01b0319169386169390931790925590517faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3906105ed90859061207b565b60405180910390a2505050565b8161060481610cd2565b61060e83836109b6565b61062a5760405162461bcd60e51b81526004016102859061254e565b6001600160a01b0383166000908152600260205260409020610652908363ffffffff610cf816565b6001600160a01b03808416600081815260036020908152604080832094871680845294909152808220805460ff19169055517f337ced2b71f7147077a1a18ace9de250785d78659f1575cf1e2455d40327b4519190a3505050565b81336106b98282610a9e565b836106c381610c77565b6106cb610b8c565b8411156106ea5760405162461bcd60e51b8152600401610285906123e7565b6001600160a01b03851660009081526002602090815260409182902080548351818402810184019094528084526107649389939092919083018282801561075a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161073c575b5050505050610c9c565b6001600160a01b03851660008181526002602081905260409182902001869055517f95222050802776b3e0f9562f442ed0f46989fac68bed3dd5f91f42701d32681b906107b290879061259c565b60405180910390a25050505050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561082257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610804575b50939450600093505050505b8151811015610890573360009081526003602052604081208351829085908590811061085657fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161082e565b50336000908152600260205260408120906108ab8282611c3b565b506001810180546001600160a01b031916905560006002820155600301805460ff1916905550565b600260015414156108f65760405162461bcd60e51b815260040161028590612517565b60026001558161090581610c48565b6109215760405162461bcd60e51b8152600401610285906121c3565b8261092b81610c77565b6104918484610e25565b8161093f81610cd2565b6001600160a01b03831660008181526002602052604090819020600301805460ff1916851515179055517f4aecd1a5b60506f3a234069f01cd2e5f1eb0bdd2c4d16b79979ae5caa268dd89906105ed90859061213f565b600360209081526000928352604080842090915290825290205460ff1681565b6001600160a01b0380831660009081526003602090815260408083209385168352929052205460ff165b92915050565b60026020819052600091825260409091206001810154918101546003909101546001600160a01b039092169160ff1683565b6001600160a01b038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610a8257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a64575b505050505090505b919050565b6000546001600160a01b031681565b610aa88282610e55565b610ac45760405162461bcd60e51b8152600401610285906124a9565b5050565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610af890849060040161207b565b60206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190611dd1565b610b645760405162461bcd60e51b815260040161028590612466565b610b6d81610ee3565b610b895760405162461bcd60e51b815260040161028590612270565b50565b670de0b6b3a76400005b90565b600080825111610bbb5760405162461bcd60e51b815260040161028590612578565b60005b6001835103811015610c3f576000838281518110610bd857fe5b6020026020010151905060008260010190505b8451811015610c3557848181518110610c0057fe5b60200260200101516001600160a01b0316826001600160a01b03161415610c2d5760019350505050610a8a565b600101610beb565b5050600101610bbe565b50600092915050565b6001600160a01b03811660009081526002602052604081206003015460ff16806109e057506109e08233610e55565b610c8081610f62565b610b895760405162461bcd60e51b815260040161028590612228565b60005b8151811015610ccd57610cc583838381518110610cb857fe5b6020026020010151610e25565b600101610c9f565b505050565b610cdc8133610e55565b610c775760405162461bcd60e51b8152600401610285906124a9565b600080610d5e84805480602002602001604051908101604052809291908181526020018280548015610d5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d35575b505050505084611016565b9150915080610d7f5760405162461bcd60e51b815260040161028590612194565b835460001901828114610df157848181548110610d9857fe5b9060005260206000200160009054906101000a90046001600160a01b0316858481548110610dc257fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b84805480610dfb57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055505b50505050565b610e2f82826109b6565b610e4b5760405162461bcd60e51b8152600401610285906124e0565b610ac4828261107c565b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed29190611d19565b6001600160a01b0316149392505050565b6040516353bae5f760e01b81526000906001600160a01b038316906353bae5f790610f1290309060040161207b565b60206040518083038186803b158015610f2a57600080fd5b505afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e09190611dd1565b60008054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610f9390859060040161207b565b60206040518083038186803b158015610fab57600080fd5b505afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190611dd1565b80156109e057506040516335fc6c9f60e21b81526001600160a01b0383169063d7f1b27c90610f1290309060040161207b565b81516000908190815b8181101561106957846001600160a01b031686828151811061103d57fe5b60200260200101516001600160a01b03161415611061579250600191506110759050565b60010161101f565b50600019600092509250505b9250929050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906110ab90869060040161207b565b60206040518083038186803b1580156110c357600080fd5b505afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fb9190612037565b9050600061112861111b6001600160a01b0386168563ffffffff6111c816565b839063ffffffff6112da16565b90508015610e1f576000806000611140878786611323565b92509250925060006111538887846113d3565b905061116f6001600160a01b038916888363ffffffff61147216565b866001600160a01b0316886001600160a01b03167f55973614a7f79cfa12e7b54f93f3ad973a4eb12d31bbeacb485279ad5b690b4c8787876040516111b6939291906125a5565b60405180910390a35050505050505050565b600080836001600160a01b03166366cb8d2f846040518263ffffffff1660e01b81526004016111f7919061207b565b60206040518083038186803b15801561120f57600080fd5b505afa158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612037565b90506112d2611255826115f0565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561128e57600080fd5b505afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190612037565b9063ffffffff61161616565b949350505050565b600061131c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611640565b9392505050565b6001600160a01b0383166000908152600260208190526040822001548190819080156113be57611359858263ffffffff61161616565b915061136660008361166c565b9250611378828463ffffffff6112da16565b6001600160a01b038089166000818152600260205260409020600101549296506113ad9290918991168763ffffffff61170116565b6113b887878561184b565b506113ca565b50600092508291508190505b93509350939050565b600080846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561140f57600080fd5b505afa158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190612037565b905061146961145c858563ffffffff6112da16565b829063ffffffff6118f216565b95945050505050565b600061147e8484611904565b90508015801561148e5750600082115b156115055761149d848461198b565b611500576040516304e3532760e41b81526001600160a01b03851690634e353270906114cd90869060040161207b565b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050505b611582565b808015611510575081155b156115825761151f848461198b565b61158257604051636f86c89760e01b81526001600160a01b03851690636f86c8979061154f90869060040161207b565b600060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050505b836001600160a01b0316632ba57d178461159b85611a17565b6040518363ffffffff1660e01b81526004016115b892919061208f565b600060405180830381600087803b1580156115d257600080fd5b505af11580156115e6573d6000803e3d6000fd5b5050505050505050565b6000808212156116125760405162461bcd60e51b8152600401610285906122d5565b5090565b600061131c670de0b6b3a7640000611634858563ffffffff611a3c16565b9063ffffffff611a7616565b600081848411156116645760405162461bcd60e51b8152600401610285919061214a565b505050900390565b6000805460405163792aa04f60e01b815282916001600160a01b03169063792aa04f9061169f903090889060040161208f565b60206040518083038186803b1580156116b757600080fd5b505afa1580156116cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ef9190612037565b90506112d2838263ffffffff61161616565b8015610e1f576040516370a0823160e01b81526000906001600160a01b038516906370a082319061173690889060040161207b565b60206040518083038186803b15801561174e57600080fd5b505afa158015611762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117869190612037565b905061179485858585611ab8565b6040516370a0823160e01b81526000906001600160a01b038616906370a08231906117c390899060040161207b565b60206040518083038186803b1580156117db57600080fd5b505afa1580156117ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118139190612037565b9050611825828463ffffffff6112da16565b81146118435760405162461bcd60e51b8152600401610285906123b0565b505050505050565b8015610ccd57610ccd826000809054906101000a90046001600160a01b03166001600160a01b031663469048406040518163ffffffff1660e01b815260040160206040518083038186803b1580156118a257600080fd5b505afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190611d19565b6001600160a01b03861691908463ffffffff61170116565b600061131c828463ffffffff611b8516565b600080836001600160a01b03166366cb8d2f846040518263ffffffff1660e01b8152600401611933919061207b565b60206040518083038186803b15801561194b57600080fd5b505afa15801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612037565b139392505050565b600080836001600160a01b031663a7bdad03846040518263ffffffff1660e01b81526004016119ba919061207b565b60006040518083038186803b1580156119d257600080fd5b505afa1580156119e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a0e9190810190611d35565b51119392505050565b6000600160ff1b82106116125760405162461bcd60e51b81526004016102859061241e565b600082611a4b575060006109e0565b82820282848281611a5857fe5b041461131c5760405162461bcd60e51b815260040161028590612341565b600061131c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba3565b8015610e1f5760608282604051602401611ad392919061208f565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516347b7819960e11b81529091506001600160a01b03861690638f6f033290611b2f90879060009086906004016120a8565b600060405180830381600087803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118439190810190611ded565b600061131c8261163485670de0b6b3a764000063ffffffff611a3c16565b60008183611bc45760405162461bcd60e51b8152600401610285919061214a565b506000838581611bd057fe5b0495945050505050565b828054828255906000526020600020908101928215611c2f579160200282015b82811115611c2f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611bfa565b50611612929150611c59565b5080546000825590600052602060002090810190610b899190611c7d565b610b9691905b808211156116125780546001600160a01b0319168155600101611c5f565b610b9691905b808211156116125760008155600101611c83565b600082601f830112611ca7578081fd5b8135611cba611cb5826125e2565b6125bb565b818152915060208083019084810181840286018201871015611cdb57600080fd5b60005b84811015611d03578135611cf18161262e565b84529282019290820190600101611cde565b505050505092915050565b80356109e081612643565b600060208284031215611d2a578081fd5b815161131c8161262e565b60006020808385031215611d47578182fd5b825167ffffffffffffffff811115611d5d578283fd5b80840185601f820112611d6e578384fd5b80519150611d7e611cb5836125e2565b8281528381019082850185850284018601891015611d9a578687fd5b8693505b84841015611dc5578051611db18161262e565b835260019390930192918501918501611d9e565b50979650505050505050565b600060208284031215611de2578081fd5b815161131c81612643565b600060208284031215611dfe578081fd5b815167ffffffffffffffff80821115611e15578283fd5b81840185601f820112611e26578384fd5b8051925081831115611e36578384fd5b611e49601f8401601f19166020016125bb565b9150828252856020848301011115611e5f578384fd5b611e70836020840160208401612602565b50949350505050565b600060208284031215611e8a578081fd5b813561131c8161262e565b60008060408385031215611ea7578081fd5b8235611eb28161262e565b91506020830135611ec28161262e565b809150509250929050565b60008060408385031215611edf578182fd5b8235611eea8161262e565b9150602083013567ffffffffffffffff811115611f05578182fd5b611f1185828601611c97565b9150509250929050565b60008060408385031215611f2d578182fd5b8235611f388161262e565b91506020830135611ec281612643565b60008060408385031215611ea7578182fd5b60008060408385031215611f6c578182fd5b8235611f778161262e565b9150602083013567ffffffffffffffff80821115611f93578283fd5b81850160808188031215611fa5578384fd5b611faf60806125bb565b9250803582811115611fbf578485fd5b611fcb88828401611c97565b84525060208101359150611fde8261262e565b81602084015260408101356040840152611ffb8760608301611d0e565b606084015250929590945092505050565b6000806040838503121561201e578182fd5b82356120298161262e565b946020939093013593505050565b600060208284031215612048578081fd5b5051919050565b60008151808452612067816020860160208601612602565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825283602083015260606040830152611469606083018461204f565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6020808252825182820181905260009190848201906040850190845b818110156121335783516001600160a01b03168352928401929184019160010161210e565b50909695505050505050565b901515815260200190565b60006020825261131c602083018461204f565b6020808252601e908201527f4475706c69636174652061697264726f7020746f6b656e207061737365640000604082015260600190565b60208082526015908201527420b2323932b9b9903737ba1034b71030b93930bc9760591b604082015260600190565b60208082526014908201527326bab9ba103132903b30b634b21031b0b63632b960611b604082015260600190565b6020808252601f908201527f5061737365642061646472657373206d757374206265206e6f6e2d7a65726f00604082015260600190565b60208082526028908201527f4d75737420626520612076616c696420616e6420696e697469616c697a65642060408201526729b2ba2a37b5b2b760c11b606082015260800190565b6020808252601e908201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604082015260600190565b6020808252601490820152732332b29036bab9ba103132901e1e90189818129760611b604082015260600190565b6020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b60208082526017908201527f5a65726f20666565206164647265737320706173736564000000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152732a37b5b2b71030b63932b0b23c9030b23232b21760611b604082015260600190565b6020808252601d908201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604082015260600190565b6020808252601d908201527f41697264726f70206665652063616e2774206578636565642031303025000000604082015260600190565b60208082526028908201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604082015267371034b73a191a9b60c11b606082015260800190565b60208082526023908201527f4d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f60408201526235b2b760e91b606082015260800190565b6020808252601c908201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604082015260600190565b60208082526017908201527f4d75737420626520617070726f76656420746f6b656e2e000000000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526010908201526f2a37b5b2b7103737ba1030b23232b21760811b604082015260600190565b6020808252600a90820152694120697320656d70747960b01b604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff811182821017156125da57600080fd5b604052919050565b600067ffffffffffffffff8211156125f8578081fd5b5060209081020190565b60005b8381101561261d578181015183820152602001612605565b83811115610e1f5750506000910152565b6001600160a01b0381168114610b8957600080fd5b8015158114610b8957600080fdfea264697066735822122012700f979598f87fe79120b72bcdffd1eb98d036a8a04b16a48dcf312cabbd7064736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
