Contract Overview
Balance:
0 AVAX
AVAX Value:
$0.00
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
Traits
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; import "./Ownable.sol"; import "./ITraits.sol"; import "./IHunter.sol"; import "./Libraries.sol"; contract Traits is Ownable, ITraits { using Strings for uint256; uint256 private alphaTypeIndex = 7; // struct to store each trait's data for metadata and rendering struct Trait { string name; string png; } string hunterBody; string adventurerBody; // mapping from trait type (index) to its name string[8] _traitTypes = [ // for adventurers: "Jacket", "Hair", "Backpack", //for hunters: "Arm", "Clothes", "Mask", "Weapon" ]; // storage of each traits name and base64 PNG data mapping(uint8 => mapping(uint8 => Trait)) public traitData; mapping(uint8 => uint8) public traitCountForType; // mapping from alphaIndex to its score string[4] _alphas = ["8", "7", "6", "5"]; IHunter public hunter; function selectTrait(uint16 seed, uint8 traitType) external view override returns (uint8) { if (traitType == alphaTypeIndex) { uint256 m = seed % 100; if (m > 95) { return 0; } else if (m > 80) { return 1; } else if (m > 50) { return 2; } else { return 3; } } uint8 modOf = traitCountForType[traitType]; return uint8(seed % modOf); } /***ADMIN */ function setGame(address _hunter) external onlyOwner { hunter = IHunter(_hunter); } function uploadBodies(string calldata _hunter, string calldata _adventurer) external onlyOwner { hunterBody = _hunter; adventurerBody = _adventurer; } /** * administrative to upload the names and images associated with each trait * @param traitType the trait type to upload the traits for (see traitTypes for a mapping) * @param traits the names and base64 encoded PNGs for each trait */ function uploadTraits( uint8 traitType, uint8[] calldata traitIds, Trait[] calldata traits ) external onlyOwner { require(traitIds.length == traits.length, "Mismatched inputs"); for (uint256 i = 0; i < traits.length; i++) { traitData[traitType][traitIds[i]] = Trait( traits[i].name, traits[i].png ); } } function setTraitCountForType(uint8[] memory _tType, uint8[] memory _len) public onlyOwner { for (uint256 i = 0; i < _tType.length; i++) { traitCountForType[_tType[i]] = _len[i]; } } /***RENDER */ /** * generates an <image> element using base64 encoded PNGs * @param trait the trait storing the PNG data * @return the <image> element */ function drawTrait(Trait memory trait) internal pure returns (string memory) { return string( abi.encodePacked( '<image x="4" y="4" width="32" height="32" image-rendering="pixelated" preserveAspectRatio="xMidYMid" xlink:href="data:image/png;base64,', trait.png, '"/>' ) ); } function draw(string memory png) internal pure returns (string memory) { return string( abi.encodePacked( '<image x="4" y="4" width="32" height="32" image-rendering="pixelated" preserveAspectRatio="xMidYMid" xlink:href="data:image/png;base64,', png, '"/>' ) ); } /** * generates an entire SVG by composing multiple <image> elements of PNGs * @param tokenId the ID of the token to generate an SVG for * @return a valid SVG of the Adventurer / Hunter */ function drawSVG(uint256 tokenId) public view returns (string memory) { IHunter.AvtHtr memory s = hunter.getTokenTraits(tokenId); string memory svgString = ""; if (s.isAdventurer) { svgString = string( abi.encodePacked( drawTrait(traitData[0][s.jacket]), drawTrait(traitData[2][s.backpack]), draw(adventurerBody), drawTrait(traitData[1][s.hair]) ) ); } else { svgString = string( abi.encodePacked( draw(hunterBody), drawTrait(traitData[4][s.clothes]), drawTrait(traitData[5][s.mask]), drawTrait(traitData[6][s.weapon]), drawTrait(traitData[3][s.arm]) ) ); } return string( abi.encodePacked( '<svg id="hunter" width="100%" height="100%" version="1.1" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">', svgString, "</svg>" ) ); } /** * generates an attribute for the attributes array in the ERC721 metadata standard * @param traitType the trait type to reference as the metadata key * @param value the token's trait associated with the key * @return a JSON dictionary for the single attribute */ function attributeForTypeAndValue( string memory traitType, string memory value ) internal pure returns (string memory) { return string( abi.encodePacked( '{"trait_type":"', traitType, '","value":"', value, '"}' ) ); } /** * generates an array composed of all the individual traits and values * @param tokenId the ID of the token to compose the metadata for * @return a JSON array of all of the attributes for given token ID */ function compileAttributes(uint256 tokenId) public view returns (string memory) { IHunter.AvtHtr memory s = hunter.getTokenTraits(tokenId); string memory traits; if (s.isAdventurer) { traits = string( abi.encodePacked( attributeForTypeAndValue( _traitTypes[0], traitData[0][s.jacket % traitCountForType[0]].name ), ",", attributeForTypeAndValue( _traitTypes[1], traitData[1][s.hair % traitCountForType[1]].name ), ",", attributeForTypeAndValue( _traitTypes[2], traitData[2][s.backpack % traitCountForType[2]].name ), "," ) ); } else { traits = string( abi.encodePacked( attributeForTypeAndValue( _traitTypes[4], traitData[4][s.clothes % traitCountForType[4]].name ), ",", attributeForTypeAndValue( _traitTypes[5], traitData[5][s.mask % traitCountForType[5]].name ), ",", attributeForTypeAndValue( _traitTypes[6], traitData[6][s.weapon % traitCountForType[6]].name ), ",", attributeForTypeAndValue( _traitTypes[3], traitData[3][s.arm % traitCountForType[3]].name ), ",", attributeForTypeAndValue( "Alpha Score", _alphas[s.alphaIndex] ), "," ) ); } return string( abi.encodePacked( "[", traits, '{"trait_type":"Generation","value":', tokenId <= hunter.getPaidTokens() ? '"Gen 0"' : '"Gen 1"', '},{"trait_type":"Type","value":', s.isAdventurer ? '"Adventurer"' : '"Hunter"', "}]" ) ); } /** * generates a base64 encoded metadata response without referencing off-chain content * @param tokenId the ID of the token to generate the metadata for * @return a base64 encoded JSON dictionary of the token's metadata and SVG */ function tokenURI(uint256 tokenId) public view override returns (string memory) { IHunter.AvtHtr memory s = hunter.getTokenTraits(tokenId); string memory metadata = string( abi.encodePacked( '{"name": "', s.isAdventurer ? "Adventurer #" : "Hunter #", tokenId.toString(), '", "description": "Thousands of Adventurers and Hunters compete on a forest in the metaverse. A tempting prize of $GEM awaits, with deadly high stakes. All the metadata and images are generated and stored 100% on-chain. No IPFS. NO API. Just the Avalanche blockchain.", "image": "data:image/svg+xml;base64,', base64(bytes(drawSVG(tokenId))), '", "attributes":', compileAttributes(tokenId), "}" ) ); return string( abi.encodePacked( "data:application/json;base64,", base64(bytes(metadata)) ) ); } /***BASE 64 - Written by Brech Devos */ string internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function base64(bytes memory data) internal pure returns (string memory) { if (data.length == 0) return ""; // load the table into memory string memory table = TABLE; // multiply by 4/3 rounded up uint256 encodedLen = 4 * ((data.length + 2) / 3); // add some extra buffer at the end required for the writing string memory result = new string(encodedLen + 32); assembly { // set the actual output length mstore(result, encodedLen) // prepare the lookup table let tablePtr := add(table, 1) // input ptr let dataPtr := data let endPtr := add(dataPtr, mload(data)) // result ptr, jump over length let resultPtr := add(result, 32) // run over the input, 3 bytes at a time for { } lt(dataPtr, endPtr) { } { dataPtr := add(dataPtr, 3) // read 3 bytes let input := mload(dataPtr) // write 4 characters mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(6, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(input, 0x3F)))) ) resultPtr := add(resultPtr, 1) } // padding with '=' switch mod(mload(data), 3) case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) } case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) } } return result; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IHunter { // struct to store each token's traits struct AvtHtr { bool isAdventurer; uint8 jacket; uint8 hair; uint8 backpack; uint8 arm; uint8 clothes; uint8 mask; uint8 weapon; uint8 alphaIndex; } function getPaidTokens() external view returns (uint256); function getTokenTraits(uint256 tokenId) external view returns (AvtHtr memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ITraits { function tokenURI(uint256 tokenId) external view returns (string memory); function selectTrait(uint16 seed, uint8 traitType) external view returns (uint8); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"compileAttributes","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"drawSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hunter","outputs":[{"internalType":"contract IHunter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"seed","type":"uint16"},{"internalType":"uint8","name":"traitType","type":"uint8"}],"name":"selectTrait","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_hunter","type":"address"}],"name":"setGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"_tType","type":"uint8[]"},{"internalType":"uint8[]","name":"_len","type":"uint8[]"}],"name":"setTraitCountForType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"traitCountForType","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"}],"name":"traitData","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"png","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_hunter","type":"string"},{"internalType":"string","name":"_adventurer","type":"string"}],"name":"uploadBodies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"traitType","type":"uint8"},{"internalType":"uint8[]","name":"traitIds","type":"uint8[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"png","type":"string"}],"internalType":"struct Traits.Trait[]","name":"traits","type":"tuple[]"}],"name":"uploadTraits","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260076001556040518060e001604052806040518060400160405280600681526020017f4a61636b6574000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f486169720000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f4261636b7061636b00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600381526020017f41726d000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f436c6f746865730000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f4d61736b0000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f576561706f6e00000000000000000000000000000000000000000000000000008152508152506004906007620001c1929190620003ca565b5060405180608001604052806040518060400160405280600181526020017f380000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f360000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f3500000000000000000000000000000000000000000000000000000000000000815250815250600e906004620002c992919062000424565b50348015620002d757600080fd5b50620002f8620002ec620002fe60201b60201c565b6200030660201b60201c565b62000601565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b826008810192821562000411579160200282015b8281111562000410578251829080519060200190620003ff9291906200047e565b5091602001919060010190620003de565b5b5090506200042091906200050f565b5090565b82600481019282156200046b579160200282015b828111156200046a578251829080519060200190620004599291906200047e565b509160200191906001019062000438565b5b5090506200047a91906200050f565b5090565b8280546200048c906200059c565b90600052602060002090601f016020900481019282620004b05760008555620004fc565b82601f10620004cb57805160ff1916838001178555620004fc565b82800160010185558215620004fc579182015b82811115620004fb578251825591602001919060010190620004de565b5b5090506200050b919062000537565b5090565b5b8082111562000533576000818162000529919062000556565b5060010162000510565b5090565b5b808211156200055257600081600090555060010162000538565b5090565b50805462000564906200059c565b6000825580601f1062000578575062000599565b601f01602090049060005260206000209081019062000598919062000537565b5b50565b60006002820490506001821680620005b557607f821691505b60208210811415620005cc57620005cb620005d2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61476080620006116000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80639bf2ee351161008c578063c87b56dd11610066578063c87b56dd14610249578063d93ae3d914610279578063ee7bd58b14610295578063f2fde38b146102c5576100e9565b80639bf2ee35146101cc578063a6b09692146101fd578063b7a5ad541461022d576100e9565b8063715018a6116100c8578063715018a6146101585780637abecb8614610162578063819912a2146101925780638da5cb5b146101ae576100e9565b8062ecbfd1146100ee5780631602f7b01461010a57806368dba5e514610128575b600080fd5b610108600480360381019061010391906130f2565b6102e1565b005b6101126103e7565b60405161011f9190613a19565b60405180910390f35b610142600480360381019061013d9190613259565b61040d565b60405161014f9190613a34565b60405180910390f35b6101606112c5565b005b61017c60048036038101906101779190613259565b61134d565b6040516101899190613a34565b60405180910390f35b6101ac60048036038101906101a791906130c5565b611f99565b005b6101b6612059565b6040516101c391906139fe565b60405180910390f35b6101e660048036038101906101e19190613375565b612082565b6040516101f4929190613a56565b60405180910390f35b61021760048036038101906102129190613219565b6121c3565b6040516102249190613b08565b60405180910390f35b6102476004803603810190610242919061316a565b61226e565b005b610263600480360381019061025e9190613259565b612314565b6040516102709190613a34565b60405180910390f35b610293600480360381019061028e91906132e0565b6124bb565b005b6102af60048036038101906102aa91906132b3565b61273d565b6040516102bc9190613b08565b60405180910390f35b6102df60048036038101906102da91906130c5565b61275d565b005b6102e9612855565b73ffffffffffffffffffffffffffffffffffffffff16610307612059565b73ffffffffffffffffffffffffffffffffffffffff161461035d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035490613acd565b60405180910390fd5b60005b82518110156103e25781818151811061037c5761037b613fd3565b5b6020026020010151600d600085848151811061039b5761039a613fd3565b5b602002602001015160ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806103da90613e6a565b915050610360565b505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394e56847846040518263ffffffff1660e01b815260040161046c9190613aed565b6101206040518083038186803b15801561048557600080fd5b505afa158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd91906131eb565b905060608160000151156109ad5761065d60046000600881106104e3576104e2613fd3565b5b0180546104ef90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90613e07565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050600c60008060ff1681526020019081526020016000206000600d60008060ff16815260200190815260200160002060009054906101000a900460ff1686602001516105b89190613f15565b60ff1660ff16815260200190815260200160002060000180546105da90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461060690613e07565b80156106535780601f1061062857610100808354040283529160200191610653565b820191906000526020600020905b81548152906001019060200180831161063657829003601f168201915b505050505061285d565b6107f1600460016008811061067557610674613fd3565b5b01805461068190613e07565b80601f01602080910402602001604051908101604052809291908181526020018280546106ad90613e07565b80156106fa5780601f106106cf576101008083540402835291602001916106fa565b820191906000526020600020905b8154815290600101906020018083116106dd57829003601f168201915b5050505050600c6000600160ff1681526020019081526020016000206000600d6000600160ff16815260200190815260200160002060009054906101000a900460ff16876040015161074c9190613f15565b60ff1660ff168152602001908152602001600020600001805461076e90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461079a90613e07565b80156107e75780601f106107bc576101008083540402835291602001916107e7565b820191906000526020600020905b8154815290600101906020018083116107ca57829003601f168201915b505050505061285d565b610985600460026008811061080957610808613fd3565b5b01805461081590613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461084190613e07565b801561088e5780601f106108635761010080835404028352916020019161088e565b820191906000526020600020905b81548152906001019060200180831161087157829003601f168201915b5050505050600c6000600260ff1681526020019081526020016000206000600d6000600260ff16815260200190815260200160002060009054906101000a900460ff1688606001516108e09190613f15565b60ff1660ff168152602001908152602001600020600001805461090290613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461092e90613e07565b801561097b5780601f106109505761010080835404028352916020019161097b565b820191906000526020600020905b81548152906001019060200180831161095e57829003601f168201915b505050505061285d565b604051602001610997939291906137a2565b6040516020818303038152906040529050611106565b610b40600480600881106109c4576109c3613fd3565b5b0180546109d090613e07565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc90613e07565b8015610a495780601f10610a1e57610100808354040283529160200191610a49565b820191906000526020600020905b815481529060010190602001808311610a2c57829003601f168201915b5050505050600c6000600460ff1681526020019081526020016000206000600d6000600460ff16815260200190815260200160002060009054906101000a900460ff168660a00151610a9b9190613f15565b60ff1660ff1681526020019081526020016000206000018054610abd90613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae990613e07565b8015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b505050505061285d565b610cd46004600560088110610b5857610b57613fd3565b5b018054610b6490613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9090613e07565b8015610bdd5780601f10610bb257610100808354040283529160200191610bdd565b820191906000526020600020905b815481529060010190602001808311610bc057829003601f168201915b5050505050600c6000600560ff1681526020019081526020016000206000600d6000600560ff16815260200190815260200160002060009054906101000a900460ff168760c00151610c2f9190613f15565b60ff1660ff1681526020019081526020016000206000018054610c5190613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7d90613e07565b8015610cca5780601f10610c9f57610100808354040283529160200191610cca565b820191906000526020600020905b815481529060010190602001808311610cad57829003601f168201915b505050505061285d565b610e686004600660088110610cec57610ceb613fd3565b5b018054610cf890613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2490613e07565b8015610d715780601f10610d4657610100808354040283529160200191610d71565b820191906000526020600020905b815481529060010190602001808311610d5457829003601f168201915b5050505050600c6000600660ff1681526020019081526020016000206000600d6000600660ff16815260200190815260200160002060009054906101000a900460ff168860e00151610dc39190613f15565b60ff1660ff1681526020019081526020016000206000018054610de590613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1190613e07565b8015610e5e5780601f10610e3357610100808354040283529160200191610e5e565b820191906000526020600020905b815481529060010190602001808311610e4157829003601f168201915b505050505061285d565b610ffc6004600360088110610e8057610e7f613fd3565b5b018054610e8c90613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb890613e07565b8015610f055780601f10610eda57610100808354040283529160200191610f05565b820191906000526020600020905b815481529060010190602001808311610ee857829003601f168201915b5050505050600c6000600360ff1681526020019081526020016000206000600d6000600360ff16815260200190815260200160002060009054906101000a900460ff168960800151610f579190613f15565b60ff1660ff1681526020019081526020016000206000018054610f7990613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa590613e07565b8015610ff25780601f10610fc757610100808354040283529160200191610ff2565b820191906000526020600020905b815481529060010190602001808311610fd557829003601f168201915b505050505061285d565b6110e06040518060400160405280600b81526020017f416c7068612053636f7265000000000000000000000000000000000000000000815250600e88610100015160ff166004811061105157611050613fd3565b5b01805461105d90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461108990613e07565b80156110d65780601f106110ab576101008083540402835291602001916110d6565b820191906000526020600020905b8154815290600101906020018083116110b957829003601f168201915b505050505061285d565b6040516020016110f49594939291906137f4565b60405160208183030381529060405290505b80601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634018b1f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a79190613286565b8511156111e9576040518060400160405280600781526020017f2247656e20312200000000000000000000000000000000000000000000000000815250611220565b6040518060400160405280600781526020017f2247656e203022000000000000000000000000000000000000000000000000008152505b8360000151611264576040518060400160405280600881526020017f2248756e7465722200000000000000000000000000000000000000000000000081525061129b565b6040518060400160405280600c81526020017f22416476656e74757265722200000000000000000000000000000000000000008152505b6040516020016112ad93929190613915565b60405160208183030381529060405292505050919050565b6112cd612855565b73ffffffffffffffffffffffffffffffffffffffff166112eb612059565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890613acd565b60405180910390fd5b61134b6000612889565b565b60606000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394e56847846040518263ffffffff1660e01b81526004016113ac9190613aed565b6101206040518083038186803b1580156113c557600080fd5b505afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd91906131eb565b9050600060405180602001604052806000815250905081600001511561191357611585600c60008060ff1681526020019081526020016000206000846020015160ff1660ff16815260200190815260200160002060405180604001604052908160008201805461146c90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461149890613e07565b80156114e55780601f106114ba576101008083540402835291602001916114e5565b820191906000526020600020905b8154815290600101906020018083116114c857829003601f168201915b505050505081526020016001820180546114fe90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461152a90613e07565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152505061294d565b6116ee600c6000600260ff1681526020019081526020016000206000856060015160ff1660ff1681526020019081526020016000206040518060400160405290816000820180546115d590613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461160190613e07565b801561164e5780601f106116235761010080835404028352916020019161164e565b820191906000526020600020905b81548152906001019060200180831161163157829003601f168201915b5050505050815260200160018201805461166790613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461169390613e07565b80156116e05780601f106116b5576101008083540402835291602001916116e0565b820191906000526020600020905b8154815290600101906020018083116116c357829003601f168201915b50505050508152505061294d565b611781600380546116fe90613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461172a90613e07565b80156117775780601f1061174c57610100808354040283529160200191611777565b820191906000526020600020905b81548152906001019060200180831161175a57829003601f168201915b505050505061297a565b6118ea600c6000600160ff1681526020019081526020016000206000876040015160ff1660ff1681526020019081526020016000206040518060400160405290816000820180546117d190613e07565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd90613e07565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b5050505050815260200160018201805461186390613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461188f90613e07565b80156118dc5780601f106118b1576101008083540402835291602001916118dc565b820191906000526020600020905b8154815290600101906020018083116118bf57829003601f168201915b50505050508152505061294d565b6040516020016118fd9493929190613719565b6040516020818303038152906040529050611f70565b6119a66002805461192390613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461194f90613e07565b801561199c5780601f106119715761010080835404028352916020019161199c565b820191906000526020600020905b81548152906001019060200180831161197f57829003601f168201915b505050505061297a565b611b0f600c6000600460ff16815260200190815260200160002060008560a0015160ff1660ff1681526020019081526020016000206040518060400160405290816000820180546119f690613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2290613e07565b8015611a6f5780601f10611a4457610100808354040283529160200191611a6f565b820191906000526020600020905b815481529060010190602001808311611a5257829003601f168201915b50505050508152602001600182018054611a8890613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab490613e07565b8015611b015780601f10611ad657610100808354040283529160200191611b01565b820191906000526020600020905b815481529060010190602001808311611ae457829003601f168201915b50505050508152505061294d565b611c78600c6000600560ff16815260200190815260200160002060008660c0015160ff1660ff168152602001908152602001600020604051806040016040529081600082018054611b5f90613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8b90613e07565b8015611bd85780601f10611bad57610100808354040283529160200191611bd8565b820191906000526020600020905b815481529060010190602001808311611bbb57829003601f168201915b50505050508152602001600182018054611bf190613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1d90613e07565b8015611c6a5780601f10611c3f57610100808354040283529160200191611c6a565b820191906000526020600020905b815481529060010190602001808311611c4d57829003601f168201915b50505050508152505061294d565b611de1600c6000600660ff16815260200190815260200160002060008760e0015160ff1660ff168152602001908152602001600020604051806040016040529081600082018054611cc890613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611cf490613e07565b8015611d415780601f10611d1657610100808354040283529160200191611d41565b820191906000526020600020905b815481529060010190602001808311611d2457829003601f168201915b50505050508152602001600182018054611d5a90613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8690613e07565b8015611dd35780601f10611da857610100808354040283529160200191611dd3565b820191906000526020600020905b815481529060010190602001808311611db657829003601f168201915b50505050508152505061294d565b611f4a600c6000600360ff1681526020019081526020016000206000886080015160ff1660ff168152602001908152602001600020604051806040016040529081600082018054611e3190613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5d90613e07565b8015611eaa5780601f10611e7f57610100808354040283529160200191611eaa565b820191906000526020600020905b815481529060010190602001808311611e8d57829003601f168201915b50505050508152602001600182018054611ec390613e07565b80601f0160208091040260200160405190810160405280929190818152602001828054611eef90613e07565b8015611f3c5780601f10611f1157610100808354040283529160200191611f3c565b820191906000526020600020905b815481529060010190602001808311611f1f57829003601f168201915b50505050508152505061294d565b604051602001611f5e959493929190613757565b60405160208183030381529060405290505b80604051602001611f8191906138e8565b60405160208183030381529060405292505050919050565b611fa1612855565b73ffffffffffffffffffffffffffffffffffffffff16611fbf612059565b73ffffffffffffffffffffffffffffffffffffffff1614612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90613acd565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c602052816000526040600020602052806000526040600020600091509150508060000180546120b290613e07565b80601f01602080910402602001604051908101604052809291908181526020018280546120de90613e07565b801561212b5780601f106121005761010080835404028352916020019161212b565b820191906000526020600020905b81548152906001019060200180831161210e57829003601f168201915b50505050509080600101805461214090613e07565b80601f016020809104026020016040519081016040528092919081815260200182805461216c90613e07565b80156121b95780601f1061218e576101008083540402835291602001916121b9565b820191906000526020600020905b81548152906001019060200180831161219c57829003601f168201915b5050505050905082565b60006001548260ff16141561222a5760006064846121e19190613eb3565b61ffff169050605f8111156121fa576000915050612268565b605081111561220d576001915050612268565b6032811115612220576002915050612268565b6003915050612268565b6000600d60008460ff1660ff16815260200190815260200160002060009054906101000a900460ff1690508060ff16846122649190613eb3565b9150505b92915050565b612276612855565b73ffffffffffffffffffffffffffffffffffffffff16612294612059565b73ffffffffffffffffffffffffffffffffffffffff16146122ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e190613acd565b60405180910390fd5b8383600291906122fb929190612c89565b5081816003919061230d929190612c89565b5050505050565b60606000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394e56847846040518263ffffffff1660e01b81526004016123739190613aed565b6101206040518083038186803b15801561238c57600080fd5b505afa1580156123a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c491906131eb565b90506000816000015161240c576040518060400160405280600881526020017f48756e7465722023000000000000000000000000000000000000000000000000815250612443565b6040518060400160405280600c81526020017f416476656e7475726572202300000000000000000000000000000000000000008152505b61244c856129a3565b61245d6124588761134d565b612b04565b6124668761040d565b6040516020016124799493929190613972565b604051602081830303815290604052905061249381612b04565b6040516020016124a391906139dc565b60405160208183030381529060405292505050919050565b6124c3612855565b73ffffffffffffffffffffffffffffffffffffffff166124e1612059565b73ffffffffffffffffffffffffffffffffffffffff1614612537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252e90613acd565b60405180910390fd5b81819050848490501461257f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257690613aad565b60405180910390fd5b60005b828290508110156127355760405180604001604052808484848181106125ab576125aa613fd3565b5b90506020028101906125bd9190613b86565b80600001906125cc9190613b23565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200184848481811061262757612626613fd3565b5b90506020028101906126399190613b86565b80602001906126489190613b23565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815250600c60008860ff1660ff16815260200190815260200160002060008787858181106126bc576126bb613fd3565b5b90506020020160208101906126d191906132b3565b60ff1660ff1681526020019081526020016000206000820151816000019080519060200190612701929190612d0f565b50602082015181600101908051906020019061271e929190612d0f565b50905050808061272d90613e6a565b915050612582565b505050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b612765612855565b73ffffffffffffffffffffffffffffffffffffffff16612783612059565b73ffffffffffffffffffffffffffffffffffffffff16146127d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d090613acd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284090613a8d565b60405180910390fd5b61285281612889565b50565b600033905090565b606082826040516020016128729291906138a3565b604051602081830303815290604052905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606081602001516040516020016129649190613876565b6040516020818303038152906040529050919050565b60608160405160200161298d9190613876565b6040516020818303038152906040529050919050565b606060008214156129eb576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612aff565b600082905060005b60008214612a1d578080612a0690613e6a565b915050600a82612a169190613c7c565b91506129f3565b60008167ffffffffffffffff811115612a3957612a38614002565b5b6040519080825280601f01601f191660200182016040528015612a6b5781602001600182028036833780820191505090505b5090505b60008514612af857600182612a849190613d07565b9150600a85612a939190613ee4565b6030612a9f9190613c26565b60f81b818381518110612ab557612ab4613fd3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612af19190613c7c565b9450612a6f565b8093505050505b919050565b6060600082511415612b2757604051806020016040528060008152509050612c84565b60006040518060600160405280604081526020016146eb6040913990506000600360028551612b569190613c26565b612b609190613c7c565b6004612b6c9190613cad565b90506000602082612b7d9190613c26565b67ffffffffffffffff811115612b9657612b95614002565b5b6040519080825280601f01601f191660200182016040528015612bc85781602001600182028036833780820191505090505b509050818152600183018586518101602084015b81831015612c43576003830192508251603f8160121c1685015160f81b8252600182019150603f81600c1c1685015160f81b8252600182019150603f8160061c1685015160f81b8252600182019150603f811685015160f81b825260018201915050612bdc565b600389510660018114612c5d5760028114612c6d57612c78565b613d3d60f01b6002830352612c78565b603d60f81b60018303525b50505050508093505050505b919050565b828054612c9590613e07565b90600052602060002090601f016020900481019282612cb75760008555612cfe565b82601f10612cd057803560ff1916838001178555612cfe565b82800160010185558215612cfe579182015b82811115612cfd578235825591602001919060010190612ce2565b5b509050612d0b9190612d95565b5090565b828054612d1b90613e07565b90600052602060002090601f016020900481019282612d3d5760008555612d84565b82601f10612d5657805160ff1916838001178555612d84565b82800160010185558215612d84579182015b82811115612d83578251825591602001919060010190612d68565b5b509050612d919190612d95565b5090565b5b80821115612dae576000816000905550600101612d96565b5090565b6000612dc5612dc084613bd3565b613bae565b90508083825260208201905082856020860282011115612de857612de761404a565b5b60005b85811015612e185781612dfe888261309b565b845260208401935060208301925050600181019050612deb565b5050509392505050565b600081359050612e3181614677565b92915050565b60008083601f840112612e4d57612e4c614036565b5b8235905067ffffffffffffffff811115612e6a57612e69614031565b5b602083019150836020820283011115612e8657612e8561404a565b5b9250929050565b60008083601f840112612ea357612ea2614036565b5b8235905067ffffffffffffffff811115612ec057612ebf614031565b5b602083019150836020820283011115612edc57612edb61404a565b5b9250929050565b600082601f830112612ef857612ef7614036565b5b8135612f08848260208601612db2565b91505092915050565b600081519050612f208161468e565b92915050565b60008083601f840112612f3c57612f3b614036565b5b8235905067ffffffffffffffff811115612f5957612f58614031565b5b602083019150836001820283011115612f7557612f7461404a565b5b9250929050565b60006101208284031215612f9357612f92614040565b5b612f9e610120613bae565b90506000612fae84828501612f11565b6000830152506020612fc2848285016130b0565b6020830152506040612fd6848285016130b0565b6040830152506060612fea848285016130b0565b6060830152506080612ffe848285016130b0565b60808301525060a0613012848285016130b0565b60a08301525060c0613026848285016130b0565b60c08301525060e061303a848285016130b0565b60e08301525061010061304f848285016130b0565b6101008301525092915050565b60008135905061306b816146a5565b92915050565b600081359050613080816146bc565b92915050565b600081519050613095816146bc565b92915050565b6000813590506130aa816146d3565b92915050565b6000815190506130bf816146d3565b92915050565b6000602082840312156130db576130da614059565b5b60006130e984828501612e22565b91505092915050565b6000806040838503121561310957613108614059565b5b600083013567ffffffffffffffff81111561312757613126614054565b5b61313385828601612ee3565b925050602083013567ffffffffffffffff81111561315457613153614054565b5b61316085828601612ee3565b9150509250929050565b6000806000806040858703121561318457613183614059565b5b600085013567ffffffffffffffff8111156131a2576131a1614054565b5b6131ae87828801612f26565b9450945050602085013567ffffffffffffffff8111156131d1576131d0614054565b5b6131dd87828801612f26565b925092505092959194509250565b6000610120828403121561320257613201614059565b5b600061321084828501612f7c565b91505092915050565b600080604083850312156132305761322f614059565b5b600061323e8582860161305c565b925050602061324f8582860161309b565b9150509250929050565b60006020828403121561326f5761326e614059565b5b600061327d84828501613071565b91505092915050565b60006020828403121561329c5761329b614059565b5b60006132aa84828501613086565b91505092915050565b6000602082840312156132c9576132c8614059565b5b60006132d78482850161309b565b91505092915050565b6000806000806000606086880312156132fc576132fb614059565b5b600061330a8882890161309b565b955050602086013567ffffffffffffffff81111561332b5761332a614054565b5b61333788828901612e8d565b9450945050604086013567ffffffffffffffff81111561335a57613359614054565b5b61336688828901612e37565b92509250509295509295909350565b6000806040838503121561338c5761338b614059565b5b600061339a8582860161309b565b92505060206133ab8582860161309b565b9150509250929050565b6133be81613d3b565b82525050565b6133cd81613d9e565b82525050565b60006133de82613bff565b6133e88185613c0a565b93506133f8818560208601613dd4565b6134018161405e565b840191505092915050565b600061341782613bff565b6134218185613c1b565b9350613431818560208601613dd4565b80840191505092915050565b600061344b61013283613c1b565b91506134568261406f565b61013282019050919050565b600061346f608783613c1b565b915061347a826141f0565b608782019050919050565b6000613492602683613c0a565b915061349d826142b1565b604082019050919050565b60006134b5600183613c1b565b91506134c082614300565b600182019050919050565b60006134d8600f83613c1b565b91506134e382614329565b600f82019050919050565b60006134fb600283613c1b565b915061350682614352565b600282019050919050565b600061351e601183613c0a565b91506135298261437b565b602082019050919050565b6000613541600283613c1b565b915061354c826143a4565b600282019050919050565b6000613564601083613c1b565b915061356f826143cd565b601082019050919050565b6000613587600183613c1b565b9150613592826143f6565b600182019050919050565b60006135aa601f83613c1b565b91506135b58261441f565b601f82019050919050565b60006135cd602083613c0a565b91506135d882614448565b602082019050919050565b60006135f0609c83613c1b565b91506135fb82614471565b609c82019050919050565b6000613613600183613c1b565b915061361e82614532565b600182019050919050565b6000613636600a83613c1b565b91506136418261455b565b600a82019050919050565b6000613659600b83613c1b565b915061366482614584565b600b82019050919050565b600061367c600383613c1b565b9150613687826145ad565b600382019050919050565b600061369f601d83613c1b565b91506136aa826145d6565b601d82019050919050565b60006136c2602383613c1b565b91506136cd826145ff565b602382019050919050565b60006136e5600683613c1b565b91506136f08261464e565b600682019050919050565b61370481613d87565b82525050565b61371381613d91565b82525050565b6000613725828761340c565b9150613731828661340c565b915061373d828561340c565b9150613749828461340c565b915081905095945050505050565b6000613763828861340c565b915061376f828761340c565b915061377b828661340c565b9150613787828561340c565b9150613793828461340c565b91508190509695505050505050565b60006137ae828661340c565b91506137b9826134a8565b91506137c5828561340c565b91506137d0826134a8565b91506137dc828461340c565b91506137e7826134a8565b9150819050949350505050565b6000613800828861340c565b915061380b826134a8565b9150613817828761340c565b9150613822826134a8565b915061382e828661340c565b9150613839826134a8565b9150613845828561340c565b9150613850826134a8565b915061385c828461340c565b9150613867826134a8565b91508190509695505050505050565b600061388182613462565b915061388d828461340c565b91506138988261366f565b915081905092915050565b60006138ae826134cb565b91506138ba828561340c565b91506138c58261364c565b91506138d1828461340c565b91506138dc82613534565b91508190509392505050565b60006138f3826135e3565b91506138ff828461340c565b915061390a826136d8565b915081905092915050565b600061392082613606565b915061392c828661340c565b9150613937826136b5565b9150613943828561340c565b915061394e8261359d565b915061395a828461340c565b9150613965826134ee565b9150819050949350505050565b600061397d82613629565b9150613989828761340c565b9150613995828661340c565b91506139a08261343d565b91506139ac828561340c565b91506139b782613557565b91506139c3828461340c565b91506139ce8261357a565b915081905095945050505050565b60006139e782613692565b91506139f3828461340c565b915081905092915050565b6000602082019050613a1360008301846133b5565b92915050565b6000602082019050613a2e60008301846133c4565b92915050565b60006020820190508181036000830152613a4e81846133d3565b905092915050565b60006040820190508181036000830152613a7081856133d3565b90508181036020830152613a8481846133d3565b90509392505050565b60006020820190508181036000830152613aa681613485565b9050919050565b60006020820190508181036000830152613ac681613511565b9050919050565b60006020820190508181036000830152613ae6816135c0565b9050919050565b6000602082019050613b0260008301846136fb565b92915050565b6000602082019050613b1d600083018461370a565b92915050565b60008083356001602003843603038112613b4057613b3f614045565b5b80840192508235915067ffffffffffffffff821115613b6257613b6161403b565b5b602083019250600182023603831315613b7e57613b7d61404f565b5b509250929050565b600082356001604003833603038112613ba257613ba1614045565b5b80830191505092915050565b6000613bb8613bc9565b9050613bc48282613e39565b919050565b6000604051905090565b600067ffffffffffffffff821115613bee57613bed614002565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613c3182613d87565b9150613c3c83613d87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c7157613c70613f46565b5b828201905092915050565b6000613c8782613d87565b9150613c9283613d87565b925082613ca257613ca1613f75565b5b828204905092915050565b6000613cb882613d87565b9150613cc383613d87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cfc57613cfb613f46565b5b828202905092915050565b6000613d1282613d87565b9150613d1d83613d87565b925082821015613d3057613d2f613f46565b5b828203905092915050565b6000613d4682613d67565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613da982613db0565b9050919050565b6000613dbb82613dc2565b9050919050565b6000613dcd82613d67565b9050919050565b60005b83811015613df2578082015181840152602081019050613dd7565b83811115613e01576000848401525b50505050565b60006002820490506001821680613e1f57607f821691505b60208210811415613e3357613e32613fa4565b5b50919050565b613e428261405e565b810181811067ffffffffffffffff82111715613e6157613e60614002565b5b80604052505050565b6000613e7582613d87565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ea857613ea7613f46565b5b600182019050919050565b6000613ebe82613d59565b9150613ec983613d59565b925082613ed957613ed8613f75565b5b828206905092915050565b6000613eef82613d87565b9150613efa83613d87565b925082613f0a57613f09613f75565b5b828206905092915050565b6000613f2082613d91565b9150613f2b83613d91565b925082613f3b57613f3a613f75565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f222c20226465736372697074696f6e223a202254686f7573616e6473206f662060008201527f416476656e74757265727320616e642048756e7465727320636f6d706574652060208201527f6f6e206120666f7265737420696e20746865206d65746176657273652e20412060408201527f74656d7074696e67207072697a65206f66202447454d206177616974732c207760608201527f69746820646561646c792068696768207374616b65732e20416c6c207468652060808201527f6d6574616461746120616e6420696d61676573206172652067656e657261746560a08201527f6420616e642073746f7265642031303025206f6e2d636861696e2e204e6f204960c08201527f5046532e204e4f204150492e204a75737420746865204176616c616e6368652060e08201527f626c6f636b636861696e2e222c2022696d616765223a2022646174613a696d616101008201527f67652f7376672b786d6c3b6261736536342c000000000000000000000000000061012082015250565b7f3c696d61676520783d22342220793d2234222077696474683d2233322220686560008201527f696768743d2233322220696d6167652d72656e646572696e673d22706978656c60208201527f6174656422207072657365727665417370656374526174696f3d22784d69645960408201527f4d69642220786c696e6b3a687265663d22646174613a696d6167652f706e673b60608201527f6261736536342c00000000000000000000000000000000000000000000000000608082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b2274726169745f74797065223a220000000000000000000000000000000000600082015250565b7f7d5d000000000000000000000000000000000000000000000000000000000000600082015250565b7f4d69736d61746368656420696e70757473000000000000000000000000000000600082015250565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b7f222c202261747472696275746573223a00000000000000000000000000000000600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7d2c7b2274726169745f74797065223a2254797065222c2276616c7565223a00600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f3c7376672069643d2268756e746572222077696474683d22313030252220686560008201527f696768743d2231303025222076657273696f6e3d22312e31222076696577426f60208201527f783d223020302034302034302220786d6c6e733d22687474703a2f2f7777772e60408201527f77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687460608201527f74703a2f2f7777772e77332e6f72672f313939392f786c696e6b223e00000000608082015250565b7f5b00000000000000000000000000000000000000000000000000000000000000600082015250565b7f7b226e616d65223a202200000000000000000000000000000000000000000000600082015250565b7f222c2276616c7565223a22000000000000000000000000000000000000000000600082015250565b7f222f3e0000000000000000000000000000000000000000000000000000000000600082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f7b2274726169745f74797065223a2247656e65726174696f6e222c2276616c7560008201527f65223a0000000000000000000000000000000000000000000000000000000000602082015250565b7f3c2f7376673e0000000000000000000000000000000000000000000000000000600082015250565b61468081613d3b565b811461468b57600080fd5b50565b61469781613d4d565b81146146a257600080fd5b50565b6146ae81613d59565b81146146b957600080fd5b50565b6146c581613d87565b81146146d057600080fd5b50565b6146dc81613d91565b81146146e757600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f5ac7b252272cc11fc980af1311608dceafd09ebdea4aac1524dad178c6be5b864736f6c63430008070033
Deployed ByteCode Sourcemap
174:12681:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2668:241;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1031:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6432:2605;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1671:94:4;;;:::i;:::-;;4185:1272:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1654:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1020:87:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;817:58:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1061:565;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1759:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9307:1117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2231:429;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;882:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:229:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2668:241:5;1251:12:4;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2798:9:5::1;2793:109;2817:6;:13;2813:1;:17;2793:109;;;2883:4;2888:1;2883:7;;;;;;;;:::i;:::-;;;;;;;;2852:17;:28;2870:6;2877:1;2870:9;;;;;;;;:::i;:::-;;;;;;;;2852:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2832:3;;;;;:::i;:::-;;;;2793:109;;;;2668:241:::0;;:::o;1031:21::-;;;;;;;;;;;;;:::o;6432:2605::-;6524:13;6555:23;6581:6;;;;;;;;;;;:21;;;6603:7;6581:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6555:56;;6622:20;6657:1;:14;;;6653:1926;;;6761:165;6812:11;6824:1;6812:14;;;;;;;:::i;:::-;;;6761:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:9;:12;6863:1;6853:12;;;;;;;;;;;;;:45;6877:17;:20;6895:1;6877:20;;;;;;;;;;;;;;;;;;;;;;;6866:1;:8;;;:31;;;;:::i;:::-;6853:45;;;;;;;;;;;;;;;:50;;6761:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:165::i;:::-;6975:163;7026:11;7038:1;7026:14;;;;;;;:::i;:::-;;;6975:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7067:9;:12;7077:1;7067:12;;;;;;;;;;;;;:43;7089:17;:20;7107:1;7089:20;;;;;;;;;;;;;;;;;;;;;;;7080:1;:6;;;:29;;;;:::i;:::-;7067:43;;;;;;;;;;;;;;;:48;;6975:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:163::i;:::-;7187:167;7238:11;7250:1;7238:14;;;;;;;:::i;:::-;;;7187:167;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7279:9;:12;7289:1;7279:12;;;;;;;;;;;;;:47;7305:17;:20;7323:1;7305:20;;;;;;;;;;;;;;;;;;;;;;;7292:1;:10;;;:33;;;;:::i;:::-;7279:47;;;;;;;;;;;;;;;:52;;7187:167;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:167::i;:::-;6722:677;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6688:726;;6653:1926;;;7520:166;7571:11;7583:1;7571:14;;;;;;;:::i;:::-;;;7520:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7612:9;:12;7622:1;7612:12;;;;;;;;;;;;;:46;7637:17;:20;7655:1;7637:20;;;;;;;;;;;;;;;;;;;;;;;7625:1;:9;;;:32;;;;:::i;:::-;7612:46;;;;;;;;;;;;;;;:51;;7520:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:166::i;:::-;7735:163;7786:11;7798:1;7786:14;;;;;;;:::i;:::-;;;7735:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7827:9;:12;7837:1;7827:12;;;;;;;;;;;;;:43;7849:17;:20;7867:1;7849:20;;;;;;;;;;;;;;;;;;;;;;;7840:1;:6;;;:29;;;;:::i;:::-;7827:43;;;;;;;;;;;;;;;:48;;7735:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:163::i;:::-;7947:165;7998:11;8010:1;7998:14;;;;;;;:::i;:::-;;;7947:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8039:9;:12;8049:1;8039:12;;;;;;;;;;;;;:45;8063:17;:20;8081:1;8063:20;;;;;;;;;;;;;;;;;;;;;;;8052:1;:8;;;:31;;;;:::i;:::-;8039:45;;;;;;;;;;;;;;;:50;;7947:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:165::i;:::-;8161:162;8212:11;8224:1;8212:14;;;;;;;:::i;:::-;;;8161:162;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8253:9;:12;8263:1;8253:12;;;;;;;;;;;;;:42;8274:17;:20;8292:1;8274:20;;;;;;;;;;;;;;;;;;;;;;;8266:1;:5;;;:28;;;;:::i;:::-;8253:42;;;;;;;;;;;;;;;:47;;8161:162;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:162::i;:::-;8372:135;;;;;;;;;;;;;;;;;;8463:7;8471:1;:12;;;8463:21;;;;;;;;;:::i;:::-;;;8372:135;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;:135::i;:::-;7481:1071;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7447:1120;;6653:1926;8699:6;8799;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8788:7;:33;;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8924:1;:14;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8634:380;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8589:440;;;;6432:2605;;;:::o;1671:94:4:-;1251:12;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:21:::1;1754:1;1736:9;:21::i;:::-;1671:94::o:0;4185:1272:5:-;4240:13;4266:23;4292:6;;;;;;;;;;;:21;;;4314:7;4292:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4266:56;;4335:23;:28;;;;;;;;;;;;;;4378:1;:14;;;4374:724;;;4485:33;4495:9;:12;4505:1;4495:12;;;;;;;;;;;;;:22;4508:1;:8;;;4495:22;;;;;;;;;;;;;;;4485:33;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:33::i;:::-;4541:35;4551:9;:12;4561:1;4551:12;;;;;;;;;;;;;:24;4564:1;:10;;;4551:24;;;;;;;;;;;;;;;4541:35;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:35::i;:::-;4599:20;4604:14;4599:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:4;:20::i;:::-;4642:31;4652:9;:12;4662:1;4652:12;;;;;;;;;;;;;:20;4665:1;:6;;;4652:20;;;;;;;;;;;;;;;4642:31;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:31::i;:::-;4446:246;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4409:298;;4374:724;;;4816:16;4821:10;4816:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:4;:16::i;:::-;4855:34;4865:9;:12;4875:1;4865:12;;;;;;;;;;;;;:23;4878:1;:9;;;4865:23;;;;;;;;;;;;;;;4855:34;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:34::i;:::-;4912:31;4922:9;:12;4932:1;4922:12;;;;;;;;;;;;;:20;4935:1;:6;;;4922:20;;;;;;;;;;;;;;;4912:31;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:31::i;:::-;4966:33;4976:9;:12;4986:1;4976:12;;;;;;;;;;;;;:22;4989:1;:8;;;4976:22;;;;;;;;;;;;;;;4966:33;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:33::i;:::-;5022:30;5032:9;:12;5042:1;5032:12;;;;;;;;;;;;;:19;5045:1;:5;;;5032:19;;;;;;;;;;;;;;;5022:30;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:30::i;:::-;4777:294;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4740:346;;4374:724;5375:9;5155:279;;;;;;;;:::i;:::-;;;;;;;;;;;;;5110:339;;;;4185:1272;;;:::o;1654:97::-;1251:12:4;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1735:7:5::1;1718:6;;:25;;;;;;;;;;;;;;;;;;1654:97:::0;:::o;1020:87:4:-;1066:7;1093:6;;;;;;;;;;;1086:13;;1020:87;:::o;817:58:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1061:565::-;1180:5;1220:14;;1207:9;:27;;;1203:322;;;1251:9;1270:3;1263:4;:10;;;;:::i;:::-;1251:22;;;;1296:2;1292:1;:6;1288:226;;;1326:1;1319:8;;;;;1288:226;1357:2;1353:1;:6;1349:165;;;1387:1;1380:8;;;;;1349:165;1418:2;1414:1;:6;1410:104;;;1448:1;1441:8;;;;;1410:104;1497:1;1490:8;;;;;1203:322;1537:11;1551:17;:28;1569:9;1551:28;;;;;;;;;;;;;;;;;;;;;;;;;1537:42;;1612:5;1605:12;;:4;:12;;;;:::i;:::-;1592:26;;;1061:565;;;;;:::o;1759:196::-;1251:12:4;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1901:7:5::1;;1888:10;:20;;;;;;;:::i;:::-;;1936:11;;1919:14;:28;;;;;;;:::i;:::-;;1759:196:::0;;;;:::o;9307:1117::-;9408:13;9439:23;9465:6;;;;;;;;;;;:21;;;9487:7;9465:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9439:56;;9508:22;9620:1;:14;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9683:18;:7;:16;:18::i;:::-;10047:31;10060:16;10068:7;10060;:16::i;:::-;10047:6;:31::i;:::-;10134:26;10152:7;10134:17;:26::i;:::-;9554:643;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9508:700;;10359:23;10372:8;10359:6;:23::i;:::-;10266:135;;;;;;;;:::i;:::-;;;;;;;;;;;;;10221:195;;;;9307:1117;;;:::o;2231:429::-;1251:12:4;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2413:6:5::1;;:13;;2394:8;;:15;;:32;2386:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2466:9;2461:192;2485:6;;:13;;2481:1;:17;2461:192;;;2556:85;;;;;;;;2580:6;;2587:1;2580:9;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:14;;;;;;;;:::i;:::-;2556:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2613:6;;2620:1;2613:9;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:13;;;;;;;;:::i;:::-;2556:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;2520:9:::1;:20;2530:9;2520:20;;;;;;;;;;;;;;;:33;2541:8;;2550:1;2541:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2520:33;;;;;;;;;;;;;;;:121;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2500:3;;;;;:::i;:::-;;;;2461:192;;;;2231:429:::0;;;;;:::o;882:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1920:229:4:-;1251:12;:10;:12::i;:::-;1240:23;;:7;:5;:7::i;:::-;:23;;;1232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2043:1:::1;2023:22;;:8;:22;;;;2001:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2122:19;2132:8;2122:9;:19::i;:::-;1920:229:::0;:::o;600:98:0:-;653:7;680:10;673:17;;600:98;:::o;5766:420:5:-;5894:13;6044:9;6112:5;5965:198;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5920:258;;5766:420;;;;:::o;2157:173:4:-;2213:16;2232:6;;;;;;;;;;;2213:25;;2258:8;2249:6;;:17;;;;;;;;;;;;;;;;;;2313:8;2282:40;;2303:8;2282:40;;;;;;;;;;;;2202:128;2157:173;:::o;3107:443:5:-;3196:13;3471:5;:9;;;3272:255;;;;;;;;:::i;:::-;;;;;;;;;;;;;3227:315;;3107:443;;;:::o;3558:399::-;3614:13;3884:3;3685:249;;;;;;;;:::i;:::-;;;;;;;;;;;;;3640:309;;3558:399;;;:::o;8771:723:3:-;8827:13;9057:1;9048:5;:10;9044:53;;;9075:10;;;;;;;;;;;;;;;;;;;;;9044:53;9107:12;9122:5;9107:20;;9138:14;9163:78;9178:1;9170:4;:9;9163:78;;9196:8;;;;;:::i;:::-;;;;9227:2;9219:10;;;;;:::i;:::-;;;9163:78;;;9251:19;9283:6;9273:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9251:39;;9301:154;9317:1;9308:5;:10;9301:154;;9345:1;9335:11;;;;;:::i;:::-;;;9412:2;9404:5;:10;;;;:::i;:::-;9391:2;:24;;;;:::i;:::-;9378:39;;9361:6;9368;9361:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;9441:2;9432:11;;;;;:::i;:::-;;;9301:154;;;9479:6;9465:21;;;;;8771:723;;;;:::o;10596:2256:5:-;10654:13;10699:1;10684:4;:11;:16;10680:31;;;10702:9;;;;;;;;;;;;;;;;10680:31;10763:19;10785:5;;;;;;;;;;;;;;;;;10763:27;;10842:18;10888:1;10883;10869:4;:11;:15;;;;:::i;:::-;10868:21;;;;:::i;:::-;10863:1;:27;;;;:::i;:::-;10842:48;;10973:20;11020:2;11007:10;:15;;;;:::i;:::-;10996:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:50;;11120:10;11112:6;11105:26;11215:1;11208:5;11204:13;11274:4;11325;11319:11;11310:7;11306:25;11421:2;11413:6;11409:15;11494:1045;11529:6;11520:7;11517:19;11494:1045;;;11599:1;11590:7;11586:15;11575:26;;11673:7;11667:14;11850:4;11842:5;11838:2;11834:14;11830:25;11820:8;11816:40;11810:47;11805:3;11801:57;11769:9;11740:137;11923:1;11912:9;11908:17;11895:30;;12053:4;12045:5;12041:2;12037:14;12033:25;12023:8;12019:40;12013:47;12008:3;12004:57;11972:9;11943:137;12126:1;12115:9;12111:17;12098:30;;12255:4;12247:5;12244:1;12240:13;12236:24;12226:8;12222:39;12216:46;12211:3;12207:56;12175:9;12146:136;12328:1;12317:9;12313:17;12300:30;;12449:4;12442:5;12438:16;12428:8;12424:31;12418:38;12413:3;12409:48;12377:9;12348:128;12522:1;12511:9;12507:17;12494:30;;11556:983;11494:1045;;;12612:1;12605:4;12599:11;12595:19;12633:1;12628:84;;;;12731:1;12726:82;;;;12588:220;;12628:84;12689:6;12684:3;12680:16;12676:1;12665:9;12661:17;12654:43;12628:84;;12726:82;12787:4;12782:3;12778:14;12774:1;12763:9;12759:17;12752:41;12588:220;;11045:1774;;;;12838:6;12831:13;;;;;10596:2256;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;22:716:6:-;116:5;141:79;157:62;212:6;157:62;:::i;:::-;141:79;:::i;:::-;132:88;;240:5;269:6;262:5;255:21;303:4;296:5;292:16;285:23;;329:6;379:3;371:4;363:6;359:17;354:3;350:27;347:36;344:143;;;398:79;;:::i;:::-;344:143;511:1;496:236;521:6;518:1;515:13;496:236;;;589:3;618:35;649:3;637:10;618:35;:::i;:::-;613:3;606:48;683:4;678:3;674:14;667:21;;717:4;712:3;708:14;701:21;;556:176;543:1;540;536:9;531:14;;496:236;;;500:14;122:616;;22:716;;;;;:::o;744:139::-;790:5;828:6;815:20;806:29;;844:33;871:5;844:33;:::i;:::-;744:139;;;;:::o;918:592::-;1015:8;1025:6;1075:3;1068:4;1060:6;1056:17;1052:27;1042:122;;1083:79;;:::i;:::-;1042:122;1196:6;1183:20;1173:30;;1226:18;1218:6;1215:30;1212:117;;;1248:79;;:::i;:::-;1212:117;1362:4;1354:6;1350:17;1338:29;;1416:3;1408:4;1400:6;1396:17;1386:8;1382:32;1379:41;1376:128;;;1423:79;;:::i;:::-;1376:128;918:592;;;;;:::o;1531:566::-;1602:8;1612:6;1662:3;1655:4;1647:6;1643:17;1639:27;1629:122;;1670:79;;:::i;:::-;1629:122;1783:6;1770:20;1760:30;;1813:18;1805:6;1802:30;1799:117;;;1835:79;;:::i;:::-;1799:117;1949:4;1941:6;1937:17;1925:29;;2003:3;1995:4;1987:6;1983:17;1973:8;1969:32;1966:41;1963:128;;;2010:79;;:::i;:::-;1963:128;1531:566;;;;;:::o;2118:366::-;2187:5;2236:3;2229:4;2221:6;2217:17;2213:27;2203:122;;2244:79;;:::i;:::-;2203:122;2361:6;2348:20;2386:92;2474:3;2466:6;2459:4;2451:6;2447:17;2386:92;:::i;:::-;2377:101;;2193:291;2118:366;;;;:::o;2490:137::-;2544:5;2575:6;2569:13;2560:22;;2591:30;2615:5;2591:30;:::i;:::-;2490:137;;;;:::o;2647:553::-;2705:8;2715:6;2765:3;2758:4;2750:6;2746:17;2742:27;2732:122;;2773:79;;:::i;:::-;2732:122;2886:6;2873:20;2863:30;;2916:18;2908:6;2905:30;2902:117;;;2938:79;;:::i;:::-;2902:117;3052:4;3044:6;3040:17;3028:29;;3106:3;3098:4;3090:6;3086:17;3076:8;3072:32;3069:41;3066:128;;;3113:79;;:::i;:::-;3066:128;2647:553;;;;;:::o;3235:1824::-;3317:5;3361:6;3349:9;3344:3;3340:19;3336:32;3333:119;;;3371:79;;:::i;:::-;3333:119;3470:23;3486:6;3470:23;:::i;:::-;3461:32;;3560:1;3600:57;3653:3;3644:6;3633:9;3629:22;3600:57;:::i;:::-;3593:4;3586:5;3582:16;3575:83;3503:166;3730:2;3771:58;3825:3;3816:6;3805:9;3801:22;3771:58;:::i;:::-;3764:4;3757:5;3753:16;3746:84;3679:162;3900:2;3941:58;3995:3;3986:6;3975:9;3971:22;3941:58;:::i;:::-;3934:4;3927:5;3923:16;3916:84;3851:160;4074:2;4115:58;4169:3;4160:6;4149:9;4145:22;4115:58;:::i;:::-;4108:4;4101:5;4097:16;4090:84;4021:164;4243:3;4285:58;4339:3;4330:6;4319:9;4315:22;4285:58;:::i;:::-;4278:4;4271:5;4267:16;4260:84;4195:160;4417:3;4459:58;4513:3;4504:6;4493:9;4489:22;4459:58;:::i;:::-;4452:4;4445:5;4441:16;4434:84;4365:164;4588:3;4630:58;4684:3;4675:6;4664:9;4660:22;4630:58;:::i;:::-;4623:4;4616:5;4612:16;4605:84;4539:161;4761:3;4803:58;4857:3;4848:6;4837:9;4833:22;4803:58;:::i;:::-;4796:4;4789:5;4785:16;4778:84;4710:163;4938:3;4982:58;5036:3;5027:6;5016:9;5012:22;4982:58;:::i;:::-;4973:6;4966:5;4962:18;4955:86;4883:169;3235:1824;;;;:::o;5065:137::-;5110:5;5148:6;5135:20;5126:29;;5164:32;5190:5;5164:32;:::i;:::-;5065:137;;;;:::o;5208:139::-;5254:5;5292:6;5279:20;5270:29;;5308:33;5335:5;5308:33;:::i;:::-;5208:139;;;;:::o;5353:143::-;5410:5;5441:6;5435:13;5426:22;;5457:33;5484:5;5457:33;:::i;:::-;5353:143;;;;:::o;5502:135::-;5546:5;5584:6;5571:20;5562:29;;5600:31;5625:5;5600:31;:::i;:::-;5502:135;;;;:::o;5643:139::-;5698:5;5729:6;5723:13;5714:22;;5745:31;5770:5;5745:31;:::i;:::-;5643:139;;;;:::o;5788:329::-;5847:6;5896:2;5884:9;5875:7;5871:23;5867:32;5864:119;;;5902:79;;:::i;:::-;5864:119;6022:1;6047:53;6092:7;6083:6;6072:9;6068:22;6047:53;:::i;:::-;6037:63;;5993:117;5788:329;;;;:::o;6123:886::-;6237:6;6245;6294:2;6282:9;6273:7;6269:23;6265:32;6262:119;;;6300:79;;:::i;:::-;6262:119;6448:1;6437:9;6433:17;6420:31;6478:18;6470:6;6467:30;6464:117;;;6500:79;;:::i;:::-;6464:117;6605:76;6673:7;6664:6;6653:9;6649:22;6605:76;:::i;:::-;6595:86;;6391:300;6758:2;6747:9;6743:18;6730:32;6789:18;6781:6;6778:30;6775:117;;;6811:79;;:::i;:::-;6775:117;6916:76;6984:7;6975:6;6964:9;6960:22;6916:76;:::i;:::-;6906:86;;6701:301;6123:886;;;;;:::o;7015:874::-;7107:6;7115;7123;7131;7180:2;7168:9;7159:7;7155:23;7151:32;7148:119;;;7186:79;;:::i;:::-;7148:119;7334:1;7323:9;7319:17;7306:31;7364:18;7356:6;7353:30;7350:117;;;7386:79;;:::i;:::-;7350:117;7499:65;7556:7;7547:6;7536:9;7532:22;7499:65;:::i;:::-;7481:83;;;;7277:297;7641:2;7630:9;7626:18;7613:32;7672:18;7664:6;7661:30;7658:117;;;7694:79;;:::i;:::-;7658:117;7807:65;7864:7;7855:6;7844:9;7840:22;7807:65;:::i;:::-;7789:83;;;;7584:298;7015:874;;;;;;;:::o;7895:396::-;7987:6;8036:3;8024:9;8015:7;8011:23;8007:33;8004:120;;;8043:79;;:::i;:::-;8004:120;8163:1;8188:86;8266:7;8257:6;8246:9;8242:22;8188:86;:::i;:::-;8178:96;;8134:150;7895:396;;;;:::o;8297:468::-;8362:6;8370;8419:2;8407:9;8398:7;8394:23;8390:32;8387:119;;;8425:79;;:::i;:::-;8387:119;8545:1;8570:52;8614:7;8605:6;8594:9;8590:22;8570:52;:::i;:::-;8560:62;;8516:116;8671:2;8697:51;8740:7;8731:6;8720:9;8716:22;8697:51;:::i;:::-;8687:61;;8642:116;8297:468;;;;;:::o;8771:329::-;8830:6;8879:2;8867:9;8858:7;8854:23;8850:32;8847:119;;;8885:79;;:::i;:::-;8847:119;9005:1;9030:53;9075:7;9066:6;9055:9;9051:22;9030:53;:::i;:::-;9020:63;;8976:117;8771:329;;;;:::o;9106:351::-;9176:6;9225:2;9213:9;9204:7;9200:23;9196:32;9193:119;;;9231:79;;:::i;:::-;9193:119;9351:1;9376:64;9432:7;9423:6;9412:9;9408:22;9376:64;:::i;:::-;9366:74;;9322:128;9106:351;;;;:::o;9463:325::-;9520:6;9569:2;9557:9;9548:7;9544:23;9540:32;9537:119;;;9575:79;;:::i;:::-;9537:119;9695:1;9720:51;9763:7;9754:6;9743:9;9739:22;9720:51;:::i;:::-;9710:61;;9666:115;9463:325;;;;:::o;9794:1119::-;9945:6;9953;9961;9969;9977;10026:2;10014:9;10005:7;10001:23;9997:32;9994:119;;;10032:79;;:::i;:::-;9994:119;10152:1;10177:51;10220:7;10211:6;10200:9;10196:22;10177:51;:::i;:::-;10167:61;;10123:115;10305:2;10294:9;10290:18;10277:32;10336:18;10328:6;10325:30;10322:117;;;10358:79;;:::i;:::-;10322:117;10471:78;10541:7;10532:6;10521:9;10517:22;10471:78;:::i;:::-;10453:96;;;;10248:311;10626:2;10615:9;10611:18;10598:32;10657:18;10649:6;10646:30;10643:117;;;10679:79;;:::i;:::-;10643:117;10792:104;10888:7;10879:6;10868:9;10864:22;10792:104;:::i;:::-;10774:122;;;;10569:337;9794:1119;;;;;;;;:::o;10919:466::-;10983:6;10991;11040:2;11028:9;11019:7;11015:23;11011:32;11008:119;;;11046:79;;:::i;:::-;11008:119;11166:1;11191:51;11234:7;11225:6;11214:9;11210:22;11191:51;:::i;:::-;11181:61;;11137:115;11291:2;11317:51;11360:7;11351:6;11340:9;11336:22;11317:51;:::i;:::-;11307:61;;11262:116;10919:466;;;;;:::o;11391:118::-;11478:24;11496:5;11478:24;:::i;:::-;11473:3;11466:37;11391:118;;:::o;11515:159::-;11616:51;11661:5;11616:51;:::i;:::-;11611:3;11604:64;11515:159;;:::o;11680:364::-;11768:3;11796:39;11829:5;11796:39;:::i;:::-;11851:71;11915:6;11910:3;11851:71;:::i;:::-;11844:78;;11931:52;11976:6;11971:3;11964:4;11957:5;11953:16;11931:52;:::i;:::-;12008:29;12030:6;12008:29;:::i;:::-;12003:3;11999:39;11992:46;;11772:272;11680:364;;;;:::o;12050:377::-;12156:3;12184:39;12217:5;12184:39;:::i;:::-;12239:89;12321:6;12316:3;12239:89;:::i;:::-;12232:96;;12337:52;12382:6;12377:3;12370:4;12363:5;12359:16;12337:52;:::i;:::-;12414:6;12409:3;12405:16;12398:23;;12160:267;12050:377;;;;:::o;12433:404::-;12593:3;12614:86;12696:3;12691;12614:86;:::i;:::-;12607:93;;12709;12798:3;12709:93;:::i;:::-;12827:3;12822;12818:13;12811:20;;12433:404;;;:::o;12843:::-;13003:3;13024:86;13106:3;13101;13024:86;:::i;:::-;13017:93;;13119;13208:3;13119:93;:::i;:::-;13237:3;13232;13228:13;13221:20;;12843:404;;;:::o;13253:366::-;13395:3;13416:67;13480:2;13475:3;13416:67;:::i;:::-;13409:74;;13492:93;13581:3;13492:93;:::i;:::-;13610:2;13605:3;13601:12;13594:19;;13253:366;;;:::o;13625:400::-;13785:3;13806:84;13888:1;13883:3;13806:84;:::i;:::-;13799:91;;13899:93;13988:3;13899:93;:::i;:::-;14017:1;14012:3;14008:11;14001:18;;13625:400;;;:::o;14031:402::-;14191:3;14212:85;14294:2;14289:3;14212:85;:::i;:::-;14205:92;;14306:93;14395:3;14306:93;:::i;:::-;14424:2;14419:3;14415:12;14408:19;;14031:402;;;:::o;14439:400::-;14599:3;14620:84;14702:1;14697:3;14620:84;:::i;:::-;14613:91;;14713:93;14802:3;14713:93;:::i;:::-;14831:1;14826:3;14822:11;14815:18;;14439:400;;;:::o;14845:366::-;14987:3;15008:67;15072:2;15067:3;15008:67;:::i;:::-;15001:74;;15084:93;15173:3;15084:93;:::i;:::-;15202:2;15197:3;15193:12;15186:19;;14845:366;;;:::o;15217:400::-;15377:3;15398:84;15480:1;15475:3;15398:84;:::i;:::-;15391:91;;15491:93;15580:3;15491:93;:::i;:::-;15609:1;15604:3;15600:11;15593:18;;15217:400;;;:::o;15623:402::-;15783:3;15804:85;15886:2;15881:3;15804:85;:::i;:::-;15797:92;;15898:93;15987:3;15898:93;:::i;:::-;16016:2;16011:3;16007:12;16000:19;;15623:402;;;:::o;16031:400::-;16191:3;16212:84;16294:1;16289:3;16212:84;:::i;:::-;16205:91;;16305:93;16394:3;16305:93;:::i;:::-;16423:1;16418:3;16414:11;16407:18;;16031:400;;;:::o;16437:402::-;16597:3;16618:85;16700:2;16695:3;16618:85;:::i;:::-;16611:92;;16712:93;16801:3;16712:93;:::i;:::-;16830:2;16825:3;16821:12;16814:19;;16437:402;;;:::o;16845:366::-;16987:3;17008:67;17072:2;17067:3;17008:67;:::i;:::-;17001:74;;17084:93;17173:3;17084:93;:::i;:::-;17202:2;17197:3;17193:12;17186:19;;16845:366;;;:::o;17217:404::-;17377:3;17398:86;17480:3;17475;17398:86;:::i;:::-;17391:93;;17493;17582:3;17493:93;:::i;:::-;17611:3;17606;17602:13;17595:20;;17217:404;;;:::o;17627:400::-;17787:3;17808:84;17890:1;17885:3;17808:84;:::i;:::-;17801:91;;17901:93;17990:3;17901:93;:::i;:::-;18019:1;18014:3;18010:11;18003:18;;17627:400;;;:::o;18033:402::-;18193:3;18214:85;18296:2;18291:3;18214:85;:::i;:::-;18207:92;;18308:93;18397:3;18308:93;:::i;:::-;18426:2;18421:3;18417:12;18410:19;;18033:402;;;:::o;18441:::-;18601:3;18622:85;18704:2;18699:3;18622:85;:::i;:::-;18615:92;;18716:93;18805:3;18716:93;:::i;:::-;18834:2;18829:3;18825:12;18818:19;;18441:402;;;:::o;18849:400::-;19009:3;19030:84;19112:1;19107:3;19030:84;:::i;:::-;19023:91;;19123:93;19212:3;19123:93;:::i;:::-;19241:1;19236:3;19232:11;19225:18;;18849:400;;;:::o;19255:402::-;19415:3;19436:85;19518:2;19513:3;19436:85;:::i;:::-;19429:92;;19530:93;19619:3;19530:93;:::i;:::-;19648:2;19643:3;19639:12;19632:19;;19255:402;;;:::o;19663:::-;19823:3;19844:85;19926:2;19921:3;19844:85;:::i;:::-;19837:92;;19938:93;20027:3;19938:93;:::i;:::-;20056:2;20051:3;20047:12;20040:19;;19663:402;;;:::o;20071:400::-;20231:3;20252:84;20334:1;20329:3;20252:84;:::i;:::-;20245:91;;20345:93;20434:3;20345:93;:::i;:::-;20463:1;20458:3;20454:11;20447:18;;20071:400;;;:::o;20477:118::-;20564:24;20582:5;20564:24;:::i;:::-;20559:3;20552:37;20477:118;;:::o;20601:112::-;20684:22;20700:5;20684:22;:::i;:::-;20679:3;20672:35;20601:112;;:::o;20719:755::-;20995:3;21017:95;21108:3;21099:6;21017:95;:::i;:::-;21010:102;;21129:95;21220:3;21211:6;21129:95;:::i;:::-;21122:102;;21241:95;21332:3;21323:6;21241:95;:::i;:::-;21234:102;;21353:95;21444:3;21435:6;21353:95;:::i;:::-;21346:102;;21465:3;21458:10;;20719:755;;;;;;;:::o;21480:915::-;21804:3;21826:95;21917:3;21908:6;21826:95;:::i;:::-;21819:102;;21938:95;22029:3;22020:6;21938:95;:::i;:::-;21931:102;;22050:95;22141:3;22132:6;22050:95;:::i;:::-;22043:102;;22162:95;22253:3;22244:6;22162:95;:::i;:::-;22155:102;;22274:95;22365:3;22356:6;22274:95;:::i;:::-;22267:102;;22386:3;22379:10;;21480:915;;;;;;;;:::o;22401:1393::-;22932:3;22954:95;23045:3;23036:6;22954:95;:::i;:::-;22947:102;;23066:148;23210:3;23066:148;:::i;:::-;23059:155;;23231:95;23322:3;23313:6;23231:95;:::i;:::-;23224:102;;23343:148;23487:3;23343:148;:::i;:::-;23336:155;;23508:95;23599:3;23590:6;23508:95;:::i;:::-;23501:102;;23620:148;23764:3;23620:148;:::i;:::-;23613:155;;23785:3;23778:10;;22401:1393;;;;;;:::o;23800:2245::-;24629:3;24651:95;24742:3;24733:6;24651:95;:::i;:::-;24644:102;;24763:148;24907:3;24763:148;:::i;:::-;24756:155;;24928:95;25019:3;25010:6;24928:95;:::i;:::-;24921:102;;25040:148;25184:3;25040:148;:::i;:::-;25033:155;;25205:95;25296:3;25287:6;25205:95;:::i;:::-;25198:102;;25317:148;25461:3;25317:148;:::i;:::-;25310:155;;25482:95;25573:3;25564:6;25482:95;:::i;:::-;25475:102;;25594:148;25738:3;25594:148;:::i;:::-;25587:155;;25759:95;25850:3;25841:6;25759:95;:::i;:::-;25752:102;;25871:148;26015:3;25871:148;:::i;:::-;25864:155;;26036:3;26029:10;;23800:2245;;;;;;;;:::o;26051:807::-;26385:3;26407:148;26551:3;26407:148;:::i;:::-;26400:155;;26572:95;26663:3;26654:6;26572:95;:::i;:::-;26565:102;;26684:148;26828:3;26684:148;:::i;:::-;26677:155;;26849:3;26842:10;;26051:807;;;;:::o;26864:1233::-;27347:3;27369:148;27513:3;27369:148;:::i;:::-;27362:155;;27534:95;27625:3;27616:6;27534:95;:::i;:::-;27527:102;;27646:148;27790:3;27646:148;:::i;:::-;27639:155;;27811:95;27902:3;27893:6;27811:95;:::i;:::-;27804:102;;27923:148;28067:3;27923:148;:::i;:::-;27916:155;;28088:3;28081:10;;26864:1233;;;;;:::o;28103:807::-;28437:3;28459:148;28603:3;28459:148;:::i;:::-;28452:155;;28624:95;28715:3;28706:6;28624:95;:::i;:::-;28617:102;;28736:148;28880:3;28736:148;:::i;:::-;28729:155;;28901:3;28894:10;;28103:807;;;;:::o;28916:1659::-;29548:3;29570:148;29714:3;29570:148;:::i;:::-;29563:155;;29735:95;29826:3;29817:6;29735:95;:::i;:::-;29728:102;;29847:148;29991:3;29847:148;:::i;:::-;29840:155;;30012:95;30103:3;30094:6;30012:95;:::i;:::-;30005:102;;30124:148;30268:3;30124:148;:::i;:::-;30117:155;;30289:95;30380:3;30371:6;30289:95;:::i;:::-;30282:102;;30401:148;30545:3;30401:148;:::i;:::-;30394:155;;30566:3;30559:10;;28916:1659;;;;;;:::o;30581:1819::-;31261:3;31283:148;31427:3;31283:148;:::i;:::-;31276:155;;31448:95;31539:3;31530:6;31448:95;:::i;:::-;31441:102;;31560:95;31651:3;31642:6;31560:95;:::i;:::-;31553:102;;31672:148;31816:3;31672:148;:::i;:::-;31665:155;;31837:95;31928:3;31919:6;31837:95;:::i;:::-;31830:102;;31949:148;32093:3;31949:148;:::i;:::-;31942:155;;32114:95;32205:3;32196:6;32114:95;:::i;:::-;32107:102;;32226:148;32370:3;32226:148;:::i;:::-;32219:155;;32391:3;32384:10;;30581:1819;;;;;;;:::o;32406:541::-;32639:3;32661:148;32805:3;32661:148;:::i;:::-;32654:155;;32826:95;32917:3;32908:6;32826:95;:::i;:::-;32819:102;;32938:3;32931:10;;32406:541;;;;:::o;32953:222::-;33046:4;33084:2;33073:9;33069:18;33061:26;;33097:71;33165:1;33154:9;33150:17;33141:6;33097:71;:::i;:::-;32953:222;;;;:::o;33181:250::-;33288:4;33326:2;33315:9;33311:18;33303:26;;33339:85;33421:1;33410:9;33406:17;33397:6;33339:85;:::i;:::-;33181:250;;;;:::o;33437:313::-;33550:4;33588:2;33577:9;33573:18;33565:26;;33637:9;33631:4;33627:20;33623:1;33612:9;33608:17;33601:47;33665:78;33738:4;33729:6;33665:78;:::i;:::-;33657:86;;33437:313;;;;:::o;33756:514::-;33917:4;33955:2;33944:9;33940:18;33932:26;;34004:9;33998:4;33994:20;33990:1;33979:9;33975:17;33968:47;34032:78;34105:4;34096:6;34032:78;:::i;:::-;34024:86;;34157:9;34151:4;34147:20;34142:2;34131:9;34127:18;34120:48;34185:78;34258:4;34249:6;34185:78;:::i;:::-;34177:86;;33756:514;;;;;:::o;34276:419::-;34442:4;34480:2;34469:9;34465:18;34457:26;;34529:9;34523:4;34519:20;34515:1;34504:9;34500:17;34493:47;34557:131;34683:4;34557:131;:::i;:::-;34549:139;;34276:419;;;:::o;34701:::-;34867:4;34905:2;34894:9;34890:18;34882:26;;34954:9;34948:4;34944:20;34940:1;34929:9;34925:17;34918:47;34982:131;35108:4;34982:131;:::i;:::-;34974:139;;34701:419;;;:::o;35126:::-;35292:4;35330:2;35319:9;35315:18;35307:26;;35379:9;35373:4;35369:20;35365:1;35354:9;35350:17;35343:47;35407:131;35533:4;35407:131;:::i;:::-;35399:139;;35126:419;;;:::o;35551:222::-;35644:4;35682:2;35671:9;35667:18;35659:26;;35695:71;35763:1;35752:9;35748:17;35739:6;35695:71;:::i;:::-;35551:222;;;;:::o;35779:214::-;35868:4;35906:2;35895:9;35891:18;35883:26;;35919:67;35983:1;35972:9;35968:17;35959:6;35919:67;:::i;:::-;35779:214;;;;:::o;35999:725::-;36077:4;36083:6;36139:11;36126:25;36239:1;36233:4;36229:12;36218:8;36202:14;36198:29;36194:48;36174:18;36170:73;36160:168;;36247:79;;:::i;:::-;36160:168;36359:18;36349:8;36345:33;36337:41;;36411:4;36398:18;36388:28;;36439:18;36431:6;36428:30;36425:117;;;36461:79;;:::i;:::-;36425:117;36569:2;36563:4;36559:13;36551:21;;36626:4;36618:6;36614:17;36598:14;36594:38;36588:4;36584:49;36581:136;;;36636:79;;:::i;:::-;36581:136;36090:634;35999:725;;;;;:::o;36730:390::-;36820:4;36874:11;36861:25;36974:1;36968:4;36964:12;36953:8;36937:14;36933:29;36929:48;36909:18;36905:73;36895:168;;36982:79;;:::i;:::-;36895:168;37094:18;37084:8;37080:33;37072:41;;36825:295;36730:390;;;;:::o;37126:129::-;37160:6;37187:20;;:::i;:::-;37177:30;;37216:33;37244:4;37236:6;37216:33;:::i;:::-;37126:129;;;:::o;37261:75::-;37294:6;37327:2;37321:9;37311:19;;37261:75;:::o;37342:309::-;37417:4;37507:18;37499:6;37496:30;37493:56;;;37529:18;;:::i;:::-;37493:56;37579:4;37571:6;37567:17;37559:25;;37639:4;37633;37629:15;37621:23;;37342:309;;;:::o;37657:99::-;37709:6;37743:5;37737:12;37727:22;;37657:99;;;:::o;37762:169::-;37846:11;37880:6;37875:3;37868:19;37920:4;37915:3;37911:14;37896:29;;37762:169;;;;:::o;37937:148::-;38039:11;38076:3;38061:18;;37937:148;;;;:::o;38091:305::-;38131:3;38150:20;38168:1;38150:20;:::i;:::-;38145:25;;38184:20;38202:1;38184:20;:::i;:::-;38179:25;;38338:1;38270:66;38266:74;38263:1;38260:81;38257:107;;;38344:18;;:::i;:::-;38257:107;38388:1;38385;38381:9;38374:16;;38091:305;;;;:::o;38402:185::-;38442:1;38459:20;38477:1;38459:20;:::i;:::-;38454:25;;38493:20;38511:1;38493:20;:::i;:::-;38488:25;;38532:1;38522:35;;38537:18;;:::i;:::-;38522:35;38579:1;38576;38572:9;38567:14;;38402:185;;;;:::o;38593:348::-;38633:7;38656:20;38674:1;38656:20;:::i;:::-;38651:25;;38690:20;38708:1;38690:20;:::i;:::-;38685:25;;38878:1;38810:66;38806:74;38803:1;38800:81;38795:1;38788:9;38781:17;38777:105;38774:131;;;38885:18;;:::i;:::-;38774:131;38933:1;38930;38926:9;38915:20;;38593:348;;;;:::o;38947:191::-;38987:4;39007:20;39025:1;39007:20;:::i;:::-;39002:25;;39041:20;39059:1;39041:20;:::i;:::-;39036:25;;39080:1;39077;39074:8;39071:34;;;39085:18;;:::i;:::-;39071:34;39130:1;39127;39123:9;39115:17;;38947:191;;;;:::o;39144:96::-;39181:7;39210:24;39228:5;39210:24;:::i;:::-;39199:35;;39144:96;;;:::o;39246:90::-;39280:7;39323:5;39316:13;39309:21;39298:32;;39246:90;;;:::o;39342:89::-;39378:7;39418:6;39411:5;39407:18;39396:29;;39342:89;;;:::o;39437:126::-;39474:7;39514:42;39507:5;39503:54;39492:65;;39437:126;;;:::o;39569:77::-;39606:7;39635:5;39624:16;;39569:77;;;:::o;39652:86::-;39687:7;39727:4;39720:5;39716:16;39705:27;;39652:86;;;:::o;39744:140::-;39808:9;39841:37;39872:5;39841:37;:::i;:::-;39828:50;;39744:140;;;:::o;39890:126::-;39940:9;39973:37;40004:5;39973:37;:::i;:::-;39960:50;;39890:126;;;:::o;40022:113::-;40072:9;40105:24;40123:5;40105:24;:::i;:::-;40092:37;;40022:113;;;:::o;40141:307::-;40209:1;40219:113;40233:6;40230:1;40227:13;40219:113;;;40318:1;40313:3;40309:11;40303:18;40299:1;40294:3;40290:11;40283:39;40255:2;40252:1;40248:10;40243:15;;40219:113;;;40350:6;40347:1;40344:13;40341:101;;;40430:1;40421:6;40416:3;40412:16;40405:27;40341:101;40190:258;40141:307;;;:::o;40454:320::-;40498:6;40535:1;40529:4;40525:12;40515:22;;40582:1;40576:4;40572:12;40603:18;40593:81;;40659:4;40651:6;40647:17;40637:27;;40593:81;40721:2;40713:6;40710:14;40690:18;40687:38;40684:84;;;40740:18;;:::i;:::-;40684:84;40505:269;40454:320;;;:::o;40780:281::-;40863:27;40885:4;40863:27;:::i;:::-;40855:6;40851:40;40993:6;40981:10;40978:22;40957:18;40945:10;40942:34;40939:62;40936:88;;;41004:18;;:::i;:::-;40936:88;41044:10;41040:2;41033:22;40823:238;40780:281;;:::o;41067:233::-;41106:3;41129:24;41147:5;41129:24;:::i;:::-;41120:33;;41175:66;41168:5;41165:77;41162:103;;;41245:18;;:::i;:::-;41162:103;41292:1;41285:5;41281:13;41274:20;;41067:233;;;:::o;41306:173::-;41337:1;41354:19;41371:1;41354:19;:::i;:::-;41349:24;;41387:19;41404:1;41387:19;:::i;:::-;41382:24;;41425:1;41415:35;;41430:18;;:::i;:::-;41415:35;41471:1;41468;41464:9;41459:14;;41306:173;;;;:::o;41485:176::-;41517:1;41534:20;41552:1;41534:20;:::i;:::-;41529:25;;41568:20;41586:1;41568:20;:::i;:::-;41563:25;;41607:1;41597:35;;41612:18;;:::i;:::-;41597:35;41653:1;41650;41646:9;41641:14;;41485:176;;;;:::o;41667:170::-;41697:1;41714:18;41730:1;41714:18;:::i;:::-;41709:23;;41746:18;41762:1;41746:18;:::i;:::-;41741:23;;41783:1;41773:35;;41788:18;;:::i;:::-;41773:35;41829:1;41826;41822:9;41817:14;;41667:170;;;;:::o;41843:180::-;41891:77;41888:1;41881:88;41988:4;41985:1;41978:15;42012:4;42009:1;42002:15;42029:180;42077:77;42074:1;42067:88;42174:4;42171:1;42164:15;42198:4;42195:1;42188:15;42215:180;42263:77;42260:1;42253:88;42360:4;42357:1;42350:15;42384:4;42381:1;42374:15;42401:180;42449:77;42446:1;42439:88;42546:4;42543:1;42536:15;42570:4;42567:1;42560:15;42587:180;42635:77;42632:1;42625:88;42732:4;42729:1;42722:15;42756:4;42753:1;42746:15;42773:117;42882:1;42879;42872:12;42896:117;43005:1;43002;42995:12;43019:117;43128:1;43125;43118:12;43142:117;43251:1;43248;43241:12;43265:117;43374:1;43371;43364:12;43511:117;43620:1;43617;43610:12;43634:117;43743:1;43740;43733:12;43757:117;43866:1;43863;43856:12;43880:117;43989:1;43986;43979:12;44003:102;44044:6;44095:2;44091:7;44086:2;44079:5;44075:14;44071:28;44061:38;;44003:102;;;:::o;44111:859::-;44251:66;44247:1;44239:6;44235:14;44228:90;44352:34;44347:2;44339:6;44335:15;44328:59;44421:34;44416:2;44408:6;44404:15;44397:59;44490:34;44485:2;44477:6;44473:15;44466:59;44560:34;44554:3;44546:6;44542:16;44535:60;44630:34;44624:3;44616:6;44612:16;44605:60;44700:34;44694:3;44686:6;44682:16;44675:60;44770:34;44764:3;44756:6;44752:16;44745:60;44840:66;44834:3;44826:6;44822:16;44815:92;44942:20;44936:3;44928:6;44924:16;44917:46;44111:859;:::o;44976:562::-;45116:66;45112:1;45104:6;45100:14;45093:90;45217:66;45212:2;45204:6;45200:15;45193:91;45318:66;45313:2;45305:6;45301:15;45294:91;45419:66;45414:2;45406:6;45402:15;45395:91;45521:9;45515:3;45507:6;45503:16;45496:35;44976:562;:::o;45544:225::-;45684:34;45680:1;45672:6;45668:14;45661:58;45753:8;45748:2;45740:6;45736:15;45729:33;45544:225;:::o;45775:151::-;45915:3;45911:1;45903:6;45899:14;45892:27;45775:151;:::o;45932:214::-;46072:66;46068:1;46060:6;46056:14;46049:90;45932:214;:::o;46152:144::-;46288:4;46284:1;46276:6;46272:14;46265:28;46152:144;:::o;46298:159::-;46434:19;46430:1;46422:6;46418:14;46411:43;46298:159;:::o;46459:206::-;46595:66;46591:1;46583:6;46579:14;46572:90;46459:206;:::o;46667:::-;46803:66;46799:1;46791:6;46787:14;46780:90;46667:206;:::o;46875:139::-;47007:3;47003:1;46995:6;46991:14;46984:27;46875:139;:::o;47016:202::-;47148:66;47144:1;47136:6;47132:14;47125:90;47016:202;:::o;47220:170::-;47352:34;47348:1;47340:6;47336:14;47329:58;47220:170;:::o;47392:575::-;47524:66;47520:1;47512:6;47508:14;47501:90;47617:66;47612:2;47604:6;47600:15;47593:91;47710:66;47705:2;47697:6;47693:15;47686:91;47803:66;47798:2;47790:6;47786:15;47779:91;47897:66;47891:3;47883:6;47879:16;47872:92;47392:575;:::o;47969:139::-;48101:3;48097:1;48089:6;48085:14;48078:27;47969:139;:::o;48110:202::-;48242:66;48238:1;48230:6;48226:14;48219:90;48110:202;:::o;48314:::-;48446:66;48442:1;48434:6;48430:14;48423:90;48314:202;:::o;48518:::-;48650:66;48646:1;48638:6;48634:14;48627:90;48518:202;:::o;48722:167::-;48854:31;48850:1;48842:6;48838:14;48831:55;48722:167;:::o;48891:295::-;49023:66;49019:1;49011:6;49007:14;49000:90;49116:66;49111:2;49103:6;49099:15;49092:91;48891:295;:::o;49188:144::-;49320:8;49316:1;49308:6;49304:14;49297:32;49188:144;:::o;49334:110::-;49399:24;49417:5;49399:24;:::i;:::-;49392:5;49389:35;49379:63;;49438:1;49435;49428:12;49379:63;49334:110;:::o;49446:104::-;49508:21;49523:5;49508:21;:::i;:::-;49501:5;49498:32;49488:60;;49544:1;49541;49534:12;49488:60;49446:104;:::o;49552:108::-;49616:23;49633:5;49616:23;:::i;:::-;49609:5;49606:34;49596:62;;49654:1;49651;49644:12;49596:62;49552:108;:::o;49662:110::-;49727:24;49745:5;49727:24;:::i;:::-;49720:5;49717:35;49707:63;;49766:1;49763;49756:12;49707:63;49662:110;:::o;49774:106::-;49837:22;49853:5;49837:22;:::i;:::-;49830:5;49827:33;49817:61;;49874:1;49871;49864:12;49817:61;49774:106;:::o
Swarm Source
ipfs://f5ac7b252272cc11fc980af1311608dceafd09ebdea4aac1524dad178c6be5b8
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.