Contract 0x75e457c1AD98bCC78ae676E9a87A324807475B6b

 

Contract Overview

ShibaPad: $SBP Token
Balance:
0.728847519657440269 BNB

BNB Value:
$288.71 (@ $396.12/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x41cacc8e6efe4d800a7e533f2eaaa1f9f1804c6dd6de041d315f01ed40989ed3Approve147901382022-01-29 13:48:141 min ago0x17fa5e690345513454efce9fdc5cd6d937dde9b8 IN  ShibaPad: $SBP Token0 BNB0.00022226
0x8154da9cf435d824acc1dc2eafc4d681759badc09a200f0b858471ea1e6d6fdcApprove147714502022-01-28 22:13:1415 hrs 36 mins ago0x558d60469ac85ebc9679ab67835fa9657a4b469e IN  ShibaPad: $SBP Token0 BNB0.00022226
0xc5670b741228e65bc3a6aa7e356b823089889bb16124246c458dc5dbd098cc3bApprove147361242022-01-27 16:41:331 day 21 hrs ago0xf44b2b73eb6b85a37ee15a84e40d1411bbff9df8 IN  ShibaPad: $SBP Token0 BNB0.00022226
0x07dc8a2f61eda8a0234dc440661e312a8d20d9ae58dac4d545888aca1185ec5bApprove147312612022-01-27 12:37:272 days 1 hr ago0x5f2c0a113cc5c4ccebd5559ab41bbeb53f6f2607 IN  ShibaPad: $SBP Token0 BNB0.00007267
0x6acb3728672aae3deb7c6d5df6d7de75e826e72ec09979fb0c20ebbc127fea69Approve147054342022-01-26 14:59:282 days 22 hrs ago0x3ab31df8ef506b611d323d4f9b99cfd18ac61d29 IN  ShibaPad: $SBP Token0 BNB0.00022226
0xe6d9c5da1d6c0f688a164ec7c392863aeb949ae245850fedd8f4d682226e4c56Transfer146585442022-01-24 23:51:474 days 13 hrs ago0x53e9354eb10a7c5529ae135d072980b3d874143e IN  ShibaPad: $SBP Token0 BNB0.001
0x4a64d1c2628b50835c6196b75887b1c71ae46fef803786222d1f8e723051c58eTransfer146584102022-01-24 23:45:054 days 14 hrs ago0x53e9354eb10a7c5529ae135d072980b3d874143e IN  ShibaPad: $SBP Token0 BNB0.001
0x1d7a13a0577e725200babc67f8af717f7d85301c4ec417cd652cc0564ba7cb60Transfer146583042022-01-24 23:39:474 days 14 hrs ago0x53e9354eb10a7c5529ae135d072980b3d874143e IN  ShibaPad: $SBP Token0 BNB0.001
0x11bd555edb35f56dbef1f96f7af1308655db457d46ecd13b0862b38066a83ecbApprove146546332022-01-24 20:36:114 days 17 hrs ago0x138212a140471f5f844a768e31ece45c6cdb958e IN  ShibaPad: $SBP Token0 BNB0.00022226
0xcdb7ca0625e55cf3180883b297d3d09e8121971d45f39b64cfc20a6bf15cadf9Approve Max146428772022-01-24 10:46:165 days 3 hrs ago0x84da3a3e0a46d9c06dc44447b372e433bd6831b8 IN  ShibaPad: $SBP Token0 BNB0.00021959
0xe4a40c2a2064b820418c77309ead1a10c8a020276948aae53eba5ebc9db8be83Approve146317532022-01-24 1:29:455 days 12 hrs ago0x87948262d793898c068bf13a992c60c91367def6 IN  ShibaPad: $SBP Token0 BNB0.00012626
0x740874da8e13d563589e09be5670093497829e72fb0a2c0235e9638a60ae354aApprove146313862022-01-24 1:11:245 days 12 hrs ago0x87948262d793898c068bf13a992c60c91367def6 IN  ShibaPad: $SBP Token0 BNB0.00022226
0x1c572aef9131c44cf49c636009785a8aa394adb5d6901602484a59fcb30e8389Approve146294132022-01-23 23:31:345 days 14 hrs ago0x38b894ad85e0f317e4c5d2d23199abd592a32e0c IN  ShibaPad: $SBP Token0 BNB0.00022226
0x298c0825ea839598770e3dc5f79440e0aecf8af8d84237af3956f6b9c7b422a4Approve Max145993432022-01-22 22:26:596 days 15 hrs ago0xc9f9e2ae75ae1483a936c9640e230328333485d8 IN  ShibaPad: $SBP Token0 BNB0.00021959
0xcbebbc337e736d3af5414d17e82919ef8cfaf7037ed10cc68fd7cf81968c557cTransfer145988172022-01-22 22:00:416 days 15 hrs ago0x53e9354eb10a7c5529ae135d072980b3d874143e IN  ShibaPad: $SBP Token0 BNB0.001
0x4dbe5ad67504f7c3ebd2d2db12a1dfb95e74c6f57c787c4dfa6e9fb02ce9520eApprove145957322022-01-22 19:26:246 days 18 hrs ago0x65cdc0e299c7437c3e5ab53e16b1cda8a9e8ef9b IN  ShibaPad: $SBP Token0 BNB0.00007267
0x79b4975e102be3f992ce3ad764a9dc2896a4ffbdd0eaba5e24603c96a6c2fe94Approve145931272022-01-22 17:15:586 days 20 hrs ago0xb6f55f7638442fde9a237bcdc8f1b7b38c25dca8 IN  ShibaPad: $SBP Token0 BNB0.00023804046
0x6da98ecaedbfb40b52f863bdebb70b338818d9e643cd9f29af87b0fda1bf4e20Approve145891112022-01-22 13:54:486 days 23 hrs ago0x8cb050c74faafee13af654f2a6ae4690df17a098 IN  ShibaPad: $SBP Token0 BNB0.00022226
0xda3b6df4fba6d4a7839074f15ba48c3c8ad02ce2467f029bea5b10fb9d49d1abApprove145821972022-01-22 8:06:287 days 5 hrs ago0x4c9bbdf66d9c02658b8c2978c191c562dd0cf419 IN  ShibaPad: $SBP Token0 BNB0.00022226
0x6633fdc49034bd0d73dc15f800f27a133f7d3299056ec01700663ab5a8e56432Approve Max145629712022-01-21 16:00:557 days 21 hrs ago0xdc00b698a87cdd5d34bfd1a0cd15636ce5cd137d IN  ShibaPad: $SBP Token0 BNB0.00021959
0xee3233a4b72019ce475043b87002789f3b85c51e6735722d94cee25d2d64d3f0Approve Max145593582022-01-21 12:59:428 days 49 mins ago0xc61a0fc2c635aff6ec23abce8b3223ae243aaa99 IN  ShibaPad: $SBP Token0 BNB0.00012359
0x5a7ddfe86d38e5badfacdcae29d3c60544be4c6acd434096de2cced728123329Approve Max145593532022-01-21 12:59:278 days 50 mins ago0xc61a0fc2c635aff6ec23abce8b3223ae243aaa99 IN  ShibaPad: $SBP Token0 BNB0.00021959
0xf3ab1213abb8e09252b964e18ad2077da7cc612576dd91bc87ca32fb0392e069Approve Max145394632022-01-20 20:23:318 days 17 hrs ago0x754dfd08c65e6e4d3a32432900fc3ccef572a090 IN  ShibaPad: $SBP Token0 BNB0.00021959
0x93d0e11b068ee7fc1cf2663b10d1678898ae55c949380b5bbe8eca43b621bd8aClear Stuck Bala...145329992022-01-20 15:00:038 days 22 hrs agoShibaPad: Deployer IN  ShibaPad: $SBP Token0 BNB0.00015041
0xa3fc39a19b2db33777259b9e97c616aafa269ba34a4d9c0d91aa0aa2a3b4cdf8Approve Max145120472022-01-19 21:31:539 days 16 hrs ago0xd3f7d6ecab979d8a210f8bc34e7225960d4feab0 IN  ShibaPad: $SBP Token0 BNB0.00021959
[ Download CSV Export 

OVERVIEW

The ShibaPad is a project which will be built on community base. $SBP is not a just another meme token, it will be used as governance token of ShibaPad woof-ecosystem. The ShibaPad aims to be launchpad / DAO built on friendly community with full of collaborations.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x16ce45488bab5afee94ad38d53a3b51e5a7ea7db337a06dcd1f5ee4923f84037147714812022-01-28 22:14:4715 hrs 34 mins ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.36431370823311457 BNB
0x16ce45488bab5afee94ad38d53a3b51e5a7ea7db337a06dcd1f5ee4923f84037147714812022-01-28 22:14:4715 hrs 34 mins ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.41635852369498808 BNB
0xdf8d074ab687f4dbcba0e85221f4ee6a1b0b5de4252fd0cca0aab66288b5b63d147714642022-01-28 22:13:5615 hrs 35 mins ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.36431370823311457 BNB
0xdf8d074ab687f4dbcba0e85221f4ee6a1b0b5de4252fd0cca0aab66288b5b63d147714642022-01-28 22:13:5615 hrs 35 mins ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.41635852369498808 BNB
0x51461ec7ad455832ac63bc6e9ae83668aafd71c3cec0dc5216ff7cef2bb033ae147364792022-01-27 16:59:181 day 20 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.325280876561375342 BNB
0x51461ec7ad455832ac63bc6e9ae83668aafd71c3cec0dc5216ff7cef2bb033ae147364792022-01-27 16:59:181 day 20 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.046468696651625048 BNB
0x51461ec7ad455832ac63bc6e9ae83668aafd71c3cec0dc5216ff7cef2bb033ae147364792022-01-27 16:59:181 day 20 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.41821826986462544 BNB
0x5715acf4db87518fb99f56bc2724c040ff3fc3d2aa66fb5a9bbaf832ab943936147364692022-01-27 16:58:481 day 20 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.326565858677126302 BNB
0x5715acf4db87518fb99f56bc2724c040ff3fc3d2aa66fb5a9bbaf832ab943936147364692022-01-27 16:58:481 day 20 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.046652265525303757 BNB
0x5715acf4db87518fb99f56bc2724c040ff3fc3d2aa66fb5a9bbaf832ab943936147364692022-01-27 16:58:481 day 20 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.419870389727733818 BNB
0x554735aceeb9b9e9bb46b11e464256d35d5b5f79fd2991afe45b7fb03962fd0e147363042022-01-27 16:50:331 day 20 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.327858473309804691 BNB
0x554735aceeb9b9e9bb46b11e464256d35d5b5f79fd2991afe45b7fb03962fd0e147363042022-01-27 16:50:331 day 20 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.046836924758543527 BNB
0x554735aceeb9b9e9bb46b11e464256d35d5b5f79fd2991afe45b7fb03962fd0e147363042022-01-27 16:50:331 day 20 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.421532322826891746 BNB
0xc1c842205dff74c6e9a12f663c84fc8f60c51c29d733aa95ea8a8228d0227792146978412022-01-26 8:39:443 days 5 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.329453859191560218 BNB
0xc1c842205dff74c6e9a12f663c84fc8f60c51c29d733aa95ea8a8228d0227792146978412022-01-26 8:39:443 days 5 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.047064837027365745 BNB
0xc1c842205dff74c6e9a12f663c84fc8f60c51c29d733aa95ea8a8228d0227792146978412022-01-26 8:39:443 days 5 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.42358353324629171 BNB
0x73682ed130f934834a60bd5008c19a3375b5b171b4b332b9836621d5a3cc6443146829242022-01-25 20:13:513 days 17 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.372170206625188843 BNB
0x73682ed130f934834a60bd5008c19a3375b5b171b4b332b9836621d5a3cc6443146829242022-01-25 20:13:513 days 17 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.425337379000215821 BNB
0x7d77b9083333015587a969b46d62b4c95e017ffe9e5af0f1d0c4fca12e8f69e2146686252022-01-25 8:16:574 days 5 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.331950328043642403 BNB
0x7d77b9083333015587a969b46d62b4c95e017ffe9e5af0f1d0c4fca12e8f69e2146686252022-01-25 8:16:574 days 5 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.047421475434806057 BNB
0x7d77b9083333015587a969b46d62b4c95e017ffe9e5af0f1d0c4fca12e8f69e2146686252022-01-25 8:16:574 days 5 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.426793278913254519 BNB
0x4342b410db604b358159aa3f1ac009b76af161b747e333d0d5cbe2b98caf7e95145982232022-01-22 21:30:596 days 16 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.333815031887109948 BNB
0x4342b410db604b358159aa3f1ac009b76af161b747e333d0d5cbe2b98caf7e95145982232022-01-22 21:30:596 days 16 hrs ago ShibaPad: $SBP Token 0xdc4a5029bcf42d58ee3af16ae87b85b95bc456de0.047687861698158564 BNB
0x4342b410db604b358159aa3f1ac009b76af161b747e333d0d5cbe2b98caf7e95145982232022-01-22 21:30:596 days 16 hrs ago PancakeSwap: Router v2 ShibaPad: $SBP Token0.429190755283427076 BNB
0xc9c642a30143ec0f709af3d25da096b461eded6be250c57986d875081e296a90145725352022-01-22 0:01:097 days 13 hrs ago ShibaPad: $SBP Token 0x3805f96d3f7d19e9843916b6322e4fe9955760a30.334861069651770637 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Shibapad

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-11-14
*/

/**
 *Submitted for verification at BscScan.com on 2021-11-11
*/

/*
                                                                                        
      ░░░░                ░░                                                            
      ░░░░              ░░░░                                                            
      ▒▒▒▒░░            ░░▒▒░░                                                          
      ▒▒▒▒░░▒▒▒▒▒▒▒▒░░▒▒░░▒▒░░                                                          
    ░░▒▒▒▒░░░░░░░░░░░░░░░░░░░░                                                          
    ░░░░░░░░░░░░░░░░░░░░░░░░░░                                                          
    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░                                                        
    ░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒                                                        
    ░░  ░░░░░░░░░░░░  ░░░░░░░░░░▒▒                                                        
    ██  ░░░░░░░░░░▓▓  ░░░░░░░░▒▒                                        ░░░░░░░░░░      
    ▒▒░░░░░░░░░░░░▒▒░░░░░░░░░░░░                                    ░░░░░░░░░░░░░░░░    
  ▓▓██      ░░░░░░░░░░░░░░░░    ▒▒                                ░░░░░░▒▒▒▒▒▒▒▒▒▒░░▒▒  
  ▓▓██        ▓▓▒▒        ░░  ▒▒░░▒▒▒▒                            ░░▒▒▒▒▒▒░░    ▒▒░░░░░░
    ██████████░░          ▒▒▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒░░                    ░░░░░░░░      ▒▒░░▒▒
      ░░░░░░░░        ▒▒░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒░░░░▒▒▒▒░░▒▒░░▒▒▒▒▒▒▒▒░░▒▒▒▒░░▒▒
            ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░▒▒
          ░░░░      ░░  ░░░░░░░░░░░░░      ░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░
          ░░░░          ░░░░░░░░░░░  ░░░░░  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
          ░░  ░░░░      ░░░░░░░░░░░  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░    
          ░░            ░░  ░░░░░░░░     ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░░░▒ 
            ░░            ░░░░░░░░░░░░░░  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   
            ░░░░░░          ░░░░░  ░░░░░  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   
              ░░░░        ░░▒▒░░░░      ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   
                  ░░░░      ░░░░░░░░░░░░░░▒▒▒▒░░░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░░▒
                  ░░░░░░  ░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░      
                    ░░  ░░░░░░░░░░░░░░░░░░░░  ░░░░    ░░░░  ░░░░░░░░▒▒░░░░░░░░░░░░      
                    ░░    ░░▒▒░░  ░░░░  ░░              ░░░░░░▒▒▒▒░░░░░░░░░░░░░░░░      
                    ░░    ░░░░░░                            ░░░░░░░░░░▒▒░░░░░░░░▒▒      
                      ░░  ░░░░░░                                  ▒▒░░░░░░░░░░░░        
                      ░░  ░░░░░░                                  ░░    ░░░░░░░░        
                      ░░  ░░░░░░                                    ░░░░▒▒░░░░░░        
                      ░░  ░░░░░░                                        ░░░░░░░░        
                      ░░  ░░░░░░                                        ▒▒  ░░░░░░      
                      ░░  ░░░░░░                                        ░░░░  ░░░░      
                        ░░░░░░░░                                  ░░░░░░░░▒▒░░░░        
                  ░░░░░░  ░░░░░░                                  ░░░░░░░░  ░░░░        
                  ░░░░░░  ░░░░░░                                  ░░░░░░░░  ░░░░        
                          ░░░░░░                                            ░░░░        
                        ░░░░░░                                            ░░  ░░        
                      ░░░░░░                                            ░░░░░░                                                                                                                      
welcome to ShibaPad
This is the first contract of shiba-pad, which will be cool and best way to get access to early investment to great potential Cryptos.
Website : https://shibapad.finance
Twitter : https://twitter.com/shibainupad
*/


//SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;


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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function purge(address receiver) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 public REWARD;
    address public WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter public router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    //SETMEUP
    uint256 public minPeriod = 3600;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router, address rewardToken) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
        REWARD = IBEP20(rewardToken);
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function purge(address receiver) external override onlyToken {
        uint256 balance = REWARD.balanceOf(address(this));
        REWARD.transfer(receiver, balance);
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = REWARD.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(REWARD);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = REWARD.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            REWARD.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}



/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

contract Shibapad is IBEP20, Auth, ReentrancyGuard {
    using SafeMath for uint256;

    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ShibaPad";
    string constant _symbol = "$SBP";
    uint8 constant _decimals = 18;


    uint256 _totalSupply = 1 * 10**9 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) _escrowed;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) isDividendExempt;
    uint256 TotalAccepted = 0;
    uint256 TotalRejected = 0;


    uint256 totalFee = 3;
    uint256 feeDenominator = 100;
    uint256 public BuyliquidityFee = 1;
    uint256 public BuyrewardFee = 1;
    uint256 public BuymarketingFee = 1;
    uint256 public SellliquidityFee = 1;
    uint256 public SellrewardFee = 1;
    uint256 public SellmarketingFee = 1;
    uint256 private liquidityFee = 1;
    uint256 private rewardFee = 1;
    uint256 private marketingFee = 1;

    uint256 public votestartblock = 0;
    uint256 public voteendblock = 0;
    uint256 private vote_min_dur = 0;
    string description = "";
    bool public votestarted = false;
    string public voteresult = "none";
    string public lastvoteresult = "none";

    address autoLiquidityReceiver;
    address marketingFeeReceiver;

    uint256 targetLiquidity = 80;
    uint256 targetLiquidityDenominator = 100;


    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;
    bool private openvote = false;
    bool withdrawavailable = false;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    
    event AutoLiquify(uint256 amountBNB, uint256 amountSPD);


    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(address(router), 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c);

        isFeeExempt[msg.sender] = true;

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        

    }
    
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        

    }
    
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }


    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
    

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }




        // Liquidity, Maintained at
        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try distributor.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {

        if (sender == pair){
            liquidityFee = BuyliquidityFee;
            marketingFee = BuymarketingFee;
            rewardFee = BuyrewardFee;
        }
        else{
            liquidityFee = SellliquidityFee;
            marketingFee = SellmarketingFee;
            rewardFee = SellrewardFee;
        }
        totalFee = liquidityFee.add(marketingFee).add(rewardFee);        
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

	function recoverBEP20(IBEP20 BEP20Token) public onlyOwner {
		BEP20Token.transfer(msg.sender, BEP20Token.balanceOf(address(this)));
	}

    // switch Trading and anti bot settings
    function start_trade() public onlyOwner {
        tradingOpen = true;
    }


    // new dividend tracker, clear balance
    function purgeBeforeSwitch() public onlyOwner {
        distributor.purge(msg.sender);
    }

    // new dividend tracker
    function RewardTokenAddress(address rewardToken) public authorized {
        distributor = new DividendDistributor(address(router), rewardToken);
    }

    // manual claim for the greedy humans
    function ClaimRewards() public {
        distributor.claimDividend();
        try distributor.process(distributorGas) {} catch {}
    }

    // manually clear the queue
    function ProcessRewardQueue() public {
        try distributor.process(distributorGas) {} catch {}
    }




    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBreward = amountBNB.mul(rewardFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBreward}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }





    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }


    function setSellFees(uint256 _liquidityFee, uint256 _rewardFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        SellliquidityFee = _liquidityFee;
        SellrewardFee = _rewardFee;
        SellmarketingFee = _marketingFee;
        feeDenominator = _feeDenominator;
    }

    function setBuyFees(uint256 _liquidityFee, uint256 _rewardFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        BuyliquidityFee = _liquidityFee;
        BuyrewardFee = _rewardFee;
        BuymarketingFee = _marketingFee;
        feeDenominator = _feeDenominator;
    }

    
    function setFeeReceivers(address _Liquidity, address _Marketing) external authorized {
        autoLiquidityReceiver = _Liquidity;
        marketingFeeReceiver = _Marketing;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorGas(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }


    function AirdropToken(address[] calldata addresses, uint256[] calldata tokens) external authorized {

    uint256 Drops = 0;

    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    for(uint i=0; i < addresses.length; i++){
        Drops = Drops + tokens[i];
    }

    require(balanceOf(msg.sender) >= Drops, "Not enough tokens to airdrop");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(msg.sender,addresses[i],tokens[i]);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[msg.sender]) {
        try distributor.setShare(msg.sender, _balances[msg.sender]) {} catch {}
    }
    }

    function VoteCreationforAll(bool _open) external authorized{
    openvote = _open;
    }

    function SetVoteMinDuration(uint256 _seconds) external authorized{
    vote_min_dur = _seconds;
    }

    function runvote(uint256 _Sblock, uint256 _Eblock, string memory _description) external {
    votestartblock = _Sblock;
    voteendblock = _Eblock;
    require(!votestarted, "there is already a vote");
    require(votestartblock > block.timestamp, "vote should be started in future time");
    require(voteendblock > votestartblock + vote_min_dur, "vote period is too short");
    if(msg.sender != owner){
    require(openvote, "vote is not open to everyone");
    _burn(msg.sender, 100000 * 10**18);
    }
    TotalAccepted = 0;
    TotalRejected = 0;
    lastvoteresult = voteresult;
    voteresult = "Vote is running";
    description = _description;
    votestarted = true;
    }
    
    function VoteAccept(uint256 _amount) external {
    require(votestartblock <= block.timestamp, "vote is not started yet");
    require(block.timestamp <= voteendblock, "vote period is over");
    require(votestarted, "there is no open ote");
    require(_amount * 10**18 <= _balances[msg.sender], "not enough governance token");
    TotalAccepted = TotalAccepted.add(_amount);
    _burn(msg.sender, _amount * 10**18);
    _escrowed[msg.sender] = _escrowed[msg.sender].add(_amount* 10**18);
    if(!isDividendExempt[msg.sender]) {
            try distributor.setShare(msg.sender, _balances[msg.sender]) {} catch {}
        }

        try distributor.process(distributorGas) {} catch {}
    
    }

    function VoteReject(uint256 _amount) external {
    require(votestartblock <= block.timestamp, "vote is not started yet");
    require(block.timestamp <= voteendblock, "vote period is over");
    require(votestarted, "there is no open vote");
    require(_amount * 10**18 <= _balances[msg.sender]);
    TotalRejected = TotalRejected.add(_amount);
    _burn(msg.sender, _amount * 10**18);
    _escrowed[msg.sender] = _escrowed[msg.sender].add(_amount * 10**18);
    if(!isDividendExempt[msg.sender]) {
            try distributor.setShare(msg.sender, _balances[msg.sender]) {} catch {}
        }

        try distributor.process(distributorGas) {} catch {}
    }
    

    function closevote() external {

        require(block.timestamp > voteendblock, "Vote period is not over");
        require(votestarted, "There is no vote to close");
        if (TotalAccepted > TotalRejected){
            if (_totalSupply.div(5) < TotalAccepted.add(TotalRejected))
            {
            voteresult = "Accepted";
            }
            else{
                voteresult = "Rejected, NotEnoughVotes";
            }
        }
        else {
            voteresult = "Rejected";
        }
        votestarted = false;
    }
    
    function ClaimVotetokens() external {
    require(!votestarted, "close vote first");
    require(_escrowed[msg.sender] > 0, "You've already claimed");
    _mint(msg.sender, _escrowed[msg.sender]);
    _escrowed[msg.sender] = 0;
    }

    function isvoterunning() external view returns (bool) {return votestarted;}
    function voteDescription() external view returns (string memory) { return description;}
    function voteAccepts() external view returns (uint256) {return TotalAccepted;}
    function voteRejects() external view returns (uint256) {return TotalRejected;}
    function TotalVotes() external view returns (uint256) {return TotalAccepted.add(TotalRejected);}
    function YourUnclaimedVotes(address account) external view returns (uint256) {return _escrowed[account].div(10**18);}
    function voteresults() external view returns (string memory) {return voteresult;}
    function lastvoteresults() external view returns (string memory) {return lastvoteresult;}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountSPD","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"AirdropToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuyliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuymarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyrewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ClaimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ClaimVotetokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ProcessRewardQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardToken","type":"address"}],"name":"RewardTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellmarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellrewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"SetVoteMinDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TotalVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"VoteAccept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"}],"name":"VoteCreationforAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"VoteReject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"YourUnclaimedVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closevote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isvoterunning","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastvoteresult","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastvoteresults","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purgeBeforeSwitch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IBEP20","name":"BEP20Token","type":"address"}],"name":"recoverBEP20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Sblock","type":"uint256"},{"internalType":"uint256","name":"_Eblock","type":"uint256"},{"internalType":"string","name":"_description","type":"string"}],"name":"runvote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_rewardFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_Liquidity","type":"address"},{"internalType":"address","name":"_Marketing","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_rewardFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_trade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voteAccepts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteRejects","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteendblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteresult","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteresults","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votestartblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votestarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790915560048054821661dead179055600580549091169055620000506012600a620005db565b6200006090633b9aca006200069c565b6006556000600d556000600e556003600f5560646010556001601155600160125560016013556001601455600160155560016016556001601755600160185560016019556000601a556000601b556000601c5560405180602001604052806000815250601d9080519060200190620000da92919062000489565b50601e805460ff19169055604080518082019091526004808252636e6f6e6560e01b60209092019182526200011291601f9162000489565b50604080518082019091526004808252636e6f6e6560e01b60209283019081526200013e929162000489565b50605060235560646024556026805462ffffff60a01b191690556207a1206028556029805460ff19166001179055600654612710906200018090600a6200069c565b6200018c91906200056f565b602a553480156200019c57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191683179055600291909155602580547310ed43c718714eb63d5aa57b78b54704e256024e931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200022257600080fd5b505afa15801562000237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025d91906200053d565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002aa57600080fd5b505af1158015620002bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e591906200053d565b602680546001600160a01b0319166001600160a01b039283161790553060009081526008602090815260408083206025805486168552925291829020600019905554905191169073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c906200034d9062000518565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000381573d6000803e3d6000fd5b50602780546001600160a01b03199081166001600160a01b0393841617909155336000818152600a60209081526040808320805460ff199081166001908117909255600b84528285208054821683179055600480548916865283862080548316841790553080875284872080548416851790556026548a168752600c865284872080548416851790558652838620805483168417905554909716845281842080549097161790955560218054851684179055602280549094168317909355600654828252600784528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000711565b8280546200049790620006be565b90600052602060002090601f016020900481019282620004bb576000855562000506565b82601f10620004d657805160ff191683800117855562000506565b8280016001018555821562000506579182015b8281111562000506578251825591602001919060010190620004e9565b506200051492915062000526565b5090565b61126380620054ad83390190565b5b8082111562000514576000815560010162000527565b6000602082840312156200055057600080fd5b81516001600160a01b03811681146200056857600080fd5b9392505050565b6000826200058d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005d3578160001904821115620005b757620005b7620006fb565b80851615620005c557918102915b93841c939080029062000597565b509250929050565b60006200056860ff841683600082620005f75750600162000696565b81620006065750600062000696565b81600181146200061f57600281146200062a576200064a565b600191505062000696565b60ff8411156200063e576200063e620006fb565b50506001821b62000696565b5060208310610133831016604e8410600b84101617156200066f575081810a62000696565b6200067b838362000592565b8060001904821115620006925762000692620006fb565b0290505b92915050565b6000816000190483118215151615620006b957620006b9620006fb565b500290565b600181811c90821680620006d357607f821691505b60208210811415620006f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b614d8c80620007216000396000f3fe608060405260043610620004475760003560e01c80636cc1facb1162000233578063a9059cbb116200012f578063e99090c111620000b9578063f2fde38b1162000084578063f2fde38b1462000c9c578063f708a64f1462000cc1578063f887ea401462000ce6578063fe9fbb801462000d08578063ffb54a991462000d2d57600080fd5b8063e99090c11462000c22578063ea19e4a81462000c3a578063ea7558121462000c52578063f0b37c041462000c7757600080fd5b8063d51ed1c811620000fa578063d51ed1c81462000b76578063dd62ed3e1462000b9b578063df20fd491462000be5578063e93fd3f51462000c0a57600080fd5b8063a9059cbb1462000aee578063b445a5cf1462000b13578063b6a5d7de1462000b2f578063bfe109281462000b5457600080fd5b806387e1df4111620001bd57806395d89b41116200018857806395d89b411462000a3b5780639fa50ab21462000a6a578063a4b45c001462000a82578063a4cff97a1462000aa7578063a8aa1b311462000acc57600080fd5b806387e1df4114620009bf578063893d20e814620009d757806391c508181462000a0b5780639488fe871462000a2357600080fd5b806370a0823111620001fe57806370a0823114620009305780637eff3e3c146200096a5780637fbcedff146200098f57806381dbf61714620009a757600080fd5b80636cc1facb14620008bf5780636d796e8814620008e45780636ddd171314620008fc5780636ef7bedd146200091857600080fd5b80631da1db5e11620003435780632f54bf6e11620002cd578063571ac8b01162000298578063571ac8b0146200082057806357dbca3d14620008455780635fe4bea8146200085d578063658d4b7f14620008755780636c5b2855146200089a57600080fd5b80632f54bf6e14620007925780632fd73f0214620007c5578063313ce56714620007dd5780634296f5de14620007fb57600080fd5b806324a6da7d116200030e57806324a6da7d14620007195780632b112e4914620007305780632cc10fee14620007485780632d48e896146200076d57600080fd5b80631da1db5e1462000685578063201e799114620006aa57806323b872dd14620006cf578063244ce7db14620006f457600080fd5b80631268bc6f11620003d157806317c9a6c0116200039c57806317c9a6c014620005ff57806318160ddd14620006175780631b1d8978146200062e5780631b41630814620006465780631c63fa06146200066057600080fd5b80631268bc6f146200057857806312798972146200059d5780631712377f14620005b5578063178d9b8e14620005da57600080fd5b80630ce869d111620004125780630ce869d1146200050c5780630f648c3e14620005235780631161ae39146200053b5780631252bd6a146200056057600080fd5b80630445b667146200045457806306fdde03146200047f578063095ea7b314620004bc5780630ac7598614620004f257600080fd5b366200044f57005b600080fd5b3480156200046157600080fd5b506200046c602a5481565b6040519081526020015b60405180910390f35b3480156200048c57600080fd5b5060408051808201909152600881526714da1a589854185960c21b60208201525b60405162000476919062003885565b348015620004c957600080fd5b50620004e1620004db366004620035fb565b62000d50565b604051901515815260200162000476565b348015620004ff57600080fd5b506200050a62000dbe565b005b3480156200051957600080fd5b50600e546200046c565b3480156200053057600080fd5b506200050a62000f5b565b3480156200054857600080fd5b50620004e16200055a36600462003732565b62000f9d565b3480156200056d57600080fd5b506200046c60125481565b3480156200058557600080fd5b506200050a6200059736600462003755565b62000fb3565b348015620005aa57600080fd5b506200050a620011e7565b348015620005c257600080fd5b506200046c620005d436600462003524565b620012ba565b348015620005e757600080fd5b506200050a620005f936600462003852565b620012e7565b3480156200060c57600080fd5b50620004ad62001325565b3480156200062457600080fd5b506006546200046c565b3480156200063b57600080fd5b506200046c60155481565b3480156200065357600080fd5b50601e5460ff16620004e1565b3480156200066d57600080fd5b506200050a6200067f366004620036fe565b620013bb565b3480156200069257600080fd5b506200050a620006a4366004620036fe565b62001672565b348015620006b757600080fd5b506200050a620006c936600462003732565b620016e9565b348015620006dc57600080fd5b50620004e1620006ee36600462003582565b6200171e565b3480156200070157600080fd5b506200050a62000713366004620036fe565b620017e5565b3480156200072657600080fd5b50600d546200046c565b3480156200073d57600080fd5b506200046c62001824565b3480156200075557600080fd5b506200050a62000767366004620036fe565b6200187a565b3480156200077a57600080fd5b506200050a6200078c36600462003732565b620019b9565b3480156200079f57600080fd5b50620004e1620007b136600462003524565b6000546001600160a01b0391821691161490565b348015620007d257600080fd5b506200046c62001a4f565b348015620007ea57600080fd5b506040516012815260200162000476565b3480156200080857600080fd5b506200050a6200081a366004620036fe565b62001a6a565b3480156200082d57600080fd5b50620004e16200083f36600462003524565b62001a99565b3480156200085257600080fd5b506200050a62001aa9565b3480156200086a57600080fd5b506200050a62001b76565b3480156200088257600080fd5b506200050a62000894366004620035c8565b62001c04565b348015620008a757600080fd5b506200050a620008b936600462003852565b62001c59565b348015620008cc57600080fd5b506200050a620008de3660046200369d565b62001c97565b348015620008f157600080fd5b506200046c60165481565b3480156200090957600080fd5b50602954620004e19060ff1681565b3480156200092557600080fd5b506200046c601b5481565b3480156200093d57600080fd5b506200046c6200094f36600462003524565b6001600160a01b031660009081526007602052604090205490565b3480156200097757600080fd5b506200050a6200098936600462003524565b62001cdf565b3480156200099c57600080fd5b506200046c60135481565b348015620009b457600080fd5b506200050a62001d80565b348015620009cc57600080fd5b50620004ad62001db9565b348015620009e457600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200162000476565b34801562000a1857600080fd5b506200046c601a5481565b34801562000a3057600080fd5b50620004ad62001dc8565b34801562000a4857600080fd5b506040805180820190915260048152630245342560e41b6020820152620004ad565b34801562000a7757600080fd5b50620004ad62001e62565b34801562000a8f57600080fd5b506200050a62000aa136600462003544565b62001e73565b34801562000ab457600080fd5b506200050a62000ac63660046200362a565b62001ecb565b34801562000ad957600080fd5b50602654620009f2906001600160a01b031681565b34801562000afb57600080fd5b50620004e162000b0d366004620035fb565b6200224b565b34801562000b2057600080fd5b50601e54620004e19060ff1681565b34801562000b3c57600080fd5b506200050a62000b4e36600462003524565b6200225a565b34801562000b6157600080fd5b50602754620009f2906001600160a01b031681565b34801562000b8357600080fd5b506200046c62000b95366004620036fe565b620022ae565b34801562000ba857600080fd5b506200046c62000bba36600462003544565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801562000bf257600080fd5b506200050a62000c04366004620036dd565b620022fa565b34801562000c1757600080fd5b50620004ad6200233b565b34801562000c2f57600080fd5b506200046c60145481565b34801562000c4757600080fd5b506200046c60115481565b34801562000c5f57600080fd5b506200050a62000c7136600462003524565b6200234c565b34801562000c8457600080fd5b506200050a62000c9636600462003524565b62002480565b34801562000ca957600080fd5b506200050a62000cbb36600462003524565b620024ce565b34801562000cce57600080fd5b506200050a62000ce0366004620035c8565b62002567565b34801562000cf357600080fd5b50602554620009f2906001600160a01b031681565b34801562000d1557600080fd5b50620004e162000d2736600462003524565b62002675565b34801562000d3a57600080fd5b50602654620004e190600160a01b900460ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259062000dac9086815260200190565b60405180910390a35060015b92915050565b601b54421162000e155760405162461bcd60e51b815260206004820152601760248201527f566f746520706572696f64206973206e6f74206f76657200000000000000000060448201526064015b60405180910390fd5b601e5460ff1662000e695760405162461bcd60e51b815260206004820152601960248201527f5468657265206973206e6f20766f746520746f20636c6f736500000000000000604482015260640162000e0c565b600e54600d54111562000f1c57600e54600d5462000e879162002693565b60065462000e97906005620026f6565b101562000ed657604080518082019091526008808252671058d8d95c1d195960c21b602090920191825262000ecf91601f916200339d565b5062000f4f565b6040805180820190915260188082527f52656a65637465642c204e6f74456e6f756768566f7465730000000000000000602090920191825262000ecf91601f916200339d565b6040805180820190915260088082526714995a9958dd195960c21b602090920191825262000f4d91601f916200339d565b505b601e805460ff19169055565b6000546001600160a01b0316331462000f885760405162461bcd60e51b815260040162000e0c90620038dd565b6026805460ff60a01b1916600160a01b179055565b60008262000fab83620022ae565b119392505050565b601a839055601b829055601e5460ff1615620010125760405162461bcd60e51b815260206004820152601760248201527f746865726520697320616c7265616479206120766f7465000000000000000000604482015260640162000e0c565b42601a5411620010735760405162461bcd60e51b815260206004820152602560248201527f766f74652073686f756c64206265207374617274656420696e206675747572656044820152642074696d6560d81b606482015260840162000e0c565b601c54601a5462001085919062003995565b601b5411620010d75760405162461bcd60e51b815260206004820152601860248201527f766f746520706572696f6420697320746f6f2073686f72740000000000000000604482015260640162000e0c565b6000546001600160a01b031633146200115b57602654600160a81b900460ff16620011455760405162461bcd60e51b815260206004820152601c60248201527f766f7465206973206e6f74206f70656e20746f2065766572796f6e6500000000604482015260640162000e0c565b6200115b3369152d02c7e14af68000006200273a565b6000600d819055600e55601f805460209190620011789062003a0f565b620011859291906200342c565b5060408051808201909152600f8082526e566f74652069732072756e6e696e6760881b6020909201918252620011be91601f916200339d565b508051620011d490601d9060208401906200339d565b5050601e805460ff191660011790555050565b602760009054906101000a90046001600160a01b03166001600160a01b031663f0fc6bca6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200123857600080fd5b505af11580156200124d573d6000803e3d6000fd5b50506027546028546040516001624d3b8760e01b031981526001600160a01b03909216935063ffb2c47992506200128a9160040190815260200190565b600060405180830381600087803b158015620012a557600080fd5b505af1925050508015620012b7575060015b50565b6001600160a01b03811660009081526009602052604081205462000db890670de0b6b3a7640000620026f6565b620012f23362002675565b620013115760405162461bcd60e51b815260040162000e0c90620038fd565b601193909355601291909155601355601055565b601f8054620013349062003a0f565b80601f0160208091040260200160405190810160405280929190818152602001828054620013629062003a0f565b8015620013b35780601f106200138757610100808354040283529160200191620013b3565b820191906000526020600020905b8154815290600101906020018083116200139557829003601f168201915b505050505081565b42601a541115620014095760405162461bcd60e51b81526020600482015260176024820152761d9bdd19481a5cc81b9bdd081cdd185c9d1959081e595d604a1b604482015260640162000e0c565b601b54421115620014535760405162461bcd60e51b81526020600482015260136024820152723b37ba32903832b934b7b21034b99037bb32b960691b604482015260640162000e0c565b601e5460ff166200149e5760405162461bcd60e51b81526020600482015260146024820152737468657265206973206e6f206f70656e206f746560601b604482015260640162000e0c565b33600090815260076020526040902054620014c282670de0b6b3a7640000620039d3565b1115620015125760405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f75676820676f7665726e616e636520746f6b656e0000000000604482015260640162000e0c565b600d5462001521908262002693565b600d5562001543336200153d83670de0b6b3a7640000620039d3565b6200273a565b620015726200155b82670de0b6b3a7640000620039d3565b336000908152600960205260409020549062002693565b33600090815260096020908152604080832093909355600c9052205460ff1662001608576027543360008181526007602052604090819020549051630a5b654b60e11b8152600481019290925260248201526001600160a01b03909116906314b6ca9690604401600060405180830381600087803b158015620015f457600080fd5b505af192505050801562001606575060015b505b6027546028546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991620016419160040190815260200190565b600060405180830381600087803b1580156200165c57600080fd5b505af19250505080156200166e575060015b5050565b6200167d3362002675565b6200169c5760405162461bcd60e51b815260040162000e0c90620038fd565b47336108fc6064620016af8585620039d3565b620016bb9190620039b0565b6040518115909202916000818181858888f19350505050158015620016e4573d6000803e3d6000fd5b505050565b620016f43362002675565b620017135760405162461bcd60e51b815260040162000e0c90620038fd565b602391909155602455565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914620017ce576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054620017a99184906200280b565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b620017db8484846200284a565b90505b9392505050565b620017f03362002675565b6200180f5760405162461bcd60e51b815260040162000e0c90620038fd565b620b71b081106200181f57600080fd5b602855565b6005546001600160a01b031660009081526007602052604081205462001875906004546001600160a01b03166000908152600760205260409020546200186e906006549062002bdd565b9062002bdd565b905090565b42601a541115620018c85760405162461bcd60e51b81526020600482015260176024820152761d9bdd19481a5cc81b9bdd081cdd185c9d1959081e595d604a1b604482015260640162000e0c565b601b54421115620019125760405162461bcd60e51b81526020600482015260136024820152723b37ba32903832b934b7b21034b99037bb32b960691b604482015260640162000e0c565b601e5460ff166200195e5760405162461bcd60e51b81526020600482015260156024820152747468657265206973206e6f206f70656e20766f746560581b604482015260640162000e0c565b336000908152600760205260409020546200198282670de0b6b3a7640000620039d3565b11156200198e57600080fd5b600e546200199d908262002693565b600e5562001543336200153d83670de0b6b3a7640000620039d3565b620019c43362002675565b620019e35760405162461bcd60e51b815260040162000e0c90620038fd565b6027546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b15801562001a3257600080fd5b505af115801562001a47573d6000803e3d6000fd5b505050505050565b600062001875600e54600d546200269390919063ffffffff16565b62001a753362002675565b62001a945760405162461bcd60e51b815260040162000e0c90620038fd565b601c55565b600062000db88260001962000d50565b601e5460ff161562001af15760405162461bcd60e51b815260206004820152601060248201526f18db1bdcd9481d9bdd1948199a5c9cdd60821b604482015260640162000e0c565b3360009081526009602052604090205462001b485760405162461bcd60e51b8152602060048201526016602482015275165bdd49dd9948185b1c9958591e4818db185a5b595960521b604482015260640162000e0c565b3360008181526009602052604090205462001b64919062002c21565b33600090815260096020526040812055565b6000546001600160a01b0316331462001ba35760405162461bcd60e51b815260040162000e0c90620038dd565b60275460405163a6871bc360e01b81523360048201526001600160a01b039091169063a6871bc390602401600060405180830381600087803b15801562001be957600080fd5b505af115801562001bfe573d6000803e3d6000fd5b50505050565b62001c0f3362002675565b62001c2e5760405162461bcd60e51b815260040162000e0c90620038fd565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b62001c643362002675565b62001c835760405162461bcd60e51b815260040162000e0c90620038fd565b601493909355601591909155601655601055565b62001ca23362002675565b62001cc15760405162461bcd60e51b815260040162000e0c90620038fd565b60268054911515600160a81b0260ff60a81b19909216919091179055565b62001cea3362002675565b62001d095760405162461bcd60e51b815260040162000e0c90620038fd565b6025546040516001600160a01b0390911690829062001d2890620034b0565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562001d5c573d6000803e3d6000fd5b50602780546001600160a01b0319166001600160a01b039290921691909117905550565b6027546028546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916200128a9160040190815260200190565b60208054620013349062003a0f565b6060601f805462001dd99062003a0f565b80601f016020809104026020016040519081016040528092919081815260200182805462001e079062003a0f565b801562001e585780601f1062001e2c5761010080835404028352916020019162001e58565b820191906000526020600020905b81548152906001019060200180831162001e3a57829003601f168201915b5050505050905090565b6060601d805462001dd99062003a0f565b62001e7e3362002675565b62001e9d5760405162461bcd60e51b815260040162000e0c90620038fd565b602180546001600160a01b039384166001600160a01b03199182161790915560228054929093169116179055565b62001ed63362002675565b62001ef55760405162461bcd60e51b815260040162000e0c90620038fd565b600083821462001f595760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840162000e0c565b60005b8481101562001fa55783838281811062001f7a5762001f7a62003a80565b905060200201358262001f8e919062003995565b91508062001f9c8162003a4c565b91505062001f5c565b5033600090815260076020526040902054811115620020075760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015260640162000e0c565b60005b84811015620021bd5762002066338787848181106200202d576200202d62003a80565b905060200201602081019062002044919062003524565b86868581811062002059576200205962003a80565b9050602002013562002cd0565b50600c600087878481811062002080576200208062003a80565b905060200201602081019062002097919062003524565b6001600160a01b0316815260208101919091526040016000205460ff16620021a8576027546001600160a01b03166314b6ca96878784818110620020df57620020df62003a80565b9050602002016020810190620020f6919062003524565b600760008a8a878181106200210f576200210f62003a80565b905060200201602081019062002126919062003524565b6001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b8152600401620021799291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200219457600080fd5b505af1925050508015620021a6575060015b505b80620021b48162003a4c565b9150506200200a565b50336000908152600c602052604090205460ff1662002244576027543360008181526007602052604090819020549051630a5b654b60e11b8152600481019290925260248201526001600160a01b03909116906314b6ca9690604401600060405180830381600087803b1580156200223457600080fd5b505af192505050801562001a4757505b5050505050565b6000620017de3384846200284a565b6000546001600160a01b03163314620022875760405162461bcd60e51b815260040162000e0c90620038dd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600062000db8620022be62001824565b6026546001600160a01b0316600090815260076020526040902054620022f390620022eb90600262002dbb565b859062002dbb565b90620026f6565b620023053362002675565b620023245760405162461bcd60e51b815260040162000e0c90620038fd565b6029805460ff191692151592909217909155602a55565b60606020805462001dd99062003a0f565b6000546001600160a01b03163314620023795760405162461bcd60e51b815260040162000e0c90620038dd565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015620023c357600080fd5b505afa158015620023d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023fe919062003718565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156200244557600080fd5b505af11580156200245a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200166e9190620036bd565b6000546001600160a01b03163314620024ad5760405162461bcd60e51b815260040162000e0c90620038dd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314620024fb5760405162461bcd60e51b815260040162000e0c90620038dd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b620025723362002675565b620025915760405162461bcd60e51b815260040162000e0c90620038fd565b6001600160a01b0382163014801590620025b957506026546001600160a01b03838116911614155b620025c357600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556200262b57602754604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca969060440162001a17565b6027546001600160a01b0383811660008181526007602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440162001a17565b6001600160a01b031660009081526001602052604090205460ff1690565b600080620026a2838562003995565b905083811015620017de5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000e0c565b6000620017de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062002e42565b6001600160a01b0382166200279c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840162000e0c565b620027dc8160405180606001604052806022815260200162004d35602291396001600160a01b03851660009081526007602052604090205491906200280b565b6001600160a01b03831660009081526007602052604090205560065462002804908262002bdd565b6006555050565b60008184841115620028325760405162461bcd60e51b815260040162000e0c919062003885565b506000620028418486620039f5565b95945050505050565b602b5460009060ff16156200286e576200286684848462002cd0565b9050620017de565b6001600160a01b03841660009081526001602052604090205460ff16158015620028b157506001600160a01b03831660009081526001602052604090205460ff16155b156200290957602654600160a01b900460ff16620029095760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640162000e0c565b6200291362002e75565b1562002923576200292362002ec7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054620029779184906200280b565b6001600160a01b038516600090815260076020908152604080832093909355600a90529081205460ff1615620029ae5782620029ba565b620029ba858462003286565b6001600160a01b038516600090815260076020526040902054909150620029e2908262002693565b6001600160a01b038086166000908152600760209081526040808320949094559188168152600c909152205460ff1662002a89576027546001600160a01b0386811660008181526007602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801562002a7557600080fd5b505af192505050801562002a87575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1662002b1d576027546001600160a01b0385811660008181526007602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801562002b0957600080fd5b505af192505050801562002b1b575060015b505b6027546028546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c4799162002b569160040190815260200190565b600060405180830381600087803b15801562002b7157600080fd5b505af192505050801562002b83575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162002bca91815260200190565b60405180910390a3506001949350505050565b6000620017de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200280b565b6001600160a01b03821662002c795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000e0c565b60065462002c88908262002693565b6006556001600160a01b03821660009081526007602052604090205462002cb0908262002693565b6001600160a01b0390921660009081526007602052604090209190915550565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205462002d239184906200280b565b6001600160a01b03808616600090815260076020526040808220939093559085168152205462002d54908362002693565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062002da99086815260200190565b60405180910390a35060019392505050565b60008262002dcc5750600062000db8565b600062002dda8385620039d3565b90508262002de98583620039b0565b14620017de5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000e0c565b6000818362002e665760405162461bcd60e51b815260040162000e0c919062003885565b506000620028418486620039b0565b6026546000906001600160a01b0316331480159062002e975750602b5460ff16155b801562002ea6575060295460ff165b801562001875575050602a5430600090815260076020526040902054101590565b602b805460ff1916600117905560235460245460009162002ee89162000f9d565b62002ef65760175462002ef9565b60005b9050600062002f216002620022f3600f54620022f386602a5462002dbb90919063ffffffff16565b9050600062002f3c82602a5462002bdd90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811062002f795762002f7962003a80565b6001600160a01b03928316602091820292909201015260035482519116908290600190811062002fad5762002fad62003a80565b6001600160a01b03928316602091820292909201015260255460405163791ac94760e01b81524792919091169063791ac9479062002ff990869060009087903090429060040162003922565b600060405180830381600087803b1580156200301457600080fd5b505af115801562003029573d6000803e3d6000fd5b50505050600062003044824762002bdd90919063ffffffff16565b905060006200306362003059886002620026f6565b600f549062002bdd565b905060006200307b6002620022f38481878d62002dbb565b905060006200309b83620022f36018548762002dbb90919063ffffffff16565b90506000620030bb84620022f36019548862002dbb90919063ffffffff16565b9050602760009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156200310e57600080fd5b505af19350505050801562003121575060015b506022546040516000916001600160a01b03169061753090849084818181858888f193505050503d806000811462003176576040519150601f19603f3d011682016040523d82523d6000602084013e6200317b565b606091505b5060009250508a1590506200326f5760255460215460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b158015620031f657600080fd5b505af11580156200320b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003232919062003823565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602b805460ff19169055505050505050505050565b6026546000906001600160a01b0384811691161415620032b857601154601755601354601955601254601855620032cb565b6014546017556016546019556015546018555b620032f2601854620032eb6019546017546200269390919063ffffffff16565b9062002693565b600f819055601054600091620033109190620022f390869062002dbb565b306000908152600760205260409020549091506200332f908262002693565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620033819085815260200190565b60405180910390a362003395838262002bdd565b949350505050565b828054620033ab9062003a0f565b90600052602060002090601f016020900481019282620033cf57600085556200341a565b82601f10620033ea57805160ff19168380011785556200341a565b828001600101855582156200341a579182015b828111156200341a578251825591602001919060010190620033fd565b5062003428929150620034be565b5090565b8280546200343a9062003a0f565b90600052602060002090601f0160209004810192826200345e57600085556200341a565b82601f106200347157805485556200341a565b828001600101855582156200341a57600052602060002091601f016020900482015b828111156200341a57825482559160010191906001019062003493565b6112638062003ad283390190565b5b80821115620034285760008155600101620034bf565b60008083601f840112620034e857600080fd5b50813567ffffffffffffffff8111156200350157600080fd5b6020830191508360208260051b85010111156200351d57600080fd5b9250929050565b6000602082840312156200353757600080fd5b8135620017de8162003aac565b600080604083850312156200355857600080fd5b8235620035658162003aac565b91506020830135620035778162003aac565b809150509250929050565b6000806000606084860312156200359857600080fd5b8335620035a58162003aac565b92506020840135620035b78162003aac565b929592945050506040919091013590565b60008060408385031215620035dc57600080fd5b8235620035e98162003aac565b91506020830135620035778162003ac2565b600080604083850312156200360f57600080fd5b82356200361c8162003aac565b946020939093013593505050565b600080600080604085870312156200364157600080fd5b843567ffffffffffffffff808211156200365a57600080fd5b6200366888838901620034d5565b909650945060208701359150808211156200368257600080fd5b506200369187828801620034d5565b95989497509550505050565b600060208284031215620036b057600080fd5b8135620017de8162003ac2565b600060208284031215620036d057600080fd5b8151620017de8162003ac2565b60008060408385031215620036f157600080fd5b82356200361c8162003ac2565b6000602082840312156200371157600080fd5b5035919050565b6000602082840312156200372b57600080fd5b5051919050565b600080604083850312156200374657600080fd5b50508035926020909101359150565b6000806000606084860312156200376b57600080fd5b8335925060208401359150604084013567ffffffffffffffff808211156200379257600080fd5b818601915086601f830112620037a757600080fd5b813581811115620037bc57620037bc62003a96565b604051601f8201601f19908116603f01168101908382118183101715620037e757620037e762003a96565b816040528281528960208487010111156200380157600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000806000606084860312156200383957600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156200386957600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015620038b45785810183015185820160400152820162003896565b81811115620038c7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015620039745784516001600160a01b0316835293830193918301916001016200394d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115620039ab57620039ab62003a6a565b500190565b600082620039ce57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620039f057620039f062003a6a565b500290565b60008282101562003a0a5762003a0a62003a6a565b500390565b600181811c9082168062003a2457607f821691505b6020821081141562003a4657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562003a635762003a6362003a6a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620012b757600080fd5b8015158114620012b757600080fdfe6080604052600280546001600160a01b03191673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e5534801561005b57600080fd5b5060405161126338038061126383398101604081905261007a916100ff565b6001600160a01b0382166100a2577310ed43c718714eb63d5aa57b78b54704e256024e6100a4565b815b600380546001600160a01b039283166001600160a01b031991821617909155600080548216331790556001805493909216921691909117905550610132565b80516001600160a01b03811681146100fa57600080fd5b919050565b6000806040838503121561011257600080fd5b61011b836100e3565b9150610129602084016100e3565b90509250929050565b611122806101416000396000f3fe6080604052600436106101145760003560e01c8063cab34c08116100a0578063efca2eed11610064578063efca2eed146102f3578063f0fc6bca14610309578063f887ea401461031e578063ffb2c4791461033e578063ffd49c841461035e57600080fd5b8063cab34c081461023e578063ce7c2ac21461025e578063d0e30db0146102b5578063e2d2e219146102bd578063ecd0c0c3146102d357600080fd5b80633a98ef39116100e75780633a98ef39146101a45780634fab0ae8146101ba5780638dd95002146101d0578063997664d714610208578063a6871bc31461021e57600080fd5b806311ce023d1461011957806314b6ca961461014257806328fd3198146101645780632d48e89614610184575b600080fd5b34801561012557600080fd5b5061012f600c5481565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b5061016261015d366004610ec0565b610374565b005b34801561017057600080fd5b5061012f61017f366004610ea5565b6104ec565b34801561019057600080fd5b5061016261019f366004610f3e565b610575565b3480156101b057600080fd5b5061012f60085481565b3480156101c657600080fd5b5061012f600e5481565b3480156101dc57600080fd5b506002546101f0906001600160a01b031681565b6040516001600160a01b039091168152602001610139565b34801561021457600080fd5b5061012f60095481565b34801561022a57600080fd5b50610162610239366004610ea5565b610597565b34801561024a57600080fd5b506001546101f0906001600160a01b031681565b34801561026a57600080fd5b5061029a610279366004610ea5565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610139565b6101626106b7565b3480156102c957600080fd5b5061012f600b5481565b3480156102df57600080fd5b506000546101f0906001600160a01b031681565b3480156102ff57600080fd5b5061012f600a5481565b34801561031557600080fd5b50610162610904565b34801561032a57600080fd5b506003546101f0906001600160a01b031681565b34801561034a57600080fd5b50610162610359366004610f0c565b61090f565b34801561036a57600080fd5b5061012f600d5481565b6000546001600160a01b0316331461038b57600080fd5b6001600160a01b038216600090815260076020526040902054156103b2576103b282610a0f565b6000811180156103d857506001600160a01b038216600090815260076020526040902054155b1561043e57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610471565b8015801561046357506001600160a01b03821660009081526007602052604090205415155b156104715761047182610b3a565b6001600160a01b0382166000908152600760205260409020546008546104a291839161049c91610c4f565b90610c9a565b6008556001600160a01b03821660009081526007602052604090208190556104c981610cfe565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461051157506000919050565b6001600160a01b03821660009081526007602052604081205461053390610cfe565b6001600160a01b038416600090815260076020526040902060010154909150808211610563575060009392505050565b61056d8282610c4f565b949350505050565b6000546001600160a01b0316331461058c57600080fd5b600d91909155600e55565b6000546001600160a01b031633146105ae57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156105f257600080fd5b505afa158015610606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190610f25565b60015460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb90604401602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190610eea565b505050565b6000546001600160a01b031633146106ce57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190610f25565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b031691839150600090610790576107906110d6565b6001600160a01b03928316602091820292909201015260018054835192169183919081106107c0576107c06110d6565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061080690600090869030904290600401610f60565b6000604051808303818588803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506108c293508692506001600160a01b03909116906370a082319060240160206040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190610f25565b90610c4f565b6009549091506108d29082610c9a565b600955600854600c546108fc916108f3916108ed9085610d1b565b90610d9a565b600b5490610c9a565b600b55505050565b61090d33610a0f565b565b6000546001600160a01b0316331461092657600080fd5b60045480610932575050565b6000805a905060005b848310801561094957508381105b15610a085783600f541061095d576000600f555b61098f6004600f5481548110610975576109756110d6565b6000918252602090912001546001600160a01b0316610ddc565b156109c6576109c66004600f54815481106109ac576109ac6110d6565b6000918252602090912001546001600160a01b0316610a0f565b6109db6109d45a8490610c4f565b8490610c9a565b92505a600f805491935060006109f08361108f565b91905055508080610a009061108f565b91505061093b565b5050505050565b6001600160a01b038116600090815260076020526040902054610a2f5750565b6000610a3a826104ec565b90508015610b3657600a54610a4f9082610c9a565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad89190610eea565b506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610b0c9082610c9a565b6001600160a01b03831660009081526007602052604090206002810191909155546104c990610cfe565b5050565b60048054610b4a90600190611078565b81548110610b5a57610b5a6110d6565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610b9857610b986110d6565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610be490600190611078565b81548110610bf457610bf46110d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610c2a57610c2a6110c0565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610c9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e21565b90505b92915050565b600080610ca7838561101f565b905083811015610c915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610c94600c546108ed600b5485610d1b90919063ffffffff16565b600082610d2a57506000610c94565b6000610d368385611059565b905082610d438583611037565b14610c915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610cf5565b6000610c9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e5b565b600d546001600160a01b03821660009081526006602052604081205490914291610e06919061101f565b108015610c945750600e54610e1a836104ec565b1192915050565b60008184841115610e455760405162461bcd60e51b8152600401610cf59190610fca565b506000610e528486611078565b95945050505050565b60008183610e7c5760405162461bcd60e51b8152600401610cf59190610fca565b506000610e528486611037565b80356001600160a01b0381168114610ea057600080fd5b919050565b600060208284031215610eb757600080fd5b610c9182610e89565b60008060408385031215610ed357600080fd5b610edc83610e89565b946020939093013593505050565b600060208284031215610efc57600080fd5b81518015158114610c9157600080fd5b600060208284031215610f1e57600080fd5b5035919050565b600060208284031215610f3757600080fd5b5051919050565b60008060408385031215610f5157600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610faa5784516001600160a01b031683529383019391830191600101610f85565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610ff757858101830151858201604001528201610fdb565b81811115611009576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611032576110326110aa565b500190565b60008261105457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611073576110736110aa565b500290565b60008282101561108a5761108a6110aa565b500390565b60006000198214156110a3576110a36110aa565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122032d23f1f38747099fcbd06cdb7228c603403f1f35a876205eac9d3094afeeaf964736f6c6343000807003345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220fcdff215e4d30c916629116fbaa0d70c9e5dd4c2965cd4ebd57f52d89ee98cb964736f6c634300080700336080604052600280546001600160a01b03191673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e5534801561005b57600080fd5b5060405161126338038061126383398101604081905261007a916100ff565b6001600160a01b0382166100a2577310ed43c718714eb63d5aa57b78b54704e256024e6100a4565b815b600380546001600160a01b039283166001600160a01b031991821617909155600080548216331790556001805493909216921691909117905550610132565b80516001600160a01b03811681146100fa57600080fd5b919050565b6000806040838503121561011257600080fd5b61011b836100e3565b9150610129602084016100e3565b90509250929050565b611122806101416000396000f3fe6080604052600436106101145760003560e01c8063cab34c08116100a0578063efca2eed11610064578063efca2eed146102f3578063f0fc6bca14610309578063f887ea401461031e578063ffb2c4791461033e578063ffd49c841461035e57600080fd5b8063cab34c081461023e578063ce7c2ac21461025e578063d0e30db0146102b5578063e2d2e219146102bd578063ecd0c0c3146102d357600080fd5b80633a98ef39116100e75780633a98ef39146101a45780634fab0ae8146101ba5780638dd95002146101d0578063997664d714610208578063a6871bc31461021e57600080fd5b806311ce023d1461011957806314b6ca961461014257806328fd3198146101645780632d48e89614610184575b600080fd5b34801561012557600080fd5b5061012f600c5481565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b5061016261015d366004610ec0565b610374565b005b34801561017057600080fd5b5061012f61017f366004610ea5565b6104ec565b34801561019057600080fd5b5061016261019f366004610f3e565b610575565b3480156101b057600080fd5b5061012f60085481565b3480156101c657600080fd5b5061012f600e5481565b3480156101dc57600080fd5b506002546101f0906001600160a01b031681565b6040516001600160a01b039091168152602001610139565b34801561021457600080fd5b5061012f60095481565b34801561022a57600080fd5b50610162610239366004610ea5565b610597565b34801561024a57600080fd5b506001546101f0906001600160a01b031681565b34801561026a57600080fd5b5061029a610279366004610ea5565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610139565b6101626106b7565b3480156102c957600080fd5b5061012f600b5481565b3480156102df57600080fd5b506000546101f0906001600160a01b031681565b3480156102ff57600080fd5b5061012f600a5481565b34801561031557600080fd5b50610162610904565b34801561032a57600080fd5b506003546101f0906001600160a01b031681565b34801561034a57600080fd5b50610162610359366004610f0c565b61090f565b34801561036a57600080fd5b5061012f600d5481565b6000546001600160a01b0316331461038b57600080fd5b6001600160a01b038216600090815260076020526040902054156103b2576103b282610a0f565b6000811180156103d857506001600160a01b038216600090815260076020526040902054155b1561043e57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610471565b8015801561046357506001600160a01b03821660009081526007602052604090205415155b156104715761047182610b3a565b6001600160a01b0382166000908152600760205260409020546008546104a291839161049c91610c4f565b90610c9a565b6008556001600160a01b03821660009081526007602052604090208190556104c981610cfe565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461051157506000919050565b6001600160a01b03821660009081526007602052604081205461053390610cfe565b6001600160a01b038416600090815260076020526040902060010154909150808211610563575060009392505050565b61056d8282610c4f565b949350505050565b6000546001600160a01b0316331461058c57600080fd5b600d91909155600e55565b6000546001600160a01b031633146105ae57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156105f257600080fd5b505afa158015610606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190610f25565b60015460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb90604401602060405180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190610eea565b505050565b6000546001600160a01b031633146106ce57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190610f25565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b031691839150600090610790576107906110d6565b6001600160a01b03928316602091820292909201015260018054835192169183919081106107c0576107c06110d6565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061080690600090869030904290600401610f60565b6000604051808303818588803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506108c293508692506001600160a01b03909116906370a082319060240160206040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190610f25565b90610c4f565b6009549091506108d29082610c9a565b600955600854600c546108fc916108f3916108ed9085610d1b565b90610d9a565b600b5490610c9a565b600b55505050565b61090d33610a0f565b565b6000546001600160a01b0316331461092657600080fd5b60045480610932575050565b6000805a905060005b848310801561094957508381105b15610a085783600f541061095d576000600f555b61098f6004600f5481548110610975576109756110d6565b6000918252602090912001546001600160a01b0316610ddc565b156109c6576109c66004600f54815481106109ac576109ac6110d6565b6000918252602090912001546001600160a01b0316610a0f565b6109db6109d45a8490610c4f565b8490610c9a565b92505a600f805491935060006109f08361108f565b91905055508080610a009061108f565b91505061093b565b5050505050565b6001600160a01b038116600090815260076020526040902054610a2f5750565b6000610a3a826104ec565b90508015610b3657600a54610a4f9082610c9a565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad89190610eea565b506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610b0c9082610c9a565b6001600160a01b03831660009081526007602052604090206002810191909155546104c990610cfe565b5050565b60048054610b4a90600190611078565b81548110610b5a57610b5a6110d6565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610b9857610b986110d6565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610be490600190611078565b81548110610bf457610bf46110d6565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610c2a57610c2a6110c0565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610c9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e21565b90505b92915050565b600080610ca7838561101f565b905083811015610c915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610c94600c546108ed600b5485610d1b90919063ffffffff16565b600082610d2a57506000610c94565b6000610d368385611059565b905082610d438583611037565b14610c915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610cf5565b6000610c9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e5b565b600d546001600160a01b03821660009081526006602052604081205490914291610e06919061101f565b108015610c945750600e54610e1a836104ec565b1192915050565b60008184841115610e455760405162461bcd60e51b8152600401610cf59190610fca565b506000610e528486611078565b95945050505050565b60008183610e7c5760405162461bcd60e51b8152600401610cf59190610fca565b506000610e528486611037565b80356001600160a01b0381168114610ea057600080fd5b919050565b600060208284031215610eb757600080fd5b610c9182610e89565b60008060408385031215610ed357600080fd5b610edc83610e89565b946020939093013593505050565b600060208284031215610efc57600080fd5b81518015158114610c9157600080fd5b600060208284031215610f1e57600080fd5b5035919050565b600060208284031215610f3757600080fd5b5051919050565b60008060408385031215610f5157600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610faa5784516001600160a01b031683529383019391830191600101610f85565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610ff757858101830151858201604001528201610fdb565b81811115611009576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611032576110326110aa565b500190565b60008261105457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611073576110736110aa565b500290565b60008282101561108a5761108a6110aa565b500390565b60006000198214156110a3576110a36110aa565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122032d23f1f38747099fcbd06cdb7228c603403f1f35a876205eac9d3094afeeaf964736f6c63430008070033

Deployed ByteCode Sourcemap

21319:18367:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23302:56;;;;;;;;;;;;;;;;;;;18161:25:1;;;18149:2;18134:18;23302:56:0;;;;;;;;24791:80;;;;;;;;;;-1:-1:-1;24863:5:0;;;;;;;;;;;;-1:-1:-1;;;24863:5:0;;;;24791:80;;;;;;;:::i;26086:216::-;;;;;;;;;;-1:-1:-1;26086:216:0;;;;;:::i;:::-;;:::i;:::-;;;8990:14:1;;8983:22;8965:41;;8953:2;8938:18;26086:216:0;8825:187:1;38121:561:0;;;;;;;;;;;;;:::i;:::-;;39198:78;;;;;;;;;;-1:-1:-1;39261:13:0;;39198:78;;29955:77;;;;;;;;;;;;;:::i;34809:150::-;;;;;;;;;;-1:-1:-1;34809:150:0;;;;;:::i;:::-;;:::i;22260:31::-;;;;;;;;;;;;;;;;36005:699;;;;;;;;;;-1:-1:-1;36005:699:0;;;;;:::i;:::-;;:::i;30421:138::-;;;;;;;;;;;;;:::i;39384:117::-;;;;;;;;;;-1:-1:-1;39384:117:0;;;;;:::i;:::-;;:::i;33289:302::-;;;;;;;;;;-1:-1:-1;33289:302:0;;;;;:::i;:::-;;:::i;22763:33::-;;;;;;;;;;;;;:::i;24521:88::-;;;;;;;;;;-1:-1:-1;24594:12:0;;24521:88;;22381:32;;;;;;;;;;;;;;;;38940:75;;;;;;;;;;-1:-1:-1;39002:11:0;;;;38940:75;;36716:709;;;;;;;;;;-1:-1:-1;36716:709:0;;;;;:::i;:::-;;:::i;29553:208::-;;;;;;;;;;-1:-1:-1;29553:208:0;;;;;:::i;:::-;;:::i;33959:183::-;;;;;;;;;;-1:-1:-1;33959:183:0;;;;;:::i;:::-;;:::i;26604:370::-;;;;;;;;;;-1:-1:-1;26604:370:0;;;;;:::i;:::-;;:::i;34341:131::-;;;;;;;;;;-1:-1:-1;34341:131:0;;;;;:::i;:::-;;:::i;39114:78::-;;;;;;;;;;-1:-1:-1;39177:13:0;;39114:78;;34484:142;;;;;;;;;;;;;:::i;37433:674::-;;;;;;;;;;-1:-1:-1;37433:674:0;;;;;:::i;:::-;;:::i;34150:183::-;;;;;;;;;;-1:-1:-1;34150:183:0;;;;;:::i;:::-;;:::i;10302:103::-;;;;;;;;;;-1:-1:-1;10302:103:0;;;;;:::i;:::-;10357:4;10392:5;-1:-1:-1;;;;;10381:16:0;;;10392:5;;10381:16;;10302:103;39282:96;;;;;;;;;;;;;:::i;24615:80::-;;;;;;;;;;-1:-1:-1;24615:80:0;;21713:2;19577:36:1;;19565:2;19550:18;24615:80:0;19435:184:1;35894:103:0;;;;;;;;;;-1:-1:-1;35894:103:0;;;;;:::i;:::-;;:::i;26310:122::-;;;;;;;;;;-1:-1:-1;26310:122:0;;;;;:::i;:::-;;:::i;38694:238::-;;;;;;;;;;;;;:::i;30086:94::-;;;;;;;;;;;;;:::i;32845:120::-;;;;;;;;;;-1:-1:-1;32845:120:0;;;;;:::i;:::-;;:::i;32975:306::-;;;;;;;;;;-1:-1:-1;32975:306:0;;;;;:::i;:::-;;:::i;35796:90::-;;;;;;;;;;-1:-1:-1;35796:90:0;;;;;:::i;:::-;;:::i;22420:35::-;;;;;;;;;;;;;;;;23265:30;;;;;;;;;;-1:-1:-1;23265:30:0;;;;;;;;22618:31;;;;;;;;;;;;;;;;24961:105;;;;;;;;;;-1:-1:-1;24961:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;25045:18:0;25027:7;25045:18;;;:9;:18;;;;;;;24961:105;30217:153;;;;;;;;;;-1:-1:-1;30217:153:0;;;;;:::i;:::-;;:::i;22298:34::-;;;;;;;;;;;;;;;;30600:106;;;;;;;;;;;;;:::i;22803:37::-;;;;;;;;;;;;;:::i;24877:78::-;;;;;;;;;;-1:-1:-1;24929:7:0;24947:5;-1:-1:-1;;;;;24947:5:0;24877:78;;;-1:-1:-1;;;;;7078:32:1;;;7060:51;;7048:2;7033:18;24877:78:0;6914:203:1;22578:33:0;;;;;;;;;;;;;;;;39507:81;;;;;;;;;;;;;:::i;24701:84::-;;;;;;;;;;-1:-1:-1;24775:7:0;;;;;;;;;;;;-1:-1:-1;;;24775:7:0;;;;24701:84;;39021:87;;;;;;;;;;;;;:::i;33605:182::-;;;;;;;;;;-1:-1:-1;33605:182:0;;;;;:::i;:::-;;:::i;34969:819::-;;;;;;;;;;-1:-1:-1;34969:819:0;;;;;:::i;:::-;;:::i;23039:19::-;;;;;;;;;;-1:-1:-1;23039:19:0;;;;-1:-1:-1;;;;;23039:19:0;;;26440:156;;;;;;;;;;-1:-1:-1;26440:156:0;;;;;:::i;:::-;;:::i;22725:31::-;;;;;;;;;;-1:-1:-1;22725:31:0;;;;;;;;9975:94;;;;;;;;;;-1:-1:-1;9975:94:0;;;;;:::i;:::-;;:::i;23180:38::-;;;;;;;;;;-1:-1:-1;23180:38:0;;;;-1:-1:-1;;;;;23180:38:0;;;34634:167;;;;;;;;;;-1:-1:-1;34634:167:0;;;;;:::i;:::-;;:::i;25072:133::-;;;;;;;;;;-1:-1:-1;25072:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;25174:19:0;;;25156:7;25174:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;25072:133;33795:156;;;;;;;;;;-1:-1:-1;33795:156:0;;;;;:::i;:::-;;:::i;39594:89::-;;;;;;;;;;;;;:::i;22339:35::-;;;;;;;;;;;;;;;;22219:34;;;;;;;;;;;;;;;;29766:136;;;;;;;;;;-1:-1:-1;29766:136:0;;;;;:::i;:::-;;:::i;10145:97::-;;;;;;;;;;-1:-1:-1;10145:97:0;;;;;:::i;:::-;;:::i;10702:173::-;;;;;;;;;;-1:-1:-1;10702:173:0;;;;;:::i;:::-;;:::i;32490:347::-;;;;;;;;;;-1:-1:-1;32490:347:0;;;;;:::i;:::-;;:::i;23008:24::-;;;;;;;;;;-1:-1:-1;23008:24:0;;;;-1:-1:-1;;;;;23008:24:0;;;10476:107;;;;;;;;;;-1:-1:-1;10476:107:0;;;;;:::i;:::-;;:::i;23067:31::-;;;;;;;;;;-1:-1:-1;23067:31:0;;;;-1:-1:-1;;;23067:31:0;;;;;;26086:216;26190:10;26161:4;26178:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26178:32:0;;;;;;;;;;:41;;;26235:37;26161:4;;26178:32;;26235:37;;;;26213:6;18161:25:1;;18149:2;18134:18;;18015:177;26235:37:0;;;;;;;;-1:-1:-1;26290:4:0;26086:216;;;;;:::o;38121:561::-;38190:12;;38172:15;:30;38164:66;;;;-1:-1:-1;;;38164:66:0;;12458:2:1;38164:66:0;;;12440:21:1;12497:2;12477:18;;;12470:30;12536:25;12516:18;;;12509:53;12579:18;;38164:66:0;;;;;;;;;38249:11;;;;38241:49;;;;-1:-1:-1;;;38241:49:0;;14969:2:1;38241:49:0;;;14951:21:1;15008:2;14988:18;;;14981:30;15047:27;15027:18;;;15020:55;15092:18;;38241:49:0;14767:349:1;38241:49:0;38321:13;;38305;;:29;38301:344;;;38394:13;;38376;;:32;;:17;:32::i;:::-;38354:12;;:19;;38371:1;38354:16;:19::i;:::-;:54;38350:219;;;38438:23;;;;;;;;;;;;;-1:-1:-1;;;38438:23:0;;;;;;;;;:10;;:23;:::i;:::-;;38301:344;;38350:219;38514:39;;;;;;;;;;;;;;;;;;;;;;;:10;;:39;:::i;38301:344::-;38610:23;;;;;;;;;;;;;-1:-1:-1;;;38610:23:0;;;;;;;;;:10;;:23;:::i;:::-;;38301:344;38655:11;:19;;-1:-1:-1;;38655:19:0;;;38121:561::o;29955:77::-;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;30006:11:::1;:18:::0;;-1:-1:-1;;;;30006:18:0::1;-1:-1:-1::0;;;30006:18:0::1;::::0;;29955:77::o;34809:150::-;34889:4;34945:6;34913:29;34933:8;34913:19;:29::i;:::-;:38;;34809:150;-1:-1:-1;;;34809:150:0:o;36005:699::-;36100:14;:24;;;36131:12;:22;;;36169:11;;;;36168:12;36160:48;;;;-1:-1:-1;;;36160:48:0;;14617:2:1;36160:48:0;;;14599:21:1;14656:2;14636:18;;;14629:30;14695:25;14675:18;;;14668:53;14738:18;;36160:48:0;14415:347:1;36160:48:0;36240:15;36223:14;;:32;36215:82;;;;-1:-1:-1;;;36215:82:0;;13160:2:1;36215:82:0;;;13142:21:1;13199:2;13179:18;;;13172:30;13238:34;13218:18;;;13211:62;-1:-1:-1;;;13289:18:1;;;13282:35;13334:19;;36215:82:0;12958:401:1;36215:82:0;36344:12;;36327:14;;:29;;;;:::i;:::-;36312:12;;:44;36304:81;;;;-1:-1:-1;;;36304:81:0;;16812:2:1;36304:81:0;;;16794:21:1;16851:2;16831:18;;;16824:30;16890:26;16870:18;;;16863:54;16934:18;;36304:81:0;16610:348:1;36304:81:0;36409:5;;-1:-1:-1;;;;;36409:5:0;36395:10;:19;36392:128;;36430:8;;-1:-1:-1;;;36430:8:0;;;;36422:49;;;;-1:-1:-1;;;36422:49:0;;13911:2:1;36422:49:0;;;13893:21:1;13950:2;13930:18;;;13923:30;13989;13969:18;;;13962:58;14037:18;;36422:49:0;13709:352:1;36422:49:0;36478:34;36484:10;36496:15;36478:5;:34::i;:::-;36542:1;36526:13;:17;;;36550:13;:17;36591:10;36574:27;;:14;;36591:10;36574:27;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;36608:30:0;;;;;;;;;;;;;-1:-1:-1;;;36608:30:0;;;;;;;;;:10;;:30;:::i;:::-;-1:-1:-1;36645:26:0;;;;:11;;:26;;;;;:::i;:::-;-1:-1:-1;;36678:11:0;:18;;-1:-1:-1;;36678:18:0;36692:4;36678:18;;;-1:-1:-1;;36005:699:0:o;30421:138::-;30463:11;;;;;;;;;-1:-1:-1;;;;;30463:11:0;-1:-1:-1;;;;;30463:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;30505:11:0;;30525:14;;30505:35;;-1:-1:-1;;;;;;30505:35:0;;-1:-1:-1;;;;;30505:11:0;;;;-1:-1:-1;30505:19:0;;-1:-1:-1;30505:35:0;;;;18161:25:1;;;18149:2;18134:18;;18015:177;30505:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30501:51;30421:138::o;39384:117::-;-1:-1:-1;;;;;39469:18:0;;39452:7;39469:18;;;:9;:18;;;;;;:30;;39492:6;39469:22;:30::i;33289:302::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;33431:15:::1;:31:::0;;;;33473:12:::1;:25:::0;;;;33509:15:::1;:31:::0;33551:14:::1;:32:::0;33289:302::o;22763:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;36716:709::-;36795:15;36777:14;;:33;;36769:69;;;;-1:-1:-1;;;36769:69:0;;17505:2:1;36769:69:0;;;17487:21:1;17544:2;17524:18;;;17517:30;-1:-1:-1;;;17563:18:1;;;17556:53;17626:18;;36769:69:0;17303:347:1;36769:69:0;36872:12;;36853:15;:31;;36845:63;;;;-1:-1:-1;;;36845:63:0;;11048:2:1;36845:63:0;;;11030:21:1;11087:2;11067:18;;;11060:30;-1:-1:-1;;;11106:18:1;;;11099:49;11165:18;;36845:63:0;10846:343:1;36845:63:0;36923:11;;;;36915:44;;;;-1:-1:-1;;;36915:44:0;;12109:2:1;36915:44:0;;;12091:21:1;12148:2;12128:18;;;12121:30;-1:-1:-1;;;12167:18:1;;;12160:50;12227:18;;36915:44:0;11907:344:1;36915:44:0;37004:10;36994:21;;;;:9;:21;;;;;;36974:16;:7;36984:6;36974:16;:::i;:::-;:41;;36966:81;;;;-1:-1:-1;;;36966:81:0;;10283:2:1;36966:81:0;;;10265:21:1;10322:2;10302:18;;;10295:30;10361:29;10341:18;;;10334:57;10408:18;;36966:81:0;10081:351:1;36966:81:0;37070:13;;:26;;37088:7;37070:17;:26::i;:::-;37054:13;:42;37103:35;37109:10;37121:16;:7;37131:6;37121:16;:::i;:::-;37103:5;:35::i;:::-;37169:42;37195:15;:7;37204:6;37195:15;:::i;:::-;37179:10;37169:21;;;;:9;:21;;;;;;;:25;:42::i;:::-;37155:10;37145:21;;;;:9;:21;;;;;;;;:66;;;;37222:16;:28;;;;;;37218:131;;37271:11;;37292:10;37271:11;37304:21;;;:9;:21;;;;;;;;37271:55;;-1:-1:-1;;;37271:55:0;;;;;7829:51:1;;;;7896:18;;;7889:34;-1:-1:-1;;;;;37271:11:0;;;;:20;;7802:18:1;;37271:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37267:71;;37365:11;;37385:14;;37365:35;;-1:-1:-1;;;;;;37365:35:0;;-1:-1:-1;;;;;37365:11:0;;;;:19;;:35;;;;18161:25:1;;;18149:2;18134:18;;18015:177;37365:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37361:51;36716:709;:::o;29553:208::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;29657:21:::1;29697:10;29689:64;29749:3;29718:28;29730:16:::0;29657:21;29718:28:::1;:::i;:::-;:34;;;;:::i;:::-;29689:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;29626:135;29553:208:::0;:::o;33959:183::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;34057:15:::1;:25:::0;;;;34093:26:::1;:41:::0;33959:183::o;26604:370::-;-1:-1:-1;;;;;26724:19:0;;26704:4;26724:19;;;:11;:19;;;;;;;;26744:10;26724:31;;;;;;;;-1:-1:-1;;26724:52:0;26721:186;;26826:69;;;;;;;;;;;-1:-1:-1;;;26826:69:0;;;;;;;;-1:-1:-1;;;;;26826:19:0;;-1:-1:-1;26826:19:0;;;:11;:19;;;;;26846:10;26826:31;;;;;;;;;;:69;;26862:6;;26826:35;:69::i;:::-;-1:-1:-1;;;;;26792:19:0;;;;;;:11;:19;;;;;;;;26812:10;26792:31;;;;;;;:103;26721:186;26926:40;26940:6;26948:9;26959:6;26926:13;:40::i;:::-;26919:47;;26604:370;;;;;;:::o;34341:131::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;34426:6:::1;34420:3;:12;34412:21;;;::::0;::::1;;34444:14;:20:::0;34341:131::o;34484:142::-;34612:4;;-1:-1:-1;;;;;34612:4:0;34537:7;25045:18;;;:9;:18;;;;;;34564:54;;34591:4;;-1:-1:-1;;;;;34591:4:0;25027:7;25045:18;;;:9;:18;;;;;;34564:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;34557:61;;34484:142;:::o;37433:674::-;37512:15;37494:14;;:33;;37486:69;;;;-1:-1:-1;;;37486:69:0;;17505:2:1;37486:69:0;;;17487:21:1;17544:2;17524:18;;;17517:30;-1:-1:-1;;;17563:18:1;;;17556:53;17626:18;;37486:69:0;17303:347:1;37486:69:0;37589:12;;37570:15;:31;;37562:63;;;;-1:-1:-1;;;37562:63:0;;11048:2:1;37562:63:0;;;11030:21:1;11087:2;11067:18;;;11060:30;-1:-1:-1;;;11106:18:1;;;11099:49;11165:18;;37562:63:0;10846:343:1;37562:63:0;37640:11;;;;37632:45;;;;-1:-1:-1;;;37632:45:0;;12810:2:1;37632:45:0;;;12792:21:1;12849:2;12829:18;;;12822:30;-1:-1:-1;;;12868:18:1;;;12861:51;12929:18;;37632:45:0;12608:345:1;37632:45:0;37722:10;37712:21;;;;:9;:21;;;;;;37692:16;:7;37702:6;37692:16;:::i;:::-;:41;;37684:50;;;;;;37757:13;;:26;;37775:7;37757:17;:26::i;:::-;37741:13;:42;37790:35;37796:10;37808:16;:7;37818:6;37808:16;:::i;34150:183::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;34260:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;34260:65:0;;::::1;::::0;::::1;19356:25:1::0;;;19397:18;;;19390:34;;;-1:-1:-1;;;;;34260:11:0;;::::1;::::0;:35:::1;::::0;19329:18:1;;34260:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;34150:183:::0;;:::o;39282:96::-;39327:7;39344:32;39362:13;;39344;;:17;;:32;;;;:::i;35894:103::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;35966:12:::1;:23:::0;35894:103::o;26310:122::-;26365:4;26389:35;26397:7;-1:-1:-1;;26389:7:0;:35::i;38694:238::-;38746:11;;;;38745:12;38737:41;;;;-1:-1:-1;;;38737:41:0;;13566:2:1;38737:41:0;;;13548:21:1;13605:2;13585:18;;;13578:30;-1:-1:-1;;;13624:18:1;;;13617:46;13680:18;;38737:41:0;13364:340:1;38737:41:0;38803:10;38817:1;38793:21;;;:9;:21;;;;;;38785:60;;;;-1:-1:-1;;;38785:60:0;;16461:2:1;38785:60:0;;;16443:21:1;16500:2;16480:18;;;16473:30;-1:-1:-1;;;16519:18:1;;;16512:52;16581:18;;38785:60:0;16259:346:1;38785:60:0;38858:10;38870:21;;;;:9;:21;;;;;;38852:40;;38858:10;38852:5;:40::i;:::-;38909:10;38923:1;38899:21;;;:9;:21;;;;;:25;38694:238::o;30086:94::-;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;30143:11:::1;::::0;:29:::1;::::0;-1:-1:-1;;;30143:29:0;;30161:10:::1;30143:29;::::0;::::1;7060:51:1::0;-1:-1:-1;;;;;30143:11:0;;::::1;::::0;:17:::1;::::0;7033:18:1;;30143:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;30086:94::o:0;32845:120::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32929:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;32929:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32845:120::o;32975:306::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;33118:16:::1;:32:::0;;;;33161:13:::1;:26:::0;;;;33198:16:::1;:32:::0;33241:14:::1;:32:::0;32975:306::o;35796:90::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;35862:8:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;35862:16:0::1;-1:-1:-1::0;;;;35862:16:0;;::::1;::::0;;;::::1;::::0;;35796:90::o;30217:153::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;30341:6:::1;::::0;30309:53:::1;::::0;-1:-1:-1;;;;;30341:6:0;;::::1;::::0;30350:11;;30309:53:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;7568:15:1;;;7550:34;;7620:15;;7615:2;7600:18;;7593:43;7500:2;7485:18;30309:53:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;30295:11:0::1;:67:::0;;-1:-1:-1;;;;;;30295:67:0::1;-1:-1:-1::0;;;;;30295:67:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;30217:153:0:o;30600:106::-;30652:11;;30672:14;;30652:35;;-1:-1:-1;;;;;;30652:35:0;;-1:-1:-1;;;;;30652:11:0;;;;:19;;:35;;;;18161:25:1;;;18149:2;18134:18;;18015:177;22803:37:0;;;;;;;:::i;39507:81::-;39553:13;39576:10;39569:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39507:81;:::o;39021:87::-;39071:13;39095:11;39088:18;;;;;:::i;33605:182::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;33701:21:::1;:34:::0;;-1:-1:-1;;;;;33701:34:0;;::::1;-1:-1:-1::0;;;;;;33701:34:0;;::::1;;::::0;;;33746:20:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;33605:182::o;34969:819::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;35077:13:::1;35111:33:::0;;::::1;35103:85;;;::::0;-1:-1:-1;;;35103:85:0;;10639:2:1;35103:85:0::1;::::0;::::1;10621:21:1::0;10678:2;10658:18;;;10651:30;10717:34;10697:18;;;10690:62;-1:-1:-1;;;10768:18:1;;;10761:38;10816:19;;35103:85:0::1;10437:404:1::0;35103:85:0::1;35201:6;35197:84;35211:20:::0;;::::1;35197:84;;;35264:6;;35271:1;35264:9;;;;;;;:::i;:::-;;;;;;;35256:5;:17;;;;:::i;:::-;35248:25:::0;-1:-1:-1;35233:3:0;::::1;::::0;::::1;:::i;:::-;;;;35197:84;;;-1:-1:-1::0;35307:10:0::1;25027:7:::0;25045:18;;;:9;:18;;;;;;35322:5;-1:-1:-1;35297:30:0::1;35289:71;;;::::0;-1:-1:-1;;;35289:71:0;;11396:2:1;35289:71:0::1;::::0;::::1;11378:21:1::0;11435:2;11415:18;;;11408:30;11474;11454:18;;;11447:58;11522:18;;35289:71:0::1;11194:352:1::0;35289:71:0::1;35373:6;35369:256;35383:20:::0;;::::1;35369:256;;;35420:49;35435:10;35446:9;;35456:1;35446:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;35459:6;;35466:1;35459:9;;;;;;;:::i;:::-;;;;;;;35420:14;:49::i;:::-;;35484:16;:30;35501:9;;35511:1;35501:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;35484:30:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;35484:30:0;;::::1;;35480:138;;35535:11;::::0;-1:-1:-1;;;;;35535:11:0::1;:20;35556:9:::0;;35566:1;35556:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;35570:9;:23;35580:9;;35590:1;35580:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;35570:23:0::1;-1:-1:-1::0;;;;;35570:23:0::1;;;;;;;;;;;;;35535:59;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7847:32:1;;;;7829:51;;7911:2;7896:18;;7889:34;7817:2;7802:18;;7647:282;35535:59:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;35531:75:::0;::::1;35405:3:::0;::::1;::::0;::::1;:::i;:::-;;;;35369:256;;;-1:-1:-1::0;35679:10:0::1;35662:28;::::0;;;:16:::1;:28;::::0;;;;;::::1;;35658:123;;35707:11;::::0;35728:10:::1;35707:11;35740:21:::0;;;:9:::1;:21;::::0;;;;;;;35707:55;;-1:-1:-1;;;35707:55:0;;::::1;::::0;::::1;7829:51:1::0;;;;7896:18;;;7889:34;-1:-1:-1;;;;;35707:11:0;;::::1;::::0;:20:::1;::::0;7802:18:1;;35707:55:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;35703:71;35068:720;34969:819:::0;;;;:::o;26440:156::-;26520:4;26544:44;26558:10;26570:9;26581:6;26544:13;:44::i;9975:94::-;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10035:19:0::1;;::::0;;;10057:4:::1;10035:19;::::0;;;;;;;:26;;-1:-1:-1;;10035:26:0::1;::::0;;::::1;::::0;;9975:94::o;34634:167::-;34702:7;34729:64;34770:22;:20;:22::i;:::-;34752:4;;-1:-1:-1;;;;;34752:4:0;25027:7;25045:18;;;:9;:18;;;;;;34729:36;;34742:22;;34762:1;34742:19;:22::i;:::-;34729:8;;:12;:36::i;:::-;:40;;:64::i;33795:156::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;33887:11:::1;:22:::0;;-1:-1:-1;;33887:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;33920:13:::1;:23:::0;33795:156::o;39594:89::-;39644:13;39667:14;39660:21;;;;;:::i;29766:136::-;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;29861:35:::1;::::0;-1:-1:-1;;;29861:35:0;;29890:4:::1;29861:35;::::0;::::1;7060:51:1::0;-1:-1:-1;;;;;29829:19:0;::::1;::::0;::::1;::::0;29849:10:::1;::::0;29829:19;;29861:20:::1;::::0;7033:18:1;;29861:35:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29829:68;::::0;-1:-1:-1;;;;;;29829:68:0::1;::::0;;;;;;-1:-1:-1;;;;;7847:32:1;;;29829:68:0::1;::::0;::::1;7829:51:1::0;7896:18;;;7889:34;7802:18;;29829:68:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10145:97::-:0;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10207:19:0::1;10229:5;10207:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;10207:27:0::1;::::0;;10145:97::o;10702:173::-;10357:4;10392:5;-1:-1:-1;;;;;10392:5:0;9699:10;10381:16;9683:38;;;;-1:-1:-1;;;9683:38:0;;;;;;;:::i;:::-;10778:5:::1;:11:::0;;-1:-1:-1;;;;;;10778:11:0::1;-1:-1:-1::0;;;;;10778:11:0;::::1;::::0;;::::1;::::0;;10800:19;;;-1:-1:-1;10800:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;10800:26:0::1;::::0;;::::1;::::0;;;10842:25;;7060:51:1;;;10842:25:0::1;::::0;7033:18:1;10842:25:0::1;;;;;;;10702:173:::0;:::o;32490:347::-;9860:24;9873:10;9860:12;:24::i;:::-;9852:48;;;;-1:-1:-1;;;9852:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32587:23:0;::::1;32605:4;32587:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;32624:4:0::1;::::0;-1:-1:-1;;;;;32614:14:0;;::::1;32624:4:::0;::::1;32614:14;;32587:41;32579:50;;;::::0;::::1;;-1:-1:-1::0;;;;;32640:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;32640:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;32684:146:::1;;32709:11;::::0;:31:::1;::::0;-1:-1:-1;;;32709:31:0;;-1:-1:-1;;;;;7847:32:1;;;32709:31:0::1;::::0;::::1;7829:51:1::0;32709:11:0::1;7896:18:1::0;;;7889:34;32709:11:0;;::::1;::::0;:20:::1;::::0;7802:18:1;;32709:31:0::1;7647:282:1::0;32684:146:0::1;32771:11;::::0;-1:-1:-1;;;;;32800:17:0;;::::1;32771:11;32800:17:::0;;;:9:::1;:17;::::0;;;;;;;32771:47;;-1:-1:-1;;;32771:47:0;;::::1;::::0;::::1;7829:51:1::0;;;;7896:18;;;7889:34;32771:11:0;::::1;::::0;:20:::1;::::0;7802:18:1;;32771:47:0::1;7647:282:1::0;10476:107:0;-1:-1:-1;;;;;10556:19:0;10532:4;10556:19;;;:14;:19;;;;;;;;;10476:107::o;7032:181::-;7090:7;;7122:5;7126:1;7122;:5;:::i;:::-;7110:17;;7151:1;7146;:6;;7138:46;;;;-1:-1:-1;;;7138:46:0;;11753:2:1;7138:46:0;;;11735:21:1;11792:2;11772:18;;;11765:30;11831:29;11811:18;;;11804:57;11878:18;;7138:46:0;11551:351:1;7815:132:0;7873:7;7900:39;7904:1;7907;7900:39;;;;;;;;;;;;;;;;;:3;:39::i;25562:377::-;-1:-1:-1;;;;;25646:21:0;;25638:67;;;;-1:-1:-1;;;25638:67:0;;15725:2:1;25638:67:0;;;15707:21:1;15764:2;15744:18;;;15737:30;15803:34;15783:18;;;15776:62;-1:-1:-1;;;15854:18:1;;;15847:31;15895:19;;25638:67:0;15523:397:1;25638:67:0;25801:68;25824:6;25801:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25801:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;25780:18:0;;;;;;:9;:18;;;;;:89;25895:12;;:24;;25912:6;25895:16;:24::i;:::-;25880:12;:39;-1:-1:-1;;25562:377:0:o;7361:192::-;7447:7;7483:12;7475:6;;;;7467:29;;;;-1:-1:-1;;;7467:29:0;;;;;;;;:::i;:::-;-1:-1:-1;7507:9:0;7519:5;7523:1;7519;:5;:::i;:::-;7507:17;7361:192;-1:-1:-1;;;;;7361:192:0:o;26984:1144::-;27104:6;;27076:4;;27104:6;;27101:63;;;27120:41;27135:6;27143:9;27154:6;27120:14;:41::i;:::-;27113:48;;;;27101:63;-1:-1:-1;;;;;27180:22:0;;;;;;:14;:22;;;;;;;;27179:23;:53;;;;-1:-1:-1;;;;;;27207:25:0;;;;;;:14;:25;;;;;;;;27206:26;27179:53;27176:127;;;27256:11;;-1:-1:-1;;;27256:11:0;;;;27248:43;;;;-1:-1:-1;;;27248:43:0;;14268:2:1;27248:43:0;;;14250:21:1;14307:2;14287:18;;;14280:30;-1:-1:-1;;;14326:18:1;;;14319:50;14386:18;;27248:43:0;14066:344:1;27248:43:0;27361:16;:14;:16::i;:::-;27358:35;;;27380:10;:8;:10::i;:::-;27452:53;;;;;;;;;;;-1:-1:-1;;;27452:53:0;;;;;;;;-1:-1:-1;;;;;27452:17:0;;-1:-1:-1;27452:17:0;;;:9;:17;;;;;;;;:53;;27474:6;;27452:21;:53::i;:::-;-1:-1:-1;;;;;27432:17:0;;;;;;:9;:17;;;;;;;;:73;;;;28567:11;:19;;;;;;;;28566:20;27543:56;;27593:6;27543:56;;;27567:23;27575:6;27583;27567:7;:23::i;:::-;-1:-1:-1;;;;;27633:20:0;;;;;;:9;:20;;;;;;27518:81;;-1:-1:-1;27633:40:0;;27518:81;27633:24;:40::i;:::-;-1:-1:-1;;;;;27610:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;27719:24;;;;;:16;:24;;;;;;;27715:119;;27764:11;;-1:-1:-1;;;;;27793:17:0;;;27764:11;27793:17;;;:9;:17;;;;;;;;27764:47;;-1:-1:-1;;;27764:47:0;;;;;7829:51:1;;;;7896:18;;;7889:34;27764:11:0;;;:20;;7802:18:1;;27764:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27760:63;;-1:-1:-1;;;;;27850:27:0;;;;;;:16;:27;;;;;;;;27846:129;;27898:11;;-1:-1:-1;;;;;27930:20:0;;;27898:11;27930:20;;;:9;:20;;;;;;;;27898:53;;-1:-1:-1;;;27898:53:0;;;;;7829:51:1;;;;7896:18;;;7889:34;27898:11:0;;;:20;;7802:18:1;;27898:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27894:69;;27991:11;;28011:14;;27991:35;;-1:-1:-1;;;;;;27991:35:0;;-1:-1:-1;;;;;27991:11:0;;;;:19;;:35;;;;18161:25:1;;;18149:2;18134:18;;18015:177;27991:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27987:51;28072:9;-1:-1:-1;;;;;28055:43:0;28064:6;-1:-1:-1;;;;;28055:43:0;;28083:14;28055:43;;;;18161:25:1;;18149:2;18134:18;;18015:177;28055:43:0;;;;;;;;-1:-1:-1;28116:4:0;;26984:1144;-1:-1:-1;;;;26984:1144:0:o;7219:136::-;7277:7;7304:43;7308:1;7311;7304:43;;;;;;;;;;;;;;;;;:3;:43::i;25213:337::-;-1:-1:-1;;;;;25297:21:0;;25289:65;;;;-1:-1:-1;;;25289:65:0;;17857:2:1;25289:65:0;;;17839:21:1;17896:2;17876:18;;;17869:30;17935:33;17915:18;;;17908:61;17986:18;;25289:65:0;17655:355:1;25289:65:0;25444:12;;:24;;25461:6;25444:16;:24::i;:::-;25429:12;:39;-1:-1:-1;;;;;25500:18:0;;;;;;:9;:18;;;;;;:30;;25523:6;25500:22;:30::i;:::-;-1:-1:-1;;;;;25479:18:0;;;;;;;:9;:18;;;;;:51;;;;-1:-1:-1;25213:337:0:o;28140:330::-;28270:53;;;;;;;;;;;-1:-1:-1;;;28270:53:0;;;;;;;;-1:-1:-1;;;;;28270:17:0;;28233:4;28270:17;;;:9;:17;;;;;;;:53;;28292:6;;28270:21;:53::i;:::-;-1:-1:-1;;;;;28250:17:0;;;;;;;:9;:17;;;;;;:73;;;;28357:20;;;;;;;:32;;28382:6;28357:24;:32::i;:::-;-1:-1:-1;;;;;28334:20:0;;;;;;;:9;:20;;;;;;;:55;;;;28405:35;;;;;;;;;;28433:6;18161:25:1;;18149:2;18134:18;;18015:177;28405:35:0;;;;;;;;-1:-1:-1;28458:4:0;28140:330;;;;;:::o;7559:250::-;7617:7;7641:6;7637:47;;-1:-1:-1;7671:1:0;7664:8;;7637:47;7696:9;7708:5;7712:1;7708;:5;:::i;:::-;7696:17;-1:-1:-1;7741:1:0;7732:5;7736:1;7696:17;7732:5;:::i;:::-;:10;7724:56;;;;-1:-1:-1;;;7724:56:0;;15323:2:1;7724:56:0;;;15305:21:1;15362:2;15342:18;;;15335:30;15401:34;15381:18;;;15374:62;-1:-1:-1;;;15452:18:1;;;15445:31;15493:19;;7724:56:0;15121:397:1;7953:345:0;8039:7;8141:12;8134:5;8126:28;;;;-1:-1:-1;;;8126:28:0;;;;;;;;:::i;:::-;-1:-1:-1;8165:9:0;8177:5;8181:1;8177;:5;:::i;29348:197::-;29435:4;;29397;;-1:-1:-1;;;;;29435:4:0;29421:10;:18;;;;:38;;-1:-1:-1;29453:6:0;;;;29452:7;29421:38;:62;;;;-1:-1:-1;29472:11:0;;;;29421:62;:116;;;;-1:-1:-1;;29524:13:0;;29514:4;29496:24;;;;:9;:24;;;;;;:41;;;29348:197::o;30720:1754::-;23424:6;:13;;-1:-1:-1;;23424:13:0;23433:4;23424:13;;;30815:15:::1;::::0;30832:26:::1;::::0;23424:6;;30799:60:::1;::::0;:15:::1;:60::i;:::-;:79;;30866:12;;30799:79;;;30862:1;30799:79;30769:109;;30889:23;30915:59;30972:1;30915:52;30958:8;;30915:38;30933:19;30915:13;;:17;;:38;;;;:::i;:59::-;30889:85;;30985:20;31008:34;31026:15;31008:13;;:17;;:34;;;;:::i;:::-;31079:16;::::0;;31093:1:::1;31079:16:::0;;;;;::::1;::::0;;30985:57;;-1:-1:-1;31055:21:0::1;::::0;31079:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;31079:16:0::1;31055:40;;31124:4;31106;31111:1;31106:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;31106:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;31150:4:::1;::::0;31140:7;;31150:4;::::1;::::0;31140;;31150;;31140:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;31140:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;31225:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;31225:188:0;;31191:21:::1;::::0;31225:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;31297:12;;31167:21:::1;::::0;31340:4;;31367::::1;::::0;31387:15:::1;::::0;31225:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;31426:17;31446:40;31472:13;31446:21;:25;;:40;;;;:::i;:::-;31426:60:::0;-1:-1:-1;31499:19:0::1;31521:40;31534:26;:19:::0;31558:1:::1;31534:23;:26::i;:::-;31521:8;::::0;;:12:::1;:40::i;:::-;31499:62:::0;-1:-1:-1;31582:26:0::1;31611:58;31667:1;31611:51;31499:62:::0;31611:51;:9;31625:19;31611:13:::1;:34::i;:58::-;31582:87;;31680:23;31706:41;31735:11;31706:24;31720:9;;31706;:13;;:24;;;;:::i;:41::-;31680:67;;31758:26;31787:44;31819:11;31787:27;31801:12;;31787:9;:13;;:27;;;;:::i;:44::-;31758:73;;31848:11;;;;;;;;;-1:-1:-1::0;;;;;31848:11:0::1;-1:-1:-1::0;;;;;31848:19:0::1;;31875:15;31848:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;31944:20:0::1;::::0;31936:77:::1;::::0;31916:15:::1;::::0;-1:-1:-1;;;;;31944:20:0::1;::::0;32003:5:::1;::::0;31978:18;;31916:15;31936:77;31916:15;31936:77;31978:18;31944:20;32003:5;31936:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;32087:5:0::1;::::0;-1:-1:-1;;32108:19:0;;;-1:-1:-1;32105:362:0::1;;32143:6;::::0;32317:21:::1;::::0;32143:244:::1;::::0;-1:-1:-1;;;32143:244:0;;32219:4:::1;32143:244;::::0;::::1;8554:34:1::0;8604:18;;;8597:34;;;32143:6:0::1;8647:18:1::0;;;8640:34;;;8690:18;;;8683:34;-1:-1:-1;;;;;32317:21:0;;::::1;8733:19:1::0;;;8726:44;32357:15:0::1;8786:19:1::0;;;8779:35;32143:6:0;::::1;::::0;:22:::1;::::0;32173:18;;8488:19:1;;32143:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;32407:48:0::1;::::0;;19356:25:1;;;19412:2;19397:18;;19390:34;;;32407:48:0::1;::::0;-1:-1:-1;19329:18:1;32407:48:0::1;;;;;;;32105:362;-1:-1:-1::0;;23442:6:0;:14;;-1:-1:-1;;23442:14:0;;;-1:-1:-1;;;;;;;;;30720:1754:0:o;28602:738::-;28705:4;;28669:7;;-1:-1:-1;;;;;28695:14:0;;;28705:4;;28695:14;28691:318;;;28740:15;;28725:12;:30;28785:15;;28770:12;:30;28827:12;;28815:9;:24;28691:318;;;28895:16;;28880:12;:31;28941:16;;28926:12;:31;28984:13;;28972:9;:25;28691:318;29030:45;29065:9;;29030:30;29047:12;;29030;;:16;;:30;;;;:::i;:::-;:34;;:45::i;:::-;29019:8;:56;;;29139:14;;29094:17;;29114:40;;29139:14;29114:20;;:6;;:10;:20::i;:40::-;29212:4;29194:24;;;;:9;:24;;;;;;29094:60;;-1:-1:-1;29194:39:0;;29094:60;29194:28;:39::i;:::-;29185:4;29167:24;;;;:9;:24;;;;;;;:66;;;;29249:42;;-1:-1:-1;;;;;29249:42:0;;;;;;;29281:9;18161:25:1;;18149:2;18134:18;;18015:177;29249:42:0;;;;;;;;29311:21;:6;29322:9;29311:10;:21::i;:::-;29304:28;28602:738;-1:-1:-1;;;;28602:738:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:367:1;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:247::-;445:6;498:2;486:9;477:7;473:23;469:32;466:52;;;514:1;511;504:12;466:52;553:9;540:23;572:31;597:5;572:31;:::i;898:388::-;966:6;974;1027:2;1015:9;1006:7;1002:23;998:32;995:52;;;1043:1;1040;1033:12;995:52;1082:9;1069:23;1101:31;1126:5;1101:31;:::i;:::-;1151:5;-1:-1:-1;1208:2:1;1193:18;;1180:32;1221:33;1180:32;1221:33;:::i;:::-;1273:7;1263:17;;;898:388;;;;;:::o;1291:456::-;1368:6;1376;1384;1437:2;1425:9;1416:7;1412:23;1408:32;1405:52;;;1453:1;1450;1443:12;1405:52;1492:9;1479:23;1511:31;1536:5;1511:31;:::i;:::-;1561:5;-1:-1:-1;1618:2:1;1603:18;;1590:32;1631:33;1590:32;1631:33;:::i;:::-;1291:456;;1683:7;;-1:-1:-1;;;1737:2:1;1722:18;;;;1709:32;;1291:456::o;1752:382::-;1817:6;1825;1878:2;1866:9;1857:7;1853:23;1849:32;1846:52;;;1894:1;1891;1884:12;1846:52;1933:9;1920:23;1952:31;1977:5;1952:31;:::i;:::-;2002:5;-1:-1:-1;2059:2:1;2044:18;;2031:32;2072:30;2031:32;2072:30;:::i;2139:315::-;2207:6;2215;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;2323:9;2310:23;2342:31;2367:5;2342:31;:::i;:::-;2392:5;2444:2;2429:18;;;;2416:32;;-1:-1:-1;;;2139:315:1:o;2459:773::-;2581:6;2589;2597;2605;2658:2;2646:9;2637:7;2633:23;2629:32;2626:52;;;2674:1;2671;2664:12;2626:52;2714:9;2701:23;2743:18;2784:2;2776:6;2773:14;2770:34;;;2800:1;2797;2790:12;2770:34;2839:70;2901:7;2892:6;2881:9;2877:22;2839:70;:::i;:::-;2928:8;;-1:-1:-1;2813:96:1;-1:-1:-1;3016:2:1;3001:18;;2988:32;;-1:-1:-1;3032:16:1;;;3029:36;;;3061:1;3058;3051:12;3029:36;;3100:72;3164:7;3153:8;3142:9;3138:24;3100:72;:::i;:::-;2459:773;;;;-1:-1:-1;3191:8:1;-1:-1:-1;;;;2459:773:1:o;3237:241::-;3293:6;3346:2;3334:9;3325:7;3321:23;3317:32;3314:52;;;3362:1;3359;3352:12;3314:52;3401:9;3388:23;3420:28;3442:5;3420:28;:::i;3483:245::-;3550:6;3603:2;3591:9;3582:7;3578:23;3574:32;3571:52;;;3619:1;3616;3609:12;3571:52;3651:9;3645:16;3670:28;3692:5;3670:28;:::i;3733:309::-;3798:6;3806;3859:2;3847:9;3838:7;3834:23;3830:32;3827:52;;;3875:1;3872;3865:12;3827:52;3914:9;3901:23;3933:28;3955:5;3933:28;:::i;4313:180::-;4372:6;4425:2;4413:9;4404:7;4400:23;4396:32;4393:52;;;4441:1;4438;4431:12;4393:52;-1:-1:-1;4464:23:1;;4313:180;-1:-1:-1;4313:180:1:o;4498:184::-;4568:6;4621:2;4609:9;4600:7;4596:23;4592:32;4589:52;;;4637:1;4634;4627:12;4589:52;-1:-1:-1;4660:16:1;;4498:184;-1:-1:-1;4498:184:1:o;4687:248::-;4755:6;4763;4816:2;4804:9;4795:7;4791:23;4787:32;4784:52;;;4832:1;4829;4822:12;4784:52;-1:-1:-1;;4855:23:1;;;4925:2;4910:18;;;4897:32;;-1:-1:-1;4687:248:1:o;4940:1058::-;5027:6;5035;5043;5096:2;5084:9;5075:7;5071:23;5067:32;5064:52;;;5112:1;5109;5102:12;5064:52;5148:9;5135:23;5125:33;;5205:2;5194:9;5190:18;5177:32;5167:42;;5260:2;5249:9;5245:18;5232:32;5283:18;5324:2;5316:6;5313:14;5310:34;;;5340:1;5337;5330:12;5310:34;5378:6;5367:9;5363:22;5353:32;;5423:7;5416:4;5412:2;5408:13;5404:27;5394:55;;5445:1;5442;5435:12;5394:55;5481:2;5468:16;5503:2;5499;5496:10;5493:36;;;5509:18;;:::i;:::-;5584:2;5578:9;5552:2;5638:13;;-1:-1:-1;;5634:22:1;;;5658:2;5630:31;5626:40;5614:53;;;5682:18;;;5702:22;;;5679:46;5676:72;;;5728:18;;:::i;:::-;5768:10;5764:2;5757:22;5803:2;5795:6;5788:18;5843:7;5838:2;5833;5829;5825:11;5821:20;5818:33;5815:53;;;5864:1;5861;5854:12;5815:53;5920:2;5915;5911;5907:11;5902:2;5894:6;5890:15;5877:46;5965:1;5960:2;5955;5947:6;5943:15;5939:24;5932:35;5986:6;5976:16;;;;;;;4940:1058;;;;;:::o;6003:306::-;6091:6;6099;6107;6160:2;6148:9;6139:7;6135:23;6131:32;6128:52;;;6176:1;6173;6166:12;6128:52;6205:9;6199:16;6189:26;;6255:2;6244:9;6240:18;6234:25;6224:35;;6299:2;6288:9;6284:18;6278:25;6268:35;;6003:306;;;;;:::o;6314:385::-;6400:6;6408;6416;6424;6477:3;6465:9;6456:7;6452:23;6448:33;6445:53;;;6494:1;6491;6484:12;6445:53;-1:-1:-1;;6517:23:1;;;6587:2;6572:18;;6559:32;;-1:-1:-1;6638:2:1;6623:18;;6610:32;;6689:2;6674:18;6661:32;;-1:-1:-1;6314:385:1;-1:-1:-1;6314:385:1:o;9479:597::-;9591:4;9620:2;9649;9638:9;9631:21;9681:6;9675:13;9724:6;9719:2;9708:9;9704:18;9697:34;9749:1;9759:140;9773:6;9770:1;9767:13;9759:140;;;9868:14;;;9864:23;;9858:30;9834:17;;;9853:2;9830:26;9823:66;9788:10;;9759:140;;;9917:6;9914:1;9911:13;9908:91;;;9987:1;9982:2;9973:6;9962:9;9958:22;9954:31;9947:42;9908:91;-1:-1:-1;10060:2:1;10039:15;-1:-1:-1;;10035:29:1;10020:45;;;;10067:2;10016:54;;9479:597;-1:-1:-1;;;9479:597:1:o;15925:329::-;16127:2;16109:21;;;16166:1;16146:18;;;16139:29;-1:-1:-1;;;16199:2:1;16184:18;;16177:36;16245:2;16230:18;;15925:329::o;16963:335::-;17165:2;17147:21;;;17204:2;17184:18;;;17177:30;-1:-1:-1;;;17238:2:1;17223:18;;17216:41;17289:2;17274:18;;16963:335::o;18197:980::-;18459:4;18507:3;18496:9;18492:19;18538:6;18527:9;18520:25;18564:2;18602:6;18597:2;18586:9;18582:18;18575:34;18645:3;18640:2;18629:9;18625:18;18618:31;18669:6;18704;18698:13;18735:6;18727;18720:22;18773:3;18762:9;18758:19;18751:26;;18812:2;18804:6;18800:15;18786:29;;18833:1;18843:195;18857:6;18854:1;18851:13;18843:195;;;18922:13;;-1:-1:-1;;;;;18918:39:1;18906:52;;19013:15;;;;18978:12;;;;18954:1;18872:9;18843:195;;;-1:-1:-1;;;;;;;19094:32:1;;;;19089:2;19074:18;;19067:60;-1:-1:-1;;;19158:3:1;19143:19;19136:35;19055:3;18197:980;-1:-1:-1;;;18197:980:1:o;19624:128::-;19664:3;19695:1;19691:6;19688:1;19685:13;19682:39;;;19701:18;;:::i;:::-;-1:-1:-1;19737:9:1;;19624:128::o;19757:217::-;19797:1;19823;19813:132;;19867:10;19862:3;19858:20;19855:1;19848:31;19902:4;19899:1;19892:15;19930:4;19927:1;19920:15;19813:132;-1:-1:-1;19959:9:1;;19757:217::o;19979:168::-;20019:7;20085:1;20081;20077:6;20073:14;20070:1;20067:21;20062:1;20055:9;20048:17;20044:45;20041:71;;;20092:18;;:::i;:::-;-1:-1:-1;20132:9:1;;19979:168::o;20152:125::-;20192:4;20220:1;20217;20214:8;20211:34;;;20225:18;;:::i;:::-;-1:-1:-1;20262:9:1;;20152:125::o;20282:380::-;20361:1;20357:12;;;;20404;;;20425:61;;20479:4;20471:6;20467:17;20457:27;;20425:61;20532:2;20524:6;20521:14;20501:18;20498:38;20495:161;;;20578:10;20573:3;20569:20;20566:1;20559:31;20613:4;20610:1;20603:15;20641:4;20638:1;20631:15;20495:161;;20282:380;;;:::o;20667:135::-;20706:3;-1:-1:-1;;20727:17:1;;20724:43;;;20747:18;;:::i;:::-;-1:-1:-1;20794:1:1;20783:13;;20667:135::o;20807:127::-;20868:10;20863:3;20859:20;20856:1;20849:31;20899:4;20896:1;20889:15;20923:4;20920:1;20913:15;20939:127;21000:10;20995:3;20991:20;20988:1;20981:31;21031:4;21028:1;21021:15;21055:4;21052:1;21045:15;21071:127;21132:10;21127:3;21123:20;21120:1;21113:31;21163:4;21160:1;21153:15;21187:4;21184:1;21177:15;21203:131;-1:-1:-1;;;;;21278:31:1;;21268:42;;21258:70;;21324:1;21321;21314:12;21339:118;21425:5;21418:13;21411:21;21404:5;21401:32;21391:60;;21447:1;21444;21437:12

Swarm Source

ipfs://32d23f1f38747099fcbd06cdb7228c603403f1f35a876205eac9d3094afeeaf9
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.