{
  "_format": "hh-sol-artifact-1",
  "contractName": "TixSellNftTemplate",
  "sourceName": "contracts/TixSellNftTemplate.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialOwner",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_templateId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_smartContract",
          "type": "address"
        }
      ],
      "name": "addTemplate",
      "outputs": [
        {
          "internalType": "bool",
          "name": "done",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_ticketAddress",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "templateId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "image",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "eventDate",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "string",
                  "name": "gradient1Color",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "gradient2Color",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "eventTitleOne",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "eventTitleTwo",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "eventTitleFont",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "eventColor",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "ticketTypeFont",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "ticketTypeColor",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "price",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "priceColor",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "priceFont",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "fontUrl",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "ticketType",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "venue",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "svgUrl",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "heureDisplay",
                  "type": "string"
                }
              ],
              "internalType": "struct TixSellLibrary.TicketDesignInfo",
              "name": "ticketDesignInfo",
              "type": "tuple"
            },
            {
              "internalType": "bool",
              "name": "freeDrink",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "priorityQueue",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "canStream",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "sellable",
              "type": "bool"
            }
          ],
          "internalType": "struct TixSellLibrary.NftTicketInfo",
          "name": "_nftTicketInfo",
          "type": "tuple"
        },
        {
          "internalType": "bool",
          "name": "revealed",
          "type": "bool"
        }
      ],
      "name": "getURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "finalSVG",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callerConfirmation",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountInWei",
          "type": "uint256"
        }
      ],
      "name": "weiToEtherString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234620001925762001ebf803803806200001d81620001ad565b92833981019060408183031262000192576200003981620001d3565b916020908183015160018060401b039384821162000192570181601f820112156200019257805193841162000197578360051b9083806200007c818501620001ad565b80978152019282010192831162000192578301905b82821062000178576001600160a01b038087168681156200015f57600080546001600160a01b031981168417825590929084167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08480a3815b81518110156200014f576200010d84620001058385620001e8565b511662000213565b5062000127846200011f8385620001e8565b5116620002b6565b5060001981146200013b57600101620000ea565b634e487b7160e01b83526011600452602483fd5b604051611b679081620003388239f35b604051631e4fbdf760e01b815260006004820152602490fd5b8380916200018684620001d3565b81520191019062000091565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b038111838210176200019757604052565b51906001600160a01b03821682036200019257565b8051821015620001fd5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b031660008181527f50efbde2d46c37e9785f1791697f77e94bb7b701e19f1930a668820722d3769460205260408120549091907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759060ff16620002b15780835260016020526040832082845260205260408320600160ff1982541617905560008051602062001e9f833981519152339380a4600190565b505090565b6001600160a01b031660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081205490919060ff16620003335781805260016020526040822081835260205260408220600160ff19825416179055339160008051602062001e9f8339815191528180a4600190565b509056fe6080604081815260048036101561001557600080fd5b600092833560e01c90816301ffc9a7146108a3575080631c15d3bd14610525578063248a9ca3146104fc5780632f2ff15d146104d357806336568abe1461048c578063715018a61461043257806375b238fc146103f75780638da5cb5b146103cf57806391d1485414610389578063a217fddf1461036e578063cafdadde1461024a578063d547741f1461020c578063f25e9991146101465763f2fde38b146100bd57600080fd5b34610142576020366003190112610142576100d66108f7565b906100df610b8b565b6001600160a01b0391821692831561012c57505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b508290346102085760209182600319360112610205575066038d7ea4c68000610201913504926101f260216103e861017f8188046119ee565b96069561019c600a6064610194818b046119ee565b9906046119ee565b845197826101b38a945180928b8088019101610a08565b8301601760f91b898201526101d0825180938b8885019101610a08565b016101e3825180938a8785019101610a08565b01036001810187520185610976565b51928284938452830190610a2b565b0390f35b80fd5b5080fd5b50903461014257806003193601126101425761024691356102416001610230610912565b938387528160205286200154610a50565b610b14565b5080f35b509134610205578160031936011261020557610264610912565b81546001600160a01b039190821633148015610330575b156102ed57169081156102b35782906020943581526002855220906bffffffffffffffffffffffff60a01b8254161790555160018152f35b825162461bcd60e51b815260208186015260146024820152731859191c995cdcc818d85b9d081899481b9d5b1b60621b6044820152606490fd5b835162461bcd60e51b8152602081870152601760248201527f4f6e6c792061646d696e732063616e20646f20746861740000000000000000006044820152606490fd5b507fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758352600160205283832033845260205260ff848420541661027b565b50503461020857816003193601126102085751908152602090f35b50346101425781600319360112610142578160209360ff926103a9610912565b90358252600186528282206001600160a01b039091168252855220549151911615158152f35b505034610208578160031936011261020857905490516001600160a01b039091168152602090f35b505034610208578160031936011261020857602090517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b833461020557806003193601126102055761044b610b8b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509190346102085780600319360112610208576104a7610912565b90336001600160a01b038316036104c45750610246919235610b14565b5163334bd91960e11b81528390fd5b50903461014257806003193601126101425761024691356104f76001610230610912565b610a94565b503461014257602036600319011261014257816020936001923581528285522001549051908152f35b5034610142576003199060603683011261089f576105416108f7565b906024359067ffffffffffffffff80831161089b5761012092838682360301126108975786519584870187811084821117610884578852818401358752602482013560208801526044820135838111610880576105a3908536918501016109b4565b8888015260648201356060880152608482013583811161088057820192610200809285360301126108805788519182018281108282111761086d57895284840135818111610861576105fa908636918701016109b4565b8252602484013581811161086157610617908636918701016109b4565b6020830152604484013581811161086157610637908636918701016109b4565b89830152606484013581811161086157610656908636918701016109b4565b6060830152608484013581811161086157610676908636918701016109b4565b608083015260a484013581811161086157610696908636918701016109b4565b60a083015260c4840135818111610861576106b6908636918701016109b4565b60c083015260e4840135818111610861576106d6908636918701016109b4565b60e08301526101049384810135828111610865576106f9908736918401016109b4565b9661010097888501526101248201358381116108695761071e908836918501016109b4565b908401526101448101358281116108655761073e908736918401016109b4565b61014084015261016481013582811161086557610760908736918401016109b4565b61016084015261018481013582811161086557610782908736918401016109b4565b6101808401526101a4810135828111610865576107a4908736918401016109b4565b6101a08401526101c4810135828111610865576107c6908736918401016109b4565b6101c08401526101e48101359182116108615761082e956107ea92369201016109b4565b6101e0820152608087015261080160a482016109fb565b60a087015261081260c482016109fb565b60c087015261082360e482016109fb565b60e0870152016109fb565b9083015260443593841515850361020557509261084e9161020194610c2e565b9051918291602083526020830190610a2b565b8a80fd5b8b80fd5b8c80fd5b634e487b7160e01b8b526041865260248bfd5b8980fd5b634e487b7160e01b8a526041855260248afd5b8780fd5b8680fd5b8380fd5b92505034610142576020366003190112610142573563ffffffff60e01b81168091036101425760209250637965db0b60e01b81149081156108e6575b5015158152f35b6301ffc9a760e01b149050386108df565b600435906001600160a01b038216820361090d57565b600080fd5b602435906001600160a01b038216820361090d57565b6040810190811067ffffffffffffffff82111761094457604052565b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761094457604052565b90601f8019910116810190811067ffffffffffffffff82111761094457604052565b67ffffffffffffffff811161094457601f01601f191660200190565b81601f8201121561090d578035906109cb82610998565b926109d96040519485610976565b8284526020838301011161090d57816000926020809301838601378301015290565b3590811515820361090d57565b60005b838110610a1b5750506000910152565b8181015183820152602001610a0b565b90602091610a4481518092818552858086019101610a08565b601f01601f1916010190565b80600052600160205260406000203360005260205260ff6040600020541615610a765750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b906000918083526001602052604083209160018060a01b03169182845260205260ff60408420541615600014610b0f5780835260016020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083526001602052604083209160018060a01b03169182845260205260ff604084205416600014610b0f578083526001602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6000546001600160a01b03163303610b9f57565b60405163118cdaa760e01b8152336004820152602490fd5b60405190610bc482610928565b600582526466616c736560d81b6020830152565b60405190610be582610928565b60048252637472756560e01b6020830152565b7f5b7b2274726169745f74797065223a22667265654472696e6b222c2276616c7581526332911d1160e11b602082015260240190565b908051600181148015611837575b6117cf575b506001600160a01b0391821633148015611797575b1561176157610cd791815160005260026020526040600020541690610cf760206101806080840151015160405190610cb860228385610c9e8183019586815193849201610a08565b810161202360f01b87820152036002810185520183610976565b610cc4838601516119ee565b9060405197889351809286860190610a08565b8201610ceb82518093868085019101610a08565b01038086520184610976565b610cff610bb7565b60a0820151611753575b610d11610bb7565b9060c0830151611743575b610d24610bb7565b9360e0840151611733575b610d37610bb7565b604051610d438161095a565b600090526101008501511561154b5750610d5b610bd8565b936040518061018081011067ffffffffffffffff6101808301111761094457610180810160405261015e81527f3c623e42696c6c6574203c623e726576656e6461626c653c2f623e2e3c2f623e60208201527f3c62723e556e697175656d656e74207574696c697361626c6520737572203c6160408201527f20687265663d277777772e73656c6c7469782e6c697665273e7777772e73656c60608201527f6c7469782e6c6976653c2f613e3c62723e4f6e6c7920757361626c65206f6e2060808201527f3c6120687265663d277777772e73656c6c7469782e6c697665273e7777772e7360a08201527f656c6c7469782e6c6976653c2f613e3c62723e5469636b6574203c623e73656c60c08201527f6c61626c653c2f623e2e3c62723e526574726f7576657a20746f7573206e6f7360e08201527f20c3a976c3a96e656d656e747320737572202f2046696e6420616c6c206f75726101008201527f206576656e7473206f6e203c6120687265663d277777772e73656c6c7469782e6101208201527f6c6976652f6576656e656d656e74732d7075626c6963273e7777772e73656c6c6101408201527f7469782e6c6976652f6576656e656d656e74732d7075626c69633c2f613e0000610160820152975b61117e57604091500151604051968796683d913730b6b2911d1160b91b60208901528051908160298a019160200191610f6792610a08565b870171111610113232b9b1b934b83a34b7b7111d1160711b602982015281519182603b83019160200191610f9a92610a08565b016c1116101134b6b0b3b2911d101160991b603b82015281519182604883019160200191610fc792610a08565b017001116101130ba3a3934b13aba32b9911d1607d1b6048820152605901610fee90610bf8565b80825160208194019161100092610a08565b01611041907f227d2c7b2274726169745f74797065223a227072696f7269747951756575652281526916113b30b63ab2911d1160b11b6020820152602a0190565b80825160208194019161105392610a08565b0161108f907f227d2c7b2274726169745f74797065223a2273656c6c61626c65222c2276616c8152643ab2911d1160d91b602082015260250190565b8082516020819401916110a192610a08565b016110de907f227d2c7b2274726169745f74797065223a2263616e53747265616d222c227661815265363ab2911d1160d11b602082015260260190565b8082516020819401916110f092610a08565b0162227d5d60e81b815260038101607d60f81b905203601b198101825260040161111a9082610976565b61112390611873565b6040518091602082017f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000905280519081603d8401916020019161116592610a08565b810103601d81018252603d0161117b9082610976565b90565b805160038114908115611540575b50156111cb576080915001516101c00151604051968796683d913730b6b2911d1160b91b60208901528051908160298a019160200191610f6792610a08565b600090604051928380809363b89d58cf60e01b8252306004830152604060248301528051604483015260208101516064830152610100611399604083015161122161012091826084880152610164870190610a2b565b90606085015160a487015261138561137161135d61134961133561132160808b0151968c60c4604319828c030191015261130f6112ff6112ec6112d98b8d60a06112c86112b66112a46112926112808751610200808952880190610a2b565b60208801518782036020890152610a2b565b60408701518682036040880152610a2b565b60608601518582036060870152610a2b565b60808501518482036080860152610a2b565b9201519060a0818403910152610a2b565b60c08c01518d60c0818403910152610a2b565b60e08b01518c60e0818403910152610a2b565b8c8a01518b82038e8d0152610a2b565b9080890151908a8303908b0152610a2b565b6101408088015190898303908a0152610a2b565b610160808701519088830390890152610a2b565b610180850151868203610180880152610a2b565b6101a0808501519086830390870152610a2b565b6101c0808401519085830390860152610a2b565b916101e08092015191818403910152610a2b565b9160a0810151151560e485015260c0810151151561010485015260e081015115156101248501520151151561014483015203915afa908115611534576000916114ba575b50604051968796683d913730b6b2911d1160b91b60208901528051908160298a01916020019161140c92610a08565b870171111610113232b9b1b934b83a34b7b7111d1160711b602982015281519182603b8301916020019161143f92610a08565b016c1116101134b6b0b3b2911d101160991b603b820152604881017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000090528151918260628301916020019161149392610a08565b017001116101130ba3a3934b13aba32b9911d1607d1b6062820152607301610fee90610bf8565b90503d806000833e6114cc8183610976565b81019060208183031261090d5780519067ffffffffffffffff821161090d570181601f8201121561090d57805161150281610998565b926115106040519485610976565b8184526020828401011161090d5761152e9160208085019101610a08565b386113dd565b6040513d6000823e3d90fd5b60049150143861118c565b93604051806101a081011067ffffffffffffffff6101a083011117610944576101a0810160405261016681527f3c623e42696c6c6574203c623e6e6f6e3c2f623e20726576656e6461626c652e60208201527f3c2f623e3c62723e556e697175656d656e74207574696c697361626c6520737560408201527f72203c6120687265663d277777772e73656c6c7469782e6c697665273e77777760608201527f2e73656c6c7469782e6c6976653c2f613e3c62723e4f6e6c7920757361626c6560808201527f206f6e203c6120687265663d277777772e73656c6c7469782e6c697665273e7760a08201527f77772e73656c6c7469782e6c6976653c2f613e3c62723e5469636b6574203c6260c08201527f3e6e6f743c2f623e2073656c6c61626c652e3c62723e526574726f7576657a2060e08201527f746f7573206e6f7320c3a976c3a96e656d656e747320737572202f2046696e646101008201527f20616c6c206f7572206576656e7473206f6e203c6120687265663d277777772e6101208201527f73656c6c7469782e6c6976652f6576656e656d656e74732d7075626c6963273e6101408201527f7777772e73656c6c7469782e6c6976652f6576656e656d656e74732d7075626c6101608201526534b19e17b09f60d11b61018082015297610f2f565b935061173d610bd8565b93610d2f565b905061174d610bd8565b90610d1c565b5061175c610bd8565b610d09565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b503360009081527f50efbde2d46c37e9785f1791697f77e94bb7b701e19f1930a668820722d37694602052604090205460ff16610c56565b6000908152600260205260409020546001600160a01b0316156117f25738610c41565b60405162461bcd60e51b815260206004820152601760248201527f4e6f2074656d706c61746520666f7220746869732069640000000000000000006044820152606490fd5b5060028114610c3c565b9061184b82610998565b6118586040519182610976565b8281528092611869601f1991610998565b0190602036910137565b8051156119da57604051906060820182811067ffffffffffffffff82111761094457604052604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604083015280516002918282018092116119c4576003918290046001600160fe1b03811681036119c45761191a908495941b611841565b936020850193829183518401906020820192835194600085525b83811061197357505050505251068060011461196057600214611955575090565b603d90600019015390565b50603d9081600019820153600119015390565b87600491999293949901918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c1688010151888501531685010151898201530197929190611934565b634e487b7160e01b600052601160045260246000fd5b506040516119e78161095a565b6000815290565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000080821015611b23575b506d04ee2d6d415b85acef810000000080831015611b14575b50662386f26fc1000080831015611b05575b506305f5e10080831015611af6575b5061271080831015611ae7575b506064821015611ad7575b600a80921015611acd575b600190816021611a85828701611841565b95860101905b611a97575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215611ac857919082611a8b565b611a90565b9160010191611a74565b9190606460029104910191611a69565b60049193920491019138611a5e565b60089193920491019138611a51565b60109193920491019138611a42565b60209193920491019138611a30565b604093508104915038611a1756fea26469706673582212203de6fe9335bb68c084254a164dbce86efd86106fa5645c7135b69a3e1d13338f64736f6c634300081400332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
  "deployedBytecode": "0x6080604081815260048036101561001557600080fd5b600092833560e01c90816301ffc9a7146108a3575080631c15d3bd14610525578063248a9ca3146104fc5780632f2ff15d146104d357806336568abe1461048c578063715018a61461043257806375b238fc146103f75780638da5cb5b146103cf57806391d1485414610389578063a217fddf1461036e578063cafdadde1461024a578063d547741f1461020c578063f25e9991146101465763f2fde38b146100bd57600080fd5b34610142576020366003190112610142576100d66108f7565b906100df610b8b565b6001600160a01b0391821692831561012c57505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b508290346102085760209182600319360112610205575066038d7ea4c68000610201913504926101f260216103e861017f8188046119ee565b96069561019c600a6064610194818b046119ee565b9906046119ee565b845197826101b38a945180928b8088019101610a08565b8301601760f91b898201526101d0825180938b8885019101610a08565b016101e3825180938a8785019101610a08565b01036001810187520185610976565b51928284938452830190610a2b565b0390f35b80fd5b5080fd5b50903461014257806003193601126101425761024691356102416001610230610912565b938387528160205286200154610a50565b610b14565b5080f35b509134610205578160031936011261020557610264610912565b81546001600160a01b039190821633148015610330575b156102ed57169081156102b35782906020943581526002855220906bffffffffffffffffffffffff60a01b8254161790555160018152f35b825162461bcd60e51b815260208186015260146024820152731859191c995cdcc818d85b9d081899481b9d5b1b60621b6044820152606490fd5b835162461bcd60e51b8152602081870152601760248201527f4f6e6c792061646d696e732063616e20646f20746861740000000000000000006044820152606490fd5b507fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758352600160205283832033845260205260ff848420541661027b565b50503461020857816003193601126102085751908152602090f35b50346101425781600319360112610142578160209360ff926103a9610912565b90358252600186528282206001600160a01b039091168252855220549151911615158152f35b505034610208578160031936011261020857905490516001600160a01b039091168152602090f35b505034610208578160031936011261020857602090517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b833461020557806003193601126102055761044b610b8b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509190346102085780600319360112610208576104a7610912565b90336001600160a01b038316036104c45750610246919235610b14565b5163334bd91960e11b81528390fd5b50903461014257806003193601126101425761024691356104f76001610230610912565b610a94565b503461014257602036600319011261014257816020936001923581528285522001549051908152f35b5034610142576003199060603683011261089f576105416108f7565b906024359067ffffffffffffffff80831161089b5761012092838682360301126108975786519584870187811084821117610884578852818401358752602482013560208801526044820135838111610880576105a3908536918501016109b4565b8888015260648201356060880152608482013583811161088057820192610200809285360301126108805788519182018281108282111761086d57895284840135818111610861576105fa908636918701016109b4565b8252602484013581811161086157610617908636918701016109b4565b6020830152604484013581811161086157610637908636918701016109b4565b89830152606484013581811161086157610656908636918701016109b4565b6060830152608484013581811161086157610676908636918701016109b4565b608083015260a484013581811161086157610696908636918701016109b4565b60a083015260c4840135818111610861576106b6908636918701016109b4565b60c083015260e4840135818111610861576106d6908636918701016109b4565b60e08301526101049384810135828111610865576106f9908736918401016109b4565b9661010097888501526101248201358381116108695761071e908836918501016109b4565b908401526101448101358281116108655761073e908736918401016109b4565b61014084015261016481013582811161086557610760908736918401016109b4565b61016084015261018481013582811161086557610782908736918401016109b4565b6101808401526101a4810135828111610865576107a4908736918401016109b4565b6101a08401526101c4810135828111610865576107c6908736918401016109b4565b6101c08401526101e48101359182116108615761082e956107ea92369201016109b4565b6101e0820152608087015261080160a482016109fb565b60a087015261081260c482016109fb565b60c087015261082360e482016109fb565b60e0870152016109fb565b9083015260443593841515850361020557509261084e9161020194610c2e565b9051918291602083526020830190610a2b565b8a80fd5b8b80fd5b8c80fd5b634e487b7160e01b8b526041865260248bfd5b8980fd5b634e487b7160e01b8a526041855260248afd5b8780fd5b8680fd5b8380fd5b92505034610142576020366003190112610142573563ffffffff60e01b81168091036101425760209250637965db0b60e01b81149081156108e6575b5015158152f35b6301ffc9a760e01b149050386108df565b600435906001600160a01b038216820361090d57565b600080fd5b602435906001600160a01b038216820361090d57565b6040810190811067ffffffffffffffff82111761094457604052565b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761094457604052565b90601f8019910116810190811067ffffffffffffffff82111761094457604052565b67ffffffffffffffff811161094457601f01601f191660200190565b81601f8201121561090d578035906109cb82610998565b926109d96040519485610976565b8284526020838301011161090d57816000926020809301838601378301015290565b3590811515820361090d57565b60005b838110610a1b5750506000910152565b8181015183820152602001610a0b565b90602091610a4481518092818552858086019101610a08565b601f01601f1916010190565b80600052600160205260406000203360005260205260ff6040600020541615610a765750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b906000918083526001602052604083209160018060a01b03169182845260205260ff60408420541615600014610b0f5780835260016020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083526001602052604083209160018060a01b03169182845260205260ff604084205416600014610b0f578083526001602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6000546001600160a01b03163303610b9f57565b60405163118cdaa760e01b8152336004820152602490fd5b60405190610bc482610928565b600582526466616c736560d81b6020830152565b60405190610be582610928565b60048252637472756560e01b6020830152565b7f5b7b2274726169745f74797065223a22667265654472696e6b222c2276616c7581526332911d1160e11b602082015260240190565b908051600181148015611837575b6117cf575b506001600160a01b0391821633148015611797575b1561176157610cd791815160005260026020526040600020541690610cf760206101806080840151015160405190610cb860228385610c9e8183019586815193849201610a08565b810161202360f01b87820152036002810185520183610976565b610cc4838601516119ee565b9060405197889351809286860190610a08565b8201610ceb82518093868085019101610a08565b01038086520184610976565b610cff610bb7565b60a0820151611753575b610d11610bb7565b9060c0830151611743575b610d24610bb7565b9360e0840151611733575b610d37610bb7565b604051610d438161095a565b600090526101008501511561154b5750610d5b610bd8565b936040518061018081011067ffffffffffffffff6101808301111761094457610180810160405261015e81527f3c623e42696c6c6574203c623e726576656e6461626c653c2f623e2e3c2f623e60208201527f3c62723e556e697175656d656e74207574696c697361626c6520737572203c6160408201527f20687265663d277777772e73656c6c7469782e6c697665273e7777772e73656c60608201527f6c7469782e6c6976653c2f613e3c62723e4f6e6c7920757361626c65206f6e2060808201527f3c6120687265663d277777772e73656c6c7469782e6c697665273e7777772e7360a08201527f656c6c7469782e6c6976653c2f613e3c62723e5469636b6574203c623e73656c60c08201527f6c61626c653c2f623e2e3c62723e526574726f7576657a20746f7573206e6f7360e08201527f20c3a976c3a96e656d656e747320737572202f2046696e6420616c6c206f75726101008201527f206576656e7473206f6e203c6120687265663d277777772e73656c6c7469782e6101208201527f6c6976652f6576656e656d656e74732d7075626c6963273e7777772e73656c6c6101408201527f7469782e6c6976652f6576656e656d656e74732d7075626c69633c2f613e0000610160820152975b61117e57604091500151604051968796683d913730b6b2911d1160b91b60208901528051908160298a019160200191610f6792610a08565b870171111610113232b9b1b934b83a34b7b7111d1160711b602982015281519182603b83019160200191610f9a92610a08565b016c1116101134b6b0b3b2911d101160991b603b82015281519182604883019160200191610fc792610a08565b017001116101130ba3a3934b13aba32b9911d1607d1b6048820152605901610fee90610bf8565b80825160208194019161100092610a08565b01611041907f227d2c7b2274726169745f74797065223a227072696f7269747951756575652281526916113b30b63ab2911d1160b11b6020820152602a0190565b80825160208194019161105392610a08565b0161108f907f227d2c7b2274726169745f74797065223a2273656c6c61626c65222c2276616c8152643ab2911d1160d91b602082015260250190565b8082516020819401916110a192610a08565b016110de907f227d2c7b2274726169745f74797065223a2263616e53747265616d222c227661815265363ab2911d1160d11b602082015260260190565b8082516020819401916110f092610a08565b0162227d5d60e81b815260038101607d60f81b905203601b198101825260040161111a9082610976565b61112390611873565b6040518091602082017f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000905280519081603d8401916020019161116592610a08565b810103601d81018252603d0161117b9082610976565b90565b805160038114908115611540575b50156111cb576080915001516101c00151604051968796683d913730b6b2911d1160b91b60208901528051908160298a019160200191610f6792610a08565b600090604051928380809363b89d58cf60e01b8252306004830152604060248301528051604483015260208101516064830152610100611399604083015161122161012091826084880152610164870190610a2b565b90606085015160a487015261138561137161135d61134961133561132160808b0151968c60c4604319828c030191015261130f6112ff6112ec6112d98b8d60a06112c86112b66112a46112926112808751610200808952880190610a2b565b60208801518782036020890152610a2b565b60408701518682036040880152610a2b565b60608601518582036060870152610a2b565b60808501518482036080860152610a2b565b9201519060a0818403910152610a2b565b60c08c01518d60c0818403910152610a2b565b60e08b01518c60e0818403910152610a2b565b8c8a01518b82038e8d0152610a2b565b9080890151908a8303908b0152610a2b565b6101408088015190898303908a0152610a2b565b610160808701519088830390890152610a2b565b610180850151868203610180880152610a2b565b6101a0808501519086830390870152610a2b565b6101c0808401519085830390860152610a2b565b916101e08092015191818403910152610a2b565b9160a0810151151560e485015260c0810151151561010485015260e081015115156101248501520151151561014483015203915afa908115611534576000916114ba575b50604051968796683d913730b6b2911d1160b91b60208901528051908160298a01916020019161140c92610a08565b870171111610113232b9b1b934b83a34b7b7111d1160711b602982015281519182603b8301916020019161143f92610a08565b016c1116101134b6b0b3b2911d101160991b603b820152604881017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000090528151918260628301916020019161149392610a08565b017001116101130ba3a3934b13aba32b9911d1607d1b6062820152607301610fee90610bf8565b90503d806000833e6114cc8183610976565b81019060208183031261090d5780519067ffffffffffffffff821161090d570181601f8201121561090d57805161150281610998565b926115106040519485610976565b8184526020828401011161090d5761152e9160208085019101610a08565b386113dd565b6040513d6000823e3d90fd5b60049150143861118c565b93604051806101a081011067ffffffffffffffff6101a083011117610944576101a0810160405261016681527f3c623e42696c6c6574203c623e6e6f6e3c2f623e20726576656e6461626c652e60208201527f3c2f623e3c62723e556e697175656d656e74207574696c697361626c6520737560408201527f72203c6120687265663d277777772e73656c6c7469782e6c697665273e77777760608201527f2e73656c6c7469782e6c6976653c2f613e3c62723e4f6e6c7920757361626c6560808201527f206f6e203c6120687265663d277777772e73656c6c7469782e6c697665273e7760a08201527f77772e73656c6c7469782e6c6976653c2f613e3c62723e5469636b6574203c6260c08201527f3e6e6f743c2f623e2073656c6c61626c652e3c62723e526574726f7576657a2060e08201527f746f7573206e6f7320c3a976c3a96e656d656e747320737572202f2046696e646101008201527f20616c6c206f7572206576656e7473206f6e203c6120687265663d277777772e6101208201527f73656c6c7469782e6c6976652f6576656e656d656e74732d7075626c6963273e6101408201527f7777772e73656c6c7469782e6c6976652f6576656e656d656e74732d7075626c6101608201526534b19e17b09f60d11b61018082015297610f2f565b935061173d610bd8565b93610d2f565b905061174d610bd8565b90610d1c565b5061175c610bd8565b610d09565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b503360009081527f50efbde2d46c37e9785f1791697f77e94bb7b701e19f1930a668820722d37694602052604090205460ff16610c56565b6000908152600260205260409020546001600160a01b0316156117f25738610c41565b60405162461bcd60e51b815260206004820152601760248201527f4e6f2074656d706c61746520666f7220746869732069640000000000000000006044820152606490fd5b5060028114610c3c565b9061184b82610998565b6118586040519182610976565b8281528092611869601f1991610998565b0190602036910137565b8051156119da57604051906060820182811067ffffffffffffffff82111761094457604052604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604083015280516002918282018092116119c4576003918290046001600160fe1b03811681036119c45761191a908495941b611841565b936020850193829183518401906020820192835194600085525b83811061197357505050505251068060011461196057600214611955575090565b603d90600019015390565b50603d9081600019820153600119015390565b87600491999293949901918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c1688010151888501531685010151898201530197929190611934565b634e487b7160e01b600052601160045260246000fd5b506040516119e78161095a565b6000815290565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000080821015611b23575b506d04ee2d6d415b85acef810000000080831015611b14575b50662386f26fc1000080831015611b05575b506305f5e10080831015611af6575b5061271080831015611ae7575b506064821015611ad7575b600a80921015611acd575b600190816021611a85828701611841565b95860101905b611a97575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215611ac857919082611a8b565b611a90565b9160010191611a74565b9190606460029104910191611a69565b60049193920491019138611a5e565b60089193920491019138611a51565b60109193920491019138611a42565b60209193920491019138611a30565b604093508104915038611a1756fea26469706673582212203de6fe9335bb68c084254a164dbce86efd86106fa5645c7135b69a3e1d13338f64736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}