Contract Overview
Balance:
0 MOVR
MOVR Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
UserData
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity Multiple files format)
//SPDX-License-Identifier: Apache 2.0 pragma solidity ^0.8.13; import "./AdminAccessible.sol"; import "./LandSaleCore.sol"; contract UserData is AdminAccesible, LandSaleCore { event CreditsSpent(address indexed user, uint common, uint rare, uint epic, uint premium); event DiscountsSpent(address indexed user, uint256[] singleDiscountIndexes, uint256[] multiDiscountIndexes); struct UserWhiteList { bool phase1; bool phase2; bool phase3; } struct Discount { uint128 discount; bool forCyberBiome; bool forSteampunkBiome; bool forWindBiome; bool forVolcanoBiome; bool forFireBiome; bool forWaterBiome; bool forNecroBiome; bool forMechaBiome; bool forDragonBiome; bool forMeadowBiome; bool forShore; bool forIsland; bool forMountainFoot; bool forAll; } struct UserDiscounts { Discount[] single; Discount[] multi; } //getter composition struct UserDataIntake { uint256 commonCredits; uint256 rareCredits; uint256 epicCredits; uint256 premiumCredits; Discount[] singleDiscounts; Discount[] multiDiscounts; bool whiteListPhase1; bool whiteListPhase2; bool whiteListPhase3; } // Credits mapping(address => mapping(Rarity => uint256)) private _userCredits; // Whitelist address private _landSaleAddress; uint256 private _lastUpdate; mapping(address => UserWhiteList) private _userWL; // Discounts mapping(address => Discount[]) private _userDiscountsSingle; mapping(address => Discount[]) private _userDiscountsMulti; modifier onlyLandsale { require(_landSaleAddress == msg.sender, "Forbidden"); _; } function checkWhitelist(address user, uint256 whiteListPhase) external view { if (whiteListPhase == 0) { revert("Sale not open"); } else if (whiteListPhase == 1) { require( _userWL[user].phase1, "Kokopelli: Not whitelisted" ); } else if (whiteListPhase == 2) { require( _userWL[user].phase1 || _userWL[user].phase2, "Kanaria: Not whitelisted" ); } else if (whiteListPhase == 3) { require( _userWL[user].phase1 || _userWL[user].phase2 || _userWL[user].phase3, "WL: Not whitelisted"); } // 4 is public, 5 is dutch, they require no whitelist } // LandSale function setLandSaleAddress(address landSaleAddress) external onlyOwnerOrAdmin { _landSaleAddress = landSaleAddress; } function getLandSaleAddress() external view returns(address) { return _landSaleAddress; } // Credits function setUserCredits(address user, uint256 commonCredits, uint256 rareCredits, uint256 epicCredits, uint256 premiumCredits) external onlyOwnerOrAdmin { _setUserCredits(user, commonCredits, rareCredits, epicCredits, premiumCredits); _setLastUpdate(); } function setUserCreditsBatch( address[] calldata users, uint256[] calldata commonCredits, uint256[] calldata rareCredits, uint256[] calldata epicCredits, uint256[] calldata premiumCredits ) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == commonCredits.length && numUsers == rareCredits.length && numUsers == epicCredits.length && numUsers == premiumCredits.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { _setUserCredits(users[i], commonCredits[i], rareCredits[i], epicCredits[i], premiumCredits[i]); unchecked { ++i; } } _setLastUpdate(); } function _setUserCredits(address user, uint256 commonCredits, uint256 rareCredits, uint256 epicCredits, uint256 premiumCredits) private { _userCredits[user][Rarity.Common] = commonCredits; _userCredits[user][Rarity.Rare] = rareCredits; _userCredits[user][Rarity.Epic] = epicCredits; _userCredits[user][Rarity.Premium] = premiumCredits; } function addUserCredits(address user, uint256 commonCredits, uint256 rareCredits, uint256 epicCredits, uint256 premiumCredits) external onlyOwnerOrAdmin { _addUserCredits(user, commonCredits, rareCredits, epicCredits, premiumCredits); _setLastUpdate(); } function addUserCreditsBatch( address[] calldata users, uint256[] calldata commonCredits, uint256[] calldata rareCredits, uint256[] calldata epicCredits, uint256[] calldata premiumCredits ) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == commonCredits.length && numUsers == rareCredits.length && numUsers == epicCredits.length && numUsers == premiumCredits.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { _addUserCredits(users[i], commonCredits[i], rareCredits[i], epicCredits[i], premiumCredits[i]); unchecked { ++i; } } _setLastUpdate(); } function _addUserCredits(address user, uint256 commonCredits, uint256 rareCredits, uint256 epicCredits, uint256 premiumCredits) internal { _userCredits[user][Rarity.Common] += commonCredits; _userCredits[user][Rarity.Rare] += rareCredits; _userCredits[user][Rarity.Epic] += epicCredits; _userCredits[user][Rarity.Premium] += premiumCredits; } function removeAllUserCredits(address user) external onlyOwnerOrAdmin { delete _userCredits[user][Rarity.Common]; delete _userCredits[user][Rarity.Rare]; delete _userCredits[user][Rarity.Epic]; delete _userCredits[user][Rarity.Premium]; } function getUserCreditData(address user) external view returns (UserCredits memory userCreditData) { userCreditData = UserCredits ({ commonCredits: _userCredits[user][Rarity.Common], rareCredits: _userCredits[user][Rarity.Rare], epicCredits: _userCredits[user][Rarity.Epic], premiumCredits: _userCredits[user][Rarity.Premium] }); } function getUserCreditsForRarity(address user, Rarity rarity) external view returns (uint256) { return _userCredits[user][rarity]; } function spendCredits(address user, uint common, uint rare, uint epic, uint premium) external onlyLandsale { require(_userCredits[user][Rarity.Common] >= common, "Not enough common credits"); require(_userCredits[user][Rarity.Rare] >= rare, "Not enough rare credits"); require(_userCredits[user][Rarity.Epic] >= epic, "Not enough epic credits"); require(_userCredits[user][Rarity.Premium] >= premium, "Not enough premium credits"); _userCredits[user][Rarity.Common] -= common; _userCredits[user][Rarity.Rare] -= rare; _userCredits[user][Rarity.Epic] -= epic; _userCredits[user][Rarity.Premium] -= premium; emit CreditsSpent(user, common, rare, epic, premium); } function setUserWhitelist(address user, bool phase1, bool phase2, bool phase3) external onlyOwnerOrAdmin { _setUserWhitelist(user, phase1, phase2, phase3); _setLastUpdate(); } function setUserWhitelistBatch( address[] calldata users, bool[] calldata phase1, bool[] calldata phase2, bool[] calldata phase3 ) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == phase1.length && numUsers == phase2.length && numUsers == phase3.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { _setUserWhitelist(users[i], phase1[i], phase2[i], phase3[i]); unchecked { ++i; } } _setLastUpdate(); } // Specific function to save gas since we expect to call this more. function setUserWhitelistBatchPhass3( address[] calldata users, bool[] calldata phase3) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == phase3.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { _userWL[users[i]].phase3 = phase3[i]; unchecked { ++i; } } _setLastUpdate(); } function _setUserWhitelist(address user, bool phase1, bool phase2, bool phase3) private { _userWL[user] = UserWhiteList ({ phase1: phase1, phase2: phase2, phase3: phase3 }); } function removeUserWhitelist(address user) external onlyOwnerOrAdmin { delete _userWL[user]; } function getUserWhitelistStatus(address user) external view returns(UserWhiteList memory userWhitelistData) { userWhitelistData = _userWL[user]; } // Discounts function setUserDiscounts(address user, Discount[] calldata singleDiscounts, Discount[] calldata multiDiscounts) external onlyOwnerOrAdmin { _setUserDiscounts(user, singleDiscounts, multiDiscounts); _setLastUpdate(); } function setUserDiscountsBatch( address[] calldata users, Discount[][] calldata singleDiscounts, Discount[][] calldata multiDiscounts ) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == singleDiscounts.length && numUsers == multiDiscounts.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { _setUserDiscounts(users[i], singleDiscounts[i], multiDiscounts[i]); unchecked { ++i; } } _setLastUpdate(); } function _setUserDiscounts(address user, Discount[] calldata singleDiscounts, Discount[] calldata multiDiscounts) private { delete _userDiscountsSingle[user]; delete _userDiscountsMulti[user]; _addUserDiscounts(_userDiscountsSingle[user], singleDiscounts); _addUserDiscounts(_userDiscountsMulti[user], multiDiscounts); } function _addUserDiscounts(Discount[] storage localDiscounts, Discount[] calldata newDiscounts) internal { uint numDiscounts = newDiscounts.length; for(uint i; i<numDiscounts;) { localDiscounts.push(newDiscounts[i]); unchecked { ++i; } } } function addUserDiscounts(address user, Discount[] calldata singleDiscounts, Discount[] calldata multiDiscounts) external onlyOwnerOrAdmin { _addUserDiscounts(_userDiscountsSingle[user], singleDiscounts); _addUserDiscounts(_userDiscountsMulti[user], multiDiscounts); _setLastUpdate(); } function addUserDiscountsBatch( address[] calldata users, Discount[][] calldata singleDiscounts, Discount[][] calldata multiDiscounts ) external onlyOwnerOrAdmin { uint numUsers = users.length; require(numUsers == singleDiscounts.length && numUsers == multiDiscounts.length, "Arrays must have the same length"); for (uint i; i<numUsers;) { address user = users[i]; _addUserDiscounts(_userDiscountsSingle[user], singleDiscounts[i]); _addUserDiscounts(_userDiscountsMulti[user], multiDiscounts[i]); unchecked { ++i; } } _setLastUpdate(); } function removeAllUserDiscoutns(address user) external onlyOwnerOrAdmin { delete _userDiscountsSingle[user]; delete _userDiscountsMulti[user]; } function getUserDiscountData(address user) external view returns (UserDiscounts memory userDiscountData) { userDiscountData = UserDiscounts ({ single: _userDiscountsSingle[user], multi: _userDiscountsMulti[user] }); } function loadDiscounts(address user, uint256[] calldata singleDiscountIndexes, uint256[] calldata multiDiscountIndexes) external view returns (Discount[] memory) { uint numSingleDiscounts = singleDiscountIndexes.length; uint numMultiDiscounts = multiDiscountIndexes.length; Discount[] memory discounts = new Discount[](numSingleDiscounts + numMultiDiscounts); if (numSingleDiscounts > 0) { for (uint i; i<numSingleDiscounts;) { require(singleDiscountIndexes[i] < _userDiscountsSingle[user].length, "Bad single discount index"); discounts[i] = _userDiscountsSingle[user][singleDiscountIndexes[i]]; unchecked { ++i; } } } if (numMultiDiscounts > 0) { for (uint i; i<numMultiDiscounts;) { require(multiDiscountIndexes[i] < _userDiscountsMulti[user].length, "Bad multi discount index"); // Mind to start from after the last index for single discounts discounts[numSingleDiscounts + i] = _userDiscountsMulti[user][multiDiscountIndexes[i]]; unchecked { ++i; } } } return discounts; } function spendDiscounts(address user, uint256[] calldata singleDiscountIndexes, uint256[] calldata multiDiscountIndexes) external onlyLandsale { _removeDiscountsByIndex(_userDiscountsSingle[user], singleDiscountIndexes); _removeDiscountsByIndex(_userDiscountsMulti[user], multiDiscountIndexes); if (singleDiscountIndexes.length > 0 || multiDiscountIndexes.length > 0) { emit DiscountsSpent(user, singleDiscountIndexes, multiDiscountIndexes); } } function _removeDiscountsByIndex(Discount[] storage array, uint256[] calldata indexes) internal { uint numDiscounts = indexes.length; if (numDiscounts == 0) { return; } // Since we move the last element to a lower position on deletion // We may save gas by deleting higher indexes first, so we go last to first // and enforce order using lastIndex variable. uint lastIndex = indexes[numDiscounts - 1]; for (uint i; i<numDiscounts;) { uint index = indexes[numDiscounts - i - 1]; uint arrayLen = array.length; require(index <= lastIndex, "Discount indexes must be ordered"); // This condition should be unreachable, since discounts were already loaded. require(index < arrayLen, "Bad array index"); if (index != arrayLen - 1) { array[index] = array[arrayLen - 1]; } array.pop(); lastIndex = index; unchecked { ++i; } } } // All in one function getUserData(address user) external view returns (UserDataIntake memory userData) { UserWhiteList memory userWhitelist = _userWL[user]; userData = UserDataIntake ({ commonCredits: _userCredits[user][Rarity.Common], rareCredits: _userCredits[user][Rarity.Rare], epicCredits: _userCredits[user][Rarity.Epic], premiumCredits: _userCredits[user][Rarity.Premium], singleDiscounts: _userDiscountsSingle[user], multiDiscounts: _userDiscountsMulti[user], whiteListPhase1: userWhitelist.phase1, whiteListPhase2: userWhitelist.phase2, whiteListPhase3: userWhitelist.phase3 }); } function setUserData(address user, UserDataIntake calldata intakeData) external onlyOwnerOrAdmin { _setUserWhitelist(user, intakeData.whiteListPhase1, intakeData.whiteListPhase2, intakeData.whiteListPhase3); _setUserCredits(user, intakeData.commonCredits, intakeData.rareCredits, intakeData.epicCredits, intakeData.premiumCredits); _setUserDiscounts(user, intakeData.singleDiscounts, intakeData.multiDiscounts); _setLastUpdate(); } function setUserDataBatch(address[] calldata users, UserDataIntake[] calldata intakeData) external onlyOwnerOrAdmin { uint256 len = users.length; require(len == intakeData.length, "Arrays must have the same length"); for(uint i; i<len;) { _setUserWhitelist(users[i], intakeData[i].whiteListPhase1, intakeData[i].whiteListPhase2, intakeData[i].whiteListPhase3); _setUserCredits(users[i], intakeData[i].commonCredits, intakeData[i].rareCredits, intakeData[i].epicCredits, intakeData[i].premiumCredits); _setUserDiscounts(users[i], intakeData[i].singleDiscounts, intakeData[i].multiDiscounts); unchecked { ++i; } } _setLastUpdate(); } // Last Update function _setLastUpdate() private { _lastUpdate = block.timestamp; } function getLastUpdate() external view returns (uint256) { return _lastUpdate; } }
//SPDX-License-Identifier: Apache 2.0 pragma solidity ^0.8.13; contract AdminAccesible { address private _owner; // int as value is cheaper than boolean: mapping(address => uint) private _admins; modifier onlyOwner { require(msg.sender == _owner, "User is not owner."); _; } modifier onlyOwnerOrAdmin { require(msg.sender == _owner || isAdmin(msg.sender), "User is not owner or admin."); _; } constructor () { _owner = msg.sender; } function addAdmin(address admin) external onlyOwner { require(admin != address(0), "Admin cannot be the zero address"); _admins[admin] = 1; } function revokeAdmin(address admin) external onlyOwner { delete _admins[admin]; } function isAdmin(address admin) public view returns (bool) { return _admins[admin] == 1; } function transferOwnership(address newOwner) external onlyOwner { require(newOwner != address(0), "Owner cannot be the zero address"); _owner = newOwner; } function getOwner() external view returns(address) { return _owner; } }
//SPDX-License-Identifier: Apache 2.0 pragma solidity ^0.8.13; contract LandSaleCore { enum Rarity { None, Common, Rare, Epic, Harb, Premium } enum Entropy { None, Seldom, Infrequent, Uncommon, Common, Frequent, Constant } struct UserCredits { uint256 commonCredits; uint256 rareCredits; uint256 epicCredits; uint256 premiumCredits; } }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"common","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"epic","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premium","type":"uint256"}],"name":"CreditsSpent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"singleDiscountIndexes","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"multiDiscountIndexes","type":"uint256[]"}],"name":"DiscountsSpent","type":"event"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"}],"name":"addUserCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256[]","name":"commonCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"rareCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"epicCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"premiumCredits","type":"uint256[]"}],"name":"addUserCreditsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"singleDiscounts","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multiDiscounts","type":"tuple[]"}],"name":"addUserDiscounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[][]","name":"singleDiscounts","type":"tuple[][]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[][]","name":"multiDiscounts","type":"tuple[][]"}],"name":"addUserDiscountsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"whiteListPhase","type":"uint256"}],"name":"checkWhitelist","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLandSaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserCreditData","outputs":[{"components":[{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"}],"internalType":"struct LandSaleCore.UserCredits","name":"userCreditData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"enum LandSaleCore.Rarity","name":"rarity","type":"uint8"}],"name":"getUserCreditsForRarity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserData","outputs":[{"components":[{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"singleDiscounts","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multiDiscounts","type":"tuple[]"},{"internalType":"bool","name":"whiteListPhase1","type":"bool"},{"internalType":"bool","name":"whiteListPhase2","type":"bool"},{"internalType":"bool","name":"whiteListPhase3","type":"bool"}],"internalType":"struct UserData.UserDataIntake","name":"userData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserDiscountData","outputs":[{"components":[{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"single","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multi","type":"tuple[]"}],"internalType":"struct UserData.UserDiscounts","name":"userDiscountData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserWhitelistStatus","outputs":[{"components":[{"internalType":"bool","name":"phase1","type":"bool"},{"internalType":"bool","name":"phase2","type":"bool"},{"internalType":"bool","name":"phase3","type":"bool"}],"internalType":"struct UserData.UserWhiteList","name":"userWhitelistData","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256[]","name":"singleDiscountIndexes","type":"uint256[]"},{"internalType":"uint256[]","name":"multiDiscountIndexes","type":"uint256[]"}],"name":"loadDiscounts","outputs":[{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeAllUserCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeAllUserDiscoutns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeUserWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"revokeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"landSaleAddress","type":"address"}],"name":"setLandSaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"}],"name":"setUserCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256[]","name":"commonCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"rareCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"epicCredits","type":"uint256[]"},{"internalType":"uint256[]","name":"premiumCredits","type":"uint256[]"}],"name":"setUserCreditsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"singleDiscounts","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multiDiscounts","type":"tuple[]"},{"internalType":"bool","name":"whiteListPhase1","type":"bool"},{"internalType":"bool","name":"whiteListPhase2","type":"bool"},{"internalType":"bool","name":"whiteListPhase3","type":"bool"}],"internalType":"struct UserData.UserDataIntake","name":"intakeData","type":"tuple"}],"name":"setUserData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"components":[{"internalType":"uint256","name":"commonCredits","type":"uint256"},{"internalType":"uint256","name":"rareCredits","type":"uint256"},{"internalType":"uint256","name":"epicCredits","type":"uint256"},{"internalType":"uint256","name":"premiumCredits","type":"uint256"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"singleDiscounts","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multiDiscounts","type":"tuple[]"},{"internalType":"bool","name":"whiteListPhase1","type":"bool"},{"internalType":"bool","name":"whiteListPhase2","type":"bool"},{"internalType":"bool","name":"whiteListPhase3","type":"bool"}],"internalType":"struct UserData.UserDataIntake[]","name":"intakeData","type":"tuple[]"}],"name":"setUserDataBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"singleDiscounts","type":"tuple[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[]","name":"multiDiscounts","type":"tuple[]"}],"name":"setUserDiscounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[][]","name":"singleDiscounts","type":"tuple[][]"},{"components":[{"internalType":"uint128","name":"discount","type":"uint128"},{"internalType":"bool","name":"forCyberBiome","type":"bool"},{"internalType":"bool","name":"forSteampunkBiome","type":"bool"},{"internalType":"bool","name":"forWindBiome","type":"bool"},{"internalType":"bool","name":"forVolcanoBiome","type":"bool"},{"internalType":"bool","name":"forFireBiome","type":"bool"},{"internalType":"bool","name":"forWaterBiome","type":"bool"},{"internalType":"bool","name":"forNecroBiome","type":"bool"},{"internalType":"bool","name":"forMechaBiome","type":"bool"},{"internalType":"bool","name":"forDragonBiome","type":"bool"},{"internalType":"bool","name":"forMeadowBiome","type":"bool"},{"internalType":"bool","name":"forShore","type":"bool"},{"internalType":"bool","name":"forIsland","type":"bool"},{"internalType":"bool","name":"forMountainFoot","type":"bool"},{"internalType":"bool","name":"forAll","type":"bool"}],"internalType":"struct UserData.Discount[][]","name":"multiDiscounts","type":"tuple[][]"}],"name":"setUserDiscountsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"phase1","type":"bool"},{"internalType":"bool","name":"phase2","type":"bool"},{"internalType":"bool","name":"phase3","type":"bool"}],"name":"setUserWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool[]","name":"phase1","type":"bool[]"},{"internalType":"bool[]","name":"phase2","type":"bool[]"},{"internalType":"bool[]","name":"phase3","type":"bool[]"}],"name":"setUserWhitelistBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool[]","name":"phase3","type":"bool[]"}],"name":"setUserWhitelistBatchPhass3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"common","type":"uint256"},{"internalType":"uint256","name":"rare","type":"uint256"},{"internalType":"uint256","name":"epic","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"}],"name":"spendCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256[]","name":"singleDiscountIndexes","type":"uint256[]"},{"internalType":"uint256[]","name":"multiDiscountIndexes","type":"uint256[]"}],"name":"spendDiscounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b03191633179055613b2b806100326000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063c66b6047116100ad578063e9de47371161007c578063e9de473714610513578063f2fde38b14610526578063f7f6073e14610539578063ff6cb97b1461054c578063ffc9896b1461055f57600080fd5b8063c66b6047146104c7578063c96c5f7c146104da578063d088070a146104ed578063e57f1bf91461050057600080fd5b8063a09563da116100e9578063a09563da146103c0578063a25c8a9d14610406578063b9863a4414610419578063c113e8ed146104b457600080fd5b8063893d20e81461036957806393a198611461037a57806395527e641461039a5780639dfe4deb146103ad57600080fd5b80635216655d1161019257806373971ffb1161016157806373971ffb1461031d5780637498d1081461033057806377d84a47146103435780638856094d1461035657600080fd5b80635216655d146102d157806352a47b76146102e457806352dc3363146102f7578063704802751461030a57600080fd5b80632bffd8f8116101ce5780632bffd8f8146102745780632d345670146102875780634acd770a1461029a5780634c89867f146102bf57600080fd5b8063036954ed1461020057806315b6e8ab14610215578063171c5d9c1461023e57806324d7806c14610251575b600080fd5b61021361020e366004612dd9565b61057f565b005b610228610223366004612e67565b6108d7565b6040516102359190612fe6565b60405180910390f35b61021361024c36600461302f565b610ddc565b61026461025f36600461302f565b610e38565b6040519015158152602001610235565b610213610282366004613097565b610e57565b61021361029536600461302f565b610ead565b6003546001600160a01b03165b6040516001600160a01b039091168152602001610235565b6004545b604051908152602001610235565b6102136102df366004613107565b610ef1565b6102136102f2366004612e67565b611028565b610213610305366004612dd9565b611105565b61021361031836600461302f565b61114b565b61021361032b3660046131f8565b6111e8565b61021361033e36600461302f565b61148e565b61021361035136600461302f565b61150a565b610213610364366004613264565b611565565b6000546001600160a01b03166102a7565b61038d61038836600461302f565b61161a565b60405161023591906132fa565b6102136103a8366004613107565b6118fa565b6102136103bb36600461334a565b611a1a565b6103d36103ce36600461302f565b611a6e565b60405161023591908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b6102136104143660046133a4565b611af8565b61048c61042736600461302f565b6040805160608082018352600080835260208084018290529284018190526001600160a01b039490941684526005825292829020825193840183525460ff80821615158552610100820481161515928501929092526201000090041615159082015290565b6040805182511515815260208084015115159082015291810151151590820152606001610235565b6102136104c2366004612dd9565b611c22565b6102136104d53660046133a4565b611c68565b6102136104e8366004613097565b611d51565b6102136104fb36600461343e565b611dd0565b61021361050e3660046131f8565b611fcf565b610213610521366004613468565b6120be565b61021361053436600461302f565b6121f4565b6102c361054736600461352c565b612296565b61021361055a36600461302f565b6122e9565b61057261056d36600461302f565b612367565b604051610235919061355c565b6003546001600160a01b031633146105ca5760405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b60448201526064015b60405180910390fd5b6001600160a01b03851660009081526002602090815260408083206001845290915290205484111561063e5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820636f6d6d6f6e20637265646974730000000000000060448201526064016105c1565b6001600160a01b03851660009081526002602081815260408084209284529190529020548311156106b15760405162461bcd60e51b815260206004820152601760248201527f4e6f7420656e6f7567682072617265206372656469747300000000000000000060448201526064016105c1565b6001600160a01b0385166000908152600260209081526040808320600384529091529020548211156107255760405162461bcd60e51b815260206004820152601760248201527f4e6f7420656e6f7567682065706963206372656469747300000000000000000060448201526064016105c1565b6001600160a01b0385166000908152600260209081526040808320600584529091529020548111156107995760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420656e6f756768207072656d69756d206372656469747300000000000060448201526064016105c1565b6001600160a01b038516600090815260026020908152604080832060018452909152812080548692906107cd90849061362a565b90915550506001600160a01b03851660009081526002602081815260408084209284529190528120805485929061080590849061362a565b90915550506001600160a01b0385166000908152600260209081526040808320600384529091528120805484929061083e90849061362a565b90915550506001600160a01b0385166000908152600260209081526040808320600584529091528120805483929061087790849061362a565b90915550506040805185815260208101859052908101839052606081018290526001600160a01b038616907f2b027c92af51f684f8f32d81528135b3fc9de472e7ee1e7c1ef2069342061cae906080015b60405180910390a25050505050565b6060838260006108e78284613641565b67ffffffffffffffff8111156108ff576108ff613659565b6040519080825280602002602001820160405280156109a657816020015b604080516101e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082018190526101c0820152825260001990920191018161091d5790505b5090508215610bb95760005b83811015610bb7576001600160a01b038a166000908152600660205260409020548989838181106109e5576109e561366f565b9050602002013510610a395760405162461bcd60e51b815260206004820152601960248201527f4261642073696e676c6520646973636f756e7420696e6465780000000000000060448201526064016105c1565b6001600160a01b038a166000908152600660205260409020898983818110610a6357610a6361366f565b9050602002013581548110610a7a57610a7a61366f565b6000918252602091829020604080516101e08101825291909201546001600160801b038116825260ff600160801b82048116151594830194909452600160881b81048416151592820192909252600160901b8204831615156060820152600160981b8204831615156080820152600160a01b82048316151560a0820152600160a81b82048316151560c0820152600160b01b82048316151560e0820152600160b81b820483161515610100820152600160c01b820483161515610120820152600160c81b820483161515610140820152600160d01b820483161515610160820152600160d81b820483161515610180820152600160e01b8204831615156101a0820152600160e81b90910490911615156101c08201528251839083908110610ba457610ba461366f565b60209081029190910101526001016109b2565b505b8115610dd05760005b82811015610dce576001600160a01b038a16600090815260076020526040902054878783818110610bf557610bf561366f565b9050602002013510610c495760405162461bcd60e51b815260206004820152601860248201527f426164206d756c746920646973636f756e7420696e646578000000000000000060448201526064016105c1565b6001600160a01b038a166000908152600760205260409020878783818110610c7357610c7361366f565b9050602002013581548110610c8a57610c8a61366f565b6000918252602091829020604080516101e08101825291909201546001600160801b038116825260ff600160801b82048116151594830194909452600160881b81048416151592820192909252600160901b8204831615156060820152600160981b8204831615156080820152600160a01b82048316151560a0820152600160a81b82048316151560c0820152600160b01b82048316151560e0820152600160b81b820483161515610100820152600160c01b820483161515610120820152600160c81b820483161515610140820152600160d01b820483161515610160820152600160d81b820483161515610180820152600160e01b8204831615156101a0820152600160e81b90910490911615156101c082015282610dab8387613641565b81518110610dbb57610dbb61366f565b6020908102919091010152600101610bc2565b505b98975050505050505050565b6000546001600160a01b0316331480610df95750610df933610e38565b610e155760405162461bcd60e51b81526004016105c190613685565b6001600160a01b03166000908152600560205260409020805462ffffff19169055565b6001600160a01b03166000908152600160208190526040909120541490565b6000546001600160a01b0316331480610e745750610e7433610e38565b610e905760405162461bcd60e51b81526004016105c190613685565b610e9d858585858561273a565b610ea642600455565b5050505050565b6000546001600160a01b03163314610ed75760405162461bcd60e51b81526004016105c1906136bc565b6001600160a01b0316600090815260016020526040812055565b6000546001600160a01b0316331480610f0e5750610f0e33610e38565b610f2a5760405162461bcd60e51b81526004016105c190613685565b888781148015610f3957508086145b8015610f4457508084145b8015610f4f57508082145b610f6b5760405162461bcd60e51b81526004016105c1906136e8565b60005b81811015611011576110098c8c83818110610f8b57610f8b61366f565b9050602002016020810190610fa0919061302f565b8b8b84818110610fb257610fb261366f565b905060200201358a8a85818110610fcb57610fcb61366f565b90506020020135898986818110610fe457610fe461366f565b90506020020135888887818110610ffd57610ffd61366f565b905060200201356127c2565b600101610f6e565b5061101b42600455565b5050505050505050505050565b6003546001600160a01b0316331461106e5760405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b60448201526064016105c1565b6001600160a01b03851660009081526006602052604090206110919085856128ac565b6001600160a01b03851660009081526007602052604090206110b49083836128ac565b821515806110c157508015155b15610ea657846001600160a01b03167fc0aff9a6f31bdb42dd0dea60c12121c8d5bb356f4d0d0c4ab79e721460f43975858585856040516108c89493929190613753565b6000546001600160a01b0316331480611122575061112233610e38565b61113e5760405162461bcd60e51b81526004016105c190613685565b610e9d85858585856127c2565b6000546001600160a01b031633146111755760405162461bcd60e51b81526004016105c1906136bc565b6001600160a01b0381166111cb5760405162461bcd60e51b815260206004820181905260248201527f41646d696e2063616e6e6f7420626520746865207a65726f206164647265737360448201526064016105c1565b6001600160a01b0316600090815260016020819052604090912055565b6000546001600160a01b0316331480611205575061120533610e38565b6112215760405162461bcd60e51b81526004016105c190613685565b828181146112415760405162461bcd60e51b81526004016105c1906136e8565b60005b818110156114845761131d8686838181106112615761126161366f565b9050602002016020810190611276919061302f565b8585848181106112885761128861366f565b905060200281019061129a9190613785565b6112ab9060e081019060c0016137a6565b8686858181106112bd576112bd61366f565b90506020028101906112cf9190613785565b6112e19061010081019060e0016137a6565b8787868181106112f3576112f361366f565b90506020028101906113059190613785565b61131890610120810190610100016137a6565b612c6e565b6113e98686838181106113325761133261366f565b9050602002016020810190611347919061302f565b8585848181106113595761135961366f565b905060200281019061136b9190613785565b3586868581811061137e5761137e61366f565b90506020028101906113909190613785565b602001358787868181106113a6576113a661366f565b90506020028101906113b89190613785565b604001358888878181106113ce576113ce61366f565b90506020028101906113e09190613785565b60600135612ce7565b61147c8686838181106113fe576113fe61366f565b9050602002016020810190611413919061302f565b8585848181106114255761142561366f565b90506020028101906114379190613785565b6114459060808101906137c3565b8787868181106114575761145761366f565b90506020028101906114699190613785565b6114779060a08101906137c3565b61273a565b600101611244565b50610ea642600455565b6000546001600160a01b03163314806114ab57506114ab33610e38565b6114c75760405162461bcd60e51b81526004016105c190613685565b6001600160a01b03166000908152600260208181526040808420600185529091528083208390559082528082208290556003825280822082905560058252812055565b6000546001600160a01b0316331480611527575061152733610e38565b6115435760405162461bcd60e51b81526004016105c190613685565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480611582575061158233610e38565b61159e5760405162461bcd60e51b81526004016105c190613685565b6115d5826115b260e0840160c085016137a6565b6115c3610100850160e086016137a6565b611318610120860161010087016137a6565b6115ef828235602084013560408501356060860135612ce7565b61160d8261160060808401846137c3565b61147760a08601866137c3565b61161642600455565b5050565b6040805180820182526060808252602080830182905283516001600160a01b03861660009081526006835285812080549384028301850187529582018381529495919485949093919085015b8282101561178b576000848152602090819020604080516101e081018252918501546001600160801b038116835260ff600160801b82048116151584860152600160881b82048116151592840192909252600160901b8104821615156060840152600160981b8104821615156080840152600160a01b81048216151560a0840152600160a81b81048216151560c0840152600160b01b81048216151560e0840152600160b81b810482161515610100840152600160c01b810482161515610120840152600160c81b810482161515610140840152600160d01b810482161515610160840152600160d81b810482161515610180840152600160e01b8104821615156101a0840152600160e81b90041615156101c0820152825260019092019101611666565b505050908252506001600160a01b03841660009081526007602090815260408083208054825181850281018501909352808352948301949193909284015b828210156118ee576000848152602090819020604080516101e081018252918501546001600160801b038116835260ff600160801b82048116151584860152600160881b82048116151592840192909252600160901b8104821615156060840152600160981b8104821615156080840152600160a01b81048216151560a0840152600160a81b81048216151560c0840152600160b01b81048216151560e0840152600160b81b810482161515610100840152600160c01b810482161515610120840152600160c81b810482161515610140840152600160d01b810482161515610160840152600160d81b810482161515610180840152600160e01b8104821615156101a0840152600160e81b90041615156101c08201528252600190920191016117c9565b50505091525092915050565b6000546001600160a01b0316331480611917575061191733610e38565b6119335760405162461bcd60e51b81526004016105c190613685565b88878114801561194257508086145b801561194d57508084145b801561195857508082145b6119745760405162461bcd60e51b81526004016105c1906136e8565b60005b8181101561101157611a128c8c838181106119945761199461366f565b90506020020160208101906119a9919061302f565b8b8b848181106119bb576119bb61366f565b905060200201358a8a858181106119d4576119d461366f565b905060200201358989868181106119ed576119ed61366f565b90506020020135888887818110611a0657611a0661366f565b90506020020135612ce7565b600101611977565b6000546001600160a01b0316331480611a375750611a3733610e38565b611a535760405162461bcd60e51b81526004016105c190613685565b611a5f84848484612c6e565b611a6842600455565b50505050565b611a996040518060800160405280600081526020016000815260200160008152602001600081525090565b50604080516080810182526001600160a01b039290921660009081526002602081815283832060018452808252848420548652918352818152838320548186015260038352818152838320548585015260058352522054606082015290565b6000546001600160a01b0316331480611b155750611b1533610e38565b611b315760405162461bcd60e51b81526004016105c190613685565b848381148015611b4057508082145b611b5c5760405162461bcd60e51b81526004016105c1906136e8565b60005b81811015611c0f576000888883818110611b7b57611b7b61366f565b9050602002016020810190611b90919061302f565b6001600160a01b0381166000908152600660205260409020909150611bd890888885818110611bc157611bc161366f565b9050602002810190611bd391906137c3565b612d2b565b6001600160a01b0381166000908152600760205260409020611c0690868685818110611bc157611bc161366f565b50600101611b5f565b50611c1942600455565b50505050505050565b6000546001600160a01b0316331480611c3f5750611c3f33610e38565b611c5b5760405162461bcd60e51b81526004016105c190613685565b610e9d8585858585612ce7565b6000546001600160a01b0316331480611c855750611c8533610e38565b611ca15760405162461bcd60e51b81526004016105c190613685565b848381148015611cb057508082145b611ccc5760405162461bcd60e51b81526004016105c1906136e8565b60005b81811015611c0f57611d49888883818110611cec57611cec61366f565b9050602002016020810190611d01919061302f565b878784818110611d1357611d1361366f565b9050602002810190611d2591906137c3565b878786818110611d3757611d3761366f565b905060200281019061147791906137c3565b600101611ccf565b6000546001600160a01b0316331480611d6e5750611d6e33610e38565b611d8a5760405162461bcd60e51b81526004016105c190613685565b6001600160a01b0385166000908152600660205260409020611dad908585612d2b565b6001600160a01b0385166000908152600760205260409020610e9d908383612d2b565b80600003611e105760405162461bcd60e51b815260206004820152600d60248201526c29b0b632903737ba1037b832b760991b60448201526064016105c1565b80600103611e80576001600160a01b03821660009081526005602052604090205460ff166116165760405162461bcd60e51b815260206004820152601a60248201527f4b6f6b6f70656c6c693a204e6f742077686974656c697374656400000000000060448201526064016105c1565b80600203611f18576001600160a01b03821660009081526005602052604090205460ff1680611ecc57506001600160a01b038216600090815260056020526040902054610100900460ff165b6116165760405162461bcd60e51b815260206004820152601860248201527f4b616e617269613a204e6f742077686974656c6973746564000000000000000060448201526064016105c1565b80600303611616576001600160a01b03821660009081526005602052604090205460ff1680611f6457506001600160a01b038216600090815260056020526040902054610100900460ff165b80611f8d57506001600160a01b03821660009081526005602052604090205462010000900460ff165b6116165760405162461bcd60e51b815260206004820152601360248201527215d30e88139bdd081dda1a5d195b1a5cdd1959606a1b60448201526064016105c1565b6000546001600160a01b0316331480611fec5750611fec33610e38565b6120085760405162461bcd60e51b81526004016105c190613685565b828181146120285760405162461bcd60e51b81526004016105c1906136e8565b60005b81811015611484578383828181106120455761204561366f565b905060200201602081019061205a91906137a6565b600560008888858181106120705761207061366f565b9050602002016020810190612085919061302f565b6001600160a01b0316815260208101919091526040016000208054911515620100000262ff00001990921691909117905560010161202b565b6000546001600160a01b03163314806120db57506120db33610e38565b6120f75760405162461bcd60e51b81526004016105c190613685565b86858114801561210657508084145b801561211157508082145b61212d5760405162461bcd60e51b81526004016105c1906136e8565b60005b818110156121df576121d78a8a8381811061214d5761214d61366f565b9050602002016020810190612162919061302f565b8989848181106121745761217461366f565b905060200201602081019061218991906137a6565b88888581811061219b5761219b61366f565b90506020020160208101906121b091906137a6565b8787868181106121c2576121c261366f565b905060200201602081019061131891906137a6565b600101612130565b506121e942600455565b505050505050505050565b6000546001600160a01b0316331461221e5760405162461bcd60e51b81526004016105c1906136bc565b6001600160a01b0381166122745760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420626520746865207a65726f206164647265737360448201526064016105c1565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600260205260408120818360058111156122c1576122c16135fe565b60058111156122d2576122d26135fe565b815260200190815260200160002054905092915050565b6000546001600160a01b0316331480612306575061230633610e38565b6123225760405162461bcd60e51b81526004016105c190613685565b6001600160a01b038116600090815260066020526040812061234391612d81565b6001600160a01b038116600090815260076020526040812061236491612d81565b50565b6123bc6040518061012001604052806000815260200160008152602001600081526020016000815260200160608152602001606081526020016000151581526020016000151581526020016000151581525090565b6001600160a01b0382166000818152600560208181526040808420815160608082018452915460ff808216151583526101008204811615158387015262010000909104161515818401528251610120810184528787526002808652848820600189528087528589205483529088528086528488205482870152600388528086528488205482860152958752948452828620549185019190915294845260068252808420805482518185028101850190935280835293946080860194929391929184015b828210156125a4576000848152602090819020604080516101e081018252918501546001600160801b038116835260ff600160801b82048116151584860152600160881b82048116151592840192909252600160901b8104821615156060840152600160981b8104821615156080840152600160a01b81048216151560a0840152600160a81b81048216151560c0840152600160b01b81048216151560e0840152600160b81b810482161515610100840152600160c01b810482161515610120840152600160c81b810482161515610140840152600160d01b810482161515610160840152600160d81b810482161515610180840152600160e01b8104821615156101a0840152600160e81b90041615156101c082015282526001909201910161247f565b505050908252506001600160a01b03851660009081526007602090815260408083208054825181850281018501909352808352948301949193909284015b82821015612707576000848152602090819020604080516101e081018252918501546001600160801b038116835260ff600160801b82048116151584860152600160881b82048116151592840192909252600160901b8104821615156060840152600160981b8104821615156080840152600160a01b81048216151560a0840152600160a81b81048216151560c0840152600160b01b81048216151560e0840152600160b81b810482161515610100840152600160c01b810482161515610120840152600160c81b810482161515610140840152600160d01b810482161515610160840152600160d81b810482161515610180840152600160e01b8104821615156101a0840152600160e81b90041615156101c08201528252600190920191016125e2565b50505050815260200182600001511515815260200182602001511515815260200182604001511515815250915050919050565b6001600160a01b038516600090815260066020526040812061275b91612d81565b6001600160a01b038516600090815260076020526040812061277c91612d81565b6001600160a01b038516600090815260066020526040902061279f908585612d2b565b6001600160a01b0385166000908152600760205260409020610ea6908383612d2b565b6001600160a01b038516600090815260026020908152604080832060018452909152812080548692906127f6908490613641565b90915550506001600160a01b03851660009081526002602081815260408084209284529190528120805485929061282e908490613641565b90915550506001600160a01b03851660009081526002602090815260408083206003845290915281208054849290612867908490613641565b90915550506001600160a01b038516600090815260026020908152604080832060058452909152812080548392906128a0908490613641565b90915550505050505050565b8060008190036128bc5750505050565b600083836128cb60018561362a565b8181106128da576128da61366f565b90506020020135905060005b82811015612c66576000858560016128fe858861362a565b612908919061362a565b8181106129175761291761366f565b895460209091029290920135925050838211156129765760405162461bcd60e51b815260206004820181905260248201527f446973636f756e7420696e6465786573206d757374206265206f72646572656460448201526064016105c1565b8082106129b75760405162461bcd60e51b815260206004820152600f60248201526e084c2c840c2e4e4c2f240d2dcc8caf608b1b60448201526064016105c1565b6129c260018261362a565b8214612c2957876129d460018361362a565b815481106129e4576129e461366f565b90600052602060002001888381548110612a0057612a0061366f565b600091825260209091208254910180546001600160801b031981166001600160801b039093169283178255835460ff600160801b918290048116151590910270ffffffffffffffffffffffffffffffffff19909216909317178082558354600160881b90819004841615150260ff60881b198216811783558454600160901b90819004851615150260ff60901b1990911661ffff60881b1990921691909117178082558354600160981b90819004841615150260ff60981b198216811783558454600160a01b90819004851615150260ff60a01b1990911661ffff60981b1990921691909117178082558354600160a81b90819004841615150260ff60a81b198216811783558454600160b01b90819004851615150260ff60b01b1990911661ffff60a81b1990921691909117178082558354600160b81b90819004841615150260ff60b81b198216811783558454600160c01b90819004851615150260ff60c01b1990911661ffff60b81b1990921691909117178082558354600160c81b90819004841615150260ff60c81b198216811783558454600160d01b90819004851615150260ff60d01b1990911661ffff60c81b1990921691909117178082558354600160d81b90819004841615150260ff60d81b198216811783558454600160e01b90819004851615150260ff60e01b1990911661ffff60d81b1990921691909117178082559254600160e81b90819004909216151590910260ff60e81b199092169190911790555b87805480612c3957612c3961380d565b600082815260209020810160001990810180546001600160f01b03191690550190555091506001016128e6565b505050505050565b60408051606081018252931515845291151560208085019182529115158484019081526001600160a01b039095166000908152600590925291902091518254915193511515620100000262ff0000199415156101000261ff00199215159290921661ffff19909316929092171792909216919091179055565b6001600160a01b0394909416600090815260026020818152604080842060018552909152808320959095558152838120929092556003825282822055600581522055565b8060005b81811015610ea65784848483818110612d4a57612d4a61366f565b8354600181018555600094855260209094206101e09091029290920192919091019050612d77828261384f565b5050600101612d2f565b508054600082559060005260206000209081019061236491905b80821115612db95780546001600160f01b0319168155600101612d9b565b5090565b80356001600160a01b0381168114612dd457600080fd5b919050565b600080600080600060a08688031215612df157600080fd5b612dfa86612dbd565b97602087013597506040870135966060810135965060800135945092505050565b60008083601f840112612e2d57600080fd5b50813567ffffffffffffffff811115612e4557600080fd5b6020830191508360208260051b8501011115612e6057600080fd5b9250929050565b600080600080600060608688031215612e7f57600080fd5b612e8886612dbd565b9450602086013567ffffffffffffffff80821115612ea557600080fd5b612eb189838a01612e1b565b90965094506040880135915080821115612eca57600080fd5b50612ed788828901612e1b565b969995985093965092949392505050565b80516001600160801b0316825260006020820151612f0a602085018215159052565b506040820151612f1e604085018215159052565b506060820151612f32606085018215159052565b506080820151612f46608085018215159052565b5060a0820151612f5a60a085018215159052565b5060c0820151612f6e60c085018215159052565b5060e0820151612f8260e085018215159052565b505061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0908101511515908201526101e00190565b6020808252825182820181905260009190848201906040850190845b8181101561302357613015838551612ee8565b938501939250600101613002565b50909695505050505050565b60006020828403121561304157600080fd5b61304a82612dbd565b9392505050565b60008083601f84011261306357600080fd5b50813567ffffffffffffffff81111561307b57600080fd5b6020830191508360206101e083028501011115612e6057600080fd5b6000806000806000606086880312156130af57600080fd5b6130b886612dbd565b9450602086013567ffffffffffffffff808211156130d557600080fd5b6130e189838a01613051565b909650945060408801359150808211156130fa57600080fd5b50612ed788828901613051565b60008060008060008060008060008060a08b8d03121561312657600080fd5b8a3567ffffffffffffffff8082111561313e57600080fd5b61314a8e838f01612e1b565b909c509a5060208d013591508082111561316357600080fd5b61316f8e838f01612e1b565b909a50985060408d013591508082111561318857600080fd5b6131948e838f01612e1b565b909850965060608d01359150808211156131ad57600080fd5b6131b98e838f01612e1b565b909650945060808d01359150808211156131d257600080fd5b506131df8d828e01612e1b565b915080935050809150509295989b9194979a5092959850565b6000806000806040858703121561320e57600080fd5b843567ffffffffffffffff8082111561322657600080fd5b61323288838901612e1b565b9096509450602087013591508082111561324b57600080fd5b5061325887828801612e1b565b95989497509550505050565b6000806040838503121561327757600080fd5b61328083612dbd565b9150602083013567ffffffffffffffff81111561329c57600080fd5b830161012081860312156132af57600080fd5b809150509250929050565b600081518084526020808501945080840160005b838110156132ef576132e1878351612ee8565b9650908201906001016132ce565b509495945050505050565b60208152600082516040602084015261331660608401826132ba565b90506020840151601f1984830301604085015261333382826132ba565b95945050505050565b801515811461236457600080fd5b6000806000806080858703121561336057600080fd5b61336985612dbd565b935060208501356133798161333c565b925060408501356133898161333c565b915060608501356133998161333c565b939692955090935050565b600080600080600080606087890312156133bd57600080fd5b863567ffffffffffffffff808211156133d557600080fd5b6133e18a838b01612e1b565b909850965060208901359150808211156133fa57600080fd5b6134068a838b01612e1b565b9096509450604089013591508082111561341f57600080fd5b5061342c89828a01612e1b565b979a9699509497509295939492505050565b6000806040838503121561345157600080fd5b61345a83612dbd565b946020939093013593505050565b6000806000806000806000806080898b03121561348457600080fd5b883567ffffffffffffffff8082111561349c57600080fd5b6134a88c838d01612e1b565b909a50985060208b01359150808211156134c157600080fd5b6134cd8c838d01612e1b565b909850965060408b01359150808211156134e657600080fd5b6134f28c838d01612e1b565b909650945060608b013591508082111561350b57600080fd5b506135188b828c01612e1b565b999c989b5096995094979396929594505050565b6000806040838503121561353f57600080fd5b61354883612dbd565b91506020830135600681106132af57600080fd5b6020815281516020820152602082015160408201526040820151606082015260608201516080820152600060808301516101208060a08501526135a36101408501836132ba565b915060a0850151601f198584030160c08601526135c083826132ba565b92505060c08501516135d660e086018215159052565b5060e08501516101006135ec8187018315159052565b90950151151593019290925250919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561363c5761363c613614565b500390565b6000821982111561365457613654613614565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601b908201527f55736572206973206e6f74206f776e6572206f722061646d696e2e0000000000604082015260600190565b6020808252601290820152712ab9b2b91034b9903737ba1037bbb732b91760711b604082015260600190565b6020808252818101527f417272617973206d7573742068617665207468652073616d65206c656e677468604082015260600190565b81835260006001600160fb1b0383111561373657600080fd5b8260051b8083602087013760009401602001938452509192915050565b60408152600061376760408301868861371d565b828103602084015261377a81858761371d565b979650505050505050565b6000823561011e1983360301811261379c57600080fd5b9190910192915050565b6000602082840312156137b857600080fd5b813561304a8161333c565b6000808335601e198436030181126137da57600080fd5b83018035915067ffffffffffffffff8211156137f557600080fd5b60200191506101e081023603821315612e6057600080fd5b634e487b7160e01b600052603160045260246000fd5b600081356001600160801b038116811461383c57600080fd5b92915050565b6000813561383c8161333c565b61387861385b83613823565b82546001600160801b0319166001600160801b0391909116178255565b6138a561388760208401613842565b82805460ff60801b191691151560801b60ff60801b16919091179055565b6138d26138b460408401613842565b82805460ff60881b191691151560881b60ff60881b16919091179055565b6138ff6138e160608401613842565b82805460ff60901b191691151560901b60ff60901b16919091179055565b61392c61390e60808401613842565b82805460ff60981b191691151560981b60ff60981b16919091179055565b61395961393b60a08401613842565b82805460ff60a01b191691151560a01b60ff60a01b16919091179055565b61398661396860c08401613842565b82805460ff60a81b191691151560a81b60ff60a81b16919091179055565b6139b361399560e08401613842565b82805460ff60b01b191691151560b01b60ff60b01b16919091179055565b6139e16139c36101008401613842565b82805460ff60b81b191691151560b81b60ff60b81b16919091179055565b613a0f6139f16101208401613842565b82805460ff60c01b191691151560c01b60ff60c01b16919091179055565b613a3d613a1f6101408401613842565b82805460ff60c81b191691151560c81b60ff60c81b16919091179055565b613a6b613a4d6101608401613842565b82805460ff60d01b191691151560d01b60ff60d01b16919091179055565b613a99613a7b6101808401613842565b82805460ff60d81b191691151560d81b60ff60d81b16919091179055565b613ac7613aa96101a08401613842565b82805460ff60e01b191691151560e01b60ff60e01b16919091179055565b611616613ad76101c08401613842565b82805460ff60e81b191691151560e81b60ff60e81b1691909117905556fea2646970667358221220ad466a45f5d565ffdc1158630b49ba5b63dbdd62a1b16c294a88a7bf932106b464736f6c634300080d0033
Deployed ByteCode Sourcemap
127:16705:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:738;;;;;;:::i;:::-;;:::i;:::-;;11929:1208;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:106;;;;;;:::i;:::-;;:::i;784:102:0:-;;;;;;:::i;:::-;;:::i;:::-;;;5029:14:3;;5022:22;5004:41;;4992:2;4977:18;784:102:0;4864:187:3;9055:238:2;;;;;;:::i;:::-;;:::i;685:93:0:-;;;;;;:::i;:::-;;:::i;2843:101:2:-;2921:16;;-1:-1:-1;;;;;2921:16:2;2843:101;;;-1:-1:-1;;;;;6554:32:3;;;6536:51;;6524:2;6509:18;2843:101:2;6390:203:3;16737:92:2;16811:11;;16737:92;;;6744:25:3;;;6732:2;6717:18;16737:92:2;6598:177:3;4618:708:2;;;;;;:::i;:::-;;:::i;13143:493::-;;;;;;:::i;:::-;;:::i;4338:274::-;;;;;;:::i;:::-;;:::i;518:161:0:-;;;;;;:::i;:::-;;:::i;15900:725:2:-;;;;;;:::i;:::-;;:::i;5716:274::-;;;;;;:::i;:::-;;:::i;2707:130::-;;;;;;:::i;:::-;;:::i;15427:467::-;;;;;;:::i;:::-;;:::i;1073:81:0:-;1115:7;1141:6;-1:-1:-1;;;;;1141:6:0;1073:81;;11662:261:2;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3245:708::-;;;;;;:::i;:::-;;:::i;7295:195::-;;;;;;:::i;:::-;;:::i;5996:399::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;11760:13:3;;11742:32;;11830:4;11818:17;;;11812:24;11790:20;;;11783:54;11893:4;11881:17;;;11875:24;11853:20;;;11846:54;11956:4;11944:17;;;11938:24;11916:20;;;11909:54;;;;11729:3;11714:19;;11539:430;10829:657:2;;;;;;:::i;:::-;;:::i;8874:158::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9012:13:2;;;;;;:7;:13;;;;;;8992:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8874:158;;;;;13413:13:3;;13406:21;13399:29;13381:48;;13499:4;13487:17;;;13481:24;13474:32;13467:40;13445:20;;;13438:70;13566:17;;;13560:24;13553:32;13546:40;13524:20;;;13517:70;13369:2;13354:18;8874:158:2;13175:418:3;2965:274:2;;;;;;:::i;:::-;;:::i;9299:544::-;;;;;;:::i;:::-;;:::i;10509:314::-;;;;;;:::i;:::-;;:::i;1844:840::-;;;;;;:::i;:::-;;:::i;8127:392::-;;;;;;:::i;:::-;;:::i;7496:553::-;;;;;;:::i;:::-;;:::i;892:175:0:-;;;;;;:::i;:::-;;:::i;6401:144:2:-;;;;;;:::i;:::-;;:::i;11492:164::-;;;;;;:::i;:::-;;:::i;14708:713::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6551:738::-;1776:16;;-1:-1:-1;;;;;1776:16:2;1796:10;1776:30;1768:52;;;;-1:-1:-1;;;1768:52:2;;17821:2:3;1768:52:2;;;17803:21:3;17860:1;17840:18;;;17833:29;-1:-1:-1;;;17878:18:3;;;17871:39;17927:18;;1768:52:2;;;;;;;;;-1:-1:-1;;;;;6676:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;6695:13:::1;6676:33:::0;;;;;;;;:43;-1:-1:-1;6676:43:2::1;6668:81;;;::::0;-1:-1:-1;;;6668:81:2;;18290:2:3;6668:81:2::1;::::0;::::1;18272:21:3::0;18329:2;18309:18;;;18302:30;18368:27;18348:18;;;18341:55;18413:18;;6668:81:2::1;18088:349:3::0;6668:81:2::1;-1:-1:-1::0;;;;;6767:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;:31;;;;;;;;;:39;-1:-1:-1;6767:39:2::1;6759:75;;;::::0;-1:-1:-1;;;6759:75:2;;18644:2:3;6759:75:2::1;::::0;::::1;18626:21:3::0;18683:2;18663:18;;;18656:30;18722:25;18702:18;;;18695:53;18765:18;;6759:75:2::1;18442:347:3::0;6759:75:2::1;-1:-1:-1::0;;;;;6852:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;6871:11:::1;6852:31:::0;;;;;;;;:39;-1:-1:-1;6852:39:2::1;6844:75;;;::::0;-1:-1:-1;;;6844:75:2;;18996:2:3;6844:75:2::1;::::0;::::1;18978:21:3::0;19035:2;19015:18;;;19008:30;19074:25;19054:18;;;19047:53;19117:18;;6844:75:2::1;18794:347:3::0;6844:75:2::1;-1:-1:-1::0;;;;;6937:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;6956:14:::1;6937:34:::0;;;;;;;;:45;-1:-1:-1;6937:45:2::1;6929:84;;;::::0;-1:-1:-1;;;6929:84:2;;19348:2:3;6929:84:2::1;::::0;::::1;19330:21:3::0;19387:2;19367:18;;;19360:30;19426:28;19406:18;;;19399:56;19472:18;;6929:84:2::1;19146:350:3::0;6929:84:2::1;-1:-1:-1::0;;;;;7024:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;7043:13:::1;7024:33:::0;;;;;;;:43;;7061:6;;7024:18;:43:::1;::::0;7061:6;;7024:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;7077:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;:31;;;;;;;;:39;;7112:4;;7077:18;:39:::1;::::0;7112:4;;7077:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;7126:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;7145:11:::1;7126:31:::0;;;;;;;:39;;7161:4;;7126:18;:39:::1;::::0;7161:4;;7126:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;7175:18:2;::::1;;::::0;;;:12:::1;:18;::::0;;;;;;;7194:14:::1;7175:34:::0;;;;;;;:45;;7213:7;;7175:18;:45:::1;::::0;7213:7;;7175:45:::1;:::i;:::-;::::0;;;-1:-1:-1;;7235:47:2::1;::::0;;19994:25:3;;;20050:2;20035:18;;20028:34;;;20078:18;;;20071:34;;;20136:2;20121:18;;20114:34;;;-1:-1:-1;;;;;7235:47:2;::::1;::::0;::::1;::::0;19981:3:3;19966:19;7235:47:2::1;;;;;;;;6551:738:::0;;;;;:::o;11929:1208::-;12072:17;12127:21;12190:20;12101:23;12273:38;12190:20;12127:21;12273:38;:::i;:::-;12258:54;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12258:54:2;;-1:-1:-1;;12258:54:2;;;;;;;;;;;-1:-1:-1;12228:84:2;-1:-1:-1;12327:22:2;;12323:339;;12370:6;12365:287;12380:18;12378:1;:20;12365:287;;;-1:-1:-1;;;;;12454:26:2;;;;;;:20;:26;;;;;:33;12427:21;;12449:1;12427:24;;;;;;;:::i;:::-;;;;;;;:60;12419:98;;;;-1:-1:-1;;;12419:98:2;;20758:2:3;12419:98:2;;;20740:21:3;20797:2;20777:18;;;20770:30;20836:27;20816:18;;;20809:55;20881:18;;12419:98:2;20556:349:3;12419:98:2;-1:-1:-1;;;;;12550:26:2;;;;;;:20;:26;;;;;12577:21;;12599:1;12577:24;;;;;;;:::i;:::-;;;;;;;12550:52;;;;;;;;:::i;:::-;;;;;;;;;;12535:67;;;;;;;;12550:52;;;;12535:67;-1:-1:-1;;;;;12535:67:2;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;-1:-1:-1;;;12535:67:2;;;;;;;;;;;;:12;;:9;;12545:1;;12535:12;;;;;;:::i;:::-;;;;;;;;;;:67;12632:3;;12365:287;;;;12323:339;12676:21;;12672:433;;12718:6;12713:382;12728:17;12726:1;:19;12713:382;;;-1:-1:-1;;;;;12800:25:2;;;;;;:19;:25;;;;;:32;12774:20;;12795:1;12774:23;;;;;;;:::i;:::-;;;;;;;:58;12766:95;;;;-1:-1:-1;;;12766:95:2;;21112:2:3;12766:95:2;;;21094:21:3;21151:2;21131:18;;;21124:30;21190:26;21170:18;;;21163:54;21234:18;;12766:95:2;20910:348:3;12766:95:2;-1:-1:-1;;;;;12995:25:2;;;;;;:19;:25;;;;;13021:20;;13042:1;13021:23;;;;;;;:::i;:::-;;;;;;;12995:50;;;;;;;;:::i;:::-;;;;;;;;;;12959:86;;;;;;;;12995:50;;;;12959:86;-1:-1:-1;;;;;12959:86:2;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;-1:-1:-1;;;12959:86:2;;;;;;;;;;;;:9;12969:22;12990:1;12969:18;:22;:::i;:::-;12959:33;;;;;;;;:::i;:::-;;;;;;;;;;:86;13075:3;;12713:382;;;;12672:433;13121:9;11929:1208;-1:-1:-1;;;;;;;;11929:1208:2:o;8762:106::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8848:13:2::1;;::::0;;;:7:::1;:13;::::0;;;;8841:20;;-1:-1:-1;;8841:20:2;;;8762:106::o;784:102:0:-;-1:-1:-1;;;;;860:14:0;837:4;860:14;;;:7;:14;;;;;;;;;:19;;784:102::o;9055:238:2:-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;9204:56:2::1;9222:4;9228:15;;9245:14;;9204:17;:56::i;:::-;9270:16;16709:15:::0;16695:11;:29;16651:80;9270:16:::1;9055:238:::0;;;;;:::o;685:93:0:-;265:6;;-1:-1:-1;;;;;265:6:0;251:10;:20;243:51;;;;-1:-1:-1;;;243:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;757:14:0::1;;::::0;;;:7:::1;:14;::::0;;;;750:21;685:93::o;4618:708:2:-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;4904:5:2;4934:32;;::::1;:66:::0;::::1;;;-1:-1:-1::0;4970:30:2;;::::1;4934:66;:100;;;;-1:-1:-1::0;5004:30:2;;::::1;4934:100;:137;;;;-1:-1:-1::0;5038:33:2;;::::1;4934:137;4926:182;;;;-1:-1:-1::0;;;4926:182:2::1;;;;;;;:::i;:::-;5123:6;5118:176;5133:8;5131:1;:10;5118:176;;;5158:94;5174:5;;5180:1;5174:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5184:13;;5198:1;5184:16;;;;;;;:::i;:::-;;;;;;;5202:11;;5214:1;5202:14;;;;;;;:::i;:::-;;;;;;;5218:11;;5230:1;5218:14;;;;;;;:::i;:::-;;;;;;;5234;;5249:1;5234:17;;;;;;;:::i;:::-;;;;;;;5158:15;:94::i;:::-;5278:3;;5118:176;;;;5303:16;16709:15:::0;16695:11;:29;16651:80;5303:16:::1;4878:448;4618:708:::0;;;;;;;;;;:::o;13143:493::-;1776:16;;-1:-1:-1;;;;;1776:16:2;1796:10;1776:30;1768:52;;;;-1:-1:-1;;;1768:52:2;;17821:2:3;1768:52:2;;;17803:21:3;17860:1;17840:18;;;17833:29;-1:-1:-1;;;17878:18:3;;;17871:39;17927:18;;1768:52:2;17619:332:3;1768:52:2;-1:-1:-1;;;;;13320:26:2;::::1;;::::0;;;:20:::1;:26;::::0;;;;13296:74:::1;::::0;13348:21;;13296:23:::1;:74::i;:::-;-1:-1:-1::0;;;;;13404:25:2;::::1;;::::0;;;:19:::1;:25;::::0;;;;13380:72:::1;::::0;13431:20;;13380:23:::1;:72::i;:::-;13466:32:::0;;;;:67:::1;;-1:-1:-1::0;13502:31:2;;;13466:67:::1;13462:168;;;13569:4;-1:-1:-1::0;;;;;13554:65:2::1;;13575:21;;13598:20;;13554:65;;;;;;;;;:::i;4338:274::-:0;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;4501:78:2::1;4517:4;4523:13;4538:11;4551;4564:14;4501:15;:78::i;518:161:0:-:0;265:6;;-1:-1:-1;;;;;265:6:0;251:10;:20;243:51;;;;-1:-1:-1;;;243:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;588:19:0;::::1;580:64;;;::::0;-1:-1:-1;;;580:64:0;;23412:2:3;580:64:0::1;::::0;::::1;23394:21:3::0;;;23431:18;;;23424:30;23490:34;23470:18;;;23463:62;23542:18;;580:64:0::1;23210:356:3::0;580:64:0::1;-1:-1:-1::0;;;;;654:14:0::1;;::::0;;;671:1:::1;654:14;::::0;;;;;;;:18;518:161::o;15900:725:2:-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;16040:5:2;16070:24;;::::1;16062:69;;;;-1:-1:-1::0;;;16062:69:2::1;;;;;;;:::i;:::-;16146:6;16142:451;16156:3;16154:1;:5;16142:451;;;16176:120;16194:5;;16200:1;16194:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16204:10;;16215:1;16204:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;16235:10;;16246:1;16235:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;16266:10;;16277:1;16266:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;::::0;;;;;::::1;;;:::i;:::-;16176:17;:120::i;:::-;16310:138;16326:5;;16332:1;16326:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16336:10;;16347:1;16336:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;16365:10:::0;;16376:1;16365:13;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;;;16392:10;;16403:1;16392:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:25;;;16419:10;;16430:1;16419:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;16310:15;:138::i;:::-;16462:88;16480:5;;16486:1;16480:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16490:10;;16501:1;16490:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;16521:10;;16532:1;16521:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;16462:17;:88::i;:::-;16577:3;;16142:451;;;;16602:16;16709:15:::0;16695:11;:29;16651:80;5716:274;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5803:18:2::1;;::::0;;;:12:::1;:18;::::0;;;;;;;5822:13:::1;5803:33:::0;;;;;;;;5796:40;;;5853:31;;;;;;5846:38;;;5920:11:::1;5901:31:::0;;;;;5894:38;;;5968:14:::1;5949:34:::0;;;;5942:41;5716:274::o;2707:130::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;2796:16:2::1;:34:::0;;-1:-1:-1;;;;;;2796:34:2::1;-1:-1:-1::0;;;;;2796:34:2;;;::::1;::::0;;;::::1;::::0;;2707:130::o;15427:467::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;15534:107:2::1;15552:4:::0;15558:26:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;15586;::::0;;;::::1;::::0;::::1;;:::i;:::-;15614;::::0;;;::::1;::::0;::::1;;:::i;15534:107::-;15651:122;15667:4:::0;15673:24;::::1;15699:22;::::0;::::1;;15723;::::0;::::1;;15747:25;::::0;::::1;;15651:15;:122::i;:::-;15783:78;15801:4:::0;15807:26:::1;;::::0;::::1;:10:::0;:26:::1;:::i;:::-;15835:25;;::::0;::::1;:10:::0;:25:::1;:::i;15783:78::-;15871:16;16709:15:::0;16695:11;:29;16651:80;15871:16:::1;15427:467:::0;;:::o;11662:261::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;11796:120:2;;-1:-1:-1;;;;;11833:26:2;;-1:-1:-1;11833:26:2;;;:20;:26;;;;;11796:120;;;;;;;;;;;;;;;;;-1:-1:-1;;11796:120:2;;;;;;;-1:-1:-1;11796:120:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11796:120:2;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;-1:-1:-1;;;;;;11880:25:2;;;;;;:19;11796:120;11880:25;;;;;;;11796:120;;;;;;;;;;;;;;;;;;;;;;;11880:25;;11796:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11796:120:2;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;-1:-1:-1;;;11796:120:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11796:120:2;;-1:-1:-1;11777:139:2;11662:261;-1:-1:-1;;11662:261:2:o;3245:708::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;3531:5:2;3561:32;;::::1;:66:::0;::::1;;;-1:-1:-1::0;3597:30:2;;::::1;3561:66;:100;;;;-1:-1:-1::0;3631:30:2;;::::1;3561:100;:137;;;;-1:-1:-1::0;3665:33:2;;::::1;3561:137;3553:182;;;;-1:-1:-1::0;;;3553:182:2::1;;;;;;;:::i;:::-;3750:6;3745:176;3760:8;3758:1;:10;3745:176;;;3785:94;3801:5;;3807:1;3801:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3811:13;;3825:1;3811:16;;;;;;;:::i;:::-;;;;;;;3829:11;;3841:1;3829:14;;;;;;;:::i;:::-;;;;;;;3845:11;;3857:1;3845:14;;;;;;;:::i;:::-;;;;;;;3861;;3876:1;3861:17;;;;;;;:::i;:::-;;;;;;;3785:15;:94::i;:::-;3905:3;;3745:176;;7295:195:::0;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;7410:47:2::1;7428:4;7434:6;7442;7450;7410:17;:47::i;:::-;7467:16;16709:15:::0;16695:11;:29;16651:80;7467:16:::1;7295:195:::0;;;;:::o;5996:399::-;6060:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6060:33:2;-1:-1:-1;6122:266:2;;;;;;;;-1:-1:-1;;;;;6164:18:2;;;;-1:-1:-1;6164:18:2;;;:12;:18;;;;;;;6183:13;6164:33;;;;;;;;;6122:266;;6224:31;;;;;;;;;;6122:266;;;;6301:11;6282:31;;;;;;;;;6122:266;;;;6362:14;6343:34;;;;;6122:266;;;;;5996:399::o;10829:657::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;11045:5:2;11075:34;;::::1;:71:::0;::::1;;;-1:-1:-1::0;11113:33:2;;::::1;11075:71;11067:116;;;;-1:-1:-1::0;;;11067:116:2::1;;;;;;;:::i;:::-;11198:6;11193:261;11208:8;11206:1;:10;11193:261;;;11233:12;11248:5;;11254:1;11248:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11288:26:2;::::1;;::::0;;;:20:::1;:26;::::0;;;;11233:23;;-1:-1:-1;11270:65:2::1;::::0;11316:15;;11332:1;11316:18;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;11270:17;:65::i;:::-;-1:-1:-1::0;;;;;11367:25:2;::::1;;::::0;;;:19:::1;:25;::::0;;;;11349:63:::1;::::0;11394:14;;11409:1;11394:17;;::::1;;;;;:::i;11349:63::-;-1:-1:-1::0;11438:3:2::1;;11193:261;;;;11463:16;16709:15:::0;16695:11;:29;16651:80;11463:16:::1;11019:467;10829:657:::0;;;;;;:::o;2965:274::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;3128:78:2::1;3144:4;3150:13;3165:11;3178;3191:14;3128:15;:78::i;9299:544::-:0;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;9515:5:2;9545:34;;::::1;:71:::0;::::1;;;-1:-1:-1::0;9583:33:2;;::::1;9545:71;9537:116;;;;-1:-1:-1::0;;;9537:116:2::1;;;;;;;:::i;:::-;9668:6;9663:148;9678:8;9676:1;:10;9663:148;;;9703:66;9721:5;;9727:1;9721:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9731:15;;9747:1;9731:18;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;9751:14;;9766:1;9751:17;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;9703:66::-;9795:3;;9663:148;;10509:314:::0;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10676:26:2;::::1;;::::0;;;:20:::1;:26;::::0;;;;10658:62:::1;::::0;10704:15;;10658:17:::1;:62::i;:::-;-1:-1:-1::0;;;;;10748:25:2;::::1;;::::0;;;:19:::1;:25;::::0;;;;10730:60:::1;::::0;10775:14;;10730:17:::1;:60::i;1844:840::-:0;1934:14;1952:1;1934:19;1930:686;;1969:23;;-1:-1:-1;;;1969:23:2;;24937:2:3;1969:23:2;;;24919:21:3;24976:2;24956:18;;;24949:30;-1:-1:-1;;;24995:18:3;;;24988:43;25048:18;;1969:23:2;24735:337:3;1930:686:2;2021:14;2039:1;2021:19;2017:599;;-1:-1:-1;;;;;2081:13:2;;;;;;:7;:13;;;;;:20;;;2056:109;;;;-1:-1:-1;;;2056:109:2;;25279:2:3;2056:109:2;;;25261:21:3;25318:2;25298:18;;;25291:30;25357:28;25337:18;;;25330:56;25403:18;;2056:109:2;25077:350:3;2017:599:2;2194:14;2212:1;2194:19;2190:426;;-1:-1:-1;;;;;2254:13:2;;;;;;:7;:13;;;;;:20;;;;:60;;-1:-1:-1;;;;;;2294:13:2;;;;;;:7;:13;;;;;:20;;;;;;2254:60;2229:147;;;;-1:-1:-1;;;2229:147:2;;25634:2:3;2229:147:2;;;25616:21:3;25673:2;25653:18;;;25646:30;25712:26;25692:18;;;25685:54;25756:18;;2229:147:2;25432:348:3;2190:426:2;2405:14;2423:1;2405:19;2401:215;;-1:-1:-1;;;;;2465:13:2;;;;;;:7;:13;;;;;:20;;;;:60;;-1:-1:-1;;;;;;2505:13:2;;;;;;:7;:13;;;;;:20;;;;;;2465:60;:100;;;-1:-1:-1;;;;;;2545:13:2;;;;;;:7;:13;;;;;:20;;;;;;2465:100;2440:165;;;;-1:-1:-1;;;2440:165:2;;25987:2:3;2440:165:2;;;25969:21:3;26026:2;26006:18;;;25999:30;-1:-1:-1;;;26045:18:3;;;26038:49;26104:18;;2440:165:2;25785:343:3;8127:392:2;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;8267:5:2;8297:25;;::::1;8289:70;;;;-1:-1:-1::0;;;8289:70:2::1;;;;;;;:::i;:::-;8374:6;8369:118;8384:8;8382:1;:10;8369:118;;;8436:6;;8443:1;8436:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8409:7;:17;8417:5;;8423:1;8417:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8409:17:2::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8409:17:2;:36;;;::::1;;::::0;::::1;-1:-1:-1::0;;8409:36:2;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;8471:3:2::1;8369:118;;7496:553:::0;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;7715:5:2;7745:25;;::::1;:54:::0;::::1;;;-1:-1:-1::0;7774:25:2;;::::1;7745:54;:83;;;;-1:-1:-1::0;7803:25:2;;::::1;7745:83;7737:128;;;;-1:-1:-1::0;;;7737:128:2::1;;;;;;;:::i;:::-;7880:6;7875:142;7890:8;7888:1;:10;7875:142;;;7915:60;7933:5;;7939:1;7933:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7943:6;;7950:1;7943:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7954:6;;7961:1;7954:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7965:6;;7972:1;7965:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;7915:60::-;8001:3;;7875:142;;;;8026:16;16709:15:::0;16695:11;:29;16651:80;8026:16:::1;7689:360;7496:553:::0;;;;;;;;:::o;892:175:0:-;265:6;;-1:-1:-1;;;;;265:6:0;251:10;:20;243:51;;;;-1:-1:-1;;;243:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;974:22:0;::::1;966:67;;;::::0;-1:-1:-1;;;966:67:0;;26335:2:3;966:67:0::1;::::0;::::1;26317:21:3::0;;;26354:18;;;26347:30;26413:34;26393:18;;;26386:62;26465:18;;966:67:0::1;26133:356:3::0;966:67:0::1;1043:6;:17:::0;;-1:-1:-1;;;;;;1043:17:0::1;-1:-1:-1::0;;;;;1043:17:0;;;::::1;::::0;;;::::1;::::0;;892:175::o;6401:144:2:-;-1:-1:-1;;;;;6512:18:2;;6486:7;6512:18;;;:12;:18;;;;;6486:7;6531:6;6512:26;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6505:33;;6401:144;;;;:::o;11492:164::-;376:6:0;;-1:-1:-1;;;;;376:6:0;362:10;:20;;:43;;;386:19;394:10;386:7;:19::i;:::-;354:83;;;;-1:-1:-1;;;354:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11581:26:2;::::1;;::::0;;;:20:::1;:26;::::0;;;;11574:33:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;11624:25:2;::::1;;::::0;;;:19:::1;:25;::::0;;;;11617:32:::1;::::0;::::1;:::i;:::-;11492:164:::0;:::o;14708:713::-;14766:30;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14766:30:2;-1:-1:-1;;;;;14845:13:2;;14808:34;14845:13;;;:7;:13;;;;;;;;14808:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14880:534;;;;;;;14925:18;;;14808:50;14925:18;;;;;;14808:50;14925:33;;;;;;;;;14880:534;;14985:31;;;;;;;;;;14880:534;;;;15062:11;15043:31;;;;;;;;;14880:534;;;;15104:34;;;;;;;;;;14880:534;;;;;;;15169:26;;;:20;:26;;;;;14880:534;;;;;;;;;;;;;;;;;;;;;;;;;15169:26;;14880:534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14880:534:2;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;-1:-1:-1;;;;;;15225:25:2;;;;;;:19;14880:534;15225:25;;;;;;;14880:534;;;;;;;;;;;;;;;;;;;;;;;15225:25;;14880:534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14880:534:2;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;-1:-1:-1;;;14880:534:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;15281:13;:20;;;14880:534;;;;;;15332:13;:20;;;14880:534;;;;;;15383:13;:20;;;14880:534;;;;;14869:545;;14798:623;14708:713;;;:::o;9849:357::-;-1:-1:-1;;;;;9988:26:2;;;;;;:20;:26;;;;;9981:33;;;:::i;:::-;-1:-1:-1;;;;;10031:25:2;;;;;;:19;:25;;;;;10024:32;;;:::i;:::-;-1:-1:-1;;;;;10085:26:2;;;;;;:20;:26;;;;;10067:62;;10113:15;;10067:17;:62::i;:::-;-1:-1:-1;;;;;10157:25:2;;;;;;:19;:25;;;;;10139:60;;10184:14;;10139:17;:60::i;5332:378::-;-1:-1:-1;;;;;5479:18:2;;;;;;:12;:18;;;;;;;;5498:13;5479:33;;;;;;;:50;;5516:13;;5479:18;:50;;5516:13;;5479:50;:::i;:::-;;;;-1:-1:-1;;;;;;;5539:18:2;;;;;;:12;:18;;;;;;;;:31;;;;;;;;:46;;5574:11;;5539:18;:46;;5574:11;;5539:46;:::i;:::-;;;;-1:-1:-1;;;;;;;5595:18:2;;;;;;:12;:18;;;;;;;;5614:11;5595:31;;;;;;;:46;;5630:11;;5595:18;:46;;5630:11;;5595:46;:::i;:::-;;;;-1:-1:-1;;;;;;;5651:18:2;;;;;;:12;:18;;;;;;;;5670:14;5651:34;;;;;;;:52;;5689:14;;5651:18;:52;;5689:14;;5651:52;:::i;:::-;;;;-1:-1:-1;;;;;;;5332:378:2:o;13642:1042::-;13768:7;13748:17;13796;;;13792:54;;13829:7;13642:1042;;;:::o;13792:54::-;14068:14;14085:7;;14093:16;14108:1;14093:12;:16;:::i;:::-;14085:25;;;;;;;:::i;:::-;;;;;;;14068:42;;14125:6;14120:558;14135:12;14133:1;:14;14120:558;;;14164:10;14177:7;;14204:1;14185:16;14200:1;14185:12;:16;:::i;:::-;:20;;;;:::i;:::-;14177:29;;;;;;;:::i;:::-;14236:12;;14177:29;;;;;;;;;;-1:-1:-1;;14270:18:2;;;;14262:63;;;;-1:-1:-1;;;14262:63:2;;26696:2:3;14262:63:2;;;26678:21:3;;;26715:18;;;26708:30;26774:34;26754:18;;;26747:62;26826:18;;14262:63:2;26494:356:3;14262:63:2;14445:8;14437:5;:16;14429:44;;;;-1:-1:-1;;;14429:44:2;;27057:2:3;14429:44:2;;;27039:21:3;27096:2;27076:18;;;27069:30;-1:-1:-1;;;27115:18:3;;;27108:45;27170:18;;14429:44:2;26855:339:3;14429:44:2;14500:12;14511:1;14500:8;:12;:::i;:::-;14491:5;:21;14487:94;;14547:5;14553:12;14564:1;14553:8;:12;:::i;:::-;14547:19;;;;;;;;:::i;:::-;;;;;;;;14532:5;14538;14532:12;;;;;;;;:::i;:::-;;;;;;;;;:34;;:12;;:34;;-1:-1:-1;;;;;;14532:34:2;;-1:-1:-1;;;;;14532:34:2;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;;;-1:-1:-1;;14532:34:2;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;;;;;-1:-1:-1;;;14532:34:2;;;;;;;;;;;;-1:-1:-1;;;;14532:34:2;;;;;;;;;14487:94;14594:5;:11;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;14594:11:2;;;;;-1:-1:-1;;;;;;14594:11:2;;;;;;-1:-1:-1;14631:5:2;-1:-1:-1;14594:11:2;14662:3;14120:558;;;;13738:946;;13642:1042;;;:::o;8525:231::-;8639:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8623:13:2;;;-1:-1:-1;8623:13:2;;;:7;:13;;;;;;:126;;;;;;;;;;;;-1:-1:-1;;8623:126:2;;;;;-1:-1:-1;;8623:126:2;;;;;;;-1:-1:-1;;8623:126:2;;;;;;;;;;;;;;;;;;8525:231::o;3959:373::-;-1:-1:-1;;;;;4105:18:2;;;;;;;;:12;:18;;;;;;;;4124:13;4105:33;;;;;;;;:49;;;;4164:31;;;;;:45;;;;4238:11;4219:31;;;;;:45;4293:14;4274:34;;;:51;3959:373::o;10212:291::-;10347:12;10327:17;10376:121;10390:12;10388:1;:14;10376:121;;;10419:14;10439:12;;10452:1;10439:15;;;;;;;:::i;:::-;10419:36;;;;;;;-1:-1:-1;10419:36:2;;;;;;;10439:15;;;;;;;;;10419:36;;;;;-1:-1:-1;10419:36:2;10439:15;10419:36;;:::i;:::-;-1:-1:-1;;10481:3:2;;10376:121;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:3:-;82:20;;-1:-1:-1;;;;;131:31:3;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:460::-;287:6;295;303;311;319;372:3;360:9;351:7;347:23;343:33;340:53;;;389:1;386;379:12;340:53;412:29;431:9;412:29;:::i;:::-;402:39;488:2;473:18;;460:32;;-1:-1:-1;539:2:3;524:18;;511:32;;590:2;575:18;;562:32;;-1:-1:-1;641:3:3;626:19;613:33;;-1:-1:-1;192:460:3;-1:-1:-1;;;192:460:3:o;657:367::-;720:8;730:6;784:3;777:4;769:6;765:17;761:27;751:55;;802:1;799;792:12;751:55;-1:-1:-1;825:20:3;;868:18;857:30;;854:50;;;900:1;897;890:12;854:50;937:4;929:6;925:17;913:29;;997:3;990:4;980:6;977:1;973:14;965:6;961:27;957:38;954:47;951:67;;;1014:1;1011;1004:12;951:67;657:367;;;;;:::o;1029:847::-;1160:6;1168;1176;1184;1192;1245:2;1233:9;1224:7;1220:23;1216:32;1213:52;;;1261:1;1258;1251:12;1213:52;1284:29;1303:9;1284:29;:::i;:::-;1274:39;;1364:2;1353:9;1349:18;1336:32;1387:18;1428:2;1420:6;1417:14;1414:34;;;1444:1;1441;1434:12;1414:34;1483:70;1545:7;1536:6;1525:9;1521:22;1483:70;:::i;:::-;1572:8;;-1:-1:-1;1457:96:3;-1:-1:-1;1660:2:3;1645:18;;1632:32;;-1:-1:-1;1676:16:3;;;1673:36;;;1705:1;1702;1695:12;1673:36;;1744:72;1808:7;1797:8;1786:9;1782:24;1744:72;:::i;:::-;1029:847;;;;-1:-1:-1;1029:847:3;;-1:-1:-1;1835:8:3;;1718:98;1029:847;-1:-1:-1;;;1029:847:3:o;2101:1875::-;2207:13;;-1:-1:-1;;;;;1947:46:3;1935:59;;2163:10;2273:4;2265:6;2261:17;2255:24;2288:45;2327:4;2322:3;2318:14;2304:12;2075:13;2068:21;2056:34;;2005:91;2288:45;;2382:4;2374:6;2370:17;2364:24;2397:47;2438:4;2433:3;2429:14;2413;2075:13;2068:21;2056:34;;2005:91;2397:47;;2493:4;2485:6;2481:17;2475:24;2508:47;2549:4;2544:3;2540:14;2524;2075:13;2068:21;2056:34;;2005:91;2508:47;;2604:4;2596:6;2592:17;2586:24;2619:47;2660:4;2655:3;2651:14;2635;2075:13;2068:21;2056:34;;2005:91;2619:47;;2715:4;2707:6;2703:17;2697:24;2730:47;2771:4;2766:3;2762:14;2746;2075:13;2068:21;2056:34;;2005:91;2730:47;;2826:4;2818:6;2814:17;2808:24;2841:47;2882:4;2877:3;2873:14;2857;2075:13;2068:21;2056:34;;2005:91;2841:47;;2937:4;2929:6;2925:17;2919:24;2952:47;2993:4;2988:3;2984:14;2968;2075:13;2068:21;2056:34;;2005:91;2952:47;-1:-1:-1;;3018:6:3;3061:15;;;3055:22;2075:13;2068:21;3118:12;;;2056:34;3150:6;3193:15;;;3187:22;2075:13;2068:21;3250:12;;;2056:34;3282:6;3325:15;;;3319:22;2075:13;2068:21;3382:12;;;2056:34;3414:6;3458:15;;;3452:22;2075:13;2068:21;3516:12;;;2056:34;3548:6;3592:15;;;3586:22;2075:13;2068:21;3650:12;;;2056:34;3682:6;3726:15;;;3720:22;2075:13;2068:21;3784:12;;;2056:34;3816:6;3860:15;;;3854:22;2075:13;2068:21;3918:12;;;2056:34;3963:6;3954:16;;2101:1875::o;3981:687::-;4202:2;4254:21;;;4324:13;;4227:18;;;4346:22;;;4173:4;;4202:2;4425:15;;;;4399:2;4384:18;;;4173:4;4468:174;4482:6;4479:1;4476:13;4468:174;;;4538:56;4590:3;4581:6;4575:13;4538:56;:::i;:::-;4617:15;;;;4531:63;-1:-1:-1;4504:1:3;4497:9;4468:174;;;-1:-1:-1;4659:3:3;;3981:687;-1:-1:-1;;;;;;3981:687:3:o;4673:186::-;4732:6;4785:2;4773:9;4764:7;4760:23;4756:32;4753:52;;;4801:1;4798;4791:12;4753:52;4824:29;4843:9;4824:29;:::i;:::-;4814:39;4673:186;-1:-1:-1;;;4673:186:3:o;5056:389::-;5136:8;5146:6;5200:3;5193:4;5185:6;5181:17;5177:27;5167:55;;5218:1;5215;5208:12;5167:55;-1:-1:-1;5241:20:3;;5284:18;5273:30;;5270:50;;;5316:1;5313;5306:12;5270:50;5353:4;5345:6;5341:17;5329:29;;5418:3;5411:4;5401:6;5393;5389:19;5381:6;5377:32;5373:43;5370:52;5367:72;;;5435:1;5432;5425:12;5450:935;5635:6;5643;5651;5659;5667;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5759:29;5778:9;5759:29;:::i;:::-;5749:39;;5839:2;5828:9;5824:18;5811:32;5862:18;5903:2;5895:6;5892:14;5889:34;;;5919:1;5916;5909:12;5889:34;5958:87;6037:7;6028:6;6017:9;6013:22;5958:87;:::i;:::-;6064:8;;-1:-1:-1;5932:113:3;-1:-1:-1;6152:2:3;6137:18;;6124:32;;-1:-1:-1;6168:16:3;;;6165:36;;;6197:1;6194;6187:12;6165:36;;6236:89;6317:7;6306:8;6295:9;6291:24;6236:89;:::i;6780:1720::-;7010:6;7018;7026;7034;7042;7050;7058;7066;7074;7082;7135:3;7123:9;7114:7;7110:23;7106:33;7103:53;;;7152:1;7149;7142:12;7103:53;7192:9;7179:23;7221:18;7262:2;7254:6;7251:14;7248:34;;;7278:1;7275;7268:12;7248:34;7317:70;7379:7;7370:6;7359:9;7355:22;7317:70;:::i;:::-;7406:8;;-1:-1:-1;7291:96:3;-1:-1:-1;7494:2:3;7479:18;;7466:32;;-1:-1:-1;7510:16:3;;;7507:36;;;7539:1;7536;7529:12;7507:36;7578:72;7642:7;7631:8;7620:9;7616:24;7578:72;:::i;:::-;7669:8;;-1:-1:-1;7552:98:3;-1:-1:-1;7757:2:3;7742:18;;7729:32;;-1:-1:-1;7773:16:3;;;7770:36;;;7802:1;7799;7792:12;7770:36;7841:72;7905:7;7894:8;7883:9;7879:24;7841:72;:::i;:::-;7932:8;;-1:-1:-1;7815:98:3;-1:-1:-1;8020:2:3;8005:18;;7992:32;;-1:-1:-1;8036:16:3;;;8033:36;;;8065:1;8062;8055:12;8033:36;8104:72;8168:7;8157:8;8146:9;8142:24;8104:72;:::i;:::-;8195:8;;-1:-1:-1;8078:98:3;-1:-1:-1;8283:3:3;8268:19;;8255:33;;-1:-1:-1;8300:16:3;;;8297:36;;;8329:1;8326;8319:12;8297:36;;8368:72;8432:7;8421:8;8410:9;8406:24;8368:72;:::i;:::-;8342:98;;8459:8;8449:18;;;8486:8;8476:18;;;6780:1720;;;;;;;;;;;;;:::o;8505:806::-;8660:6;8668;8676;8684;8737:2;8725:9;8716:7;8712:23;8708:32;8705:52;;;8753:1;8750;8743:12;8705:52;8793:9;8780:23;8822:18;8863:2;8855:6;8852:14;8849:34;;;8879:1;8876;8869:12;8849:34;8918:70;8980:7;8971:6;8960:9;8956:22;8918:70;:::i;:::-;9007:8;;-1:-1:-1;8892:96:3;-1:-1:-1;9095:2:3;9080:18;;9067:32;;-1:-1:-1;9111:16:3;;;9108:36;;;9140:1;9137;9130:12;9108:36;;9179:72;9243:7;9232:8;9221:9;9217:24;9179:72;:::i;:::-;8505:806;;;;-1:-1:-1;9270:8:3;-1:-1:-1;;;;8505:806:3:o;9316:467::-;9417:6;9425;9478:2;9466:9;9457:7;9453:23;9449:32;9446:52;;;9494:1;9491;9484:12;9446:52;9517:29;9536:9;9517:29;:::i;:::-;9507:39;;9597:2;9586:9;9582:18;9569:32;9624:18;9616:6;9613:30;9610:50;;;9656:1;9653;9646:12;9610:50;9679:22;;9735:3;9717:16;;;9713:26;9710:46;;;9752:1;9749;9742:12;9710:46;9775:2;9765:12;;;9316:467;;;;;:::o;9788:448::-;9849:3;9887:5;9881:12;9914:6;9909:3;9902:19;9940:4;9969:2;9964:3;9960:12;9953:19;;10006:2;9999:5;9995:14;10027:1;10037:174;10051:6;10048:1;10045:13;10037:174;;;10107:56;10159:3;10150:6;10144:13;10107:56;:::i;:::-;10100:63;-1:-1:-1;10186:15:3;;;;10073:1;10066:9;10037:174;;;-1:-1:-1;10227:3:3;;9788:448;-1:-1:-1;;;;;9788:448:3:o;10241:579::-;10430:2;10419:9;10412:21;10393:4;10468:6;10462:13;10511:4;10506:2;10495:9;10491:18;10484:32;10539:70;10605:2;10594:9;10590:18;10576:12;10539:70;:::i;:::-;10525:84;;10658:2;10650:6;10646:15;10640:22;10732:2;10728:7;10716:9;10708:6;10704:22;10700:36;10693:4;10682:9;10678:20;10671:66;10754:60;10807:6;10791:14;10754:60;:::i;:::-;10746:68;10241:579;-1:-1:-1;;;;;10241:579:3:o;10825:118::-;10911:5;10904:13;10897:21;10890:5;10887:32;10877:60;;10933:1;10930;10923:12;10948:586;11025:6;11033;11041;11049;11102:3;11090:9;11081:7;11077:23;11073:33;11070:53;;;11119:1;11116;11109:12;11070:53;11142:29;11161:9;11142:29;:::i;:::-;11132:39;;11221:2;11210:9;11206:18;11193:32;11234:28;11256:5;11234:28;:::i;:::-;11281:5;-1:-1:-1;11338:2:3;11323:18;;11310:32;11351:30;11310:32;11351:30;:::i;:::-;11400:7;-1:-1:-1;11459:2:3;11444:18;;11431:32;11472:30;11431:32;11472:30;:::i;:::-;10948:586;;;;-1:-1:-1;10948:586:3;;-1:-1:-1;;10948:586:3:o;11974:1196::-;12240:6;12248;12256;12264;12272;12280;12333:2;12321:9;12312:7;12308:23;12304:32;12301:52;;;12349:1;12346;12339:12;12301:52;12389:9;12376:23;12418:18;12459:2;12451:6;12448:14;12445:34;;;12475:1;12472;12465:12;12445:34;12514:70;12576:7;12567:6;12556:9;12552:22;12514:70;:::i;:::-;12603:8;;-1:-1:-1;12488:96:3;-1:-1:-1;12691:2:3;12676:18;;12663:32;;-1:-1:-1;12707:16:3;;;12704:36;;;12736:1;12733;12726:12;12704:36;12775:72;12839:7;12828:8;12817:9;12813:24;12775:72;:::i;:::-;12866:8;;-1:-1:-1;12749:98:3;-1:-1:-1;12954:2:3;12939:18;;12926:32;;-1:-1:-1;12970:16:3;;;12967:36;;;12999:1;12996;12989:12;12967:36;;13038:72;13102:7;13091:8;13080:9;13076:24;13038:72;:::i;:::-;11974:1196;;;;-1:-1:-1;11974:1196:3;;-1:-1:-1;11974:1196:3;;13129:8;;11974:1196;-1:-1:-1;;;11974:1196:3:o;13598:254::-;13666:6;13674;13727:2;13715:9;13706:7;13702:23;13698:32;13695:52;;;13743:1;13740;13733:12;13695:52;13766:29;13785:9;13766:29;:::i;:::-;13756:39;13842:2;13827:18;;;;13814:32;;-1:-1:-1;;;13598:254:3:o;14632:1395::-;14817:6;14825;14833;14841;14849;14857;14865;14873;14926:3;14914:9;14905:7;14901:23;14897:33;14894:53;;;14943:1;14940;14933:12;14894:53;14983:9;14970:23;15012:18;15053:2;15045:6;15042:14;15039:34;;;15069:1;15066;15059:12;15039:34;15108:70;15170:7;15161:6;15150:9;15146:22;15108:70;:::i;:::-;15197:8;;-1:-1:-1;15082:96:3;-1:-1:-1;15285:2:3;15270:18;;15257:32;;-1:-1:-1;15301:16:3;;;15298:36;;;15330:1;15327;15320:12;15298:36;15369:72;15433:7;15422:8;15411:9;15407:24;15369:72;:::i;:::-;15460:8;;-1:-1:-1;15343:98:3;-1:-1:-1;15548:2:3;15533:18;;15520:32;;-1:-1:-1;15564:16:3;;;15561:36;;;15593:1;15590;15583:12;15561:36;15632:72;15696:7;15685:8;15674:9;15670:24;15632:72;:::i;:::-;15723:8;;-1:-1:-1;15606:98:3;-1:-1:-1;15811:2:3;15796:18;;15783:32;;-1:-1:-1;15827:16:3;;;15824:36;;;15856:1;15853;15846:12;15824:36;;15895:72;15959:7;15948:8;15937:9;15933:24;15895:72;:::i;:::-;14632:1395;;;;-1:-1:-1;14632:1395:3;;-1:-1:-1;14632:1395:3;;;;;;15986:8;-1:-1:-1;;;14632:1395:3:o;16032:340::-;16110:6;16118;16171:2;16159:9;16150:7;16146:23;16142:32;16139:52;;;16187:1;16184;16177:12;16139:52;16210:29;16229:9;16210:29;:::i;:::-;16200:39;;16289:2;16278:9;16274:18;16261:32;16322:1;16315:5;16312:12;16302:40;;16338:1;16335;16328:12;16377:1237;16568:2;16557:9;16550:21;16613:6;16607:13;16602:2;16591:9;16587:18;16580:41;16675:2;16667:6;16663:15;16657:22;16652:2;16641:9;16637:18;16630:50;16734:2;16726:6;16722:15;16716:22;16711:2;16700:9;16696:18;16689:50;16794:2;16786:6;16782:15;16776:22;16770:3;16759:9;16755:19;16748:51;16531:4;16846:3;16838:6;16834:16;16828:23;16870:6;16913:2;16907:3;16896:9;16892:19;16885:31;16939:71;17005:3;16994:9;16990:19;16976:12;16939:71;:::i;:::-;16925:85;;17059:3;17051:6;17047:16;17041:23;17133:2;17129:7;17117:9;17109:6;17105:22;17101:36;17095:3;17084:9;17080:19;17073:65;17161:60;17214:6;17198:14;17161:60;:::i;:::-;17147:74;;;17270:3;17262:6;17258:16;17252:23;17284:52;17331:3;17320:9;17316:19;17300:14;2075:13;2068:21;2056:34;;2005:91;17284:52;;17385:3;17377:6;17373:16;17367:23;17409:3;17421:51;17468:2;17457:9;17453:18;17437:14;2075:13;2068:21;2056:34;;2005:91;17421:51;17509:15;;;17503:22;2075:13;2068:21;17566:18;;2056:34;;;;-1:-1:-1;17602:6:3;;-1:-1:-1;16377:1237:3:o;17956:127::-;18017:10;18012:3;18008:20;18005:1;17998:31;18048:4;18045:1;18038:15;18072:4;18069:1;18062:15;19501:127;19562:10;19557:3;19553:20;19550:1;19543:31;19593:4;19590:1;19583:15;19617:4;19614:1;19607:15;19633:125;19673:4;19701:1;19698;19695:8;19692:34;;;19706:18;;:::i;:::-;-1:-1:-1;19743:9:3;;19633:125::o;20159:128::-;20199:3;20230:1;20226:6;20223:1;20220:13;20217:39;;;20236:18;;:::i;:::-;-1:-1:-1;20272:9:3;;20159:128::o;20292:127::-;20353:10;20348:3;20344:20;20341:1;20334:31;20384:4;20381:1;20374:15;20408:4;20405:1;20398:15;20424:127;20485:10;20480:3;20476:20;20473:1;20466:31;20516:4;20513:1;20506:15;20540:4;20537:1;20530:15;21263:351;21465:2;21447:21;;;21504:2;21484:18;;;21477:30;21543:29;21538:2;21523:18;;21516:57;21605:2;21590:18;;21263:351::o;21619:342::-;21821:2;21803:21;;;21860:2;21840:18;;;21833:30;-1:-1:-1;;;21894:2:3;21879:18;;21872:48;21952:2;21937:18;;21619:342::o;21966:356::-;22168:2;22150:21;;;22187:18;;;22180:30;22246:34;22241:2;22226:18;;22219:62;22313:2;22298:18;;21966:356::o;22327:354::-;22415:19;;;22397:3;-1:-1:-1;;;;;22446:31:3;;22443:51;;;22490:1;22487;22480:12;22443:51;22526:6;22523:1;22519:14;22578:8;22571:5;22564:4;22559:3;22555:14;22542:45;22655:1;22610:18;;22630:4;22606:29;22644:13;;;-1:-1:-1;22606:29:3;;22327:354;-1:-1:-1;;22327:354:3:o;22686:519::-;22963:2;22952:9;22945:21;22926:4;22989:73;23058:2;23047:9;23043:18;23035:6;23027;22989:73;:::i;:::-;23110:9;23102:6;23098:22;23093:2;23082:9;23078:18;23071:50;23138:61;23192:6;23184;23176;23138:61;:::i;:::-;23130:69;22686:519;-1:-1:-1;;;;;;;22686:519:3:o;23571:331::-;23670:4;23728:11;23715:25;23822:3;23818:8;23807;23791:14;23787:29;23783:44;23763:18;23759:69;23749:97;;23842:1;23839;23832:12;23749:97;23863:33;;;;;23571:331;-1:-1:-1;;23571:331:3:o;23907:241::-;23963:6;24016:2;24004:9;23995:7;23991:23;23987:32;23984:52;;;24032:1;24029;24022:12;23984:52;24071:9;24058:23;24090:28;24112:5;24090:28;:::i;24153:577::-;24273:4;24279:6;24339:11;24326:25;24433:2;24429:7;24418:8;24402:14;24398:29;24394:43;24374:18;24370:68;24360:96;;24452:1;24449;24442:12;24360:96;24479:33;;24531:20;;;-1:-1:-1;24574:18:3;24563:30;;24560:50;;;24606:1;24603;24596:12;24560:50;24639:4;24627:17;;-1:-1:-1;24698:6:3;24686:19;;24670:14;24666:40;24656:51;;24653:71;;;24720:1;24717;24710:12;27199:127;27260:10;27255:3;27251:20;27248:1;27241:31;27291:4;27288:1;27281:15;27315:4;27312:1;27305:15;27331:230;27376:11;27428:3;27415:17;-1:-1:-1;;;;;27465:5:3;27461:46;27454:5;27451:57;27441:85;;27522:1;27519;27512:12;27441:85;27550:5;27331:230;-1:-1:-1;;27331:230:3:o;27784:170::-;27826:11;27878:3;27865:17;27891:28;27913:5;27891:28;:::i;31035:1653::-;31172:89;31226:34;31254:5;31226:34;:::i;:::-;27670:11;;-1:-1:-1;;;;;;27666:57:3;-1:-1:-1;;;;;27725:46:3;;;;27663:109;27650:123;;27566:213;31172:89;31270:92;31321:40;31357:2;31350:5;31346:14;31321:40;:::i;:::-;31315:4;28050:11;;-1:-1:-1;;;;28086:27:3;28135:13;;28128:21;28156:3;28119:31;-1:-1:-1;;;28115:51:3;28083:84;;;;28070:98;;27959:215;31270:92;31371;31422:40;31458:2;31451:5;31447:14;31422:40;:::i;:::-;31416:4;28270:11;;-1:-1:-1;;;;28306:27:3;28355:13;;28348:21;28376:3;28339:31;-1:-1:-1;;;28335:51:3;28303:84;;;;28290:98;;28179:215;31371:92;31472;31523:40;31559:2;31552:5;31548:14;31523:40;:::i;:::-;31517:4;28490:11;;-1:-1:-1;;;;28526:27:3;28575:13;;28568:21;28596:3;28559:31;-1:-1:-1;;;28555:51:3;28523:84;;;;28510:98;;28399:215;31472:92;31573:93;31624:41;31660:3;31653:5;31649:15;31624:41;:::i;:::-;31618:4;28710:11;;-1:-1:-1;;;;28746:27:3;28795:13;;28788:21;28816:3;28779:31;-1:-1:-1;;;28775:51:3;28743:84;;;;28730:98;;28619:215;31573:93;31675;31726:41;31762:3;31755:5;31751:15;31726:41;:::i;:::-;31720:4;28930:11;;-1:-1:-1;;;;28966:27:3;29015:13;;29008:21;29036:3;28999:31;-1:-1:-1;;;28995:51:3;28963:84;;;;28950:98;;28839:215;31675:93;31777;31828:41;31864:3;31857:5;31853:15;31828:41;:::i;:::-;31822:4;29150:11;;-1:-1:-1;;;;29186:27:3;29235:13;;29228:21;29256:3;29219:31;-1:-1:-1;;;29215:51:3;29183:84;;;;29170:98;;29059:215;31777:93;31879;31930:41;31966:3;31959:5;31955:15;31930:41;:::i;:::-;31924:4;29370:11;;-1:-1:-1;;;;29406:27:3;29455:13;;29448:21;29476:3;29439:31;-1:-1:-1;;;29435:51:3;29403:84;;;;29390:98;;29279:215;31879:93;31981;32032:41;32068:3;32061:5;32057:15;32032:41;:::i;:::-;32026:4;29590:11;;-1:-1:-1;;;;29626:27:3;29675:13;;29668:21;29696:3;29659:31;-1:-1:-1;;;29655:51:3;29623:84;;;;29610:98;;29499:215;31981:93;32083;32134:41;32170:3;32163:5;32159:15;32134:41;:::i;:::-;32128:4;29810:11;;-1:-1:-1;;;;29846:27:3;29895:13;;29888:21;29916:3;29879:31;-1:-1:-1;;;29875:51:3;29843:84;;;;29830:98;;29719:215;32083:93;32185:92;32235:41;32271:3;32264:5;32260:15;32235:41;:::i;:::-;32229:4;30029:11;;-1:-1:-1;;;;30065:27:3;30114:13;;30107:21;30135:3;30098:31;-1:-1:-1;;;30094:51:3;30062:84;;;;30049:98;;29939:214;32185:92;32286:93;32337:41;32373:3;32366:5;32362:15;32337:41;:::i;:::-;32331:4;30249:11;;-1:-1:-1;;;;30285:27:3;30334:13;;30327:21;30355:3;30318:31;-1:-1:-1;;;30314:51:3;30282:84;;;;30269:98;;30158:215;32286:93;32388:90;32436:41;32472:3;32465:5;32461:15;32436:41;:::i;:::-;32430:4;30466:11;;-1:-1:-1;;;;30502:27:3;30551:13;;30544:21;30572:3;30535:31;-1:-1:-1;;;30531:51:3;30499:84;;;;30486:98;;30378:212;32388:90;32487:93;32538:41;32574:3;32567:5;32563:15;32538:41;:::i;:::-;32532:4;30686:11;;-1:-1:-1;;;;30722:27:3;30771:13;;30764:21;30792:3;30755:31;-1:-1:-1;;;30751:51:3;30719:84;;;;30706:98;;30595:215;32487:93;32589;32640:41;32676:3;32669:5;32665:15;32640:41;:::i;:::-;32634:4;30906:11;;-1:-1:-1;;;;30942:27:3;30991:13;;30984:21;31012:3;30975:31;-1:-1:-1;;;30971:51:3;30939:84;;;;30926:98;;30815:215
Swarm Source
ipfs://ad466a45f5d565ffdc1158630b49ba5b63dbdd62a1b16c294a88a7bf932106b4
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.