Token FELINE
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
44,000,000 FEL
Holders:
297 addresses
Contract:
Decimals:
18
Balance
2,609.66423611111111111 FELValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FELINE
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-10-29 */ pragma solidity 0.5.16; interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Context { constructor () internal {} function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Blacklistable is Ownable { mapping (address => bool) public isBlacklisted; event AddedBlacklist(address _user); event RemovedBlacklist(address _user); modifier onlyNotBlacklisted() { require(isBlacklisted[_msgSender()] == false, "Blacklistable: caller is blacklisted"); _; } function getBlacklistStatus(address account) external view returns (bool) { return isBlacklisted[account]; } function addBlacklist (address account) public onlyOwner { isBlacklisted[account] = true; emit AddedBlacklist(account); } function removeBlacklist (address account) public onlyOwner { isBlacklisted[account] = false; emit RemovedBlacklist(account); } } contract FELINE is Context, IBEP20, Ownable, Blacklistable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; uint8 private _decimals; string private _symbol; string private _name; constructor() public { _name = "FELINE"; _symbol = "FEL"; _decimals = 18; _totalSupply = 44000000000000000000000000; //44 Million _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function getOwner() external view returns (address) { return owner(); } function decimals() external view returns (uint8) { return _decimals; } function symbol() external view returns (string memory) { return _symbol; } function name() external view returns (string memory) { return _name; } function totalSupply() external view returns (uint256) { return _totalSupply; } function balanceOf(address account) external view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public onlyNotBlacklisted returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public onlyNotBlacklisted returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")); return true; } function allowance(address owner, address spender) external view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public onlyNotBlacklisted returns (bool) { _approve(_msgSender(), spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public onlyNotBlacklisted returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public onlyNotBlacklisted returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function burn(uint256 amount) public onlyOwner returns (bool) { _burn(_msgSender(), amount); return true; } function batchTransfer(address[] memory recipients, uint256[] memory amounts) public onlyNotBlacklisted returns (bool) { require(recipients.length == amounts.length); for (uint256 i = 0; i < recipients.length; i++) { require(transfer(recipients[i], amounts[i])); } return true; } function batchTransferFrom(address sender, address[] memory recipients, uint256[] memory amounts) public onlyNotBlacklisted returns (bool) { require(recipients.length == amounts.length); for (uint256 i = 0; i < amounts.length; i++) { require(transferFrom(sender, recipients[i], amounts[i])); } return true; } function batchTransferFromMany(address[] memory senders, address recipient, uint256[] memory amounts) public onlyNotBlacklisted returns (bool) { require(senders.length == amounts.length); for (uint256 i = 0; i < amounts.length; i++) { require(transferFrom(senders[i], recipient, amounts[i])); } return true; } function batchTransferFromManyToMany(address[] memory senders, address[] memory recipients, uint256[] memory amounts) public onlyNotBlacklisted returns (bool) { require(senders.length == recipients.length); require(senders.length == amounts.length); for (uint i = 0; i < amounts.length; i++) { require(transferFrom(senders[i], recipients[i], amounts[i])); } return true; } function batchApprove(address[] memory spenders, uint256[] memory amounts) public onlyNotBlacklisted returns (bool) { require(spenders.length == amounts.length); for (uint256 i = 0; i < amounts.length; i++) { require(approve(spenders[i], amounts[i])); } return true; } function batchIncreaseAllowance(address[] memory spenders, uint256[] memory addedValues) public onlyNotBlacklisted returns (bool) { require(spenders.length == addedValues.length); for (uint256 i = 0; i < addedValues.length; i++) { require(increaseAllowance(spenders[i], addedValues[i])); } return true; } function batchDecreaseAllowance(address[] memory spenders, uint256[] memory subtractedValues) public onlyNotBlacklisted returns (bool) { require(spenders.length == subtractedValues.length); for (uint256 i = 0; i < subtractedValues.length; i++) { require(decreaseAllowance(spenders[i], subtractedValues[i])); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "BEP20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "BEP20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"RemovedBlacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"spenders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"spenders","type":"address[]"},{"internalType":"uint256[]","name":"subtractedValues","type":"uint256[]"}],"name":"batchDecreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"spenders","type":"address[]"},{"internalType":"uint256[]","name":"addedValues","type":"uint256[]"}],"name":"batchIncreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFromMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransferFromManyToMany","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getBlacklistStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506000620000246200024060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600681526020017f46454c494e450000000000000000000000000000000000000000000000000000815250600790805190602001906200010f92919062000248565b506040518060400160405280600381526020017f46454c0000000000000000000000000000000000000000000000000000000000815250600690805190602001906200015d92919062000248565b506012600560006101000a81548160ff021916908360ff1602179055506a24655cc78b38d7ac000000600481905550600454600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3620002f7565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028b57805160ff1916838001178555620002bc565b82800160010185558215620002bc579182015b82811115620002bb5782518255916020019190600101906200029e565b5b509050620002cb9190620002cf565b5090565b620002f491905b80821115620002f0576000816000905550600101620002d6565b5090565b90565b61351a80620003076000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e14611180578063eb91e651146111f8578063f2fde38b1461123c578063fe575a8714611280576101a9565b8063a457c2d714610f50578063a9059cbb14610fb6578063d8bc22631461101c576101a9565b8063893d20e8116100d3578063893d20e814610df55780638da5cb5b14610e3f57806395d89b4114610e895780639cfe42da14610f0c576101a9565b806370a0823114610c2f578063715018a614610c8757806388d695b214610c91576101a9565b8063395093511161016657806342966c681161014057806342966c68146108a55780634885b254146108eb57806358d2b4a514610a6f57806364d7cabc14610acb576101a9565b806339509351146104e35780633e11b7651461054957806341e18398146106ad576101a9565b806306fdde03146101ae578063095ea7b31461023157806318160ddd1461029757806323b872dd146102b5578063313ce5671461033b578063380e809e1461035f575b600080fd5b6101b66112dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137e565b604051808215151515815260200191505060405180910390f35b61029f61144b565b6040518082815260200191505060405180910390f35b610321600480360360608110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611455565b604051808215151515815260200191505060405180910390f35b6103436115dd565b604051808260ff1660ff16815260200191505060405180910390f35b6104c96004803603606081101561037557600080fd5b810190808035906020019064010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561044657600080fd5b82018360208201111561045857600080fd5b8035906020019184602083028401116401000000008311171561047a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506115f4565b604051808215151515815260200191505060405180910390f35b61052f600480360360408110156104f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611715565b604051808215151515815260200191505060405180910390f35b6106936004803603604081101561055f57600080fd5b810190808035906020019064010000000081111561057c57600080fd5b82018360208201111561058e57600080fd5b803590602001918460208302840111640100000000831117156105b057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061057600080fd5b82018360208201111561062257600080fd5b8035906020019184602083028401116401000000008311171561064457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611877565b604051808215151515815260200191505060405180910390f35b61088b600480360360608110156106c357600080fd5b81019080803590602001906401000000008111156106e057600080fd5b8201836020820111156106f257600080fd5b8035906020019184602083028401116401000000008311171561071457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561080857600080fd5b82018360208201111561081a57600080fd5b8035906020019184602083028401116401000000008311171561083c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611996565b604051808215151515815260200191505060405180910390f35b6108d1600480360360208110156108bb57600080fd5b8101908080359060200190929190505050611ad8565b604051808215151515815260200191505060405180910390f35b610a556004803603606081101561090157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156109d257600080fd5b8201836020820111156109e457600080fd5b80359060200191846020830284011164010000000083111715610a0657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611bbd565b604051808215151515815260200191505060405180910390f35b610ab160048036036020811015610a8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cde565b604051808215151515815260200191505060405180910390f35b610c1560048036036040811015610ae157600080fd5b8101908080359060200190640100000000811115610afe57600080fd5b820183602082011115610b1057600080fd5b80359060200191846020830284011164010000000083111715610b3257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846020830284011164010000000083111715610bc657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611d34565b604051808215151515815260200191505060405180910390f35b610c7160048036036020811015610c4557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e53565b6040518082815260200191505060405180910390f35b610c8f611e9c565b005b610ddb60048036036040811015610ca757600080fd5b8101908080359060200190640100000000811115610cc457600080fd5b820183602082011115610cd657600080fd5b80359060200191846020830284011164010000000083111715610cf857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610d5857600080fd5b820183602082011115610d6a57600080fd5b80359060200191846020830284011164010000000083111715610d8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612024565b604051808215151515815260200191505060405180910390f35b610dfd612143565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e47612152565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e9161217b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ed1578082015181840152602081019050610eb6565b50505050905090810190601f168015610efe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f4e60048036036020811015610f2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061221d565b005b610f9c60048036036040811015610f6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123a3565b604051808215151515815260200191505060405180910390f35b61100260048036036040811015610fcc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061251f565b604051808215151515815260200191505060405180910390f35b6111666004803603604081101561103257600080fd5b810190808035906020019064010000000081111561104f57600080fd5b82018360208201111561106157600080fd5b8035906020019184602083028401116401000000008311171561108357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156110e357600080fd5b8201836020820111156110f557600080fd5b8035906020019184602083028401116401000000008311171561111757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506125ec565b604051808215151515815260200191505060405180910390f35b6111e26004803603604081101561119657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061270b565b6040518082815260200191505060405180910390f35b61123a6004803603602081101561120e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612792565b005b61127e6004803603602081101561125257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612919565b005b6112c26004803603602081101561129657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129ee565b604051808215151515815260200191505060405180910390f35b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113745780601f1061134957610100808354040283529160200191611374565b820191906000526020600020905b81548152906001019060200180831161135757829003601f168201915b5050505050905090565b60008015156001600061138f612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61144161143a612a0e565b8484612a16565b6001905092915050565b6000600454905090565b600080151560016000611466612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611506576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b611511848484612c0d565b6115d28461151d612a0e565b6115cd856040518060600160405280602881526020016133eb60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611583612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b612a16565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600080151560016000611605612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518451146116b357600080fd5b60008090505b8251811015611709576116f38582815181106116d157fe5b6020026020010151858584815181106116e657fe5b6020026020010151611455565b6116fc57600080fd5b80806001019150506116b9565b50600190509392505050565b600080151560016000611726612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146117c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61186d6117d1612a0e565b8461186885600360006117e2612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b612a16565b6001905092915050565b600080151560016000611888612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b815183511461193657600080fd5b60008090505b825181101561198b5761197584828151811061195457fe5b602002602001015184838151811061196857fe5b602002602001015161137e565b61197e57600080fd5b808060010191505061193c565b506001905092915050565b6000801515600160006119a7612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8251845114611a5557600080fd5b8151845114611a6357600080fd5b60008090505b8251811015611acc57611ab6858281518110611a8157fe5b6020026020010151858381518110611a9557fe5b6020026020010151858481518110611aa957fe5b6020026020010151611455565b611abf57600080fd5b8080600101915050611a69565b50600190509392505050565b6000611ae2612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611bb4611bae612a0e565b8361300f565b60019050919050565b600080151560016000611bce612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8151835114611c7c57600080fd5b60008090505b8251811015611cd257611cbc85858381518110611c9b57fe5b6020026020010151858481518110611caf57fe5b6020026020010151611455565b611cc557600080fd5b8080600101915050611c82565b50600190509392505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080151560016000611d45612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611de5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8151835114611df357600080fd5b60008090505b8251811015611e4857611e32848281518110611e1157fe5b6020026020010151848381518110611e2557fe5b6020026020010151611715565b611e3b57600080fd5b8080600101915050611df9565b506001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ea4612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080151560016000612035612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146120d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518351146120e357600080fd5b60008090505b83518110156121385761212284828151811061210157fe5b602002602001015184838151811061211557fe5b602002602001015161251f565b61212b57600080fd5b80806001019150506120e9565b506001905092915050565b600061214d612152565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122135780601f106121e857610100808354040283529160200191612213565b820191906000526020600020905b8154815290600101906020018083116121f657829003601f168201915b5050505050905090565b612225612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f86c048150dfc5def3c35f7bc81582956dd964e56d8c028c9f4f5e978bb203c3181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000801515600160006123b4612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61251561245f612a0e565b846125108560405180606001604052806025815260200161345c6025913960036000612489612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b612a16565b6001905092915050565b600080151560016000612530612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146125d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b6125e26125db612a0e565b8484612c0d565b6001905092915050565b6000801515600160006125fd612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461269d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518351146126ab57600080fd5b60008090505b8251811015612700576126ea8482815181106126c957fe5b60200260200101518483815181106126dd57fe5b60200260200101516123a3565b6126f357600080fd5b80806001019150506126b1565b506001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61279a612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f90792cb7177eb70be35a14e39400d4143370da97f528237fd2b069e408ca68fb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612921612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6129eb816131c9565b50565b60016020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134c46022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133586025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806134396023913960400191505060405180910390fd5b612d858160405180606001604052806026815260200161341360269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e1a81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f39578082015181840152602081019050612f1e565b50505050905090810190601f168015612f665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613095576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134816021913960400191505060405180910390fd5b613101816040518060600160405280602281526020016134a260229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131598160045461330d90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561324f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133c56026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061334f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ec7565b90509291505056fe42455032303a207472616e736665722066726f6d20746865207a65726f2061646472657373426c61636b6c69737461626c653a2063616c6c657220697320626c61636b6c697374656442455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a72315820a0d9536db55a86c3bf499d3d05e015cb81a699b2de6a010b082a1b098a89f29d64736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e14611180578063eb91e651146111f8578063f2fde38b1461123c578063fe575a8714611280576101a9565b8063a457c2d714610f50578063a9059cbb14610fb6578063d8bc22631461101c576101a9565b8063893d20e8116100d3578063893d20e814610df55780638da5cb5b14610e3f57806395d89b4114610e895780639cfe42da14610f0c576101a9565b806370a0823114610c2f578063715018a614610c8757806388d695b214610c91576101a9565b8063395093511161016657806342966c681161014057806342966c68146108a55780634885b254146108eb57806358d2b4a514610a6f57806364d7cabc14610acb576101a9565b806339509351146104e35780633e11b7651461054957806341e18398146106ad576101a9565b806306fdde03146101ae578063095ea7b31461023157806318160ddd1461029757806323b872dd146102b5578063313ce5671461033b578063380e809e1461035f575b600080fd5b6101b66112dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61027d6004803603604081101561024757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137e565b604051808215151515815260200191505060405180910390f35b61029f61144b565b6040518082815260200191505060405180910390f35b610321600480360360608110156102cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611455565b604051808215151515815260200191505060405180910390f35b6103436115dd565b604051808260ff1660ff16815260200191505060405180910390f35b6104c96004803603606081101561037557600080fd5b810190808035906020019064010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561044657600080fd5b82018360208201111561045857600080fd5b8035906020019184602083028401116401000000008311171561047a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506115f4565b604051808215151515815260200191505060405180910390f35b61052f600480360360408110156104f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611715565b604051808215151515815260200191505060405180910390f35b6106936004803603604081101561055f57600080fd5b810190808035906020019064010000000081111561057c57600080fd5b82018360208201111561058e57600080fd5b803590602001918460208302840111640100000000831117156105b057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061057600080fd5b82018360208201111561062257600080fd5b8035906020019184602083028401116401000000008311171561064457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611877565b604051808215151515815260200191505060405180910390f35b61088b600480360360608110156106c357600080fd5b81019080803590602001906401000000008111156106e057600080fd5b8201836020820111156106f257600080fd5b8035906020019184602083028401116401000000008311171561071457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561080857600080fd5b82018360208201111561081a57600080fd5b8035906020019184602083028401116401000000008311171561083c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611996565b604051808215151515815260200191505060405180910390f35b6108d1600480360360208110156108bb57600080fd5b8101908080359060200190929190505050611ad8565b604051808215151515815260200191505060405180910390f35b610a556004803603606081101561090157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156109d257600080fd5b8201836020820111156109e457600080fd5b80359060200191846020830284011164010000000083111715610a0657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611bbd565b604051808215151515815260200191505060405180910390f35b610ab160048036036020811015610a8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cde565b604051808215151515815260200191505060405180910390f35b610c1560048036036040811015610ae157600080fd5b8101908080359060200190640100000000811115610afe57600080fd5b820183602082011115610b1057600080fd5b80359060200191846020830284011164010000000083111715610b3257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846020830284011164010000000083111715610bc657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611d34565b604051808215151515815260200191505060405180910390f35b610c7160048036036020811015610c4557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e53565b6040518082815260200191505060405180910390f35b610c8f611e9c565b005b610ddb60048036036040811015610ca757600080fd5b8101908080359060200190640100000000811115610cc457600080fd5b820183602082011115610cd657600080fd5b80359060200191846020830284011164010000000083111715610cf857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610d5857600080fd5b820183602082011115610d6a57600080fd5b80359060200191846020830284011164010000000083111715610d8c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612024565b604051808215151515815260200191505060405180910390f35b610dfd612143565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e47612152565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e9161217b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ed1578082015181840152602081019050610eb6565b50505050905090810190601f168015610efe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f4e60048036036020811015610f2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061221d565b005b610f9c60048036036040811015610f6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123a3565b604051808215151515815260200191505060405180910390f35b61100260048036036040811015610fcc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061251f565b604051808215151515815260200191505060405180910390f35b6111666004803603604081101561103257600080fd5b810190808035906020019064010000000081111561104f57600080fd5b82018360208201111561106157600080fd5b8035906020019184602083028401116401000000008311171561108357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156110e357600080fd5b8201836020820111156110f557600080fd5b8035906020019184602083028401116401000000008311171561111757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506125ec565b604051808215151515815260200191505060405180910390f35b6111e26004803603604081101561119657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061270b565b6040518082815260200191505060405180910390f35b61123a6004803603602081101561120e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612792565b005b61127e6004803603602081101561125257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612919565b005b6112c26004803603602081101561129657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129ee565b604051808215151515815260200191505060405180910390f35b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113745780601f1061134957610100808354040283529160200191611374565b820191906000526020600020905b81548152906001019060200180831161135757829003601f168201915b5050505050905090565b60008015156001600061138f612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61144161143a612a0e565b8484612a16565b6001905092915050565b6000600454905090565b600080151560016000611466612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611506576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b611511848484612c0d565b6115d28461151d612a0e565b6115cd856040518060600160405280602881526020016133eb60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611583612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b612a16565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600080151560016000611605612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518451146116b357600080fd5b60008090505b8251811015611709576116f38582815181106116d157fe5b6020026020010151858584815181106116e657fe5b6020026020010151611455565b6116fc57600080fd5b80806001019150506116b9565b50600190509392505050565b600080151560016000611726612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146117c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61186d6117d1612a0e565b8461186885600360006117e2612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b612a16565b6001905092915050565b600080151560016000611888612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b815183511461193657600080fd5b60008090505b825181101561198b5761197584828151811061195457fe5b602002602001015184838151811061196857fe5b602002602001015161137e565b61197e57600080fd5b808060010191505061193c565b506001905092915050565b6000801515600160006119a7612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611a47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8251845114611a5557600080fd5b8151845114611a6357600080fd5b60008090505b8251811015611acc57611ab6858281518110611a8157fe5b6020026020010151858381518110611a9557fe5b6020026020010151858481518110611aa957fe5b6020026020010151611455565b611abf57600080fd5b8080600101915050611a69565b50600190509392505050565b6000611ae2612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611bb4611bae612a0e565b8361300f565b60019050919050565b600080151560016000611bce612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8151835114611c7c57600080fd5b60008090505b8251811015611cd257611cbc85858381518110611c9b57fe5b6020026020010151858481518110611caf57fe5b6020026020010151611455565b611cc557600080fd5b8080600101915050611c82565b50600190509392505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080151560016000611d45612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611de5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b8151835114611df357600080fd5b60008090505b8251811015611e4857611e32848281518110611e1157fe5b6020026020010151848381518110611e2557fe5b6020026020010151611715565b611e3b57600080fd5b8080600101915050611df9565b506001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ea4612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080151560016000612035612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146120d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518351146120e357600080fd5b60008090505b83518110156121385761212284828151811061210157fe5b602002602001015184838151811061211557fe5b602002602001015161251f565b61212b57600080fd5b80806001019150506120e9565b506001905092915050565b600061214d612152565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122135780601f106121e857610100808354040283529160200191612213565b820191906000526020600020905b8154815290600101906020018083116121f657829003601f168201915b5050505050905090565b612225612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f86c048150dfc5def3c35f7bc81582956dd964e56d8c028c9f4f5e978bb203c3181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000801515600160006123b4612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b61251561245f612a0e565b846125108560405180606001604052806025815260200161345c6025913960036000612489612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b612a16565b6001905092915050565b600080151560016000612530612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146125d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b6125e26125db612a0e565b8484612c0d565b6001905092915050565b6000801515600160006125fd612a0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461269d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061337d6024913960400191505060405180910390fd5b81518351146126ab57600080fd5b60008090505b8251811015612700576126ea8482815181106126c957fe5b60200260200101518483815181106126dd57fe5b60200260200101516123a3565b6126f357600080fd5b80806001019150506126b1565b506001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61279a612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f90792cb7177eb70be35a14e39400d4143370da97f528237fd2b069e408ca68fb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b612921612a0e565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6129eb816131c9565b50565b60016020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806134c46022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133586025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806134396023913960400191505060405180910390fd5b612d858160405180606001604052806026815260200161341360269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e1a81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f39578082015181840152602081019050612f1e565b50505050905090810190601f168015612f665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015613005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613095576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134816021913960400191505060405180910390fd5b613101816040518060600160405280602281526020016134a260229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec79092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131598160045461330d90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561324f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133c56026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061334f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ec7565b90509291505056fe42455032303a207472616e736665722066726f6d20746865207a65726f2061646472657373426c61636b6c69737461626c653a2063616c6c657220697320626c61636b6c697374656442455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e2066726f6d20746865207a65726f206164647265737342455032303a206275726e20616d6f756e7420657863656564732062616c616e636542455032303a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a72315820a0d9536db55a86c3bf499d3d05e015cb81a699b2de6a010b082a1b098a89f29d64736f6c63430005100032
Deployed ByteCode Sourcemap
4218:6106:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4218:6106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5081:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5081:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5995:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5166:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5544:309;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5544:309:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4907:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7448:339;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7448:339:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7448:339:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7448:339:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7448:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7448:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7448:339:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7448:339:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7448:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7448:339:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6162:219;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6162:219:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8206:298;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8206:298:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8206:298:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8206:298:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8206:298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8206:298:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8206:298:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8206:298:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8206:298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8206:298:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7793:407;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7793:407:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7793:407:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7793:407:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7793:407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7793:407:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7793:407:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7793:407:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7793:407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7793:407:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7793:407:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7793:407:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7793:407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7793:407:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6663:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6663:120:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7104:338;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7104:338:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7104:338:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7104:338:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7104:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7104:338:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7104:338:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7104:338:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7104:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7104:338:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3809:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3809:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8510:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8510:334:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8510:334:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8510:334:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8510:334:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8510:334:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8510:334:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8510:334:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8510:334:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8510:334:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5259:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5259:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3024:130;;;:::i;:::-;;6789:309;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6789:309:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6789:309:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6789:309:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6789:309:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6789:309:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6789:309:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6789:309:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6789:309:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6789:309:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4822:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2830:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4992:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4992:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3931:134:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6387:270;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6387:270:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5371:167;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5371:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8850:354;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8850:354:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8850:354:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8850:354:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8850:354:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8850:354:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8850:354:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8850:354:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8850:354:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8850:354:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5859:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5859:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4071:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4071:140:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3160:103:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3530:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3530:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5081:79;5120:13;5149:5;5142:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5081:79;:::o;5995:161::-;6080:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:39;6102:12;:10;:12::i;:::-;6116:7;6125:6;6093:8;:39::i;:::-;6146:4;6139:11;;5995:161;;;;:::o;5166:87::-;5212:7;5235:12;;5228:19;;5166:87;:::o;5544:309::-;5652:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5665:36;5675:6;5683:9;5694:6;5665:9;:36::i;:::-;5708:121;5717:6;5725:12;:10;:12::i;:::-;5739:89;5777:6;5739:89;;;;;;;;;;;;;;;;;:11;:19;5751:6;5739:19;;;;;;;;;;;;;;;:33;5759:12;:10;:12::i;:::-;5739:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5708:8;:121::i;:::-;5843:4;5836:11;;5544:309;;;;;:::o;4907:79::-;4950:5;4971:9;;;;;;;;;;;4964:16;;4907:79;:::o;7448:339::-;7585:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:7;:14;7606:7;:14;:32;7598:41;;;;;;7651:9;7663:1;7651:13;;7646:118;7670:7;:14;7666:1;:18;7646:118;;;7708:47;7721:7;7729:1;7721:10;;;;;;;;;;;;;;7733:9;7744:7;7752:1;7744:10;;;;;;;;;;;;;;7708:12;:47::i;:::-;7700:56;;;;;;7686:3;;;;;;;7646:118;;;;7777:4;7770:11;;7448:339;;;;;:::o;6162:219::-;6261:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6274:83;6283:12;:10;:12::i;:::-;6297:7;6306:50;6345:10;6306:11;:25;6318:12;:10;:12::i;:::-;6306:25;;;;;;;;;;;;;;;:34;6332:7;6306:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6274:8;:83::i;:::-;6371:4;6364:11;;6162:219;;;;:::o;8206:298::-;8316:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8356:7;:14;8337:8;:15;:33;8329:42;;;;;;8383:9;8395:1;8383:13;;8378:103;8402:7;:14;8398:1;:18;8378:103;;;8440:32;8448:8;8457:1;8448:11;;;;;;;;;;;;;;8461:7;8469:1;8461:10;;;;;;;;;;;;;;8440:7;:32::i;:::-;8432:41;;;;;;8418:3;;;;;;;8378:103;;;;8494:4;8487:11;;8206:298;;;;:::o;7793:407::-;7946:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7985:10;:17;7967:7;:14;:35;7959:44;;;;;;8036:7;:14;8018:7;:14;:32;8010:41;;;;;;8063:6;8072:1;8063:10;;8058:119;8079:7;:14;8075:1;:18;8058:119;;;8117:51;8130:7;8138:1;8130:10;;;;;;;;;;;;;;8142;8153:1;8142:13;;;;;;;;;;;;;;8157:7;8165:1;8157:10;;;;;;;;;;;;;;8117:12;:51::i;:::-;8109:60;;;;;;8095:3;;;;;;;8058:119;;;;8190:4;8183:11;;7793:407;;;;;:::o;6663:120::-;6719:4;2955:12;:10;:12::i;:::-;2945:22;;:6;;;;;;;;;;;:22;;;2937:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6732:27;6738:12;:10;:12::i;:::-;6752:6;6732:5;:27::i;:::-;6773:4;6766:11;;6663:120;;;:::o;7104:338::-;7237:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7279:7;:14;7258:10;:17;:35;7250:44;;;;;;7306:9;7318:1;7306:13;;7301:118;7325:7;:14;7321:1;:18;7301:118;;;7363:47;7376:6;7384:10;7395:1;7384:13;;;;;;;;;;;;;;7399:7;7407:1;7399:10;;;;;;;;;;;;;;7363:12;:47::i;:::-;7355:56;;;;;;7341:3;;;;;;;7301:118;;;;7432:4;7425:11;;7104:338;;;;;:::o;3809:116::-;3877:4;3897:13;:22;3911:7;3897:22;;;;;;;;;;;;;;;;;;;;;;;;;3890:29;;3809:116;;;:::o;8510:334::-;8634:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8674:11;:18;8655:8;:15;:37;8647:46;;;;;;8705:9;8717:1;8705:13;;8700:121;8724:11;:18;8720:1;:22;8700:121;;;8766:46;8784:8;8793:1;8784:11;;;;;;;;;;;;;;8797;8809:1;8797:14;;;;;;;;;;;;;;8766:17;:46::i;:::-;8758:55;;;;;;8744:3;;;;;;;8700:121;;;;8834:4;8827:11;;8510:334;;;;:::o;5259:106::-;5318:7;5341:9;:18;5351:7;5341:18;;;;;;;;;;;;;;;;5334:25;;5259:106;;;:::o;3024:130::-;2955:12;:10;:12::i;:::-;2945:22;;:6;;;;;;;;;;;:22;;;2937:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3119:1;3082:40;;3103:6;;;;;;;;;;;3082:40;;;;;;;;;;;;3146:1;3129:6;;:19;;;;;;;;;;;;;;;;;;3024:130::o;6789:309::-;6902:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6944:7;:14;6923:10;:17;:35;6915:44;;;;;;6971:9;6983:1;6971:13;;6966:109;6990:10;:17;6986:1;:21;6966:109;;;7031:35;7040:10;7051:1;7040:13;;;;;;;;;;;;;;7055:7;7063:1;7055:10;;;;;;;;;;;;;;7031:8;:35::i;:::-;7023:44;;;;;;7009:3;;;;;;;6966:109;;;;7088:4;7081:11;;6789:309;;;;:::o;4822:79::-;4865:7;4888;:5;:7::i;:::-;4881:14;;4822:79;:::o;2830:73::-;2868:7;2891:6;;;;;;;;;;;2884:13;;2830:73;:::o;4992:83::-;5033:13;5062:7;5055:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:83;:::o;3931:134::-;2955:12;:10;:12::i;:::-;2945:22;;:6;;;;;;;;;;;:22;;;2937:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4020:4;3995:13;:22;4009:7;3995:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4036:23;4051:7;4036:23;;;;;;;;;;;;;;;;;;;;;;3931:134;:::o;6387:270::-;6491:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6504:129;6513:12;:10;:12::i;:::-;6527:7;6536:96;6575:15;6536:96;;;;;;;;;;;;;;;;;:11;:25;6548:12;:10;:12::i;:::-;6536:25;;;;;;;;;;;;;;;:34;6562:7;6536:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6504:8;:129::i;:::-;6647:4;6640:11;;6387:270;;;;:::o;5371:167::-;5459:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:42;5482:12;:10;:12::i;:::-;5496:9;5507:6;5472:9;:42::i;:::-;5528:4;5521:11;;5371:167;;;;:::o;8850:354::-;8979:4;3743:5;3712:36;;:13;:27;3726:12;:10;:12::i;:::-;3712:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;3704:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9019:16;:23;9000:8;:15;:42;8992:51;;;;;;9055:9;9067:1;9055:13;;9050:131;9074:16;:23;9070:1;:27;9050:131;;;9121:51;9139:8;9148:1;9139:11;;;;;;;;;;;;;;9152:16;9169:1;9152:19;;;;;;;;;;;;;;9121:17;:51::i;:::-;9113:60;;;;;;9099:3;;;;;;;9050:131;;;;9194:4;9187:11;;8850:354;;;;:::o;5859:130::-;5933:7;5956:11;:18;5968:5;5956:18;;;;;;;;;;;;;;;:27;5975:7;5956:27;;;;;;;;;;;;;;;;5949:34;;5859:130;;;;:::o;4071:140::-;2955:12;:10;:12::i;:::-;2945:22;;:6;;;;;;;;;;;:22;;;2937:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4163:5;4138:13;:22;4152:7;4138:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;4180:25;4197:7;4180:25;;;;;;;;;;;;;;;;;;;;;;4071:140;:::o;3160:103::-;2955:12;:10;:12::i;:::-;2945:22;;:6;;;;;;;;;;;:22;;;2937:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:28;3248:8;3229:18;:28::i;:::-;3160:103;:::o;3530:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;971:92::-;1016:15;1047:10;1040:17;;971:92;:::o;10001:320::-;10108:1;10091:19;;:5;:19;;;;10083:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10185:1;10166:21;;:7;:21;;;;10158:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10265:6;10235:11;:18;10247:5;10235:18;;;;;;;;;;;;;;;:27;10254:7;10235:27;;;;;;;;;;;;;;;:36;;;;10299:7;10283:32;;10292:5;10283:32;;;10308:6;10283:32;;;;;;;;;;;;;;;;;;10001:320;;;:::o;9210:449::-;9322:1;9304:20;;:6;:20;;;;9296:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9402:1;9381:23;;:9;:23;;;;9373:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9473;9495:6;9473:71;;;;;;;;;;;;;;;;;:9;:17;9483:6;9473:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9453:9;:17;9463:6;9453:17;;;;;;;;;;;;;;;:91;;;;9574:32;9599:6;9574:9;:20;9584:9;9574:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9551:9;:20;9561:9;9551:20;;;;;;;;;;;;;;;:55;;;;9635:9;9618:35;;9627:6;9618:35;;;9646:6;9618:35;;;;;;;;;;;;;;;;;;9210:449;;;:::o;1503:178::-;1589:7;1618:1;1613;:6;;1621:12;1605:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1605:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1641:9;1657:1;1653;:5;1641:17;;1674:1;1667:8;;;1503:178;;;;;:::o;1194:167::-;1252:7;1268:9;1284:1;1280;:5;1268:17;;1305:1;1300;:6;;1292:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1354:1;1347:8;;;1194:167;;;;:::o;9665:330::-;9756:1;9737:21;;:7;:21;;;;9729:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9826:68;9849:6;9826:68;;;;;;;;;;;;;;;;;:9;:18;9836:7;9826:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;9805:9;:18;9815:7;9805:18;;;;;;;;;;;;;;;:89;;;;9916:24;9933:6;9916:12;;:16;;:24;;;;:::i;:::-;9901:12;:39;;;;9978:1;9952:37;;9961:7;9952:37;;;9982:6;9952:37;;;;;;;;;;;;;;;;;;9665:330;;:::o;3269:215::-;3359:1;3339:22;;:8;:22;;;;3331:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3445:8;3416:38;;3437:6;;;;;;;;;;;3416:38;;;;;;;;;;;;3470:8;3461:6;;:17;;;;;;;;;;;;;;;;;;3269:215;:::o;1367:130::-;1425:7;1448:43;1452:1;1455;1448:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1441:50;;1367:130;;;;:::o
Swarm Source
bzzr://a0d9536db55a86c3bf499d3d05e015cb81a699b2de6a010b082a1b098a89f29d