@pendle/core-v2 6.9.0 → 6.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooper.json +244 -249
- package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooperEIP712Types.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.json +244 -249
- package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.json +2 -2
- package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.json +246 -251
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarket.sol/BaseMoneyMarket.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarketView.sol/BaseMoneyMarketView.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.json +2 -2
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.json +2 -2
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol/AaveV4MMPayloadLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol/AaveV4MMPayloadLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol/AaveV4MoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol/AaveV4MoneyMarket.json +615 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol/AaveV4MoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol/AaveV4MoneyMarketView.json +280 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol/IAaveOracle.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol/IAaveOracle.json +30 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol/IHubBase.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol/IHubBase.json +322 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol/ISpoke.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol/ISpoke.json +398 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol/EulerMMPayloadLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol/EulerMMPayloadLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol/EulerMoneyMarket.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol/EulerMoneyMarket.json +651 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol/EulerMoneyMarketView.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol/EulerMoneyMarketView.json +298 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol/IEVC.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol/IEVC.json +959 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol/IEulerFactory.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol/IEulerFactory.json +30 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol/IEulerPriceOracle.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol/IEulerPriceOracle.json +53 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/AmountCapLib.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/AmountCapLib.json +10 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/IEulerVault.dbg.json +4 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/IEulerVault.json +933 -0
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.json +2 -2
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.dbg.json +1 -1
- package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/interfaces/IPPTLooper.sol +2 -4
- package/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol +6 -6
- package/contracts/pt-looping/PendlePTLooper.sol +4 -2
- package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol +20 -0
- package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol +85 -0
- package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol +180 -0
- package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol +12 -0
- package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol +72 -0
- package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol +88 -0
- package/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol +25 -0
- package/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol +104 -0
- package/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol +105 -0
- package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol +432 -0
- package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol +10 -0
- package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol +26 -0
- package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol +149 -0
- package/contracts/router/swap-aggregator/OKXScaleHelper.sol +3 -0
- package/deployments/143-core.json +4 -1
- package/deployments/42161-core.json +4 -1
- package/deployments/4663-core.json +48 -0
- package/deployments/4663-offchain-helper.json +12 -0
- package/package.json +1 -1
- package/typechain-types/AaveV4MoneyMarket.ts +573 -0
- package/typechain-types/AaveV4MoneyMarketView.ts +362 -0
- package/typechain-types/EulerMoneyMarket.ts +599 -0
- package/typechain-types/EulerMoneyMarketView.ts +375 -0
- package/typechain-types/IAaveOracle.ts +17 -149
- package/typechain-types/IEVC.ts +1647 -0
- package/typechain-types/IEulerFactory.ts +94 -0
- package/typechain-types/IEulerPriceOracle.ts +123 -0
- package/typechain-types/IEulerVault.ts +1298 -0
- package/typechain-types/IHubBase.ts +452 -0
- package/typechain-types/IPPTLooper.ts +68 -68
- package/typechain-types/ISpoke.ts +577 -0
- package/typechain-types/PTLooperBase.ts +68 -68
- package/typechain-types/PendlePTLooper.ts +68 -68
- package/typechain-types/factories/AaveMoneyMarketView__factory.ts +1 -1
- package/typechain-types/factories/AaveMoneyMarket__factory.ts +1 -1
- package/typechain-types/factories/AaveV4MoneyMarketView__factory.ts +349 -0
- package/typechain-types/factories/AaveV4MoneyMarket__factory.ts +673 -0
- package/typechain-types/factories/EulerMoneyMarketView__factory.ts +371 -0
- package/typechain-types/factories/EulerMoneyMarket__factory.ts +720 -0
- package/typechain-types/factories/IAaveOracle__factory.ts +3 -93
- package/typechain-types/factories/IEVC__factory.ts +968 -0
- package/typechain-types/factories/IEulerFactory__factory.ts +42 -0
- package/typechain-types/factories/IEulerPriceOracle__factory.ts +68 -0
- package/typechain-types/factories/IEulerVault__factory.ts +945 -0
- package/typechain-types/factories/IHubBase__factory.ts +334 -0
- package/typechain-types/factories/IPPTLooper__factory.ts +243 -248
- package/typechain-types/factories/ISpoke__factory.ts +407 -0
- package/typechain-types/factories/MorphoBlueMoneyMarketView__factory.ts +1 -1
- package/typechain-types/factories/MorphoBlueMoneyMarket__factory.ts +1 -1
- package/typechain-types/factories/PTLooperBase__factory.ts +243 -248
- package/typechain-types/factories/PendlePTLooper__factory.ts +244 -249
- package/typechain-types/factories/PendleSwap__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +99 -0
- package/typechain-types/index.ts +22 -2
|
@@ -700,6 +700,11 @@
|
|
|
700
700
|
"name": "amountPtWithdrawn",
|
|
701
701
|
"type": "uint256"
|
|
702
702
|
},
|
|
703
|
+
{
|
|
704
|
+
"internalType": "uint256",
|
|
705
|
+
"name": "fee",
|
|
706
|
+
"type": "uint256"
|
|
707
|
+
},
|
|
703
708
|
{
|
|
704
709
|
"internalType": "bytes",
|
|
705
710
|
"name": "postStateCheckData",
|
|
@@ -836,94 +841,6 @@
|
|
|
836
841
|
"stateMutability": "view",
|
|
837
842
|
"type": "function"
|
|
838
843
|
},
|
|
839
|
-
{
|
|
840
|
-
"inputs": [
|
|
841
|
-
{
|
|
842
|
-
"components": [
|
|
843
|
-
{
|
|
844
|
-
"components": [
|
|
845
|
-
{
|
|
846
|
-
"internalType": "bytes32",
|
|
847
|
-
"name": "boxId",
|
|
848
|
-
"type": "bytes32"
|
|
849
|
-
},
|
|
850
|
-
{
|
|
851
|
-
"internalType": "uint256",
|
|
852
|
-
"name": "expiry",
|
|
853
|
-
"type": "uint256"
|
|
854
|
-
},
|
|
855
|
-
{
|
|
856
|
-
"internalType": "uint32",
|
|
857
|
-
"name": "sessionNonce",
|
|
858
|
-
"type": "uint32"
|
|
859
|
-
},
|
|
860
|
-
{
|
|
861
|
-
"internalType": "uint32",
|
|
862
|
-
"name": "permitNonceCap",
|
|
863
|
-
"type": "uint32"
|
|
864
|
-
},
|
|
865
|
-
{
|
|
866
|
-
"internalType": "uint256",
|
|
867
|
-
"name": "swapBridgeSlippage",
|
|
868
|
-
"type": "uint256"
|
|
869
|
-
},
|
|
870
|
-
{
|
|
871
|
-
"internalType": "bytes",
|
|
872
|
-
"name": "offchainMetadata",
|
|
873
|
-
"type": "bytes"
|
|
874
|
-
}
|
|
875
|
-
],
|
|
876
|
-
"internalType": "struct IPPTLooperEIP712Types.RequestHeader",
|
|
877
|
-
"name": "header",
|
|
878
|
-
"type": "tuple"
|
|
879
|
-
},
|
|
880
|
-
{
|
|
881
|
-
"internalType": "address",
|
|
882
|
-
"name": "initTokenIn",
|
|
883
|
-
"type": "address"
|
|
884
|
-
},
|
|
885
|
-
{
|
|
886
|
-
"internalType": "uint256",
|
|
887
|
-
"name": "initMinToPtSwapRate",
|
|
888
|
-
"type": "uint256"
|
|
889
|
-
},
|
|
890
|
-
{
|
|
891
|
-
"internalType": "uint256",
|
|
892
|
-
"name": "minDebtToPtSwapRate",
|
|
893
|
-
"type": "uint256"
|
|
894
|
-
},
|
|
895
|
-
{
|
|
896
|
-
"internalType": "uint256",
|
|
897
|
-
"name": "postBorrowMaxLTV",
|
|
898
|
-
"type": "uint256"
|
|
899
|
-
},
|
|
900
|
-
{
|
|
901
|
-
"internalType": "bool",
|
|
902
|
-
"name": "isZeroPriceImpact",
|
|
903
|
-
"type": "bool"
|
|
904
|
-
},
|
|
905
|
-
{
|
|
906
|
-
"internalType": "uint256",
|
|
907
|
-
"name": "maxFeeRate",
|
|
908
|
-
"type": "uint256"
|
|
909
|
-
}
|
|
910
|
-
],
|
|
911
|
-
"internalType": "struct IPPTLooperEIP712Types.IncreasePositionRequest",
|
|
912
|
-
"name": "req",
|
|
913
|
-
"type": "tuple"
|
|
914
|
-
}
|
|
915
|
-
],
|
|
916
|
-
"name": "hashRaw",
|
|
917
|
-
"outputs": [
|
|
918
|
-
{
|
|
919
|
-
"internalType": "bytes32",
|
|
920
|
-
"name": "",
|
|
921
|
-
"type": "bytes32"
|
|
922
|
-
}
|
|
923
|
-
],
|
|
924
|
-
"stateMutability": "pure",
|
|
925
|
-
"type": "function"
|
|
926
|
-
},
|
|
927
844
|
{
|
|
928
845
|
"inputs": [
|
|
929
846
|
{
|
|
@@ -1117,6 +1034,89 @@
|
|
|
1117
1034
|
"stateMutability": "pure",
|
|
1118
1035
|
"type": "function"
|
|
1119
1036
|
},
|
|
1037
|
+
{
|
|
1038
|
+
"inputs": [
|
|
1039
|
+
{
|
|
1040
|
+
"components": [
|
|
1041
|
+
{
|
|
1042
|
+
"components": [
|
|
1043
|
+
{
|
|
1044
|
+
"internalType": "bytes32",
|
|
1045
|
+
"name": "boxId",
|
|
1046
|
+
"type": "bytes32"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"internalType": "uint256",
|
|
1050
|
+
"name": "expiry",
|
|
1051
|
+
"type": "uint256"
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"internalType": "uint32",
|
|
1055
|
+
"name": "sessionNonce",
|
|
1056
|
+
"type": "uint32"
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"internalType": "uint32",
|
|
1060
|
+
"name": "permitNonceCap",
|
|
1061
|
+
"type": "uint32"
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"internalType": "uint256",
|
|
1065
|
+
"name": "swapBridgeSlippage",
|
|
1066
|
+
"type": "uint256"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"internalType": "bytes",
|
|
1070
|
+
"name": "offchainMetadata",
|
|
1071
|
+
"type": "bytes"
|
|
1072
|
+
}
|
|
1073
|
+
],
|
|
1074
|
+
"internalType": "struct IPPTLooperEIP712Types.RequestHeader",
|
|
1075
|
+
"name": "header",
|
|
1076
|
+
"type": "tuple"
|
|
1077
|
+
},
|
|
1078
|
+
{
|
|
1079
|
+
"internalType": "address",
|
|
1080
|
+
"name": "initTokenIn",
|
|
1081
|
+
"type": "address"
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
"internalType": "uint256",
|
|
1085
|
+
"name": "initMinToPtSwapRate",
|
|
1086
|
+
"type": "uint256"
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"internalType": "uint256",
|
|
1090
|
+
"name": "minDebtToPtSwapRate",
|
|
1091
|
+
"type": "uint256"
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"internalType": "uint256",
|
|
1095
|
+
"name": "postBorrowMaxLTV",
|
|
1096
|
+
"type": "uint256"
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
"internalType": "bool",
|
|
1100
|
+
"name": "isZeroPriceImpact",
|
|
1101
|
+
"type": "bool"
|
|
1102
|
+
}
|
|
1103
|
+
],
|
|
1104
|
+
"internalType": "struct IPPTLooperEIP712Types.IncreasePositionRequest",
|
|
1105
|
+
"name": "req",
|
|
1106
|
+
"type": "tuple"
|
|
1107
|
+
}
|
|
1108
|
+
],
|
|
1109
|
+
"name": "hashRaw",
|
|
1110
|
+
"outputs": [
|
|
1111
|
+
{
|
|
1112
|
+
"internalType": "bytes32",
|
|
1113
|
+
"name": "",
|
|
1114
|
+
"type": "bytes32"
|
|
1115
|
+
}
|
|
1116
|
+
],
|
|
1117
|
+
"stateMutability": "pure",
|
|
1118
|
+
"type": "function"
|
|
1119
|
+
},
|
|
1120
1120
|
{
|
|
1121
1121
|
"inputs": [
|
|
1122
1122
|
{
|
|
@@ -1446,11 +1446,6 @@
|
|
|
1446
1446
|
"components": [
|
|
1447
1447
|
{
|
|
1448
1448
|
"components": [
|
|
1449
|
-
{
|
|
1450
|
-
"internalType": "address",
|
|
1451
|
-
"name": "owner",
|
|
1452
|
-
"type": "address"
|
|
1453
|
-
},
|
|
1454
1449
|
{
|
|
1455
1450
|
"internalType": "bytes32",
|
|
1456
1451
|
"name": "boxId",
|
|
@@ -1462,89 +1457,58 @@
|
|
|
1462
1457
|
"type": "uint256"
|
|
1463
1458
|
},
|
|
1464
1459
|
{
|
|
1465
|
-
"internalType": "
|
|
1466
|
-
"name": "
|
|
1467
|
-
"type": "
|
|
1468
|
-
}
|
|
1469
|
-
],
|
|
1470
|
-
"internalType": "struct IPPTLooperEIP712Types.BoxPermit",
|
|
1471
|
-
"name": "permit",
|
|
1472
|
-
"type": "tuple"
|
|
1473
|
-
},
|
|
1474
|
-
{
|
|
1475
|
-
"components": [
|
|
1460
|
+
"internalType": "uint32",
|
|
1461
|
+
"name": "sessionNonce",
|
|
1462
|
+
"type": "uint32"
|
|
1463
|
+
},
|
|
1476
1464
|
{
|
|
1477
|
-
"internalType": "
|
|
1478
|
-
"name": "
|
|
1479
|
-
"type": "
|
|
1465
|
+
"internalType": "uint32",
|
|
1466
|
+
"name": "permitNonceCap",
|
|
1467
|
+
"type": "uint32"
|
|
1480
1468
|
},
|
|
1481
1469
|
{
|
|
1482
|
-
"internalType": "
|
|
1483
|
-
"name": "
|
|
1484
|
-
"type": "
|
|
1470
|
+
"internalType": "uint256",
|
|
1471
|
+
"name": "swapBridgeSlippage",
|
|
1472
|
+
"type": "uint256"
|
|
1485
1473
|
},
|
|
1486
1474
|
{
|
|
1487
1475
|
"internalType": "bytes",
|
|
1488
|
-
"name": "
|
|
1476
|
+
"name": "offchainMetadata",
|
|
1489
1477
|
"type": "bytes"
|
|
1490
1478
|
}
|
|
1491
1479
|
],
|
|
1492
|
-
"internalType": "struct IPPTLooperEIP712Types.
|
|
1493
|
-
"name": "
|
|
1480
|
+
"internalType": "struct IPPTLooperEIP712Types.RequestHeader",
|
|
1481
|
+
"name": "header",
|
|
1494
1482
|
"type": "tuple"
|
|
1495
1483
|
},
|
|
1496
1484
|
{
|
|
1497
|
-
"
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
{
|
|
1501
|
-
"internalType": "address",
|
|
1502
|
-
"name": "extRouter",
|
|
1503
|
-
"type": "address"
|
|
1504
|
-
},
|
|
1505
|
-
{
|
|
1506
|
-
"internalType": "address",
|
|
1507
|
-
"name": "approve",
|
|
1508
|
-
"type": "address"
|
|
1509
|
-
},
|
|
1510
|
-
{
|
|
1511
|
-
"internalType": "bytes",
|
|
1512
|
-
"name": "callData",
|
|
1513
|
-
"type": "bytes"
|
|
1514
|
-
}
|
|
1515
|
-
],
|
|
1516
|
-
"internalType": "struct IPPTLooperEIP712Types.BoxApprovedCall",
|
|
1517
|
-
"name": "call",
|
|
1518
|
-
"type": "tuple"
|
|
1519
|
-
},
|
|
1520
|
-
{
|
|
1521
|
-
"internalType": "uint256",
|
|
1522
|
-
"name": "maxAmount",
|
|
1523
|
-
"type": "uint256"
|
|
1524
|
-
},
|
|
1525
|
-
{
|
|
1526
|
-
"internalType": "uint256",
|
|
1527
|
-
"name": "nativeFee",
|
|
1528
|
-
"type": "uint256"
|
|
1529
|
-
}
|
|
1530
|
-
],
|
|
1531
|
-
"internalType": "struct IPPTLooperEIP712Types.BridgeData",
|
|
1532
|
-
"name": "bridge",
|
|
1533
|
-
"type": "tuple"
|
|
1485
|
+
"internalType": "address",
|
|
1486
|
+
"name": "initTokenIn",
|
|
1487
|
+
"type": "address"
|
|
1534
1488
|
},
|
|
1535
1489
|
{
|
|
1536
1490
|
"internalType": "uint256",
|
|
1537
|
-
"name": "
|
|
1491
|
+
"name": "initMinToPtSwapRate",
|
|
1538
1492
|
"type": "uint256"
|
|
1539
1493
|
},
|
|
1540
1494
|
{
|
|
1541
|
-
"internalType": "
|
|
1542
|
-
"name": "
|
|
1543
|
-
"type": "
|
|
1495
|
+
"internalType": "uint256",
|
|
1496
|
+
"name": "minDebtToPtSwapRate",
|
|
1497
|
+
"type": "uint256"
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
"internalType": "uint256",
|
|
1501
|
+
"name": "postBorrowMaxLTV",
|
|
1502
|
+
"type": "uint256"
|
|
1503
|
+
},
|
|
1504
|
+
{
|
|
1505
|
+
"internalType": "bool",
|
|
1506
|
+
"name": "isZeroPriceImpact",
|
|
1507
|
+
"type": "bool"
|
|
1544
1508
|
}
|
|
1545
1509
|
],
|
|
1546
|
-
"internalType": "struct IPPTLooperEIP712Types.
|
|
1547
|
-
"name": "
|
|
1510
|
+
"internalType": "struct IPPTLooperEIP712Types.IncreasePositionRequest",
|
|
1511
|
+
"name": "req",
|
|
1548
1512
|
"type": "tuple"
|
|
1549
1513
|
}
|
|
1550
1514
|
],
|
|
@@ -1834,94 +1798,6 @@
|
|
|
1834
1798
|
"stateMutability": "view",
|
|
1835
1799
|
"type": "function"
|
|
1836
1800
|
},
|
|
1837
|
-
{
|
|
1838
|
-
"inputs": [
|
|
1839
|
-
{
|
|
1840
|
-
"components": [
|
|
1841
|
-
{
|
|
1842
|
-
"components": [
|
|
1843
|
-
{
|
|
1844
|
-
"internalType": "bytes32",
|
|
1845
|
-
"name": "boxId",
|
|
1846
|
-
"type": "bytes32"
|
|
1847
|
-
},
|
|
1848
|
-
{
|
|
1849
|
-
"internalType": "uint256",
|
|
1850
|
-
"name": "expiry",
|
|
1851
|
-
"type": "uint256"
|
|
1852
|
-
},
|
|
1853
|
-
{
|
|
1854
|
-
"internalType": "uint32",
|
|
1855
|
-
"name": "sessionNonce",
|
|
1856
|
-
"type": "uint32"
|
|
1857
|
-
},
|
|
1858
|
-
{
|
|
1859
|
-
"internalType": "uint32",
|
|
1860
|
-
"name": "permitNonceCap",
|
|
1861
|
-
"type": "uint32"
|
|
1862
|
-
},
|
|
1863
|
-
{
|
|
1864
|
-
"internalType": "uint256",
|
|
1865
|
-
"name": "swapBridgeSlippage",
|
|
1866
|
-
"type": "uint256"
|
|
1867
|
-
},
|
|
1868
|
-
{
|
|
1869
|
-
"internalType": "bytes",
|
|
1870
|
-
"name": "offchainMetadata",
|
|
1871
|
-
"type": "bytes"
|
|
1872
|
-
}
|
|
1873
|
-
],
|
|
1874
|
-
"internalType": "struct IPPTLooperEIP712Types.RequestHeader",
|
|
1875
|
-
"name": "header",
|
|
1876
|
-
"type": "tuple"
|
|
1877
|
-
},
|
|
1878
|
-
{
|
|
1879
|
-
"internalType": "address",
|
|
1880
|
-
"name": "initTokenIn",
|
|
1881
|
-
"type": "address"
|
|
1882
|
-
},
|
|
1883
|
-
{
|
|
1884
|
-
"internalType": "uint256",
|
|
1885
|
-
"name": "initMinToPtSwapRate",
|
|
1886
|
-
"type": "uint256"
|
|
1887
|
-
},
|
|
1888
|
-
{
|
|
1889
|
-
"internalType": "uint256",
|
|
1890
|
-
"name": "minDebtToPtSwapRate",
|
|
1891
|
-
"type": "uint256"
|
|
1892
|
-
},
|
|
1893
|
-
{
|
|
1894
|
-
"internalType": "uint256",
|
|
1895
|
-
"name": "postBorrowMaxLTV",
|
|
1896
|
-
"type": "uint256"
|
|
1897
|
-
},
|
|
1898
|
-
{
|
|
1899
|
-
"internalType": "bool",
|
|
1900
|
-
"name": "isZeroPriceImpact",
|
|
1901
|
-
"type": "bool"
|
|
1902
|
-
},
|
|
1903
|
-
{
|
|
1904
|
-
"internalType": "uint256",
|
|
1905
|
-
"name": "maxFeeRate",
|
|
1906
|
-
"type": "uint256"
|
|
1907
|
-
}
|
|
1908
|
-
],
|
|
1909
|
-
"internalType": "struct IPPTLooperEIP712Types.IncreasePositionRequest",
|
|
1910
|
-
"name": "req",
|
|
1911
|
-
"type": "tuple"
|
|
1912
|
-
}
|
|
1913
|
-
],
|
|
1914
|
-
"name": "hashTyped",
|
|
1915
|
-
"outputs": [
|
|
1916
|
-
{
|
|
1917
|
-
"internalType": "bytes32",
|
|
1918
|
-
"name": "",
|
|
1919
|
-
"type": "bytes32"
|
|
1920
|
-
}
|
|
1921
|
-
],
|
|
1922
|
-
"stateMutability": "view",
|
|
1923
|
-
"type": "function"
|
|
1924
|
-
},
|
|
1925
1801
|
{
|
|
1926
1802
|
"inputs": [
|
|
1927
1803
|
{
|
|
@@ -2084,6 +1960,130 @@
|
|
|
2084
1960
|
"stateMutability": "view",
|
|
2085
1961
|
"type": "function"
|
|
2086
1962
|
},
|
|
1963
|
+
{
|
|
1964
|
+
"inputs": [
|
|
1965
|
+
{
|
|
1966
|
+
"components": [
|
|
1967
|
+
{
|
|
1968
|
+
"components": [
|
|
1969
|
+
{
|
|
1970
|
+
"internalType": "address",
|
|
1971
|
+
"name": "owner",
|
|
1972
|
+
"type": "address"
|
|
1973
|
+
},
|
|
1974
|
+
{
|
|
1975
|
+
"internalType": "bytes32",
|
|
1976
|
+
"name": "boxId",
|
|
1977
|
+
"type": "bytes32"
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
"internalType": "uint256",
|
|
1981
|
+
"name": "expiry",
|
|
1982
|
+
"type": "uint256"
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
"internalType": "uint256",
|
|
1986
|
+
"name": "nonce",
|
|
1987
|
+
"type": "uint256"
|
|
1988
|
+
}
|
|
1989
|
+
],
|
|
1990
|
+
"internalType": "struct IPPTLooperEIP712Types.BoxPermit",
|
|
1991
|
+
"name": "permit",
|
|
1992
|
+
"type": "tuple"
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
"components": [
|
|
1996
|
+
{
|
|
1997
|
+
"internalType": "address",
|
|
1998
|
+
"name": "extRouter",
|
|
1999
|
+
"type": "address"
|
|
2000
|
+
},
|
|
2001
|
+
{
|
|
2002
|
+
"internalType": "address",
|
|
2003
|
+
"name": "approve",
|
|
2004
|
+
"type": "address"
|
|
2005
|
+
},
|
|
2006
|
+
{
|
|
2007
|
+
"internalType": "bytes",
|
|
2008
|
+
"name": "callData",
|
|
2009
|
+
"type": "bytes"
|
|
2010
|
+
}
|
|
2011
|
+
],
|
|
2012
|
+
"internalType": "struct IPPTLooperEIP712Types.BoxApprovedCall",
|
|
2013
|
+
"name": "swap",
|
|
2014
|
+
"type": "tuple"
|
|
2015
|
+
},
|
|
2016
|
+
{
|
|
2017
|
+
"components": [
|
|
2018
|
+
{
|
|
2019
|
+
"components": [
|
|
2020
|
+
{
|
|
2021
|
+
"internalType": "address",
|
|
2022
|
+
"name": "extRouter",
|
|
2023
|
+
"type": "address"
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
"internalType": "address",
|
|
2027
|
+
"name": "approve",
|
|
2028
|
+
"type": "address"
|
|
2029
|
+
},
|
|
2030
|
+
{
|
|
2031
|
+
"internalType": "bytes",
|
|
2032
|
+
"name": "callData",
|
|
2033
|
+
"type": "bytes"
|
|
2034
|
+
}
|
|
2035
|
+
],
|
|
2036
|
+
"internalType": "struct IPPTLooperEIP712Types.BoxApprovedCall",
|
|
2037
|
+
"name": "call",
|
|
2038
|
+
"type": "tuple"
|
|
2039
|
+
},
|
|
2040
|
+
{
|
|
2041
|
+
"internalType": "uint256",
|
|
2042
|
+
"name": "maxAmount",
|
|
2043
|
+
"type": "uint256"
|
|
2044
|
+
},
|
|
2045
|
+
{
|
|
2046
|
+
"internalType": "uint256",
|
|
2047
|
+
"name": "nativeFee",
|
|
2048
|
+
"type": "uint256"
|
|
2049
|
+
}
|
|
2050
|
+
],
|
|
2051
|
+
"internalType": "struct IPPTLooperEIP712Types.BridgeData",
|
|
2052
|
+
"name": "bridge",
|
|
2053
|
+
"type": "tuple"
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
"internalType": "uint256",
|
|
2057
|
+
"name": "amountPtWithdrawn",
|
|
2058
|
+
"type": "uint256"
|
|
2059
|
+
},
|
|
2060
|
+
{
|
|
2061
|
+
"internalType": "uint256",
|
|
2062
|
+
"name": "fee",
|
|
2063
|
+
"type": "uint256"
|
|
2064
|
+
},
|
|
2065
|
+
{
|
|
2066
|
+
"internalType": "bytes",
|
|
2067
|
+
"name": "postStateCheckData",
|
|
2068
|
+
"type": "bytes"
|
|
2069
|
+
}
|
|
2070
|
+
],
|
|
2071
|
+
"internalType": "struct IPPTLooperEIP712Types.DecreasePositionMessage",
|
|
2072
|
+
"name": "ms",
|
|
2073
|
+
"type": "tuple"
|
|
2074
|
+
}
|
|
2075
|
+
],
|
|
2076
|
+
"name": "hashTyped",
|
|
2077
|
+
"outputs": [
|
|
2078
|
+
{
|
|
2079
|
+
"internalType": "bytes32",
|
|
2080
|
+
"name": "",
|
|
2081
|
+
"type": "bytes32"
|
|
2082
|
+
}
|
|
2083
|
+
],
|
|
2084
|
+
"stateMutability": "view",
|
|
2085
|
+
"type": "function"
|
|
2086
|
+
},
|
|
2087
2087
|
{
|
|
2088
2088
|
"inputs": [
|
|
2089
2089
|
{
|
|
@@ -2264,11 +2264,6 @@
|
|
|
2264
2264
|
"internalType": "bool",
|
|
2265
2265
|
"name": "isZeroPriceImpact",
|
|
2266
2266
|
"type": "bool"
|
|
2267
|
-
},
|
|
2268
|
-
{
|
|
2269
|
-
"internalType": "uint256",
|
|
2270
|
-
"name": "maxFeeRate",
|
|
2271
|
-
"type": "uint256"
|
|
2272
2267
|
}
|
|
2273
2268
|
],
|
|
2274
2269
|
"internalType": "struct IPPTLooperEIP712Types.IncreasePositionRequest",
|
|
@@ -2653,8 +2648,8 @@
|
|
|
2653
2648
|
"type": "function"
|
|
2654
2649
|
}
|
|
2655
2650
|
],
|
|
2656
|
-
"bytecode": "0x60e03461018157601f61593238819003918201601f19168301916001600160401b03831184841017610185578084926060946040528339810103126101815761004781610199565b90610060604061005960208401610199565b9201610199565b6080929092526001600160a01b031660a05260015460a881901c60ff1661012c5760ff808260a01c16036100e9575b506001600160a01b031660c05260405161578490816101ae823960805181818161189a0152612981015260a0518181816106d90152614dbf015260c05181818161074801528181610bac0152818161196501526122950152f35b60ff60a01b191660ff60a01b1760015560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a15f61008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101815756fe60806040526004361015610011575f80fd5b5f5f3560e01c8063078dfbe714612f265780630ffa185914612ecf5780631c3c0ea814612e1e5780631c860d5f14612dca5780631c9cd00f14612aaf5780631f64e9ce14612a565780631fb4a228146129a55780632d2c5565146129375780632f8912ef146128fa5780634e71e0c8146127e1578063536ad93e14612788578063579f5e561461272c57806363efbf0e146126d05780636967c4851461265057806377aa686f146125f957806384b0196e146124b95780638b8c7d0e146124625780638da5cb5b146124125780638eeef723146123b6578063a6b41ec414611fe3578063a8e4fb9014611f91578063b7bfe9f2146116e0578063bfe88d8e14611683578063c124221314611629578063c34c08e5146115d7578063c4d66de814610edb578063c685f6471461076c578063c6f45db3146106fd578063ca6f50fd1461068e578063d6d67da014610634578063db03a2f0146105da578063e23dd1fc1461058f578063e30c39781461053d578063f1ec230f14610494578063f6fa7e5014610427578063fb2bc633146103c55763ff0639e1146101b1575f80fd5b346103c25760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576101e86130fe565b6024359073ffffffffffffffffffffffffffffffffffffffff604435918160665416331480156103b7575b61021c906139c2565b16908184526069602052604084208385526020526040842090815480156103595781036102fb57600182019182549263ffffffff841663ffffffff81146102ce5760010163ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000094909416841790558590556040805191825260208201929092527fc3f9a82d23af118c46becbef55ed995396b7cc74a156acc86c37edd9620f1e0e91819081015b0390a380f35b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50544c6f6f7065723a207265717565737448617368206d69736d6174636800006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206e6f206f70656e2073657373696f6e000000000000006044820152fd5b503381831614610213565b80fd5b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61041a36600486016135fc565b614b1f565b604051908152f35b50346103c25760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257604060209173ffffffffffffffffffffffffffffffffffffffff6104796130fe565b16815260688352818120602435825283522054604051908152f35b50346103c25760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576040809173ffffffffffffffffffffffffffffffffffffffff6104e56130fe565b82602085516104f38161314f565b8281520152168152606960205281812060243582526020522063ffffffff825161051c8161314f565b60208260018554958685520154169101908152835192835251166020820152f35b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346103c25760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602061041f6105d56105d03661349f565b613dc6565b613b05565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61062f36600486016137da565b61400c565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f6106893660048601613373565b613aa0565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c25760043567ffffffffffffffff8111610ed7576107b7903690600401613693565b60243567ffffffffffffffff8111610ed3576107d79036906004016132b1565b9060443567ffffffffffffffff8111610cc2576107f8903690600401613373565b9060643567ffffffffffffffff8111610ecf5761081c61086c9136906004016132b1565b61083f73ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b610847613c48565b506108546105d585613aa0565b8095845186516108666105d588613e6e565b91614ba9565b9184938594604085019087825163ffffffff60208201511646145f14610e9a575050506108cc73ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff60a084510151169061533a565b94876060860151816108dd84613cc1565b60208501604073ffffffffffffffffffffffffffffffffffffffff82511660a48d835196879384927f3a2e717b00000000000000000000000000000000000000000000000000000000845261096d600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1908115610e8f57859485948693610e69575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835198899384927fd30cd708000000000000000000000000000000000000000000000000000000008452610a14600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1948515610e5e578695610e08575b50610ab7608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215610dfd578d92610da3575b507f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c9360409392610afc92858c01519261559b565b73ffffffffffffffffffffffffffffffffffffffff8551169382519182526020820152a2610b5d73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff608085510151169061533a565b91610b77815163ffffffff60208183511692015116141590565b610d4557889296945b815163ffffffff8151164614610cc6575b50505073ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169151166080860151823b15610cc257610c17928492836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af18015610cb757610c9e575b50506102c87f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b851193519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b81610ca891613225565b610cb357855f610c26565b8580fd5b6040513d84823e3d90fd5b8380fd5b839950610d1f92945073ffffffffffffffffffffffffffffffffffffffff610d369451169189602073ffffffffffffffffffffffffffffffffffffffff606081604087015116950151169201519260208b01519461471a565b50915163ffffffff60208183511692015116141590565b610d45578690955f8080610b91565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b909291506020813d602011610df5575b81610dc060209383613225565b81010312610df1575190917f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c610ac7565b5f80fd5b3d9150610db3565b6040513d8f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff965060209195506084610e4a610ab79260403d604011610e57575b610e428183613225565b8101906153e9565b9890989793505050610a29565b503d610e38565b6040513d88823e3d90fd5b6040809650610e859294503d8711610e5757610e428183613225565b9490949290610986565b6040513d87823e3d90fd5b610ec99073ffffffffffffffffffffffffffffffffffffffff6040818b96999b9795975116920151169061533a565b96610b80565b8480fd5b8280fd5b5080fd5b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257610f136130fe565b60015460ff8160a81c1615908180926115c7575b80156115ad575b156115295781740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8316176001556114e6575b506040918251610f868482613225565b601081527f50656e646c65205054204c6f6f706572000000000000000000000000000000006020820152835190610fbd8583613225565b600182527f3100000000000000000000000000000000000000000000000000000000000000602083015261100160ff60015460a81c16610ffc81614a94565b614a94565b80519067ffffffffffffffff82116114b95781906110206004546140b0565b601f811161140e575b50602090601f8311600114611351578892611346575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176004555b80519067ffffffffffffffff82116113195761108f6005546140b0565b601f8111611278575b50602090601f83116001146111a35773ffffffffffffffffffffffffffffffffffffffff939291879183611198575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176005555b846002558460035561111360ff60015460a81c16614a94565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000845416178355611143575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff600154166001555160018152a180f35b015190505f806110c7565b600587527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416885b818110611260575091600193918573ffffffffffffffffffffffffffffffffffffffff97969410611229575b505050811b016005556110fa565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f808061121b565b929360206001819287860151815501950193016111ef565b60058752601f830160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190602084106112f1575b601f0160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001905b8181106112e65750611098565b8781556001016112d9565b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091506112af565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190505f8061103f565b600489527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016895b8181106113f657509084600195949392106113bf575b505050811b01600455611072565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806113b1565b9293602060018192878601518155019501930161139b565b90915060048852601f830160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b019060208410611491575b90601f8493920160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905b8181106114835750611029565b898155849350600101611476565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9150611448565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000176001555f610f76565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015610f2e5750600160ff8260a01c1614610f2e565b50600160ff8260a01c1610610f27565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60665416604051908152f35b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61167e366004860161350f565b61426b565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f6105d56116db36600487016138ca565b614a12565b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c25760043567ffffffffffffffff8111610ed75761172b903690600401613731565b60243567ffffffffffffffff8111610ed35761174b9036906004016132b1565b9060443567ffffffffffffffff8111610cc25761176c9036906004016133c4565b9060643567ffffffffffffffff8111610ecf576117906117da9136906004016132b1565b6117b373ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b6117bb613c48565b506117c86105d585613ba2565b8095845186516108666105d588613efb565b9184938594604085019087825163ffffffff81511646145f14611f5c57505050606084510151155f14611f355773ffffffffffffffffffffffffffffffffffffffff6020840151169460408401515b61184a8773ffffffffffffffffffffffffffffffffffffffff84511661533a565b9660408701918251670de0b6b3a764000061186c8d60c08b015190508c614464565b0410611ed7576118c6611908936118bf73ffffffffffffffffffffffffffffffffffffffff875116858351917f00000000000000000000000000000000000000000000000000000000000000009061495e565b518a61442a565b9173ffffffffffffffffffffffffffffffffffffffff8551169273ffffffffffffffffffffffffffffffffffffffff604088510151169160208b01519461471a565b60a0869492940151611dfa575b5061192f815163ffffffff60208183511692015116141590565b610d4557889296945b63ffffffff602083510151164614611a6c575b505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0860151823b15610cc2576119d0928492836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af18015610cb757611a57575b50506102c87fdc32c763f038ea930cdd65ad1f0e1be8e661976d42f515d4e6609e1ec732a48493519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b81611a6191613225565b610cb357855f6119df565b9092809298506080870151611a808a613cc1565b60208b0191604073ffffffffffffffffffffffffffffffffffffffff84511660a48d835197889384927fec094985000000000000000000000000000000000000000000000000000000008452611b11600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1928315610e5e57869182958395611dd4575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835195869384927f0a44c195000000000000000000000000000000000000000000000000000000008452611bb8600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1918215611dc9578792611d83575b50611c5b608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215610dfd578d92611d29575b5091611ca1916040949360807f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec59701519261559b565b73ffffffffffffffffffffffffffffffffffffffff8a51169382519182526020820152a2611d1b611d0573ffffffffffffffffffffffffffffffffffffffff88511673ffffffffffffffffffffffffffffffffffffffff60a085510151169061533a565b915163ffffffff60208183511692015116141590565b610d45578690955f8061194b565b915092916020823d602011611d7b575b81611d4660209383613225565b81010312610df157905191929091907f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec5611c6b565b3d9150611d39565b73ffffffffffffffffffffffffffffffffffffffff975060209192506084611dbc611c5b9260403d604011610e5757610e428183613225565b9990999493505050611bcd565b6040513d89823e3d90fd5b6040809750611df09296503d8811610e5757610e428183613225565b9590959490611b2a565b60049073ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff89515116602073ffffffffffffffffffffffffffffffffffffffff60408751015116604051958680927f781c18db0000000000000000000000000000000000000000000000000000000082525afa918215610dfd578d92611e96575b611e90945061495e565b5f611915565b91506020843d602011611ecf575b81611eb160209383613225565b81010312611ecb57611ec5611e90946149f1565b91611e86565b8c80fd5b3d9150611ea4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206665652065786365656473206d6178466565526174656044820152fd5b73ffffffffffffffffffffffffffffffffffffffff60608251015116946060840151611829565b611f8b9073ffffffffffffffffffffffffffffffffffffffff6080818b96999b9795975116920151169061533a565b96611938565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761202e9036906004016138ca565b60243567ffffffffffffffff8111610df15761204e9036906004016132b1565b9060443567ffffffffffffffff8111610df15761206f9036906004016137da565b9160643567ffffffffffffffff8111610df1576120936120dd9136906004016132b1565b6120b673ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b6120be613c48565b506120cb6105d58661400c565b8093855187516108666105d589614a12565b92604084019182519163ffffffff83511646145f1461238f5761214d61211d73ffffffffffffffffffffffffffffffffffffffff60408401511694614373565b8473ffffffffffffffffffffffffffffffffffffffff89511691612141818461533a565b9060208a015193614477565b50936080820151851061233157602063ffffffff92015115155f14612329575160200151165b63ffffffff1646146121dd5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b60807fb5b9244c6ced1f40da658794a27cce7a0fb4184569b3916665b60044d25bb0b49161223d858573ffffffffffffffffffffffffffffffffffffffff8a511673ffffffffffffffffffffffffffffffffffffffff8a5151169061495e565b85519473ffffffffffffffffffffffffffffffffffffffff80875116956060602089015198015160405194855260208501521660408301526060820152a3606073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016935116910151823b15610df1576122fe925f92836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af1801561231e57612310575080f35b61231c91505f90613225565b005b6040513d5f823e3d90fd5b515116612173565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e73756666696369656e7420746f6b656e206f75746044820152fd5b61214d61211d73ffffffffffffffffffffffffffffffffffffffff60608401511694614373565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561240d60209336906004016133c4565b613ba2565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561167e602093369060040161350f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760025415806125ef575b156125915761255f612501614101565b61258d61250c6141d6565b61256d6040519161251e602084613225565b5f83525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190613854565b908582036040870152613854565b904660608501523060808501525f60a085015283820360c0850152613897565b0390f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b50600354156124f1565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561062f60209336906004016137da565b34610df15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760405161268b816131d0565b60043573ffffffffffffffffffffffffffffffffffffffff81168103610df1578161041f91602093526024358382015260443560408201526064356060820152613f93565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56127276020933690600401613731565b613efb565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56127836020933690600401613693565b613e6e565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6127dc6020923690600401613655565b613e0f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760015473ffffffffffffffffffffffffffffffffffffffff81169081330361289c577fffffffffffffffffffffffff000000000000000000000000000000000000000091825f548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a316175f5516600155005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b34610df15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602061041f6105d03661349f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df1577f6aaea081d3338771247ce1c8b55c8111e92e8523a8abfaf46030701203f8c0fe602073ffffffffffffffffffffffffffffffffffffffff612a146130fe565b612a22825f5416331461395d565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006067541617606755604051908152a1005b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f612aaa60209236906004016132f7565b613d3a565b34610df15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157612ae73661349f565b60843567ffffffffffffffff8111610df157612b079036906004016132b1565b60a43567ffffffffffffffff8111610df157612b2790369060040161350f565b9160c43567ffffffffffffffff8111610df157612b4b612b959136906004016132b1565b612b6e73ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b612b76613c48565b50612b836105d58661426b565b8094845187516108666105d588613dc6565b5f612bba73ffffffffffffffffffffffffffffffffffffffff60208401511692613cc1565b9173ffffffffffffffffffffffffffffffffffffffff60208701511690612c5c83606060408a0151990195612ca28751612c726040519c8d98899788967fb3fd98f0000000000000000000000000000000000000000000000000000000008852600488019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b608486015260e060a486015260e4850190613854565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160c4850152613a27565b03925af191821561231e575f92612d35575b907f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc8915193612d3073ffffffffffffffffffffffffffffffffffffffff86511694612d2260606020890151980151945160405195869586526020860152608060408601526080850190613a27565b908382036060850152613897565b0390a3005b91503d805f863e612d468186613225565b840193602081860312610df15780519067ffffffffffffffff8211610df1570184601f82011215610df157805194612d7d866134f7565b91612d8b6040519384613225565b86835260208084019760051b820101918211610df157602001955b818710612dba575093945084935091612cb4565b8651815260209687019601612da6565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f61240d60209236906004016133c4565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df1577f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a43602073ffffffffffffffffffffffffffffffffffffffff612e8d6130fe565b612e9b825f5416331461395d565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006066541617606655604051908152a1005b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56106896020933690600401613373565b34610df15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157612f5d6130fe565b602435908115158203610df157604435918215158303610df157612f9973ffffffffffffffffffffffffffffffffffffffff5f5416331461395d565b156130b95773ffffffffffffffffffffffffffffffffffffffff16908115908115916130b1575b5015613053577fffffffffffffffffffffffff00000000000000000000000000000000000000005f548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a316175f55600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b905082612fc0565b73ffffffffffffffffffffffffffffffffffffffff9150167fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001555f80f35b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b359073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b35908115158203610df157565b6040810190811067ffffffffffffffff82111761316b57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60c0810190811067ffffffffffffffff82111761316b57604052565b6060810190811067ffffffffffffffff82111761316b57604052565b6080810190811067ffffffffffffffff82111761316b57604052565b60a0810190811067ffffffffffffffff82111761316b57604052565b610100810190811067ffffffffffffffff82111761316b57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761316b57604052565b359063ffffffff82168203610df157565b67ffffffffffffffff811161316b57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610df1578035906132c882613277565b926132d66040519485613225565b82845260208383010111610df157815f926020809301838601378301015290565b919060c083820312610df1576040519061331082613198565b8193803583526020810135602084015261332c60408201613266565b604084015261333d60608201613266565b60608401526080810135608084015260a08101359167ffffffffffffffff8311610df15760a09261336e92016132b1565b910152565b919091606081840312610df1576040519061338d826131b4565b819381359167ffffffffffffffff8311610df1576133b160409392849383016132f7565b8452602081013560208501520135910152565b91909160e081840312610df1576040519060e0820182811067ffffffffffffffff82111761316b57604052819381359167ffffffffffffffff8311610df15761341360c09392849383016132f7565b845261342160208201613121565b602085015260408101356040850152606081013560608501526080810135608085015261345060a08201613142565b60a08501520135910152565b9190826080910312610df157604051613474816131d0565b606080829461348281613121565b845260208101356020850152604081013560408501520135910152565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610df1576040516020810181811067ffffffffffffffff82111761316b576040526134f38193600461345c565b9052565b67ffffffffffffffff811161316b5760051b60200190565b9190608083820312610df157604051613527816131d0565b8093803567ffffffffffffffff8111610df157836135469183016132f7565b825261355460208201613121565b6020830152604081013567ffffffffffffffff8111610df157836135799183016132b1565b604083015260608101359067ffffffffffffffff8211610df157019180601f84011215610df15782356135ab816134f7565b936135b96040519586613225565b81855260208086019260051b820101928311610df157602001905b8282106135e45750505060600152565b602080916135f184613121565b8152019101906135d4565b9190606083820312610df15760405190613615826131b4565b819361362081613121565b835261362e60208201613121565b602084015260408101359167ffffffffffffffff8311610df15760409261336e92016132b1565b919091606081840312610df1576040519061366f826131b4565b819381359167ffffffffffffffff8311610df1576133b160409392849383016135fc565b919061010083820312610df157604051906136ad826131ec565b81936136b9828261345c565b8352608081013567ffffffffffffffff8111610df157826136db9183016135fc565b602084015260a081013567ffffffffffffffff8111610df15782613700918301613655565b604084015260c0810135606084015260e08101359167ffffffffffffffff8311610df15760809261336e92016132b1565b919061012083820312610df1576040519061374b82613198565b8193613757828261345c565b8352608081013567ffffffffffffffff8111610df157826137799183016135fc565b602084015260a0810135604084015260c081013567ffffffffffffffff8111610df157826137a8918301613655565b606084015260e081013560808401526101008101359167ffffffffffffffff8311610df15760a09261336e92016132b1565b91909160a081840312610df157604051906137f4826131ec565b819381359167ffffffffffffffff8311610df15761381860809392849383016132f7565b845261382660208201613142565b602085015261383760408201613121565b604085015261384860608201613121565b60608501520135910152565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106138b45750505090565b82518452602093840193909201916001016138a7565b919060e083820312610df157604051906138e3826131d0565b81936138ef828261345c565b8352608081013567ffffffffffffffff8111610df157826139119183016135fc565b602084015260a081013567ffffffffffffffff8111610df15782613936918301613655565b604084015260c08101359167ffffffffffffffff8311610df15760609261336e92016132b1565b1561396457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156139c957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f50544c6f6f7065723a20756e617574686f72697a6564000000000000000000006044820152fd5b90602080835192838152019201905f5b818110613a445750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101613a37565b60409073ffffffffffffffffffffffffffffffffffffffff613a9d94931681528160208201520190613854565b90565b613aaa8151613d3a565b90604060208201519101516040519160208301937ff2fd81fd04f9cee0ece251f806445c3b1d5103fcd06f31002a34371094102b59855260408401526060830152608082015260808152613aff60a082613225565b51902090565b604290613b10615620565b613b1861566b565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152613b6960c082613225565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b613bac8151613d3a565b9073ffffffffffffffffffffffffffffffffffffffff60208201511690604081015190606081015160808201519060c060a08401511515930151936040519560208701977f3dbdcfb2686d43e144206a30f06f896545dd0bf378284ab15ce7d25ca65ed9cc895260408801526060870152608086015260a085015260c084015260e08301526101008201526101008152613aff61012082613225565b60405190613c55826131b4565b815f81525f60208201526040805191613c6d83613208565b5f83525f60208401525f828401525f60608401525f60808401525f60a08401525f60c08401525f60e08401520152565b60405190613caa826131d0565b5f6060838281528260208201528260408201520152565b613cc9613c9d565b50604073ffffffffffffffffffffffffffffffffffffffff825116910151613cef613c9d565b5060e08101519073ffffffffffffffffffffffffffffffffffffffff60a081608084015116920151169160405193613d26856131d0565b845260208401526040830152606082015290565b80519060208101519063ffffffff6040820151169063ffffffff60608201511660a0608083015192015160208151910120926040519460208601967f4b5c157e13c9c70173fbe4c990f516a87f1bcb79deeb7706156cfd0a4bb4ee84885260408701526060860152608085015260a084015260c083015260e082015260e08152613aff61010082613225565b613dd09051613f93565b60405160208101917feb325b74167005941f5d4aacf4aa3fd86a6d4dcb7695d06bcc66de38ad87d3c28352604082015260408152613aff606082613225565b613e198151614b1f565b90604060208201519101516040519160208301937f2e509eca09b391e74bb50ce10f43a13d6dfd1390e626fcfc40c60b1d7369a4b0855260408401526060830152608082015260808152613aff60a082613225565b613e788151613f93565b90613e866020820151614b1f565b90613e946040820151613e0f565b906080606082015191015160208151910120916040519360208501957fa2638841c0c7fcfce10275ef9bc3e8b2711ac24f07818116b6942c54a9805f12875260408601526060850152608084015260a083015260c082015260c08152613aff60e082613225565b613f058151613f93565b90613f136020820151614b1f565b90604081015190613f276060820151613e0f565b60a0608083015192015160208151910120926040519460208601967f40d59af1d5bbd55280d0f7131b112cf40ffd6775f6ca26b477734c4dca0cf64e885260408701526060860152608085015260a084015260c083015260e082015260e08152613aff61010082613225565b73ffffffffffffffffffffffffffffffffffffffff8151169060208101519060606040820151910151906040519260208401947f822aa76455d3f0b945088018ee29f25999f8e1b1cbe462cd90f78d0c038148ec865260408501526060840152608083015260a082015260a08152613aff60c082613225565b6140168151613d3a565b90602081015115159073ffffffffffffffffffffffffffffffffffffffff60408201511690608073ffffffffffffffffffffffffffffffffffffffff606083015116910151916040519360208501957f8ac3df3c6aafa50fff9c9cdb9de52954f7d1bcb8a41375bb202fca85c4f86cab875260408601526060850152608084015260a083015260c082015260c08152613aff60e082613225565b90600182811c921680156140f7575b60208310146140ca57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916140bf565b604051905f8260045491614114836140b0565b8083529260018116908115614199575060011461413a575b61413892500383613225565b565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061417d5750509060206141389282010161412c565b6020919350806001915483858901015201910190918492614165565b602092506141389491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161412c565b604051905f82600554916141e9836140b0565b8083529260018116908115614199575060011461420c5761413892500383613225565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b81831061424f5750509060206141389282010161412c565b6020919350806001915483858901015201910190918492614237565b6142758151613d3a565b9073ffffffffffffffffffffffffffffffffffffffff6020820151169060606040820151602081519101209101516040516020810181819360208151939101925f5b8181106143445750506142f19250037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613225565b519020906040519260208401947fc43b1ddd31b47c3575e0cfab0ba34c9546a4f739fce4f13625dc9ae5cc44df62865260408501526060840152608083015260a082015260a08152613aff60c082613225565b845173ffffffffffffffffffffffffffffffffffffffff168352602094850194869450909201916001016142b7565b63ffffffff815116461461440d5763ffffffff60208201511646146143f05760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f50544c6f6f7065723a20756e737570706f7274656420636861696e69640000006044820152fd5b60a0015173ffffffffffffffffffffffffffffffffffffffff1690565b6060015173ffffffffffffffffffffffffffffffffffffffff1690565b9190820391821161443757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181029291811591840414171561443757565b909193949273ffffffffffffffffffffffffffffffffffffffff80821693169183831461470f5773ffffffffffffffffffffffffffffffffffffffff16906144bf818361533a565b9673ffffffffffffffffffffffffffffffffffffffff81511680156147045773ffffffffffffffffffffffffffffffffffffffff826145945f938360408160208f99015116940151918160405195614516876131ec565b8c875260208701998a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613854565b866024830152038183875af1801561231e57614682575b506145b96145c0918361533a565b968761442a565b94670de0b6b3a76400008602868104670de0b6b3a76400001487151715614437575f9082156001171561443757106146245760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20737761702062656c6f77206d696e53776170526174656044820152fd5b903d805f843e6146928184613225565b820191602081840312610df15780519067ffffffffffffffff8211610df157019082601f83011215610df1578151926146ca84613277565b906146d86040519283613225565b84825260208585010111610df1575f6020856145c096826145b997018386015e830101525091506145ab565b505f96505050505050565b505050509150905f90565b9495939473ffffffffffffffffffffffffffffffffffffffff80851694921692908385146149535773ffffffffffffffffffffffffffffffffffffffff1691614763818461533a565b9773ffffffffffffffffffffffffffffffffffffffff81511680156149475773ffffffffffffffffffffffffffffffffffffffff5f9161483660408360208701511695015183604051936147b6856131ec565b8b85528160208601988b8a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613854565b876024830152038183885af1801561231e576148c5575b5061485b614862918461533a565b978861442a565b95670de0b6b3a7640000870290878204670de0b6b3a764000014881517156144375761488e9083614464565b116146245760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b903d805f843e6148d58184613225565b820191602081840312610df15780519067ffffffffffffffff8211610df157019082601f83011215610df15781519261490d84613277565b9061491b6040519283613225565b84825260208585010111610df1575f602085614862968261485b97018386015e8301015250915061484d565b505f9750505050505050565b5095505f9450505050565b9192909173ffffffffffffffffffffffffffffffffffffffff16803b15610df1575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967fc3b35a7e00000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af1801561231e576149e75750565b5f61413891613225565b519073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b614a1c8151613f93565b90614a2a6020820151614b1f565b906060614a3a6040830151613e0f565b91015160208151910120906040519260208401947f6cd5da344d135a773661e166411b132de126661c92b5d13b7b83c71ff0110f1f865260408501526060840152608083015260a082015260a08152613aff60c082613225565b15614a9b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff81511690604073ffffffffffffffffffffffffffffffffffffffff602083015116910151602081519101206040519160208301937fd3355b017a4df5ab14bfe30be8fc74cf288d6cbdd53b7fb9a45cb406e14cb425855260408401526060830152608082015260808152613aff60a082613225565b9190939294614bb6613c48565b5073ffffffffffffffffffffffffffffffffffffffff8351165f52606960205260405f2094602084019586515f5260205260405f209060208101514210156152dc5785825480155f1461526757505080518751036151e35763ffffffff6040820151169263ffffffff60018401541680940361518557614c4e908773ffffffffffffffffffffffffffffffffffffffff8851166153ff565b156151015790859055835186516040805188815263ffffffff95861660208201526060949373ffffffffffffffffffffffffffffffffffffffff16917e3d5fea7147843a952736a57f88f9e5565759fb750f34a8e58cbc215034c64c91a35b01511690614cb9613c48565b9542604085015111156150a357614ce89173ffffffffffffffffffffffffffffffffffffffff606754166153ff565b1561504557606082019081511015614fc15773ffffffffffffffffffffffffffffffffffffffff8251165f52606860205260405f20835f5260205260405f2054815103614f635751600181018091116144375773ffffffffffffffffffffffffffffffffffffffff92838351165f52606860205260405f20905f5260205260405f205551169051604051917fa92572fb00000000000000000000000000000000000000000000000000000000835260048301526024820152610140816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1801561231e575f905f925f91614e1b575b50604084015273ffffffffffffffffffffffffffffffffffffffff918216602084015216815290565b92505050806101403d8111614f5c575b614e358183613225565b8101036101408112610df157815173ffffffffffffffffffffffffffffffffffffffff81168103610df15760208301519173ffffffffffffffffffffffffffffffffffffffff83168303610df1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0610100910112610df15773ffffffffffffffffffffffffffffffffffffffff92839161012060405192614ed684613208565b614ee26040820161558a565b8452614ef06060820161558a565b6020850152614f01608082016149f1565b6040850152614f1260a082016149f1565b6060850152614f2360c082016149f1565b6080850152614f3460e082016149f1565b60a0850152614f4661010082016149f1565b60c0850152015160e08301529290915092614df2565b503d614e2b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e76616c69642070726f706f736572206e6f6e63656044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a207065726d69744e6f6e6365436170206578636565646560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50544c6f6f7065723a20696e76616c6964207369676e617475726500000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d6573736167652065787069726564000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a20696e76616c6964206f776e6572207369676e6174757260448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20696e76616c69642073657373696f6e206e6f6e6365006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50544c6f6f7065723a207265712f7065726d697420626f784964206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152fd5b91935091500361527e57606063ffffffff91614cad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20726571756573742068617368206d69736d61746368006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a20726571756573742065787069726564000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff168061535b57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa90811561231e575f916153ba575090565b90506020813d6020116153e1575b816153d560209383613225565b81010312610df1575190565b3d91506153c8565b9190826040910312610df1576020825192015190565b9061540a8382615691565b600581959295101561555d5715938461553a575b50831561542c575b50505090565b5f93509061547d6154a985949360405192839160208301957f1626ba7e0000000000000000000000000000000000000000000000000000000087526024840152604060448401526064830190613854565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613225565b51915afa3d15615533573d6154bd81613277565b906154cb6040519283613225565b81523d5f602083013e5b81615525575b816154ea575b505f8080615426565b9050602081805181010312610df157602001517f1626ba7e00000000000000000000000000000000000000000000000000000000145f6154e1565b9050602081511015906154db565b60606154d5565b73ffffffffffffffffffffffffffffffffffffffff84811691161493505f61541e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519063ffffffff82168203610df157565b92670de0b6b3a76400006155b481946155ba9496614464565b04614464565b04106155c257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d61784c5456206578636565646564000000000000006044820152fd5b615628614101565b8051908115615638576020012090565b505060025480156156465790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156736141d6565b8051908115615683576020012090565b505060035480156156465790565b9060418151145f146156bd576156b991602082015190606060408401519301515f1a906156c6565b9091565b50505f90600290565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615743576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa1561231e575f5173ffffffffffffffffffffffffffffffffffffffff81161561573b57905f90565b505f90600190565b505050505f9060039056fea26469706673582212207ccb1e2387148f2ddad31a7a0d4c80376a0668e89b585e43a8a0e6505167b13364736f6c634300081e0033",
|
|
2657
|
-
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f5f3560e01c8063078dfbe714612f265780630ffa185914612ecf5780631c3c0ea814612e1e5780631c860d5f14612dca5780631c9cd00f14612aaf5780631f64e9ce14612a565780631fb4a228146129a55780632d2c5565146129375780632f8912ef146128fa5780634e71e0c8146127e1578063536ad93e14612788578063579f5e561461272c57806363efbf0e146126d05780636967c4851461265057806377aa686f146125f957806384b0196e146124b95780638b8c7d0e146124625780638da5cb5b146124125780638eeef723146123b6578063a6b41ec414611fe3578063a8e4fb9014611f91578063b7bfe9f2146116e0578063bfe88d8e14611683578063c124221314611629578063c34c08e5146115d7578063c4d66de814610edb578063c685f6471461076c578063c6f45db3146106fd578063ca6f50fd1461068e578063d6d67da014610634578063db03a2f0146105da578063e23dd1fc1461058f578063e30c39781461053d578063f1ec230f14610494578063f6fa7e5014610427578063fb2bc633146103c55763ff0639e1146101b1575f80fd5b346103c25760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576101e86130fe565b6024359073ffffffffffffffffffffffffffffffffffffffff604435918160665416331480156103b7575b61021c906139c2565b16908184526069602052604084208385526020526040842090815480156103595781036102fb57600182019182549263ffffffff841663ffffffff81146102ce5760010163ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000094909416841790558590556040805191825260208201929092527fc3f9a82d23af118c46becbef55ed995396b7cc74a156acc86c37edd9620f1e0e91819081015b0390a380f35b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50544c6f6f7065723a207265717565737448617368206d69736d6174636800006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206e6f206f70656e2073657373696f6e000000000000006044820152fd5b503381831614610213565b80fd5b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61041a36600486016135fc565b614b1f565b604051908152f35b50346103c25760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257604060209173ffffffffffffffffffffffffffffffffffffffff6104796130fe565b16815260688352818120602435825283522054604051908152f35b50346103c25760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576040809173ffffffffffffffffffffffffffffffffffffffff6104e56130fe565b82602085516104f38161314f565b8281520152168152606960205281812060243582526020522063ffffffff825161051c8161314f565b60208260018554958685520154169101908152835192835251166020820152f35b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346103c25760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602061041f6105d56105d03661349f565b613dc6565b613b05565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61062f36600486016137da565b61400c565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f6106893660048601613373565b613aa0565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c25760043567ffffffffffffffff8111610ed7576107b7903690600401613693565b60243567ffffffffffffffff8111610ed3576107d79036906004016132b1565b9060443567ffffffffffffffff8111610cc2576107f8903690600401613373565b9060643567ffffffffffffffff8111610ecf5761081c61086c9136906004016132b1565b61083f73ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b610847613c48565b506108546105d585613aa0565b8095845186516108666105d588613e6e565b91614ba9565b9184938594604085019087825163ffffffff60208201511646145f14610e9a575050506108cc73ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff60a084510151169061533a565b94876060860151816108dd84613cc1565b60208501604073ffffffffffffffffffffffffffffffffffffffff82511660a48d835196879384927f3a2e717b00000000000000000000000000000000000000000000000000000000845261096d600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1908115610e8f57859485948693610e69575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835198899384927fd30cd708000000000000000000000000000000000000000000000000000000008452610a14600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1948515610e5e578695610e08575b50610ab7608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215610dfd578d92610da3575b507f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c9360409392610afc92858c01519261559b565b73ffffffffffffffffffffffffffffffffffffffff8551169382519182526020820152a2610b5d73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff608085510151169061533a565b91610b77815163ffffffff60208183511692015116141590565b610d4557889296945b815163ffffffff8151164614610cc6575b50505073ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169151166080860151823b15610cc257610c17928492836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af18015610cb757610c9e575b50506102c87f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b851193519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b81610ca891613225565b610cb357855f610c26565b8580fd5b6040513d84823e3d90fd5b8380fd5b839950610d1f92945073ffffffffffffffffffffffffffffffffffffffff610d369451169189602073ffffffffffffffffffffffffffffffffffffffff606081604087015116950151169201519260208b01519461471a565b50915163ffffffff60208183511692015116141590565b610d45578690955f8080610b91565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b909291506020813d602011610df5575b81610dc060209383613225565b81010312610df1575190917f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c610ac7565b5f80fd5b3d9150610db3565b6040513d8f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff965060209195506084610e4a610ab79260403d604011610e57575b610e428183613225565b8101906153e9565b9890989793505050610a29565b503d610e38565b6040513d88823e3d90fd5b6040809650610e859294503d8711610e5757610e428183613225565b9490949290610986565b6040513d87823e3d90fd5b610ec99073ffffffffffffffffffffffffffffffffffffffff6040818b96999b9795975116920151169061533a565b96610b80565b8480fd5b8280fd5b5080fd5b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257610f136130fe565b60015460ff8160a81c1615908180926115c7575b80156115ad575b156115295781740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8316176001556114e6575b506040918251610f868482613225565b601081527f50656e646c65205054204c6f6f706572000000000000000000000000000000006020820152835190610fbd8583613225565b600182527f3100000000000000000000000000000000000000000000000000000000000000602083015261100160ff60015460a81c16610ffc81614a94565b614a94565b80519067ffffffffffffffff82116114b95781906110206004546140b0565b601f811161140e575b50602090601f8311600114611351578892611346575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176004555b80519067ffffffffffffffff82116113195761108f6005546140b0565b601f8111611278575b50602090601f83116001146111a35773ffffffffffffffffffffffffffffffffffffffff939291879183611198575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176005555b846002558460035561111360ff60015460a81c16614a94565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000845416178355611143575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff600154166001555160018152a180f35b015190505f806110c7565b600587527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416885b818110611260575091600193918573ffffffffffffffffffffffffffffffffffffffff97969410611229575b505050811b016005556110fa565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f808061121b565b929360206001819287860151815501950193016111ef565b60058752601f830160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190602084106112f1575b601f0160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001905b8181106112e65750611098565b8781556001016112d9565b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091506112af565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190505f8061103f565b600489527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016895b8181106113f657509084600195949392106113bf575b505050811b01600455611072565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f80806113b1565b9293602060018192878601518155019501930161139b565b90915060048852601f830160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b019060208410611491575b90601f8493920160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905b8181106114835750611029565b898155849350600101611476565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9150611448565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000176001555f610f76565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b158015610f2e5750600160ff8260a01c1614610f2e565b50600160ff8260a01c1610610f27565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60665416604051908152f35b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f61167e366004860161350f565b61426b565b50346103c25760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c2576004359067ffffffffffffffff82116103c257602061041f6105d56116db36600487016138ca565b614a12565b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c25760043567ffffffffffffffff8111610ed75761172b903690600401613731565b60243567ffffffffffffffff8111610ed35761174b9036906004016132b1565b9060443567ffffffffffffffff8111610cc25761176c9036906004016133c4565b9060643567ffffffffffffffff8111610ecf576117906117da9136906004016132b1565b6117b373ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b6117bb613c48565b506117c86105d585613ba2565b8095845186516108666105d588613efb565b9184938594604085019087825163ffffffff81511646145f14611f5c57505050606084510151155f14611f355773ffffffffffffffffffffffffffffffffffffffff6020840151169460408401515b61184a8773ffffffffffffffffffffffffffffffffffffffff84511661533a565b9660408701918251670de0b6b3a764000061186c8d60c08b015190508c614464565b0410611ed7576118c6611908936118bf73ffffffffffffffffffffffffffffffffffffffff875116858351917f00000000000000000000000000000000000000000000000000000000000000009061495e565b518a61442a565b9173ffffffffffffffffffffffffffffffffffffffff8551169273ffffffffffffffffffffffffffffffffffffffff604088510151169160208b01519461471a565b60a0869492940151611dfa575b5061192f815163ffffffff60208183511692015116141590565b610d4557889296945b63ffffffff602083510151164614611a6c575b505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0860151823b15610cc2576119d0928492836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af18015610cb757611a57575b50506102c87fdc32c763f038ea930cdd65ad1f0e1be8e661976d42f515d4e6609e1ec732a48493519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b81611a6191613225565b610cb357855f6119df565b9092809298506080870151611a808a613cc1565b60208b0191604073ffffffffffffffffffffffffffffffffffffffff84511660a48d835197889384927fec094985000000000000000000000000000000000000000000000000000000008452611b11600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1928315610e5e57869182958395611dd4575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835195869384927f0a44c195000000000000000000000000000000000000000000000000000000008452611bb8600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1918215611dc9578792611d83575b50611c5b608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215610dfd578d92611d29575b5091611ca1916040949360807f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec59701519261559b565b73ffffffffffffffffffffffffffffffffffffffff8a51169382519182526020820152a2611d1b611d0573ffffffffffffffffffffffffffffffffffffffff88511673ffffffffffffffffffffffffffffffffffffffff60a085510151169061533a565b915163ffffffff60208183511692015116141590565b610d45578690955f8061194b565b915092916020823d602011611d7b575b81611d4660209383613225565b81010312610df157905191929091907f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec5611c6b565b3d9150611d39565b73ffffffffffffffffffffffffffffffffffffffff975060209192506084611dbc611c5b9260403d604011610e5757610e428183613225565b9990999493505050611bcd565b6040513d89823e3d90fd5b6040809750611df09296503d8811610e5757610e428183613225565b9590959490611b2a565b60049073ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff89515116602073ffffffffffffffffffffffffffffffffffffffff60408751015116604051958680927f781c18db0000000000000000000000000000000000000000000000000000000082525afa918215610dfd578d92611e96575b611e90945061495e565b5f611915565b91506020843d602011611ecf575b81611eb160209383613225565b81010312611ecb57611ec5611e90946149f1565b91611e86565b8c80fd5b3d9150611ea4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206665652065786365656473206d6178466565526174656044820152fd5b73ffffffffffffffffffffffffffffffffffffffff60608251015116946060840151611829565b611f8b9073ffffffffffffffffffffffffffffffffffffffff6080818b96999b9795975116920151169061533a565b96611938565b50346103c257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761202e9036906004016138ca565b60243567ffffffffffffffff8111610df15761204e9036906004016132b1565b9060443567ffffffffffffffff8111610df15761206f9036906004016137da565b9160643567ffffffffffffffff8111610df1576120936120dd9136906004016132b1565b6120b673ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b6120be613c48565b506120cb6105d58661400c565b8093855187516108666105d589614a12565b92604084019182519163ffffffff83511646145f1461238f5761214d61211d73ffffffffffffffffffffffffffffffffffffffff60408401511694614373565b8473ffffffffffffffffffffffffffffffffffffffff89511691612141818461533a565b9060208a015193614477565b50936080820151851061233157602063ffffffff92015115155f14612329575160200151165b63ffffffff1646146121dd5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b60807fb5b9244c6ced1f40da658794a27cce7a0fb4184569b3916665b60044d25bb0b49161223d858573ffffffffffffffffffffffffffffffffffffffff8a511673ffffffffffffffffffffffffffffffffffffffff8a5151169061495e565b85519473ffffffffffffffffffffffffffffffffffffffff80875116956060602089015198015160405194855260208501521660408301526060820152a3606073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016935116910151823b15610df1576122fe925f92836040518096819582947fe2b2408500000000000000000000000000000000000000000000000000000000845260048401613a70565b03925af1801561231e57612310575080f35b61231c91505f90613225565b005b6040513d5f823e3d90fd5b515116612173565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e73756666696369656e7420746f6b656e206f75746044820152fd5b61214d61211d73ffffffffffffffffffffffffffffffffffffffff60608401511694614373565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561240d60209336906004016133c4565b613ba2565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561167e602093369060040161350f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760025415806125ef575b156125915761255f612501614101565b61258d61250c6141d6565b61256d6040519161251e602084613225565b5f83525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190613854565b908582036040870152613854565b904660608501523060808501525f60a085015283820360c0850152613897565b0390f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b50600354156124f1565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d561062f60209336906004016137da565b34610df15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760405161268b816131d0565b60043573ffffffffffffffffffffffffffffffffffffffff81168103610df1578161041f91602093526024358382015260443560408201526064356060820152613f93565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56127276020933690600401613731565b613efb565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56127836020933690600401613693565b613e6e565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6127dc6020923690600401613655565b613e0f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760015473ffffffffffffffffffffffffffffffffffffffff81169081330361289c577fffffffffffffffffffffffff000000000000000000000000000000000000000091825f548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a316175f5516600155005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b34610df15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602061041f6105d03661349f565b34610df1575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df1577f6aaea081d3338771247ce1c8b55c8111e92e8523a8abfaf46030701203f8c0fe602073ffffffffffffffffffffffffffffffffffffffff612a146130fe565b612a22825f5416331461395d565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006067541617606755604051908152a1005b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f612aaa60209236906004016132f7565b613d3a565b34610df15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157612ae73661349f565b60843567ffffffffffffffff8111610df157612b079036906004016132b1565b60a43567ffffffffffffffff8111610df157612b2790369060040161350f565b9160c43567ffffffffffffffff8111610df157612b4b612b959136906004016132b1565b612b6e73ffffffffffffffffffffffffffffffffffffffff6066541633146139c2565b612b76613c48565b50612b836105d58661426b565b8094845187516108666105d588613dc6565b5f612bba73ffffffffffffffffffffffffffffffffffffffff60208401511692613cc1565b9173ffffffffffffffffffffffffffffffffffffffff60208701511690612c5c83606060408a0151990195612ca28751612c726040519c8d98899788967fb3fd98f0000000000000000000000000000000000000000000000000000000008852600488019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b608486015260e060a486015260e4850190613854565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160c4850152613a27565b03925af191821561231e575f92612d35575b907f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc8915193612d3073ffffffffffffffffffffffffffffffffffffffff86511694612d2260606020890151980151945160405195869586526020860152608060408601526080850190613a27565b908382036060850152613897565b0390a3005b91503d805f863e612d468186613225565b840193602081860312610df15780519067ffffffffffffffff8211610df1570184601f82011215610df157805194612d7d866134f7565b91612d8b6040519384613225565b86835260208084019760051b820101918211610df157602001955b818710612dba575093945084935091612cb4565b8651815260209687019601612da6565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f61240d60209236906004016133c4565b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df1577f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a43602073ffffffffffffffffffffffffffffffffffffffff612e8d6130fe565b612e9b825f5416331461395d565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006066541617606655604051908152a1005b34610df15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df15760043567ffffffffffffffff8111610df15761041f6105d56106896020933690600401613373565b34610df15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610df157612f5d6130fe565b602435908115158203610df157604435918215158303610df157612f9973ffffffffffffffffffffffffffffffffffffffff5f5416331461395d565b156130b95773ffffffffffffffffffffffffffffffffffffffff16908115908115916130b1575b5015613053577fffffffffffffffffffffffff00000000000000000000000000000000000000005f548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a316175f55600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b905082612fc0565b73ffffffffffffffffffffffffffffffffffffffff9150167fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001555f80f35b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b359073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b35908115158203610df157565b6040810190811067ffffffffffffffff82111761316b57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60c0810190811067ffffffffffffffff82111761316b57604052565b6060810190811067ffffffffffffffff82111761316b57604052565b6080810190811067ffffffffffffffff82111761316b57604052565b60a0810190811067ffffffffffffffff82111761316b57604052565b610100810190811067ffffffffffffffff82111761316b57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761316b57604052565b359063ffffffff82168203610df157565b67ffffffffffffffff811161316b57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610df1578035906132c882613277565b926132d66040519485613225565b82845260208383010111610df157815f926020809301838601378301015290565b919060c083820312610df1576040519061331082613198565b8193803583526020810135602084015261332c60408201613266565b604084015261333d60608201613266565b60608401526080810135608084015260a08101359167ffffffffffffffff8311610df15760a09261336e92016132b1565b910152565b919091606081840312610df1576040519061338d826131b4565b819381359167ffffffffffffffff8311610df1576133b160409392849383016132f7565b8452602081013560208501520135910152565b91909160e081840312610df1576040519060e0820182811067ffffffffffffffff82111761316b57604052819381359167ffffffffffffffff8311610df15761341360c09392849383016132f7565b845261342160208201613121565b602085015260408101356040850152606081013560608501526080810135608085015261345060a08201613142565b60a08501520135910152565b9190826080910312610df157604051613474816131d0565b606080829461348281613121565b845260208101356020850152604081013560408501520135910152565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610df1576040516020810181811067ffffffffffffffff82111761316b576040526134f38193600461345c565b9052565b67ffffffffffffffff811161316b5760051b60200190565b9190608083820312610df157604051613527816131d0565b8093803567ffffffffffffffff8111610df157836135469183016132f7565b825261355460208201613121565b6020830152604081013567ffffffffffffffff8111610df157836135799183016132b1565b604083015260608101359067ffffffffffffffff8211610df157019180601f84011215610df15782356135ab816134f7565b936135b96040519586613225565b81855260208086019260051b820101928311610df157602001905b8282106135e45750505060600152565b602080916135f184613121565b8152019101906135d4565b9190606083820312610df15760405190613615826131b4565b819361362081613121565b835261362e60208201613121565b602084015260408101359167ffffffffffffffff8311610df15760409261336e92016132b1565b919091606081840312610df1576040519061366f826131b4565b819381359167ffffffffffffffff8311610df1576133b160409392849383016135fc565b919061010083820312610df157604051906136ad826131ec565b81936136b9828261345c565b8352608081013567ffffffffffffffff8111610df157826136db9183016135fc565b602084015260a081013567ffffffffffffffff8111610df15782613700918301613655565b604084015260c0810135606084015260e08101359167ffffffffffffffff8311610df15760809261336e92016132b1565b919061012083820312610df1576040519061374b82613198565b8193613757828261345c565b8352608081013567ffffffffffffffff8111610df157826137799183016135fc565b602084015260a0810135604084015260c081013567ffffffffffffffff8111610df157826137a8918301613655565b606084015260e081013560808401526101008101359167ffffffffffffffff8311610df15760a09261336e92016132b1565b91909160a081840312610df157604051906137f4826131ec565b819381359167ffffffffffffffff8311610df15761381860809392849383016132f7565b845261382660208201613142565b602085015261383760408201613121565b604085015261384860608201613121565b60608501520135910152565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106138b45750505090565b82518452602093840193909201916001016138a7565b919060e083820312610df157604051906138e3826131d0565b81936138ef828261345c565b8352608081013567ffffffffffffffff8111610df157826139119183016135fc565b602084015260a081013567ffffffffffffffff8111610df15782613936918301613655565b604084015260c08101359167ffffffffffffffff8311610df15760609261336e92016132b1565b1561396457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156139c957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f50544c6f6f7065723a20756e617574686f72697a6564000000000000000000006044820152fd5b90602080835192838152019201905f5b818110613a445750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101613a37565b60409073ffffffffffffffffffffffffffffffffffffffff613a9d94931681528160208201520190613854565b90565b613aaa8151613d3a565b90604060208201519101516040519160208301937ff2fd81fd04f9cee0ece251f806445c3b1d5103fcd06f31002a34371094102b59855260408401526060830152608082015260808152613aff60a082613225565b51902090565b604290613b10615620565b613b1861566b565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152613b6960c082613225565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b613bac8151613d3a565b9073ffffffffffffffffffffffffffffffffffffffff60208201511690604081015190606081015160808201519060c060a08401511515930151936040519560208701977f3dbdcfb2686d43e144206a30f06f896545dd0bf378284ab15ce7d25ca65ed9cc895260408801526060870152608086015260a085015260c084015260e08301526101008201526101008152613aff61012082613225565b60405190613c55826131b4565b815f81525f60208201526040805191613c6d83613208565b5f83525f60208401525f828401525f60608401525f60808401525f60a08401525f60c08401525f60e08401520152565b60405190613caa826131d0565b5f6060838281528260208201528260408201520152565b613cc9613c9d565b50604073ffffffffffffffffffffffffffffffffffffffff825116910151613cef613c9d565b5060e08101519073ffffffffffffffffffffffffffffffffffffffff60a081608084015116920151169160405193613d26856131d0565b845260208401526040830152606082015290565b80519060208101519063ffffffff6040820151169063ffffffff60608201511660a0608083015192015160208151910120926040519460208601967f4b5c157e13c9c70173fbe4c990f516a87f1bcb79deeb7706156cfd0a4bb4ee84885260408701526060860152608085015260a084015260c083015260e082015260e08152613aff61010082613225565b613dd09051613f93565b60405160208101917feb325b74167005941f5d4aacf4aa3fd86a6d4dcb7695d06bcc66de38ad87d3c28352604082015260408152613aff606082613225565b613e198151614b1f565b90604060208201519101516040519160208301937f2e509eca09b391e74bb50ce10f43a13d6dfd1390e626fcfc40c60b1d7369a4b0855260408401526060830152608082015260808152613aff60a082613225565b613e788151613f93565b90613e866020820151614b1f565b90613e946040820151613e0f565b906080606082015191015160208151910120916040519360208501957fa2638841c0c7fcfce10275ef9bc3e8b2711ac24f07818116b6942c54a9805f12875260408601526060850152608084015260a083015260c082015260c08152613aff60e082613225565b613f058151613f93565b90613f136020820151614b1f565b90604081015190613f276060820151613e0f565b60a0608083015192015160208151910120926040519460208601967f40d59af1d5bbd55280d0f7131b112cf40ffd6775f6ca26b477734c4dca0cf64e885260408701526060860152608085015260a084015260c083015260e082015260e08152613aff61010082613225565b73ffffffffffffffffffffffffffffffffffffffff8151169060208101519060606040820151910151906040519260208401947f822aa76455d3f0b945088018ee29f25999f8e1b1cbe462cd90f78d0c038148ec865260408501526060840152608083015260a082015260a08152613aff60c082613225565b6140168151613d3a565b90602081015115159073ffffffffffffffffffffffffffffffffffffffff60408201511690608073ffffffffffffffffffffffffffffffffffffffff606083015116910151916040519360208501957f8ac3df3c6aafa50fff9c9cdb9de52954f7d1bcb8a41375bb202fca85c4f86cab875260408601526060850152608084015260a083015260c082015260c08152613aff60e082613225565b90600182811c921680156140f7575b60208310146140ca57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916140bf565b604051905f8260045491614114836140b0565b8083529260018116908115614199575060011461413a575b61413892500383613225565b565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061417d5750509060206141389282010161412c565b6020919350806001915483858901015201910190918492614165565b602092506141389491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161412c565b604051905f82600554916141e9836140b0565b8083529260018116908115614199575060011461420c5761413892500383613225565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b81831061424f5750509060206141389282010161412c565b6020919350806001915483858901015201910190918492614237565b6142758151613d3a565b9073ffffffffffffffffffffffffffffffffffffffff6020820151169060606040820151602081519101209101516040516020810181819360208151939101925f5b8181106143445750506142f19250037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613225565b519020906040519260208401947fc43b1ddd31b47c3575e0cfab0ba34c9546a4f739fce4f13625dc9ae5cc44df62865260408501526060840152608083015260a082015260a08152613aff60c082613225565b845173ffffffffffffffffffffffffffffffffffffffff168352602094850194869450909201916001016142b7565b63ffffffff815116461461440d5763ffffffff60208201511646146143f05760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f50544c6f6f7065723a20756e737570706f7274656420636861696e69640000006044820152fd5b60a0015173ffffffffffffffffffffffffffffffffffffffff1690565b6060015173ffffffffffffffffffffffffffffffffffffffff1690565b9190820391821161443757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181029291811591840414171561443757565b909193949273ffffffffffffffffffffffffffffffffffffffff80821693169183831461470f5773ffffffffffffffffffffffffffffffffffffffff16906144bf818361533a565b9673ffffffffffffffffffffffffffffffffffffffff81511680156147045773ffffffffffffffffffffffffffffffffffffffff826145945f938360408160208f99015116940151918160405195614516876131ec565b8c875260208701998a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613854565b866024830152038183875af1801561231e57614682575b506145b96145c0918361533a565b968761442a565b94670de0b6b3a76400008602868104670de0b6b3a76400001487151715614437575f9082156001171561443757106146245760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20737761702062656c6f77206d696e53776170526174656044820152fd5b903d805f843e6146928184613225565b820191602081840312610df15780519067ffffffffffffffff8211610df157019082601f83011215610df1578151926146ca84613277565b906146d86040519283613225565b84825260208585010111610df1575f6020856145c096826145b997018386015e830101525091506145ab565b505f96505050505050565b505050509150905f90565b9495939473ffffffffffffffffffffffffffffffffffffffff80851694921692908385146149535773ffffffffffffffffffffffffffffffffffffffff1691614763818461533a565b9773ffffffffffffffffffffffffffffffffffffffff81511680156149475773ffffffffffffffffffffffffffffffffffffffff5f9161483660408360208701511695015183604051936147b6856131ec565b8b85528160208601988b8a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613854565b876024830152038183885af1801561231e576148c5575b5061485b614862918461533a565b978861442a565b95670de0b6b3a7640000870290878204670de0b6b3a764000014881517156144375761488e9083614464565b116146245760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b903d805f843e6148d58184613225565b820191602081840312610df15780519067ffffffffffffffff8211610df157019082601f83011215610df15781519261490d84613277565b9061491b6040519283613225565b84825260208585010111610df1575f602085614862968261485b97018386015e8301015250915061484d565b505f9750505050505050565b5095505f9450505050565b9192909173ffffffffffffffffffffffffffffffffffffffff16803b15610df1575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967fc3b35a7e00000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af1801561231e576149e75750565b5f61413891613225565b519073ffffffffffffffffffffffffffffffffffffffff82168203610df157565b614a1c8151613f93565b90614a2a6020820151614b1f565b906060614a3a6040830151613e0f565b91015160208151910120906040519260208401947f6cd5da344d135a773661e166411b132de126661c92b5d13b7b83c71ff0110f1f865260408501526060840152608083015260a082015260a08152613aff60c082613225565b15614a9b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff81511690604073ffffffffffffffffffffffffffffffffffffffff602083015116910151602081519101206040519160208301937fd3355b017a4df5ab14bfe30be8fc74cf288d6cbdd53b7fb9a45cb406e14cb425855260408401526060830152608082015260808152613aff60a082613225565b9190939294614bb6613c48565b5073ffffffffffffffffffffffffffffffffffffffff8351165f52606960205260405f2094602084019586515f5260205260405f209060208101514210156152dc5785825480155f1461526757505080518751036151e35763ffffffff6040820151169263ffffffff60018401541680940361518557614c4e908773ffffffffffffffffffffffffffffffffffffffff8851166153ff565b156151015790859055835186516040805188815263ffffffff95861660208201526060949373ffffffffffffffffffffffffffffffffffffffff16917e3d5fea7147843a952736a57f88f9e5565759fb750f34a8e58cbc215034c64c91a35b01511690614cb9613c48565b9542604085015111156150a357614ce89173ffffffffffffffffffffffffffffffffffffffff606754166153ff565b1561504557606082019081511015614fc15773ffffffffffffffffffffffffffffffffffffffff8251165f52606860205260405f20835f5260205260405f2054815103614f635751600181018091116144375773ffffffffffffffffffffffffffffffffffffffff92838351165f52606860205260405f20905f5260205260405f205551169051604051917fa92572fb00000000000000000000000000000000000000000000000000000000835260048301526024820152610140816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1801561231e575f905f925f91614e1b575b50604084015273ffffffffffffffffffffffffffffffffffffffff918216602084015216815290565b92505050806101403d8111614f5c575b614e358183613225565b8101036101408112610df157815173ffffffffffffffffffffffffffffffffffffffff81168103610df15760208301519173ffffffffffffffffffffffffffffffffffffffff83168303610df1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0610100910112610df15773ffffffffffffffffffffffffffffffffffffffff92839161012060405192614ed684613208565b614ee26040820161558a565b8452614ef06060820161558a565b6020850152614f01608082016149f1565b6040850152614f1260a082016149f1565b6060850152614f2360c082016149f1565b6080850152614f3460e082016149f1565b60a0850152614f4661010082016149f1565b60c0850152015160e08301529290915092614df2565b503d614e2b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e76616c69642070726f706f736572206e6f6e63656044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a207065726d69744e6f6e6365436170206578636565646560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50544c6f6f7065723a20696e76616c6964207369676e617475726500000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d6573736167652065787069726564000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a20696e76616c6964206f776e6572207369676e6174757260448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20696e76616c69642073657373696f6e206e6f6e6365006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50544c6f6f7065723a207265712f7065726d697420626f784964206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152fd5b91935091500361527e57606063ffffffff91614cad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20726571756573742068617368206d69736d61746368006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a20726571756573742065787069726564000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff168061535b57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa90811561231e575f916153ba575090565b90506020813d6020116153e1575b816153d560209383613225565b81010312610df1575190565b3d91506153c8565b9190826040910312610df1576020825192015190565b9061540a8382615691565b600581959295101561555d5715938461553a575b50831561542c575b50505090565b5f93509061547d6154a985949360405192839160208301957f1626ba7e0000000000000000000000000000000000000000000000000000000087526024840152604060448401526064830190613854565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613225565b51915afa3d15615533573d6154bd81613277565b906154cb6040519283613225565b81523d5f602083013e5b81615525575b816154ea575b505f8080615426565b9050602081805181010312610df157602001517f1626ba7e00000000000000000000000000000000000000000000000000000000145f6154e1565b9050602081511015906154db565b60606154d5565b73ffffffffffffffffffffffffffffffffffffffff84811691161493505f61541e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519063ffffffff82168203610df157565b92670de0b6b3a76400006155b481946155ba9496614464565b04614464565b04106155c257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d61784c5456206578636565646564000000000000006044820152fd5b615628614101565b8051908115615638576020012090565b505060025480156156465790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156736141d6565b8051908115615683576020012090565b505060035480156156465790565b9060418151145f146156bd576156b991602082015190606060408401519301515f1a906156c6565b9091565b50505f90600290565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615743576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa1561231e575f5173ffffffffffffffffffffffffffffffffffffffff81161561573b57905f90565b505f90600190565b505050505f9060039056fea26469706673582212207ccb1e2387148f2ddad31a7a0d4c80376a0668e89b585e43a8a0e6505167b13364736f6c634300081e0033",
|
|
2651
|
+
"bytecode": "0x60e03461018857601f61596a38819003918201601f19168301916001600160401b0383118484101761018c5780849260609460405283398101031261018857610047816101a0565b906100606040610059602084016101a0565b92016101a0565b6080929092526001600160a01b031660a05260015460a881901c60ff166101335760ff808260a01c16036100f0575b506001600160a01b031660c0526040516157b590816101b5823960805181818161116b015281816122a40152613017015260a0518181816107350152614df0015260c0518181816107a40152818161123601528181611bb40152612e3c0152f35b60ff60a01b191660ff60a01b1760015560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a15f61008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101885756fe60806040526004361015610011575f80fd5b5f5f3560e01c80628e8a5214612a07578063078dfbe71461282e5780630ffa1859146127d65780631c3c0ea8146127235780631c9cd00f146123d55780631f64e9ce1461237b5780631fb4a228146122c85780632d2c5565146122595780632f8912ef1461221b5780634ac264ca146121c35780634e71e0c8146120a8578063536ad93e1461204e57806363efbf0e14611ff15780636967c48514611f6e57806377aa686f14611f1657806384b0196e14611dd45780638b8c7d0e14611d7c5780638da5cb5b14611d2b578063a44f9eb114611cd1578063a6b41ec414611901578063a8e4fb90146118af578063b5f0945214610fcd578063bfe88d8e14610f70578063c124221314610f16578063c34c08e514610ec4578063c4d66de8146107c8578063c6f45db314610759578063ca6f50fd146106ea578063d6d67da014610690578063db03a2f014610636578063e23dd1fc146105f0578063e30c39781461059e578063e42baa2b1461053c578063f1ec230f14610493578063f6fa7e5014610426578063fb2bc633146103c45763ff0639e1146101b0575f80fd5b346103c15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576101e761325c565b6024359073ffffffffffffffffffffffffffffffffffffffff604435918160665416331480156103b6575b61021b90613990565b16908184526069602052604084208385526020526040842090815480156103585781036102fa57600182019182549263ffffffff841663ffffffff81146102cd5760010163ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000094909416841790558590556040805191825260208201929092527fc3f9a82d23af118c46becbef55ed995396b7cc74a156acc86c37edd9620f1e0e91819081015b0390a380f35b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50544c6f6f7065723a207265717565737448617368206d69736d6174636800006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206e6f206f70656e2073657373696f6e000000000000006044820152fd5b503381831614610212565b80fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6104193660048601613363565b614b50565b604051908152f35b50346103c15760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157604060209173ffffffffffffffffffffffffffffffffffffffff61047861325c565b16815260688352818120602435825283522054604051908152f35b50346103c15760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576040809173ffffffffffffffffffffffffffffffffffffffff6104e461325c565b82602085516104f281613145565b8281520152168152606960205281812060243582526020522063ffffffff825161051b81613145565b60208260018554958685520154169101908152835192835251166020820152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996105943660048701613412565b614ab8565b613bc7565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602061041e6105996106313661358e565b613d8d565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e61068b366004860161380d565b613fdf565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6106e53660048601613543565b613b62565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761080061325c565b60015460ff8160a81c161590818092610eb4575b8015610e9a575b15610e165781740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff831617600155610dd3575b506040918251610873848261321b565b601081527f50656e646c65205054204c6f6f7065720000000000000000000000000000000060208201528351906108aa858361321b565b600182527f310000000000000000000000000000000000000000000000000000000000000060208301526108ee60ff60015460a81c166108e981614a2d565b614a2d565b80519067ffffffffffffffff8211610da657819061090d600454614083565b601f8111610cfb575b50602090601f8311600114610c3e578892610c33575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176004555b80519067ffffffffffffffff8211610c065761097c600554614083565b601f8111610b65575b50602090601f8311600114610a905773ffffffffffffffffffffffffffffffffffffffff939291879183610a85575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176005555b8460025584600355610a0060ff60015460a81c16614a2d565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000845416178355610a30575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff600154166001555160018152a180f35b015190505f806109b4565b600587527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416885b818110610b4d575091600193918573ffffffffffffffffffffffffffffffffffffffff97969410610b16575b505050811b016005556109e7565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610b08565b92936020600181928786015181550195019301610adc565b60058752601f830160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0019060208410610bde575b601f0160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001905b818110610bd35750610985565b878155600101610bc6565b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09150610b9c565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190505f8061092c565b600489527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016895b818110610ce35750908460019594939210610cac575b505050811b0160045561095f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610c9e565b92936020600181928786015181550195019301610c88565b90915060048852601f830160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b019060208410610d7e575b90601f8493920160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905b818110610d705750610916565b898155849350600101610d63565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9150610d35565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000176001555f610863565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b15801561081b5750600160ff8260a01c161461081b565b50600160ff8260a01c1610610814565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60665416604051908152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610f6b36600486016135fe565b61423e565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599610fc836600487016138fd565b6149ab565b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760043567ffffffffffffffff81116118ab57611018903690600401613764565b60243567ffffffffffffffff81116118a75761103890369060040161331d565b9060443567ffffffffffffffff811161134c576110599036906004016136eb565b9060643567ffffffffffffffff81116118a35761107d6110cd91369060040161331d565b6110a073ffffffffffffffffffffffffffffffffffffffff606654163314613990565b6110a8613ad3565b506110b561059985613dd6565b8095845186516110c761059988613ece565b91614bda565b9184938594604085019087825163ffffffff81511646145f1461186e57505050606084510151155f146118435773ffffffffffffffffffffffffffffffffffffffff602084015116946111d96040850151965b6111418173ffffffffffffffffffffffffffffffffffffffff85511661536b565b9761119773ffffffffffffffffffffffffffffffffffffffff85511661119060408b0191858351917f0000000000000000000000000000000000000000000000000000000000000000906148f7565b518a613b28565b9173ffffffffffffffffffffffffffffffffffffffff8551169273ffffffffffffffffffffffffffffffffffffffff604088510151169160208b0151946146b3565b60a0869492940151611766575b50611200815163ffffffff60208183511692015116141590565b61160d57889296945b63ffffffff602083510151164614611350575b505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0860151823b1561134c576112a1928492836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af1801561134157611328575b50506102c77fdc32c763f038ea930cdd65ad1f0e1be8e661976d42f515d4e6609e1ec732a48493519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b816113329161321b565b61133d57855f6112b0565b8580fd5b6040513d84823e3d90fd5b8380fd5b90928092985060808701516113648a613c88565b60208b0191604073ffffffffffffffffffffffffffffffffffffffff84511660a48d835197889384927fec0949850000000000000000000000000000000000000000000000000000000084526113f5600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af192831561175b57869182958395611735575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835195869384927f0a44c19500000000000000000000000000000000000000000000000000000000845261149c600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af191821561172a5787926116d4575b5061153f608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa9182156116c9578d9261166b575b5091611585916040949360807f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec5970151926155cc565b73ffffffffffffffffffffffffffffffffffffffff8a51169382519182526020820152a26115ff6115e973ffffffffffffffffffffffffffffffffffffffff88511673ffffffffffffffffffffffffffffffffffffffff60a085510151169061536b565b915163ffffffff60208183511692015116141590565b61160d578690955f8061121c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b915092916020823d6020116116c1575b816116886020938361321b565b810103126116bd57905191929091907f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec561154f565b5f80fd5b3d915061167b565b6040513d8f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff97506020919250608461171661153f9260403d604011611723575b61170e818361321b565b81019061541a565b99909994935050506114b1565b503d611704565b6040513d89823e3d90fd5b60408097506117519296503d88116117235761170e818361321b565b959095949061140e565b6040513d88823e3d90fd5b60049073ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff89515116602073ffffffffffffffffffffffffffffffffffffffff60408751015116604051958680927f781c18db0000000000000000000000000000000000000000000000000000000082525afa9182156116c9578d92611802575b6117fc94506148f7565b5f6111e6565b91506020843d60201161183b575b8161181d6020938361321b565b81010312611837576118316117fc9461498a565b916117f2565b8c80fd5b3d9150611810565b73ffffffffffffffffffffffffffffffffffffffff60608251015116946111d9606085015196611120565b61189d9073ffffffffffffffffffffffffffffffffffffffff6080818b96999b9795975116920151169061536b565b96611209565b8480fd5b8280fd5b5080fd5b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760043567ffffffffffffffff81116118ab5761194c9036906004016138fd565b60243567ffffffffffffffff81116118a75761196c90369060040161331d565b9060443567ffffffffffffffff811161134c5761198d90369060040161380d565b9060643567ffffffffffffffff81116118a3576119b16119fb91369060040161331d565b6119d473ffffffffffffffffffffffffffffffffffffffff606654163314613990565b6119dc613ad3565b506119e961059985613fdf565b8095845186516110c7610599886149ab565b91604083019081519063ffffffff82511646145f14611caa57611a6b611a3b73ffffffffffffffffffffffffffffffffffffffff60408401511693614346565b8373ffffffffffffffffffffffffffffffffffffffff88511691611a5f818461536b565b90602089015193614410565b509260808201518410611c4c57602063ffffffff92015115155f14611c44575160200151165b63ffffffff164614611afb5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b7fb5b9244c6ced1f40da658794a27cce7a0fb4184569b3916665b60044d25bb0b460808796611b5c858573ffffffffffffffffffffffffffffffffffffffff8a511673ffffffffffffffffffffffffffffffffffffffff8a515116906148f7565b85519473ffffffffffffffffffffffffffffffffffffffff80875116956060602089015198015160405194855260208501521660408301526060820152a3606073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016935116910151823b15611c3f57611c1d928492836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af1801561134157611c2e5750f35b81611c389161321b565b6103c15780f35b505050fd5b515116611a91565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e73756666696369656e7420746f6b656e206f75746044820152fd5b611a6b611a3b73ffffffffffffffffffffffffffffffffffffffff60608401511693614346565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e611d2636600486016136eb565b613dd6565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599610f6b36600487016135fe565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576002541580611f0c575b15611eae57611e7d90611eaa611e216140d4565b91611e2a6141a9565b611e8b60405191611e3c60208461321b565b8383525f3681376040519687967f0f00000000000000000000000000000000000000000000000000000000000000885260e0602089015260e0880190613887565b908682036040880152613887565b9146606086015230608086015260a085015283820360c08501526138ca565b0390f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b5060035415611e0d565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e61059961068b366004870161380d565b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760405190611fab8261318e565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c157602061041e848481526024358382015260443560408201526064356060820152613f66565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996120493660048701613764565b613ece565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6120a336600486016133c1565b613e6f565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760015473ffffffffffffffffffffffffffffffffffffffff811690813303612165577fffffffffffffffffffffffff0000000000000000000000000000000000000000918284548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08880a3161783551660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599611d2636600487016136eb565b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602061041e6106313661358e565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1577f6aaea081d3338771247ce1c8b55c8111e92e8523a8abfaf46030701203f8c0fe602073ffffffffffffffffffffffffffffffffffffffff61233861325c565b612346828654163314613a25565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006067541617606755604051908152a180f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6123d036600486016134cc565b613d01565b50346103c15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761240e3661358e565b60843567ffffffffffffffff81116118a75761242e90369060040161331d565b9060a43567ffffffffffffffff811161134c5761244f9036906004016135fe565b9060c43567ffffffffffffffff81116118a3576124736124bd91369060040161331d565b61249673ffffffffffffffffffffffffffffffffffffffff606654163314613990565b61249e613ad3565b506124ab6105998561423e565b8095845186516110c761059988613d8d565b90846124e373ffffffffffffffffffffffffffffffffffffffff60208501511693613c88565b9273ffffffffffffffffffffffffffffffffffffffff6020860151169061258583606060408901519801966125cb885161259b6040519b8c98899788967fb3fd98f0000000000000000000000000000000000000000000000000000000008852600488019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b608486015260e060a486015260e4850190613887565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160c4850152613a8a565b03925af192831561271857859361265a575b50907f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc89151936102c773ffffffffffffffffffffffffffffffffffffffff8651169461264c60606020890151980151945160405195869586526020860152608060408601526080850190613a8a565b9083820360608501526138ca565b9092503d8086833e61266c818361321b565b81019060208183031261133d5780519067ffffffffffffffff821161271457019080601f8301121561133d5781516126a3816135e6565b926126b1604051948561321b565b81845260208085019260051b82010192831161271057602001905b8282106127005750919391507f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc890506125dd565b81518152602091820191016126cc565b8780fd5b8680fd5b6040513d87823e3d90fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1577f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a43602073ffffffffffffffffffffffffffffffffffffffff61279361325c565b6127a1828654163314613a25565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006066541617606655604051908152a180f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996106e53660048701613543565b50346103c15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761286661325c565b6024359081151582036118a75760443591821515830361134c576128a273ffffffffffffffffffffffffffffffffffffffff8554163314613a25565b156129c35773ffffffffffffffffffffffffffffffffffffffff16908115908115916129bb575b501561295d577fffffffffffffffffffffffff000000000000000000000000000000000000000082548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a3161781557fffffffffffffffffffffffff00000000000000000000000000000000000000006001541660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b90505f6128c9565b73ffffffffffffffffffffffffffffffffffffffff9150167fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015580f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126116bd5760043567ffffffffffffffff81116116bd57612a52903690600401613412565b60243567ffffffffffffffff81116116bd57612a7290369060040161331d565b9060443567ffffffffffffffff81116116bd57612a93903690600401613543565b60643567ffffffffffffffff81116116bd57612ab6612b0091369060040161331d565b612ad973ffffffffffffffffffffffffffffffffffffffff606654163314613990565b612ae1613ad3565b50612aee61059984613b62565b8095855185516110c761059989614ab8565b925f925f946040810194855163ffffffff60208201511646145f14613112575050612b5e73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff60a088510151169061536b565b946060830151612b6d83613c88565b5f6020850191604073ffffffffffffffffffffffffffffffffffffffff84511660a48c835195869384927f3a2e717b000000000000000000000000000000000000000000000000000000008452612bff600485018973ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af18015612f6d575f94859386926130ec575b5060409060a473ffffffffffffffffffffffffffffffffffffffff87511691835198899384927fd30cd708000000000000000000000000000000000000000000000000000000008452612ca5600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1938415612f6d575f955f956130a6575b50612d4a608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215612f6d575f92613050575b507f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c9360409392612d8f92858d0151926155cc565b73ffffffffffffffffffffffffffffffffffffffff8651169382519182526020820152a2612df073ffffffffffffffffffffffffffffffffffffffff83511673ffffffffffffffffffffffffffffffffffffffff608084510151169061536b565b612e09825163ffffffff60208183511692015116141590565b61160d5795945b815163ffffffff8151164614612f78575b50505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0830151823b156116bd57612ea7925f92836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af18015612f6d57612f2f575b50906102c77f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b85119392519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b7f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b851193929196505f612f5f9161321b565b6102c75f9691929350612eb6565b6040513d5f823e3d90fd5b8398506115e991612fd49173ffffffffffffffffffffffffffffffffffffffff61304395965116918a602073ffffffffffffffffffffffffffffffffffffffff606081604087015116950151169201519260208a0151946146b3565b5073ffffffffffffffffffffffffffffffffffffffff89511661303c73ffffffffffffffffffffffffffffffffffffffff606087510151169160808801928351917f0000000000000000000000000000000000000000000000000000000000000000906148f7565b5190613b28565b61160d57945f8080612e21565b909291506020813d60201161309e575b8161306d6020938361321b565b810103126116bd575190917f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c612d5a565b3d9150613060565b73ffffffffffffffffffffffffffffffffffffffff9650602091955060846130df612d4a9260403d6040116117235761170e818361321b565b9890989793505050612cbc565b60408095506131089293503d86116117235761170e818361321b565b9390939190612c17565b61313f9073ffffffffffffffffffffffffffffffffffffffff604081869a95999a5116920151169061536b565b95612e10565b6040810190811067ffffffffffffffff82111761316157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761316157604052565b6060810190811067ffffffffffffffff82111761316157604052565b60c0810190811067ffffffffffffffff82111761316157604052565b60a0810190811067ffffffffffffffff82111761316157604052565b610100810190811067ffffffffffffffff82111761316157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761316157604052565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b359073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b91908260809103126116bd576040516132b88161318e565b60608082946132c68161327f565b845260208101356020850152604081013560408501520135910152565b67ffffffffffffffff811161316157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156116bd57803590613334826132e3565b92613342604051948561321b565b828452602083830101116116bd57815f926020809301838601378301015290565b91906060838203126116bd576040519061337c826131aa565b81936133878161327f565b83526133956020820161327f565b602084015260408101359167ffffffffffffffff83116116bd576040926133bc920161331d565b910152565b9190916060818403126116bd57604051906133db826131aa565b819381359167ffffffffffffffff83116116bd576133ff6040939284938301613363565b8452602081013560208501520135910152565b9190610120838203126116bd576040519061342c826131c6565b819361343882826132a0565b8352608081013567ffffffffffffffff81116116bd578261345a918301613363565b602084015260a081013567ffffffffffffffff81116116bd578261347f9183016133c1565b604084015260c0810135606084015260e081013560808401526101008101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b359063ffffffff821682036116bd57565b919060c0838203126116bd57604051906134e5826131c6565b81938035835260208101356020840152613501604082016134bb565b6040840152613512606082016134bb565b60608401526080810135608084015260a08101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b9190916060818403126116bd576040519061355d826131aa565b819381359167ffffffffffffffff83116116bd576133ff60409392849383016134cc565b359081151582036116bd57565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126116bd576040516020810181811067ffffffffffffffff821117613161576040526135e2819360046132a0565b9052565b67ffffffffffffffff81116131615760051b60200190565b91906080838203126116bd576040516136168161318e565b8093803567ffffffffffffffff81116116bd57836136359183016134cc565b82526136436020820161327f565b6020830152604081013567ffffffffffffffff81116116bd578361366891830161331d565b604083015260608101359067ffffffffffffffff82116116bd57019180601f840112156116bd57823561369a816135e6565b936136a8604051958661321b565b81855260208086019260051b8201019283116116bd57602001905b8282106136d35750505060600152565b602080916136e08461327f565b8152019101906136c3565b91909160c0818403126116bd5760405190613705826131c6565b819381359067ffffffffffffffff82116116bd578261372d60a094926133bc948694016134cc565b855261373b6020820161327f565b602086015260408101356040860152606081013560608601526080810135608086015201613581565b9190610120838203126116bd576040519061377e826131c6565b819361378a82826132a0565b8352608081013567ffffffffffffffff81116116bd57826137ac918301613363565b602084015260a0810135604084015260c081013567ffffffffffffffff81116116bd57826137db9183016133c1565b606084015260e081013560808401526101008101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b91909160a0818403126116bd5760405190613827826131e2565b819381359167ffffffffffffffff83116116bd5761384b60809392849383016134cc565b845261385960208201613581565b602085015261386a6040820161327f565b604085015261387b6060820161327f565b60608501520135910152565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106138e75750505090565b82518452602093840193909201916001016138da565b919060e0838203126116bd57604051906139168261318e565b819361392282826132a0565b8352608081013567ffffffffffffffff81116116bd5782613944918301613363565b602084015260a081013567ffffffffffffffff81116116bd57826139699183016133c1565b604084015260c08101359167ffffffffffffffff83116116bd576060926133bc920161331d565b1561399757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f50544c6f6f7065723a20756e617574686f72697a6564000000000000000000006044820152fd5b60409073ffffffffffffffffffffffffffffffffffffffff613a2294931681528160208201520190613887565b90565b15613a2c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b90602080835192838152019201905f5b818110613aa75750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101613a9a565b60405190613ae0826131aa565b815f81525f60208201526040805191613af8836131fe565b5f83525f60208401525f828401525f60608401525f60808401525f60a08401525f60c08401525f60e08401520152565b91908203918211613b3557565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b613b6c8151613d01565b90604060208201519101516040519160208301937ff2fd81fd04f9cee0ece251f806445c3b1d5103fcd06f31002a34371094102b59855260408401526060830152608082015260808152613bc160a08261321b565b51902090565b604290613bd2615686565b613bda6156d1565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152613c2b60c08261321b565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b60405190613c718261318e565b5f6060838281528260208201528260408201520152565b613c90613c64565b50604073ffffffffffffffffffffffffffffffffffffffff825116910151613cb6613c64565b5060e08101519073ffffffffffffffffffffffffffffffffffffffff60a081608084015116920151169160405193613ced8561318e565b845260208401526040830152606082015290565b80519060208101519063ffffffff6040820151169063ffffffff60608201511660a0608083015192015160208151910120926040519460208601967f4b5c157e13c9c70173fbe4c990f516a87f1bcb79deeb7706156cfd0a4bb4ee84885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b613d979051613f66565b60405160208101917feb325b74167005941f5d4aacf4aa3fd86a6d4dcb7695d06bcc66de38ad87d3c28352604082015260408152613bc160608261321b565b613de08151613d01565b9073ffffffffffffffffffffffffffffffffffffffff60208201511690604081015190606081015160a060808301519201511515926040519460208601967fb37d571e358db3b5130424792ae520a87def7c4a54a9d100801057de49dd0a56885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b613e798151614b50565b90604060208201519101516040519160208301937f2e509eca09b391e74bb50ce10f43a13d6dfd1390e626fcfc40c60b1d7369a4b0855260408401526060830152608082015260808152613bc160a08261321b565b613ed88151613f66565b90613ee66020820151614b50565b90604081015190613efa6060820151613e6f565b60a0608083015192015160208151910120926040519460208601967f40d59af1d5bbd55280d0f7131b112cf40ffd6775f6ca26b477734c4dca0cf64e885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b73ffffffffffffffffffffffffffffffffffffffff8151169060208101519060606040820151910151906040519260208401947f822aa76455d3f0b945088018ee29f25999f8e1b1cbe462cd90f78d0c038148ec865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b613fe98151613d01565b90602081015115159073ffffffffffffffffffffffffffffffffffffffff60408201511690608073ffffffffffffffffffffffffffffffffffffffff606083015116910151916040519360208501957f8ac3df3c6aafa50fff9c9cdb9de52954f7d1bcb8a41375bb202fca85c4f86cab875260408601526060850152608084015260a083015260c082015260c08152613bc160e08261321b565b90600182811c921680156140ca575b602083101461409d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691614092565b604051905f82600454916140e783614083565b808352926001811690811561416c575060011461410d575b61410b9250038361321b565b565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061415057505090602061410b928201016140ff565b6020919350806001915483858901015201910190918492614138565b6020925061410b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201016140ff565b604051905f82600554916141bc83614083565b808352926001811690811561416c57506001146141df5761410b9250038361321b565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b81831061422257505090602061410b928201016140ff565b602091935080600191548385890101520191019091849261420a565b6142488151613d01565b9073ffffffffffffffffffffffffffffffffffffffff6020820151169060606040820151602081519101209101516040516020810181819360208151939101925f5b8181106143175750506142c49250037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261321b565b519020906040519260208401947fc43b1ddd31b47c3575e0cfab0ba34c9546a4f739fce4f13625dc9ae5cc44df62865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b845173ffffffffffffffffffffffffffffffffffffffff1683526020948501948694509092019160010161428a565b63ffffffff81511646146143e05763ffffffff60208201511646146143c35760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f50544c6f6f7065723a20756e737570706f7274656420636861696e69640000006044820152fd5b60a0015173ffffffffffffffffffffffffffffffffffffffff1690565b6060015173ffffffffffffffffffffffffffffffffffffffff1690565b81810292918115918404141715613b3557565b909193949273ffffffffffffffffffffffffffffffffffffffff8082169316918383146146a85773ffffffffffffffffffffffffffffffffffffffff1690614458818361536b565b9673ffffffffffffffffffffffffffffffffffffffff815116801561469d5773ffffffffffffffffffffffffffffffffffffffff8261452d5f938360408160208f990151169401519181604051956144af876131e2565b8c875260208701998a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613887565b866024830152038183875af18015612f6d5761461b575b50614552614559918361536b565b9687613b28565b94670de0b6b3a76400008602868104670de0b6b3a76400001487151715613b35575f90821560011715613b3557106145bd5760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20737761702062656c6f77206d696e53776170526174656044820152fd5b903d805f843e61462b818461321b565b8201916020818403126116bd5780519067ffffffffffffffff82116116bd57019082601f830112156116bd57815192614663846132e3565b90614671604051928361321b565b848252602085850101116116bd575f602085614559968261455297018386015e83010152509150614544565b505f96505050505050565b505050509150905f90565b9495939473ffffffffffffffffffffffffffffffffffffffff80851694921692908385146148ec5773ffffffffffffffffffffffffffffffffffffffff16916146fc818461536b565b9773ffffffffffffffffffffffffffffffffffffffff81511680156148e05773ffffffffffffffffffffffffffffffffffffffff5f916147cf604083602087015116950151836040519361474f856131e2565b8b85528160208601988b8a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613887565b876024830152038183885af18015612f6d5761485e575b506147f46147fb918461536b565b9788613b28565b95670de0b6b3a7640000870290878204670de0b6b3a76400001488151715613b355761482790836143fd565b116145bd5760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b903d805f843e61486e818461321b565b8201916020818403126116bd5780519067ffffffffffffffff82116116bd57019082601f830112156116bd578151926148a6846132e3565b906148b4604051928361321b565b848252602085850101116116bd575f6020856147fb96826147f497018386015e830101525091506147e6565b505f9750505050505050565b5095505f9450505050565b9192909173ffffffffffffffffffffffffffffffffffffffff16803b156116bd575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967fc3b35a7e00000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015612f6d576149805750565b5f61410b9161321b565b519073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b6149b58151613f66565b906149c36020820151614b50565b9060606149d36040830151613e6f565b91015160208151910120906040519260208401947f6cd5da344d135a773661e166411b132de126661c92b5d13b7b83c71ff0110f1f865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b15614a3457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b614ac28151613f66565b90614ad06020820151614b50565b90614ade6040820151613e6f565b90606081015160a0608083015192015160208151910120926040519460208601967f4acf1a63082999b1c5bc3be18a62b4549817bf7f6bf2999238c2eddb1cd71942885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b73ffffffffffffffffffffffffffffffffffffffff81511690604073ffffffffffffffffffffffffffffffffffffffff602083015116910151602081519101206040519160208301937fd3355b017a4df5ab14bfe30be8fc74cf288d6cbdd53b7fb9a45cb406e14cb425855260408401526060830152608082015260808152613bc160a08261321b565b9190939294614be7613ad3565b5073ffffffffffffffffffffffffffffffffffffffff8351165f52606960205260405f2094602084019586515f5260205260405f2090602081015142101561530d5785825480155f1461529857505080518751036152145763ffffffff6040820151169263ffffffff6001840154168094036151b657614c7f908773ffffffffffffffffffffffffffffffffffffffff885116615430565b156151325790859055835186516040805188815263ffffffff95861660208201526060949373ffffffffffffffffffffffffffffffffffffffff16917e3d5fea7147843a952736a57f88f9e5565759fb750f34a8e58cbc215034c64c91a35b01511690614cea613ad3565b9542604085015111156150d457614d199173ffffffffffffffffffffffffffffffffffffffff60675416615430565b1561507657606082019081511015614ff25773ffffffffffffffffffffffffffffffffffffffff8251165f52606860205260405f20835f5260205260405f2054815103614f94575160018101809111613b355773ffffffffffffffffffffffffffffffffffffffff92838351165f52606860205260405f20905f5260205260405f205551169051604051917fa92572fb00000000000000000000000000000000000000000000000000000000835260048301526024820152610140816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af18015612f6d575f905f925f91614e4c575b50604084015273ffffffffffffffffffffffffffffffffffffffff918216602084015216815290565b92505050806101403d8111614f8d575b614e66818361321b565b81010361014081126116bd57815173ffffffffffffffffffffffffffffffffffffffff811681036116bd5760208301519173ffffffffffffffffffffffffffffffffffffffff831683036116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06101009101126116bd5773ffffffffffffffffffffffffffffffffffffffff92839161012060405192614f07846131fe565b614f13604082016155bb565b8452614f21606082016155bb565b6020850152614f326080820161498a565b6040850152614f4360a0820161498a565b6060850152614f5460c0820161498a565b6080850152614f6560e0820161498a565b60a0850152614f77610100820161498a565b60c0850152015160e08301529290915092614e23565b503d614e5c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e76616c69642070726f706f736572206e6f6e63656044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a207065726d69744e6f6e6365436170206578636565646560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50544c6f6f7065723a20696e76616c6964207369676e617475726500000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d6573736167652065787069726564000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a20696e76616c6964206f776e6572207369676e6174757260448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20696e76616c69642073657373696f6e206e6f6e6365006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50544c6f6f7065723a207265712f7065726d697420626f784964206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152fd5b9193509150036152af57606063ffffffff91614cde565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20726571756573742068617368206d69736d61746368006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a20726571756573742065787069726564000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff168061538c57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115612f6d575f916153eb575090565b90506020813d602011615412575b816154066020938361321b565b810103126116bd575190565b3d91506153f9565b91908260409103126116bd576020825192015190565b9061543b8382615651565b600581959295101561558e5715938461556b575b50831561545d575b50505090565b5f9350906154ae6154da85949360405192839160208301957f1626ba7e0000000000000000000000000000000000000000000000000000000087526024840152604060448401526064830190613887565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261321b565b51915afa3d15615564573d6154ee816132e3565b906154fc604051928361321b565b81523d5f602083013e5b81615556575b8161551b575b505f8080615457565b90506020818051810103126116bd57602001517f1626ba7e00000000000000000000000000000000000000000000000000000000145f615512565b90506020815110159061550c565b6060615506565b73ffffffffffffffffffffffffffffffffffffffff84811691161493505f61544f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519063ffffffff821682036116bd57565b92670de0b6b3a76400006155e581946155eb94966143fd565b046143fd565b04106155f357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d61784c5456206578636565646564000000000000006044820152fd5b9060418151145f1461567d5761567991602082015190606060408401519301515f1a906156f7565b9091565b50505f90600290565b61568e6140d4565b805190811561569e576020012090565b505060025480156156ac5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156d96141a9565b80519081156156e9576020012090565b505060035480156156ac5790565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615774576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15612f6d575f5173ffffffffffffffffffffffffffffffffffffffff81161561576c57905f90565b505f90600190565b505050505f9060039056fea264697066735822122015cc8dac31334ad1d2ec286c82adc76a779533045c892a299fcd353358b0c18a64736f6c634300081e0033",
|
|
2652
|
+
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f5f3560e01c80628e8a5214612a07578063078dfbe71461282e5780630ffa1859146127d65780631c3c0ea8146127235780631c9cd00f146123d55780631f64e9ce1461237b5780631fb4a228146122c85780632d2c5565146122595780632f8912ef1461221b5780634ac264ca146121c35780634e71e0c8146120a8578063536ad93e1461204e57806363efbf0e14611ff15780636967c48514611f6e57806377aa686f14611f1657806384b0196e14611dd45780638b8c7d0e14611d7c5780638da5cb5b14611d2b578063a44f9eb114611cd1578063a6b41ec414611901578063a8e4fb90146118af578063b5f0945214610fcd578063bfe88d8e14610f70578063c124221314610f16578063c34c08e514610ec4578063c4d66de8146107c8578063c6f45db314610759578063ca6f50fd146106ea578063d6d67da014610690578063db03a2f014610636578063e23dd1fc146105f0578063e30c39781461059e578063e42baa2b1461053c578063f1ec230f14610493578063f6fa7e5014610426578063fb2bc633146103c45763ff0639e1146101b0575f80fd5b346103c15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576101e761325c565b6024359073ffffffffffffffffffffffffffffffffffffffff604435918160665416331480156103b6575b61021b90613990565b16908184526069602052604084208385526020526040842090815480156103585781036102fa57600182019182549263ffffffff841663ffffffff81146102cd5760010163ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000094909416841790558590556040805191825260208201929092527fc3f9a82d23af118c46becbef55ed995396b7cc74a156acc86c37edd9620f1e0e91819081015b0390a380f35b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50544c6f6f7065723a207265717565737448617368206d69736d6174636800006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206e6f206f70656e2073657373696f6e000000000000006044820152fd5b503381831614610212565b80fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6104193660048601613363565b614b50565b604051908152f35b50346103c15760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157604060209173ffffffffffffffffffffffffffffffffffffffff61047861325c565b16815260688352818120602435825283522054604051908152f35b50346103c15760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576040809173ffffffffffffffffffffffffffffffffffffffff6104e461325c565b82602085516104f281613145565b8281520152168152606960205281812060243582526020522063ffffffff825161051b81613145565b60208260018554958685520154169101908152835192835251166020820152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996105943660048701613412565b614ab8565b613bc7565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602061041e6105996106313661358e565b613d8d565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e61068b366004860161380d565b613fdf565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6106e53660048601613543565b613b62565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761080061325c565b60015460ff8160a81c161590818092610eb4575b8015610e9a575b15610e165781740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff831617600155610dd3575b506040918251610873848261321b565b601081527f50656e646c65205054204c6f6f7065720000000000000000000000000000000060208201528351906108aa858361321b565b600182527f310000000000000000000000000000000000000000000000000000000000000060208301526108ee60ff60015460a81c166108e981614a2d565b614a2d565b80519067ffffffffffffffff8211610da657819061090d600454614083565b601f8111610cfb575b50602090601f8311600114610c3e578892610c33575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176004555b80519067ffffffffffffffff8211610c065761097c600554614083565b601f8111610b65575b50602090601f8311600114610a905773ffffffffffffffffffffffffffffffffffffffff939291879183610a85575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176005555b8460025584600355610a0060ff60015460a81c16614a2d565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000845416178355610a30575080f35b60207f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff600154166001555160018152a180f35b015190505f806109b4565b600587527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416885b818110610b4d575091600193918573ffffffffffffffffffffffffffffffffffffffff97969410610b16575b505050811b016005556109e7565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610b08565b92936020600181928786015181550195019301610adc565b60058752601f830160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0019060208410610bde575b601f0160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001905b818110610bd35750610985565b878155600101610bc6565b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09150610b9c565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190505f8061092c565b600489527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016895b818110610ce35750908460019594939210610cac575b505050811b0160045561095f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610c9e565b92936020600181928786015181550195019301610c88565b90915060048852601f830160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b019060208410610d7e575b90601f8493920160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905b818110610d705750610916565b898155849350600101610d63565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9150610d35565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167501010000000000000000000000000000000000000000176001555f610863565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b15801561081b5750600160ff8260a01c161461081b565b50600160ff8260a01c1610610814565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60665416604051908152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610f6b36600486016135fe565b61423e565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599610fc836600487016138fd565b6149ab565b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760043567ffffffffffffffff81116118ab57611018903690600401613764565b60243567ffffffffffffffff81116118a75761103890369060040161331d565b9060443567ffffffffffffffff811161134c576110599036906004016136eb565b9060643567ffffffffffffffff81116118a35761107d6110cd91369060040161331d565b6110a073ffffffffffffffffffffffffffffffffffffffff606654163314613990565b6110a8613ad3565b506110b561059985613dd6565b8095845186516110c761059988613ece565b91614bda565b9184938594604085019087825163ffffffff81511646145f1461186e57505050606084510151155f146118435773ffffffffffffffffffffffffffffffffffffffff602084015116946111d96040850151965b6111418173ffffffffffffffffffffffffffffffffffffffff85511661536b565b9761119773ffffffffffffffffffffffffffffffffffffffff85511661119060408b0191858351917f0000000000000000000000000000000000000000000000000000000000000000906148f7565b518a613b28565b9173ffffffffffffffffffffffffffffffffffffffff8551169273ffffffffffffffffffffffffffffffffffffffff604088510151169160208b0151946146b3565b60a0869492940151611766575b50611200815163ffffffff60208183511692015116141590565b61160d57889296945b63ffffffff602083510151164614611350575b505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0860151823b1561134c576112a1928492836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af1801561134157611328575b50506102c77fdc32c763f038ea930cdd65ad1f0e1be8e661976d42f515d4e6609e1ec732a48493519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b816113329161321b565b61133d57855f6112b0565b8580fd5b6040513d84823e3d90fd5b8380fd5b90928092985060808701516113648a613c88565b60208b0191604073ffffffffffffffffffffffffffffffffffffffff84511660a48d835197889384927fec0949850000000000000000000000000000000000000000000000000000000084526113f5600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af192831561175b57869182958395611735575b5060409060a473ffffffffffffffffffffffffffffffffffffffff84511691835195869384927f0a44c19500000000000000000000000000000000000000000000000000000000845261149c600485018b73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af191821561172a5787926116d4575b5061153f608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa9182156116c9578d9261166b575b5091611585916040949360807f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec5970151926155cc565b73ffffffffffffffffffffffffffffffffffffffff8a51169382519182526020820152a26115ff6115e973ffffffffffffffffffffffffffffffffffffffff88511673ffffffffffffffffffffffffffffffffffffffff60a085510151169061536b565b915163ffffffff60208183511692015116141590565b61160d578690955f8061121c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b915092916020823d6020116116c1575b816116886020938361321b565b810103126116bd57905191929091907f1cd8b310a16905d32c82ed98563dc0c505a1413aff40568b4f1b303d82015ec561154f565b5f80fd5b3d915061167b565b6040513d8f823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff97506020919250608461171661153f9260403d604011611723575b61170e818361321b565b81019061541a565b99909994935050506114b1565b503d611704565b6040513d89823e3d90fd5b60408097506117519296503d88116117235761170e818361321b565b959095949061140e565b6040513d88823e3d90fd5b60049073ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff89515116602073ffffffffffffffffffffffffffffffffffffffff60408751015116604051958680927f781c18db0000000000000000000000000000000000000000000000000000000082525afa9182156116c9578d92611802575b6117fc94506148f7565b5f6111e6565b91506020843d60201161183b575b8161181d6020938361321b565b81010312611837576118316117fc9461498a565b916117f2565b8c80fd5b3d9150611810565b73ffffffffffffffffffffffffffffffffffffffff60608251015116946111d9606085015196611120565b61189d9073ffffffffffffffffffffffffffffffffffffffff6080818b96999b9795975116920151169061536b565b96611209565b8480fd5b8280fd5b5080fd5b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602073ffffffffffffffffffffffffffffffffffffffff60675416604051908152f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760043567ffffffffffffffff81116118ab5761194c9036906004016138fd565b60243567ffffffffffffffff81116118a75761196c90369060040161331d565b9060443567ffffffffffffffff811161134c5761198d90369060040161380d565b9060643567ffffffffffffffff81116118a3576119b16119fb91369060040161331d565b6119d473ffffffffffffffffffffffffffffffffffffffff606654163314613990565b6119dc613ad3565b506119e961059985613fdf565b8095845186516110c7610599886149ab565b91604083019081519063ffffffff82511646145f14611caa57611a6b611a3b73ffffffffffffffffffffffffffffffffffffffff60408401511693614346565b8373ffffffffffffffffffffffffffffffffffffffff88511691611a5f818461536b565b90602089015193614410565b509260808201518410611c4c57602063ffffffff92015115155f14611c44575160200151165b63ffffffff164614611afb5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a206272696467696e67206e6f7420737570706f727465646044820152fd5b7fb5b9244c6ced1f40da658794a27cce7a0fb4184569b3916665b60044d25bb0b460808796611b5c858573ffffffffffffffffffffffffffffffffffffffff8a511673ffffffffffffffffffffffffffffffffffffffff8a515116906148f7565b85519473ffffffffffffffffffffffffffffffffffffffff80875116956060602089015198015160405194855260208501521660408301526060820152a3606073ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016935116910151823b15611c3f57611c1d928492836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af1801561134157611c2e5750f35b81611c389161321b565b6103c15780f35b505050fd5b515116611a91565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e73756666696369656e7420746f6b656e206f75746044820152fd5b611a6b611a3b73ffffffffffffffffffffffffffffffffffffffff60608401511693614346565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e611d2636600486016136eb565b613dd6565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599610f6b36600487016135fe565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576002541580611f0c575b15611eae57611e7d90611eaa611e216140d4565b91611e2a6141a9565b611e8b60405191611e3c60208461321b565b8383525f3681376040519687967f0f00000000000000000000000000000000000000000000000000000000000000885260e0602089015260e0880190613887565b908682036040880152613887565b9146606086015230608086015260a085015283820360c08501526138ca565b0390f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b5060035415611e0d565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e61059961068b366004870161380d565b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760405190611fab8261318e565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103c157602061041e848481526024358382015260443560408201526064356060820152613f66565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996120493660048701613764565b613ece565b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6120a336600486016133c1565b613e6f565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15760015473ffffffffffffffffffffffffffffffffffffffff811690813303612165577fffffffffffffffffffffffff0000000000000000000000000000000000000000918284548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08880a3161783551660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e610599611d2636600487016136eb565b50346103c15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602061041e6106313661358e565b50346103c157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1577f6aaea081d3338771247ce1c8b55c8111e92e8523a8abfaf46030701203f8c0fe602073ffffffffffffffffffffffffffffffffffffffff61233861325c565b612346828654163314613a25565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006067541617606755604051908152a180f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6123d036600486016134cc565b613d01565b50346103c15760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761240e3661358e565b60843567ffffffffffffffff81116118a75761242e90369060040161331d565b9060a43567ffffffffffffffff811161134c5761244f9036906004016135fe565b9060c43567ffffffffffffffff81116118a3576124736124bd91369060040161331d565b61249673ffffffffffffffffffffffffffffffffffffffff606654163314613990565b61249e613ad3565b506124ab6105998561423e565b8095845186516110c761059988613d8d565b90846124e373ffffffffffffffffffffffffffffffffffffffff60208501511693613c88565b9273ffffffffffffffffffffffffffffffffffffffff6020860151169061258583606060408901519801966125cb885161259b6040519b8c98899788967fb3fd98f0000000000000000000000000000000000000000000000000000000008852600488019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b608486015260e060a486015260e4850190613887565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160c4850152613a8a565b03925af192831561271857859361265a575b50907f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc89151936102c773ffffffffffffffffffffffffffffffffffffffff8651169461264c60606020890151980151945160405195869586526020860152608060408601526080850190613a8a565b9083820360608501526138ca565b9092503d8086833e61266c818361321b565b81019060208183031261133d5780519067ffffffffffffffff821161271457019080601f8301121561133d5781516126a3816135e6565b926126b1604051948561321b565b81845260208085019260051b82010192831161271057602001905b8282106127005750919391507f177630a995e6de5fd180955f5890a54535531d17e334c5a76882a00a289b4dc890506125dd565b81518152602091820191016126cc565b8780fd5b8680fd5b6040513d87823e3d90fd5b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1577f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a43602073ffffffffffffffffffffffffffffffffffffffff61279361325c565b6127a1828654163314613a25565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006066541617606655604051908152a180f35b50346103c15760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c1576004359067ffffffffffffffff82116103c157602061041e6105996106e53660048701613543565b50346103c15760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c15761286661325c565b6024359081151582036118a75760443591821515830361134c576128a273ffffffffffffffffffffffffffffffffffffffff8554163314613a25565b156129c35773ffffffffffffffffffffffffffffffffffffffff16908115908115916129bb575b501561295d577fffffffffffffffffffffffff000000000000000000000000000000000000000082548273ffffffffffffffffffffffffffffffffffffffff82167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a3161781557fffffffffffffffffffffffff00000000000000000000000000000000000000006001541660015580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b90505f6128c9565b73ffffffffffffffffffffffffffffffffffffffff9150167fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015580f35b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126116bd5760043567ffffffffffffffff81116116bd57612a52903690600401613412565b60243567ffffffffffffffff81116116bd57612a7290369060040161331d565b9060443567ffffffffffffffff81116116bd57612a93903690600401613543565b60643567ffffffffffffffff81116116bd57612ab6612b0091369060040161331d565b612ad973ffffffffffffffffffffffffffffffffffffffff606654163314613990565b612ae1613ad3565b50612aee61059984613b62565b8095855185516110c761059989614ab8565b925f925f946040810194855163ffffffff60208201511646145f14613112575050612b5e73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff60a088510151169061536b565b946060830151612b6d83613c88565b5f6020850191604073ffffffffffffffffffffffffffffffffffffffff84511660a48c835195869384927f3a2e717b000000000000000000000000000000000000000000000000000000008452612bff600485018973ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af18015612f6d575f94859386926130ec575b5060409060a473ffffffffffffffffffffffffffffffffffffffff87511691835198899384927fd30cd708000000000000000000000000000000000000000000000000000000008452612ca5600485018a73ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b60848401525af1938415612f6d575f955f956130a6575b50612d4a608473ffffffffffffffffffffffffffffffffffffffff60209351169460405195869384927f9025036a000000000000000000000000000000000000000000000000000000008452600484019073ffffffffffffffffffffffffffffffffffffffff6060809282815116855260208101516020860152826040820151166040860152015116910152565b5afa918215612f6d575f92613050575b507f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c9360409392612d8f92858d0151926155cc565b73ffffffffffffffffffffffffffffffffffffffff8651169382519182526020820152a2612df073ffffffffffffffffffffffffffffffffffffffff83511673ffffffffffffffffffffffffffffffffffffffff608084510151169061536b565b612e09825163ffffffff60208183511692015116141590565b61160d5795945b815163ffffffff8151164614612f78575b50505073ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691511660a0830151823b156116bd57612ea7925f92836040518096819582947fe2b24085000000000000000000000000000000000000000000000000000000008452600484016139f5565b03925af18015612f6d57612f2f575b50906102c77f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b85119392519573ffffffffffffffffffffffffffffffffffffffff875116956060602089015198015194604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b7f80fb3628401036a6958f114182756e4ab87375e320ad0c90c57e2025a18b851193929196505f612f5f9161321b565b6102c75f9691929350612eb6565b6040513d5f823e3d90fd5b8398506115e991612fd49173ffffffffffffffffffffffffffffffffffffffff61304395965116918a602073ffffffffffffffffffffffffffffffffffffffff606081604087015116950151169201519260208a0151946146b3565b5073ffffffffffffffffffffffffffffffffffffffff89511661303c73ffffffffffffffffffffffffffffffffffffffff606087510151169160808801928351917f0000000000000000000000000000000000000000000000000000000000000000906148f7565b5190613b28565b61160d57945f8080612e21565b909291506020813d60201161309e575b8161306d6020938361321b565b810103126116bd575190917f3bb7491f8a60de4663d7a867b8a455c3d949a312bccb388b2d8aad2a8943f26c612d5a565b3d9150613060565b73ffffffffffffffffffffffffffffffffffffffff9650602091955060846130df612d4a9260403d6040116117235761170e818361321b565b9890989793505050612cbc565b60408095506131089293503d86116117235761170e818361321b565b9390939190612c17565b61313f9073ffffffffffffffffffffffffffffffffffffffff604081869a95999a5116920151169061536b565b95612e10565b6040810190811067ffffffffffffffff82111761316157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761316157604052565b6060810190811067ffffffffffffffff82111761316157604052565b60c0810190811067ffffffffffffffff82111761316157604052565b60a0810190811067ffffffffffffffff82111761316157604052565b610100810190811067ffffffffffffffff82111761316157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761316157604052565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b359073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b91908260809103126116bd576040516132b88161318e565b60608082946132c68161327f565b845260208101356020850152604081013560408501520135910152565b67ffffffffffffffff811161316157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156116bd57803590613334826132e3565b92613342604051948561321b565b828452602083830101116116bd57815f926020809301838601378301015290565b91906060838203126116bd576040519061337c826131aa565b81936133878161327f565b83526133956020820161327f565b602084015260408101359167ffffffffffffffff83116116bd576040926133bc920161331d565b910152565b9190916060818403126116bd57604051906133db826131aa565b819381359167ffffffffffffffff83116116bd576133ff6040939284938301613363565b8452602081013560208501520135910152565b9190610120838203126116bd576040519061342c826131c6565b819361343882826132a0565b8352608081013567ffffffffffffffff81116116bd578261345a918301613363565b602084015260a081013567ffffffffffffffff81116116bd578261347f9183016133c1565b604084015260c0810135606084015260e081013560808401526101008101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b359063ffffffff821682036116bd57565b919060c0838203126116bd57604051906134e5826131c6565b81938035835260208101356020840152613501604082016134bb565b6040840152613512606082016134bb565b60608401526080810135608084015260a08101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b9190916060818403126116bd576040519061355d826131aa565b819381359167ffffffffffffffff83116116bd576133ff60409392849383016134cc565b359081151582036116bd57565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126116bd576040516020810181811067ffffffffffffffff821117613161576040526135e2819360046132a0565b9052565b67ffffffffffffffff81116131615760051b60200190565b91906080838203126116bd576040516136168161318e565b8093803567ffffffffffffffff81116116bd57836136359183016134cc565b82526136436020820161327f565b6020830152604081013567ffffffffffffffff81116116bd578361366891830161331d565b604083015260608101359067ffffffffffffffff82116116bd57019180601f840112156116bd57823561369a816135e6565b936136a8604051958661321b565b81855260208086019260051b8201019283116116bd57602001905b8282106136d35750505060600152565b602080916136e08461327f565b8152019101906136c3565b91909160c0818403126116bd5760405190613705826131c6565b819381359067ffffffffffffffff82116116bd578261372d60a094926133bc948694016134cc565b855261373b6020820161327f565b602086015260408101356040860152606081013560608601526080810135608086015201613581565b9190610120838203126116bd576040519061377e826131c6565b819361378a82826132a0565b8352608081013567ffffffffffffffff81116116bd57826137ac918301613363565b602084015260a0810135604084015260c081013567ffffffffffffffff81116116bd57826137db9183016133c1565b606084015260e081013560808401526101008101359167ffffffffffffffff83116116bd5760a0926133bc920161331d565b91909160a0818403126116bd5760405190613827826131e2565b819381359167ffffffffffffffff83116116bd5761384b60809392849383016134cc565b845261385960208201613581565b602085015261386a6040820161327f565b604085015261387b6060820161327f565b60608501520135910152565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b8181106138e75750505090565b82518452602093840193909201916001016138da565b919060e0838203126116bd57604051906139168261318e565b819361392282826132a0565b8352608081013567ffffffffffffffff81116116bd5782613944918301613363565b602084015260a081013567ffffffffffffffff81116116bd57826139699183016133c1565b604084015260c08101359167ffffffffffffffff83116116bd576060926133bc920161331d565b1561399757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f50544c6f6f7065723a20756e617574686f72697a6564000000000000000000006044820152fd5b60409073ffffffffffffffffffffffffffffffffffffffff613a2294931681528160208201520190613887565b90565b15613a2c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b90602080835192838152019201905f5b818110613aa75750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101613a9a565b60405190613ae0826131aa565b815f81525f60208201526040805191613af8836131fe565b5f83525f60208401525f828401525f60608401525f60808401525f60a08401525f60c08401525f60e08401520152565b91908203918211613b3557565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b613b6c8151613d01565b90604060208201519101516040519160208301937ff2fd81fd04f9cee0ece251f806445c3b1d5103fcd06f31002a34371094102b59855260408401526060830152608082015260808152613bc160a08261321b565b51902090565b604290613bd2615686565b613bda6156d1565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152613c2b60c08261321b565b51902090604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b60405190613c718261318e565b5f6060838281528260208201528260408201520152565b613c90613c64565b50604073ffffffffffffffffffffffffffffffffffffffff825116910151613cb6613c64565b5060e08101519073ffffffffffffffffffffffffffffffffffffffff60a081608084015116920151169160405193613ced8561318e565b845260208401526040830152606082015290565b80519060208101519063ffffffff6040820151169063ffffffff60608201511660a0608083015192015160208151910120926040519460208601967f4b5c157e13c9c70173fbe4c990f516a87f1bcb79deeb7706156cfd0a4bb4ee84885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b613d979051613f66565b60405160208101917feb325b74167005941f5d4aacf4aa3fd86a6d4dcb7695d06bcc66de38ad87d3c28352604082015260408152613bc160608261321b565b613de08151613d01565b9073ffffffffffffffffffffffffffffffffffffffff60208201511690604081015190606081015160a060808301519201511515926040519460208601967fb37d571e358db3b5130424792ae520a87def7c4a54a9d100801057de49dd0a56885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b613e798151614b50565b90604060208201519101516040519160208301937f2e509eca09b391e74bb50ce10f43a13d6dfd1390e626fcfc40c60b1d7369a4b0855260408401526060830152608082015260808152613bc160a08261321b565b613ed88151613f66565b90613ee66020820151614b50565b90604081015190613efa6060820151613e6f565b60a0608083015192015160208151910120926040519460208601967f40d59af1d5bbd55280d0f7131b112cf40ffd6775f6ca26b477734c4dca0cf64e885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b73ffffffffffffffffffffffffffffffffffffffff8151169060208101519060606040820151910151906040519260208401947f822aa76455d3f0b945088018ee29f25999f8e1b1cbe462cd90f78d0c038148ec865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b613fe98151613d01565b90602081015115159073ffffffffffffffffffffffffffffffffffffffff60408201511690608073ffffffffffffffffffffffffffffffffffffffff606083015116910151916040519360208501957f8ac3df3c6aafa50fff9c9cdb9de52954f7d1bcb8a41375bb202fca85c4f86cab875260408601526060850152608084015260a083015260c082015260c08152613bc160e08261321b565b90600182811c921680156140ca575b602083101461409d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691614092565b604051905f82600454916140e783614083565b808352926001811690811561416c575060011461410d575b61410b9250038361321b565b565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061415057505090602061410b928201016140ff565b6020919350806001915483858901015201910190918492614138565b6020925061410b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201016140ff565b604051905f82600554916141bc83614083565b808352926001811690811561416c57506001146141df5761410b9250038361321b565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b81831061422257505090602061410b928201016140ff565b602091935080600191548385890101520191019091849261420a565b6142488151613d01565b9073ffffffffffffffffffffffffffffffffffffffff6020820151169060606040820151602081519101209101516040516020810181819360208151939101925f5b8181106143175750506142c49250037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261321b565b519020906040519260208401947fc43b1ddd31b47c3575e0cfab0ba34c9546a4f739fce4f13625dc9ae5cc44df62865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b845173ffffffffffffffffffffffffffffffffffffffff1683526020948501948694509092019160010161428a565b63ffffffff81511646146143e05763ffffffff60208201511646146143c35760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f50544c6f6f7065723a20756e737570706f7274656420636861696e69640000006044820152fd5b60a0015173ffffffffffffffffffffffffffffffffffffffff1690565b6060015173ffffffffffffffffffffffffffffffffffffffff1690565b81810292918115918404141715613b3557565b909193949273ffffffffffffffffffffffffffffffffffffffff8082169316918383146146a85773ffffffffffffffffffffffffffffffffffffffff1690614458818361536b565b9673ffffffffffffffffffffffffffffffffffffffff815116801561469d5773ffffffffffffffffffffffffffffffffffffffff8261452d5f938360408160208f990151169401519181604051956144af876131e2565b8c875260208701998a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613887565b866024830152038183875af18015612f6d5761461b575b50614552614559918361536b565b9687613b28565b94670de0b6b3a76400008602868104670de0b6b3a76400001487151715613b35575f90821560011715613b3557106145bd5760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20737761702062656c6f77206d696e53776170526174656044820152fd5b903d805f843e61462b818461321b565b8201916020818403126116bd5780519067ffffffffffffffff82116116bd57019082601f830112156116bd57815192614663846132e3565b90614671604051928361321b565b848252602085850101116116bd575f602085614559968261455297018386015e83010152509150614544565b505f96505050505050565b505050509150905f90565b9495939473ffffffffffffffffffffffffffffffffffffffff80851694921692908385146148ec5773ffffffffffffffffffffffffffffffffffffffff16916146fc818461536b565b9773ffffffffffffffffffffffffffffffffffffffff81511680156148e05773ffffffffffffffffffffffffffffffffffffffff5f916147cf604083602087015116950151836040519361474f856131e2565b8b85528160208601988b8a52604087019081526060870192835260808701948552604051998a9889987f28dc8307000000000000000000000000000000000000000000000000000000008a52604060048b01525116604489015251606488015251166084860152511660a48401525160a060c484015260e4830190613887565b876024830152038183885af18015612f6d5761485e575b506147f46147fb918461536b565b9788613b28565b95670de0b6b3a7640000870290878204670de0b6b3a76400001488151715613b355761482790836143fd565b116145bd5760407fb4f5edbb087700c3f3246c0f164b5277ac48e3720a148d371f9dfed3258662f2918151908152876020820152a4565b903d805f843e61486e818461321b565b8201916020818403126116bd5780519067ffffffffffffffff82116116bd57019082601f830112156116bd578151926148a6846132e3565b906148b4604051928361321b565b848252602085850101116116bd575f6020856147fb96826147f497018386015e830101525091506147e6565b505f9750505050505050565b5095505f9450505050565b9192909173ffffffffffffffffffffffffffffffffffffffff16803b156116bd575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967fc3b35a7e00000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015612f6d576149805750565b5f61410b9161321b565b519073ffffffffffffffffffffffffffffffffffffffff821682036116bd57565b6149b58151613f66565b906149c36020820151614b50565b9060606149d36040830151613e6f565b91015160208151910120906040519260208401947f6cd5da344d135a773661e166411b132de126661c92b5d13b7b83c71ff0110f1f865260408501526060840152608083015260a082015260a08152613bc160c08261321b565b15614a3457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b614ac28151613f66565b90614ad06020820151614b50565b90614ade6040820151613e6f565b90606081015160a0608083015192015160208151910120926040519460208601967f4acf1a63082999b1c5bc3be18a62b4549817bf7f6bf2999238c2eddb1cd71942885260408701526060860152608085015260a084015260c083015260e082015260e08152613bc16101008261321b565b73ffffffffffffffffffffffffffffffffffffffff81511690604073ffffffffffffffffffffffffffffffffffffffff602083015116910151602081519101206040519160208301937fd3355b017a4df5ab14bfe30be8fc74cf288d6cbdd53b7fb9a45cb406e14cb425855260408401526060830152608082015260808152613bc160a08261321b565b9190939294614be7613ad3565b5073ffffffffffffffffffffffffffffffffffffffff8351165f52606960205260405f2094602084019586515f5260205260405f2090602081015142101561530d5785825480155f1461529857505080518751036152145763ffffffff6040820151169263ffffffff6001840154168094036151b657614c7f908773ffffffffffffffffffffffffffffffffffffffff885116615430565b156151325790859055835186516040805188815263ffffffff95861660208201526060949373ffffffffffffffffffffffffffffffffffffffff16917e3d5fea7147843a952736a57f88f9e5565759fb750f34a8e58cbc215034c64c91a35b01511690614cea613ad3565b9542604085015111156150d457614d199173ffffffffffffffffffffffffffffffffffffffff60675416615430565b1561507657606082019081511015614ff25773ffffffffffffffffffffffffffffffffffffffff8251165f52606860205260405f20835f5260205260405f2054815103614f94575160018101809111613b355773ffffffffffffffffffffffffffffffffffffffff92838351165f52606860205260405f20905f5260205260405f205551169051604051917fa92572fb00000000000000000000000000000000000000000000000000000000835260048301526024820152610140816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af18015612f6d575f905f925f91614e4c575b50604084015273ffffffffffffffffffffffffffffffffffffffff918216602084015216815290565b92505050806101403d8111614f8d575b614e66818361321b565b81010361014081126116bd57815173ffffffffffffffffffffffffffffffffffffffff811681036116bd5760208301519173ffffffffffffffffffffffffffffffffffffffff831683036116bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06101009101126116bd5773ffffffffffffffffffffffffffffffffffffffff92839161012060405192614f07846131fe565b614f13604082016155bb565b8452614f21606082016155bb565b6020850152614f326080820161498a565b6040850152614f4360a0820161498a565b6060850152614f5460c0820161498a565b6080850152614f6560e0820161498a565b60a0850152614f77610100820161498a565b60c0850152015160e08301529290915092614e23565b503d614e5c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f50544c6f6f7065723a20696e76616c69642070726f706f736572206e6f6e63656044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a207065726d69744e6f6e6365436170206578636565646560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f50544c6f6f7065723a20696e76616c6964207369676e617475726500000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d6573736167652065787069726564000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f50544c6f6f7065723a20696e76616c6964206f776e6572207369676e6174757260448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20696e76616c69642073657373696f6e206e6f6e6365006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f50544c6f6f7065723a207265712f7065726d697420626f784964206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152fd5b9193509150036152af57606063ffffffff91614cde565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f50544c6f6f7065723a20726571756573742068617368206d69736d61746368006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a20726571756573742065787069726564000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff168061538c57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115612f6d575f916153eb575090565b90506020813d602011615412575b816154066020938361321b565b810103126116bd575190565b3d91506153f9565b91908260409103126116bd576020825192015190565b9061543b8382615651565b600581959295101561558e5715938461556b575b50831561545d575b50505090565b5f9350906154ae6154da85949360405192839160208301957f1626ba7e0000000000000000000000000000000000000000000000000000000087526024840152604060448401526064830190613887565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261321b565b51915afa3d15615564573d6154ee816132e3565b906154fc604051928361321b565b81523d5f602083013e5b81615556575b8161551b575b505f8080615457565b90506020818051810103126116bd57602001517f1626ba7e00000000000000000000000000000000000000000000000000000000145f615512565b90506020815110159061550c565b6060615506565b73ffffffffffffffffffffffffffffffffffffffff84811691161493505f61544f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519063ffffffff821682036116bd57565b92670de0b6b3a76400006155e581946155eb94966143fd565b046143fd565b04106155f357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50544c6f6f7065723a206d61784c5456206578636565646564000000000000006044820152fd5b9060418151145f1461567d5761567991602082015190606060408401519301515f1a906156f7565b9091565b50505f90600290565b61568e6140d4565b805190811561569e576020012090565b505060025480156156ac5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6156d96141a9565b80519081156156e9576020012090565b505060035480156156ac5790565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615774576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15612f6d575f5173ffffffffffffffffffffffffffffffffffffffff81161561576c57905f90565b505f90600190565b505050505f9060039056fea264697066735822122015cc8dac31334ad1d2ec286c82adc76a779533045c892a299fcd353358b0c18a64736f6c634300081e0033",
|
|
2658
2653
|
"linkReferences": {},
|
|
2659
2654
|
"deployedLinkReferences": {}
|
|
2660
2655
|
}
|