{
  "_format": "hh-sol-artifact-1",
  "contractName": "AutoVotingLogic",
  "sourceName": "contracts/x-allocation-voting-governance/libraries/AutoVotingLogic.sol",
  "abi": [
    {
      "inputs": [],
      "name": "CheckpointUnorderedInsertion",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "bits",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "AutoVotingToggled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "apps",
          "type": "bytes32[]"
        }
      ],
      "name": "PreferredAppsUpdated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "clock",
          "type": "uint48"
        }
      ],
      "name": "getTotalAutoVotingUsers",
      "outputs": [
        {
          "internalType": "uint208",
          "name": "",
          "type": "uint208"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "timepoint",
          "type": "uint48"
        }
      ],
      "name": "getTotalAutoVotingUsersAtTimepoint",
      "outputs": [
        {
          "internalType": "uint208",
          "name": "",
          "type": "uint208"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "getUserVotingPreferences",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isAutoVotingEnabled",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint48",
          "name": "timepoint",
          "type": "uint48"
        }
      ],
      "name": "isAutoVotingEnabledAtTimepoint",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "xAllocationVotingGovernorAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "preferredApps",
          "type": "bytes32[]"
        }
      ],
      "name": "prepareAutoVoteArrays",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "finalAppIds",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "voteWeights",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "votingPower",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61166661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100825760003560e01c8063059e952b146100875780631f59dfd7146100b7578063217940a6146100da578063412caf0b146100fc578063528f108a1461011c578063642998811461012f578063ea66e04a1461014f578063fb9cd34614610087575b600080fd5b61009a6100953660046111e7565b610171565b6040516001600160d01b0390911681526020015b60405180910390f35b6100ca6100c5366004611219565b610192565b60405190151581526020016100ae565b8180156100e657600080fd5b506100fa6100f536600461124c565b6101d8565b005b61010f61010a36600461128f565b6104e2565b6040516100ae91906112e5565b6100ca61012a36600461128f565b61055f565b81801561013b57600080fd5b506100fa61014a36600461139d565b6105a2565b61016261015d3660046113fa565b61087c565b6040516100ae93929190611461565b60008061017c610bd3565b905061018b6002820184610bf7565b9392505050565b60008061019d610bd3565b6001600160a01b03851660009081526020829052604090209091506101c29084610bf7565b6001600160d01b03166001149150505b92915050565b60006101e2610bd3565b6001600160a01b0384166000908152602082905260408120919250906102089084610bf7565b6001600160d01b03166001149050801585826103e05760405163cfea80ed60e01b81526001600160a01b03878116600483015282169063cfea80ed90602401602060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028891906114c1565b5060006102f78288846001600160a01b031663561b64ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f291906114e3565b610cad565b915050806103615760405162461bcd60e51b815260206004820152602c60248201527f4175746f566f74696e674c6f6769633a206174206c65617374203120564f543360448201526b081a5cc81c995c5d5a5c995960a21b60648201526084015b60405180910390fd5b6001600160a01b03871660009081526001860160205260409020546103de5760405162461bcd60e51b815260206004820152602d60248201527f4175746f566f74696e674c6f6769633a206d7573742073656c6563742061742060448201526c06c65617374206f6e652061707609c1b6064820152608401610358565b505b8215610409576001600160a01b0386166000908152600185016020526040812061040991611153565b61044a85836104215761041c6000610d3f565b61042b565b61042b6001610d3f565b6001600160a01b03891660009081526020889052604090209190610d77565b506000905061045c6002860187610bf7565b905060008361047557610470600183611512565b610480565b610480826001611539565b9050610490600287018883610d77565b5050876001600160a01b03167f6baead299a74ec4ebb558b9c9507046309c90e561107f4776cef02327b526549856040516104cf911515815260200190565b60405180910390a2505050505050505050565b606060006104ee610bd3565b6001600160a01b0384166000908152600182016020908152604091829020805483518184028101840190945280845293945091929083018282801561055257602002820191906000526020600020905b81548152602001906001019080831161053e575b5050505050915050919050565b60008061056a610bd3565b6001600160a01b038416600090815260208290526040902090915061058e90610d91565b6001600160d01b0316600114915050919050565b60006105ac610bd3565b9050600082511161060b5760405162461bcd60e51b8152602060048201526024808201527f4175746f566f74696e674c6f6769633a206e6f206170707320746f20766f7465604482015263103337b960e11b6064820152608401610358565b600f825111156106765760405162461bcd60e51b815260206004820152603060248201527f4175746f566f74696e674c6f6769633a206d75737420766f746520666f72206c60448201526f657373207468616e203135206170707360801b6064820152608401610358565b8360005b835181101561080757816001600160a01b031663607bfb248583815181106106a4576106a4611559565b60200260200101516040518263ffffffff1660e01b81526004016106ca91815260200190565b602060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b91906114c1565b6107565760405162461bcd60e51b815260206004820152601c60248201527b04175746f566f74696e674c6f6769633a20696e76616c6964206170760241b6044820152606401610358565b60005b818110156107f45784818151811061077357610773611559565b602002602001015185838151811061078d5761078d611559565b6020026020010151036107e25760405162461bcd60e51b815260206004820152601e60248201527f4175746f566f74696e674c6f6769633a206475706c69636174652061707000006044820152606401610358565b806107ec8161156f565b915050610759565b50806107ff8161156f565b91505061067a565b506001600160a01b03841660009081526001830160209081526040909120845161083392860190611174565b50836001600160a01b03167f3e3998ec06c031c887b2c4825699d96390034bafa666cc53be14a1b832a0654e8460405161086d9190611588565b60405180910390a25050505050565b6060806000808790506000806108d8838a856001600160a01b031663d06efeda8c6040518263ffffffff1660e01b81526004016108bb91815260200190565b602060405180830381865afa1580156102ce573d6000803e3d6000fd5b91509150819350806109075750506040805160008082526020820190815281830190925294509250610bc99050565b86516000816001600160401b03811115610923576109236112f8565b60405190808252806020026020018201604052801561094c578160200160208202803683370190505b5090506000805b83811015610a4657866001600160a01b031663d68b4c368c838151811061097c5761097c611559565b60200260200101518e6040518363ffffffff1660e01b81526004016109ab929190918252602082015260400190565b602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec91906114c1565b15610a36578a8181518110610a0357610a03611559565b6020026020010151838380610a179061156f565b945081518110610a2957610a29611559565b6020026020010181815250505b610a3f8161156f565b9050610953565b5080600003610a755750506040805160008082526020820190815281830190925297509550610bc99350505050565b806001600160401b03811115610a8d57610a8d6112f8565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b509850806001600160401b03811115610ad157610ad16112f8565b604051908082528060200260200182016040528015610afa578160200160208202803683370190505b5097506000610b0982896115e2565b90506000610b17838a6115f6565b905060005b83811015610bbf57848181518110610b3657610b36611559565b60200260200101518c8281518110610b5057610b50611559565b602002602001018181525050828b8281518110610b6f57610b6f611559565b60200260200101818152505081811015610baf5760018b8281518110610b9757610b97611559565b60200260200101818151610bab919061160a565b9052505b610bb88161156f565b9050610b1c565b5050505050505050505b9450945094915050565b7f38ba4d920474025bc119851d51630794ab25dc91b5f613afc3c0e85f09fdc10090565b815460009081816005811115610c56576000610c1284610dca565b610c1c908561161d565b60008881526020902090915081015465ffffffffffff9081169087161015610c4657809150610c54565b610c5181600161160a565b92505b505b6000610c6487878585610eb2565b90508015610c9f57610c8987610c7b60018461161d565b600091825260209091200190565b54600160301b90046001600160d01b0316610ca2565b60005b979650505050505050565b604051633ae4067560e21b81526001600160a01b03838116600483015260248201839052600091829182919087169063eb9019d490604401602060405180830381865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2691906114e3565b92505050670de0b6b3a76400008110155b935093915050565b60006001600160d01b03821115610d73576040516306dfcc6560e41b815260d0600482015260248101839052604401610358565b5090565b600080610d85858585610f14565b91509150935093915050565b80546000908015610dc157610dab83610c7b60018461161d565b54600160301b90046001600160d01b031661018b565b60009392505050565b600081600003610ddc57506000919050565b60006001610de98461108e565b901c6001901b90506001818481610e0257610e026115cc565b048201901c90506001818481610e1a57610e1a6115cc565b048201901c90506001818481610e3257610e326115cc565b048201901c90506001818481610e4a57610e4a6115cc565b048201901c90506001818481610e6257610e626115cc565b048201901c90506001818481610e7a57610e7a6115cc565b048201901c90506001818481610e9257610e926115cc565b048201901c905061018b81828581610eac57610eac6115cc565b04611122565b60005b81831015610f0c576000610ec98484611138565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115610ef857809250610f06565b610f0381600161160a565b93505b50610eb5565b509392505050565b825460009081908015611033576000610f3287610c7b60018561161d565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015610f8657604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603610fd25784610fa988610c7b60018661161d565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055611023565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b602001519250839150610d379050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610d37565b600080608083901c156110a357608092831c92015b604083901c156110b557604092831c92015b602083901c156110c757602092831c92015b601083901c156110d957601092831c92015b600883901c156110eb57600892831c92015b600483901c156110fd57600492831c92015b600283901c1561110f57600292831c92015b600183901c156101d25760010192915050565b6000818310611131578161018b565b5090919050565b600061114760028484186115e2565b61018b9084841661160a565b508054600082559060005260206000209081019061117191906111b7565b50565b8280548282559060005260206000209081019282156111af579160200282015b828111156111af578251825591602001919060010190611194565b50610d739291505b5b80821115610d7357600081556001016111b8565b803565ffffffffffff811681146111e257600080fd5b919050565b6000602082840312156111f957600080fd5b61018b826111cc565b80356001600160a01b03811681146111e257600080fd5b6000806040838503121561122c57600080fd5b61123583611202565b9150611243602084016111cc565b90509250929050565b60008060006060848603121561126157600080fd5b61126a84611202565b925061127860208501611202565b9150611286604085016111cc565b90509250925092565b6000602082840312156112a157600080fd5b61018b82611202565b600081518084526020808501945080840160005b838110156112da578151875295820195908201906001016112be565b509495945050505050565b60208152600061018b60208301846112aa565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261131f57600080fd5b813560206001600160401b038083111561133b5761133b6112f8565b8260051b604051601f19603f83011681018181108482111715611360576113606112f8565b60405293845285810183019383810192508785111561137e57600080fd5b83870191505b84821015610ca257813583529183019190830190611384565b6000806000606084860312156113b257600080fd5b6113bb84611202565b92506113c960208501611202565b915060408401356001600160401b038111156113e457600080fd5b6113f08682870161130e565b9150509250925092565b6000806000806080858703121561141057600080fd5b61141985611202565b935061142760208601611202565b92506040850135915060608501356001600160401b0381111561144957600080fd5b6114558782880161130e565b91505092959194509250565b60608152600061147460608301866112aa565b82810360208481019190915285518083528682019282019060005b818110156114ab5784518352938301939183019160010161148f565b5050809350505050826040830152949350505050565b6000602082840312156114d357600080fd5b8151801515811461018b57600080fd5b6000602082840312156114f557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6001600160d01b03828116828216039080821115611532576115326114fc565b5092915050565b6001600160d01b03818116838216019080821115611532576115326114fc565b634e487b7160e01b600052603260045260246000fd5b600060018201611581576115816114fc565b5060010190565b6020808252825182820181905260009190848201906040850190845b818110156115c0578351835292840192918401916001016115a4565b50909695505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826115f1576115f16115cc565b500490565b600082611605576116056115cc565b500690565b808201808211156101d2576101d26114fc565b818103818111156101d2576101d26114fc56fea2646970667358221220906ddb4bdce36e4a21e0a23bc2d843b6fae4cd6ca9e162e22543b8ac6dec788f64736f6c63430008140033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100825760003560e01c8063059e952b146100875780631f59dfd7146100b7578063217940a6146100da578063412caf0b146100fc578063528f108a1461011c578063642998811461012f578063ea66e04a1461014f578063fb9cd34614610087575b600080fd5b61009a6100953660046111e7565b610171565b6040516001600160d01b0390911681526020015b60405180910390f35b6100ca6100c5366004611219565b610192565b60405190151581526020016100ae565b8180156100e657600080fd5b506100fa6100f536600461124c565b6101d8565b005b61010f61010a36600461128f565b6104e2565b6040516100ae91906112e5565b6100ca61012a36600461128f565b61055f565b81801561013b57600080fd5b506100fa61014a36600461139d565b6105a2565b61016261015d3660046113fa565b61087c565b6040516100ae93929190611461565b60008061017c610bd3565b905061018b6002820184610bf7565b9392505050565b60008061019d610bd3565b6001600160a01b03851660009081526020829052604090209091506101c29084610bf7565b6001600160d01b03166001149150505b92915050565b60006101e2610bd3565b6001600160a01b0384166000908152602082905260408120919250906102089084610bf7565b6001600160d01b03166001149050801585826103e05760405163cfea80ed60e01b81526001600160a01b03878116600483015282169063cfea80ed90602401602060405180830381865afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028891906114c1565b5060006102f78288846001600160a01b031663561b64ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f291906114e3565b610cad565b915050806103615760405162461bcd60e51b815260206004820152602c60248201527f4175746f566f74696e674c6f6769633a206174206c65617374203120564f543360448201526b081a5cc81c995c5d5a5c995960a21b60648201526084015b60405180910390fd5b6001600160a01b03871660009081526001860160205260409020546103de5760405162461bcd60e51b815260206004820152602d60248201527f4175746f566f74696e674c6f6769633a206d7573742073656c6563742061742060448201526c06c65617374206f6e652061707609c1b6064820152608401610358565b505b8215610409576001600160a01b0386166000908152600185016020526040812061040991611153565b61044a85836104215761041c6000610d3f565b61042b565b61042b6001610d3f565b6001600160a01b03891660009081526020889052604090209190610d77565b506000905061045c6002860187610bf7565b905060008361047557610470600183611512565b610480565b610480826001611539565b9050610490600287018883610d77565b5050876001600160a01b03167f6baead299a74ec4ebb558b9c9507046309c90e561107f4776cef02327b526549856040516104cf911515815260200190565b60405180910390a2505050505050505050565b606060006104ee610bd3565b6001600160a01b0384166000908152600182016020908152604091829020805483518184028101840190945280845293945091929083018282801561055257602002820191906000526020600020905b81548152602001906001019080831161053e575b5050505050915050919050565b60008061056a610bd3565b6001600160a01b038416600090815260208290526040902090915061058e90610d91565b6001600160d01b0316600114915050919050565b60006105ac610bd3565b9050600082511161060b5760405162461bcd60e51b8152602060048201526024808201527f4175746f566f74696e674c6f6769633a206e6f206170707320746f20766f7465604482015263103337b960e11b6064820152608401610358565b600f825111156106765760405162461bcd60e51b815260206004820152603060248201527f4175746f566f74696e674c6f6769633a206d75737420766f746520666f72206c60448201526f657373207468616e203135206170707360801b6064820152608401610358565b8360005b835181101561080757816001600160a01b031663607bfb248583815181106106a4576106a4611559565b60200260200101516040518263ffffffff1660e01b81526004016106ca91815260200190565b602060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b91906114c1565b6107565760405162461bcd60e51b815260206004820152601c60248201527b04175746f566f74696e674c6f6769633a20696e76616c6964206170760241b6044820152606401610358565b60005b818110156107f45784818151811061077357610773611559565b602002602001015185838151811061078d5761078d611559565b6020026020010151036107e25760405162461bcd60e51b815260206004820152601e60248201527f4175746f566f74696e674c6f6769633a206475706c69636174652061707000006044820152606401610358565b806107ec8161156f565b915050610759565b50806107ff8161156f565b91505061067a565b506001600160a01b03841660009081526001830160209081526040909120845161083392860190611174565b50836001600160a01b03167f3e3998ec06c031c887b2c4825699d96390034bafa666cc53be14a1b832a0654e8460405161086d9190611588565b60405180910390a25050505050565b6060806000808790506000806108d8838a856001600160a01b031663d06efeda8c6040518263ffffffff1660e01b81526004016108bb91815260200190565b602060405180830381865afa1580156102ce573d6000803e3d6000fd5b91509150819350806109075750506040805160008082526020820190815281830190925294509250610bc99050565b86516000816001600160401b03811115610923576109236112f8565b60405190808252806020026020018201604052801561094c578160200160208202803683370190505b5090506000805b83811015610a4657866001600160a01b031663d68b4c368c838151811061097c5761097c611559565b60200260200101518e6040518363ffffffff1660e01b81526004016109ab929190918252602082015260400190565b602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec91906114c1565b15610a36578a8181518110610a0357610a03611559565b6020026020010151838380610a179061156f565b945081518110610a2957610a29611559565b6020026020010181815250505b610a3f8161156f565b9050610953565b5080600003610a755750506040805160008082526020820190815281830190925297509550610bc99350505050565b806001600160401b03811115610a8d57610a8d6112f8565b604051908082528060200260200182016040528015610ab6578160200160208202803683370190505b509850806001600160401b03811115610ad157610ad16112f8565b604051908082528060200260200182016040528015610afa578160200160208202803683370190505b5097506000610b0982896115e2565b90506000610b17838a6115f6565b905060005b83811015610bbf57848181518110610b3657610b36611559565b60200260200101518c8281518110610b5057610b50611559565b602002602001018181525050828b8281518110610b6f57610b6f611559565b60200260200101818152505081811015610baf5760018b8281518110610b9757610b97611559565b60200260200101818151610bab919061160a565b9052505b610bb88161156f565b9050610b1c565b5050505050505050505b9450945094915050565b7f38ba4d920474025bc119851d51630794ab25dc91b5f613afc3c0e85f09fdc10090565b815460009081816005811115610c56576000610c1284610dca565b610c1c908561161d565b60008881526020902090915081015465ffffffffffff9081169087161015610c4657809150610c54565b610c5181600161160a565b92505b505b6000610c6487878585610eb2565b90508015610c9f57610c8987610c7b60018461161d565b600091825260209091200190565b54600160301b90046001600160d01b0316610ca2565b60005b979650505050505050565b604051633ae4067560e21b81526001600160a01b03838116600483015260248201839052600091829182919087169063eb9019d490604401602060405180830381865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2691906114e3565b92505050670de0b6b3a76400008110155b935093915050565b60006001600160d01b03821115610d73576040516306dfcc6560e41b815260d0600482015260248101839052604401610358565b5090565b600080610d85858585610f14565b91509150935093915050565b80546000908015610dc157610dab83610c7b60018461161d565b54600160301b90046001600160d01b031661018b565b60009392505050565b600081600003610ddc57506000919050565b60006001610de98461108e565b901c6001901b90506001818481610e0257610e026115cc565b048201901c90506001818481610e1a57610e1a6115cc565b048201901c90506001818481610e3257610e326115cc565b048201901c90506001818481610e4a57610e4a6115cc565b048201901c90506001818481610e6257610e626115cc565b048201901c90506001818481610e7a57610e7a6115cc565b048201901c90506001818481610e9257610e926115cc565b048201901c905061018b81828581610eac57610eac6115cc565b04611122565b60005b81831015610f0c576000610ec98484611138565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115610ef857809250610f06565b610f0381600161160a565b93505b50610eb5565b509392505050565b825460009081908015611033576000610f3287610c7b60018561161d565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015610f8657604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603610fd25784610fa988610c7b60018661161d565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055611023565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b602001519250839150610d379050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610d37565b600080608083901c156110a357608092831c92015b604083901c156110b557604092831c92015b602083901c156110c757602092831c92015b601083901c156110d957601092831c92015b600883901c156110eb57600892831c92015b600483901c156110fd57600492831c92015b600283901c1561110f57600292831c92015b600183901c156101d25760010192915050565b6000818310611131578161018b565b5090919050565b600061114760028484186115e2565b61018b9084841661160a565b508054600082559060005260206000209081019061117191906111b7565b50565b8280548282559060005260206000209081019282156111af579160200282015b828111156111af578251825591602001919060010190611194565b50610d739291505b5b80821115610d7357600081556001016111b8565b803565ffffffffffff811681146111e257600080fd5b919050565b6000602082840312156111f957600080fd5b61018b826111cc565b80356001600160a01b03811681146111e257600080fd5b6000806040838503121561122c57600080fd5b61123583611202565b9150611243602084016111cc565b90509250929050565b60008060006060848603121561126157600080fd5b61126a84611202565b925061127860208501611202565b9150611286604085016111cc565b90509250925092565b6000602082840312156112a157600080fd5b61018b82611202565b600081518084526020808501945080840160005b838110156112da578151875295820195908201906001016112be565b509495945050505050565b60208152600061018b60208301846112aa565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261131f57600080fd5b813560206001600160401b038083111561133b5761133b6112f8565b8260051b604051601f19603f83011681018181108482111715611360576113606112f8565b60405293845285810183019383810192508785111561137e57600080fd5b83870191505b84821015610ca257813583529183019190830190611384565b6000806000606084860312156113b257600080fd5b6113bb84611202565b92506113c960208501611202565b915060408401356001600160401b038111156113e457600080fd5b6113f08682870161130e565b9150509250925092565b6000806000806080858703121561141057600080fd5b61141985611202565b935061142760208601611202565b92506040850135915060608501356001600160401b0381111561144957600080fd5b6114558782880161130e565b91505092959194509250565b60608152600061147460608301866112aa565b82810360208481019190915285518083528682019282019060005b818110156114ab5784518352938301939183019160010161148f565b5050809350505050826040830152949350505050565b6000602082840312156114d357600080fd5b8151801515811461018b57600080fd5b6000602082840312156114f557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6001600160d01b03828116828216039080821115611532576115326114fc565b5092915050565b6001600160d01b03818116838216019080821115611532576115326114fc565b634e487b7160e01b600052603260045260246000fd5b600060018201611581576115816114fc565b5060010190565b6020808252825182820181905260009190848201906040850190845b818110156115c0578351835292840192918401916001016115a4565b50909695505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826115f1576115f16115cc565b500490565b600082611605576116056115cc565b500690565b808201808211156101d2576101d26114fc565b818103818111156101d2576101d26114fc56fea2646970667358221220906ddb4bdce36e4a21e0a23bc2d843b6fae4cd6ca9e162e22543b8ac6dec788f64736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
