ccxt 4.2.77__py2.py3-none-any.whl → 4.4.48__py2.py3-none-any.whl
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.
- ccxt/__init__.py +36 -14
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +112 -48
- ccxt/abstract/binancecoinm.py +112 -48
- ccxt/abstract/binanceus.py +147 -83
- ccxt/abstract/binanceusdm.py +112 -48
- ccxt/abstract/bingx.py +133 -78
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitfinex1.py +69 -0
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +8 -1
- ccxt/abstract/bitmart.py +13 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitpanda.py +0 -12
- ccxt/abstract/bitrue.py +3 -3
- ccxt/abstract/bitstamp.py +26 -3
- ccxt/abstract/blofin.py +24 -0
- ccxt/abstract/btcbox.py +1 -0
- ccxt/abstract/bybit.py +29 -14
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbase.py +6 -0
- ccxt/abstract/coinbaseadvanced.py +94 -0
- ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/coincatch.py +94 -0
- ccxt/abstract/coinex.py +233 -123
- ccxt/abstract/coinmetro.py +1 -0
- ccxt/abstract/cryptocom.py +14 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/gate.py +20 -0
- ccxt/abstract/gateio.py +20 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hashkey.py +67 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +4 -3
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +24 -0
- ccxt/abstract/kucoinfutures.py +34 -0
- ccxt/abstract/luno.py +2 -0
- ccxt/abstract/mexc.py +4 -0
- ccxt/abstract/myokx.py +340 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +30 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/oxfun.py +34 -0
- ccxt/abstract/paradex.py +40 -0
- ccxt/abstract/phemex.py +1 -0
- ccxt/abstract/upbit.py +4 -0
- ccxt/abstract/vertex.py +19 -0
- ccxt/abstract/whitebit.py +31 -1
- ccxt/abstract/woo.py +6 -2
- ccxt/abstract/woofipro.py +119 -0
- ccxt/abstract/xt.py +153 -0
- ccxt/abstract/zonda.py +6 -0
- ccxt/ace.py +164 -60
- ccxt/alpaca.py +727 -63
- ccxt/ascendex.py +395 -249
- ccxt/async_support/__init__.py +36 -14
- ccxt/async_support/ace.py +164 -60
- ccxt/async_support/alpaca.py +727 -63
- ccxt/async_support/ascendex.py +396 -249
- ccxt/async_support/base/exchange.py +531 -155
- ccxt/async_support/base/ws/aiohttp_client.py +28 -5
- ccxt/async_support/base/ws/cache.py +3 -2
- ccxt/async_support/base/ws/client.py +26 -5
- ccxt/async_support/base/ws/fast_client.py +4 -3
- ccxt/async_support/base/ws/functions.py +1 -1
- ccxt/async_support/base/ws/future.py +40 -31
- ccxt/async_support/base/ws/order_book_side.py +3 -0
- ccxt/async_support/bequant.py +1 -1
- ccxt/async_support/bigone.py +329 -202
- ccxt/async_support/binance.py +3030 -1087
- ccxt/async_support/binancecoinm.py +2 -1
- ccxt/async_support/binanceus.py +12 -1
- ccxt/async_support/binanceusdm.py +3 -1
- ccxt/async_support/bingx.py +3104 -880
- ccxt/async_support/bit2c.py +119 -38
- ccxt/async_support/bitbank.py +215 -76
- ccxt/async_support/bitbns.py +124 -53
- ccxt/async_support/bitfinex.py +3236 -1078
- ccxt/async_support/bitfinex1.py +1711 -0
- ccxt/async_support/bitflyer.py +238 -49
- ccxt/async_support/bitget.py +1513 -563
- ccxt/async_support/bithumb.py +199 -65
- ccxt/async_support/bitmart.py +1320 -435
- ccxt/async_support/bitmex.py +308 -111
- ccxt/async_support/bitopro.py +256 -96
- ccxt/async_support/bitrue.py +365 -233
- ccxt/async_support/bitso.py +201 -89
- ccxt/async_support/bitstamp.py +438 -269
- ccxt/async_support/bitteam.py +179 -73
- ccxt/async_support/bitvavo.py +180 -70
- ccxt/async_support/bl3p.py +92 -25
- ccxt/async_support/blockchaincom.py +193 -79
- ccxt/async_support/blofin.py +392 -148
- ccxt/async_support/btcalpha.py +161 -55
- ccxt/async_support/btcbox.py +250 -34
- ccxt/async_support/btcmarkets.py +232 -85
- ccxt/async_support/btcturk.py +159 -60
- ccxt/async_support/bybit.py +2231 -1193
- ccxt/async_support/cex.py +1409 -1329
- ccxt/async_support/coinbase.py +1454 -287
- ccxt/async_support/coinbaseadvanced.py +17 -0
- ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/async_support/coinbaseinternational.py +428 -88
- ccxt/async_support/coincatch.py +5152 -0
- ccxt/async_support/coincheck.py +121 -38
- ccxt/async_support/coinex.py +4020 -3339
- ccxt/async_support/coinlist.py +273 -116
- ccxt/async_support/coinmate.py +204 -97
- ccxt/async_support/coinmetro.py +203 -110
- ccxt/async_support/coinone.py +142 -68
- ccxt/async_support/coinsph.py +206 -89
- ccxt/async_support/coinspot.py +137 -62
- ccxt/async_support/cryptocom.py +515 -185
- ccxt/async_support/currencycom.py +203 -85
- ccxt/async_support/defx.py +2066 -0
- ccxt/async_support/delta.py +404 -109
- ccxt/async_support/deribit.py +557 -323
- ccxt/async_support/digifinex.py +340 -223
- ccxt/async_support/ellipx.py +1826 -0
- ccxt/async_support/exmo.py +259 -128
- ccxt/async_support/gate.py +1472 -463
- ccxt/async_support/gemini.py +206 -84
- ccxt/async_support/hashkey.py +4164 -0
- ccxt/async_support/hitbtc.py +334 -178
- ccxt/async_support/hollaex.py +134 -83
- ccxt/async_support/htx.py +1095 -563
- ccxt/async_support/huobijp.py +105 -56
- ccxt/async_support/hyperliquid.py +1633 -268
- ccxt/async_support/idex.py +148 -95
- ccxt/async_support/independentreserve.py +236 -31
- ccxt/async_support/indodax.py +165 -62
- ccxt/async_support/kraken.py +871 -354
- ccxt/async_support/krakenfutures.py +324 -100
- ccxt/async_support/kucoin.py +917 -357
- ccxt/async_support/kucoinfutures.py +1004 -149
- ccxt/async_support/kuna.py +138 -106
- ccxt/async_support/latoken.py +135 -79
- ccxt/async_support/lbank.py +290 -113
- ccxt/async_support/luno.py +112 -62
- ccxt/async_support/lykke.py +104 -55
- ccxt/async_support/mercado.py +36 -29
- ccxt/async_support/mexc.py +995 -429
- ccxt/async_support/myokx.py +43 -0
- ccxt/async_support/ndax.py +163 -82
- ccxt/async_support/novadax.py +121 -75
- ccxt/async_support/oceanex.py +175 -59
- ccxt/async_support/okcoin.py +222 -163
- ccxt/async_support/okx.py +1776 -454
- ccxt/async_support/onetrading.py +132 -414
- ccxt/async_support/oxfun.py +2832 -0
- ccxt/async_support/p2b.py +79 -51
- ccxt/async_support/paradex.py +2017 -0
- ccxt/async_support/paymium.py +56 -32
- ccxt/async_support/phemex.py +572 -196
- ccxt/async_support/poloniex.py +218 -95
- ccxt/async_support/poloniexfutures.py +260 -92
- ccxt/async_support/probit.py +143 -110
- ccxt/async_support/timex.py +123 -70
- ccxt/async_support/tokocrypto.py +129 -93
- ccxt/async_support/tradeogre.py +39 -25
- ccxt/async_support/upbit.py +322 -113
- ccxt/async_support/vertex.py +2983 -0
- ccxt/async_support/wavesexchange.py +227 -173
- ccxt/async_support/wazirx.py +145 -65
- ccxt/async_support/whitebit.py +533 -138
- ccxt/async_support/woo.py +1137 -296
- ccxt/async_support/woofipro.py +2716 -0
- ccxt/async_support/xt.py +4628 -0
- ccxt/async_support/yobit.py +160 -92
- ccxt/async_support/zaif.py +80 -33
- ccxt/async_support/zonda.py +140 -69
- ccxt/base/errors.py +51 -20
- ccxt/base/exchange.py +1722 -480
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +223 -4
- ccxt/bequant.py +1 -1
- ccxt/bigone.py +329 -202
- ccxt/binance.py +3030 -1087
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +12 -1
- ccxt/binanceusdm.py +3 -1
- ccxt/bingx.py +3104 -880
- ccxt/bit2c.py +119 -38
- ccxt/bitbank.py +215 -76
- ccxt/bitbns.py +124 -53
- ccxt/bitfinex.py +3235 -1078
- ccxt/bitfinex1.py +1710 -0
- ccxt/bitflyer.py +238 -49
- ccxt/bitget.py +1513 -563
- ccxt/bithumb.py +198 -65
- ccxt/bitmart.py +1320 -435
- ccxt/bitmex.py +308 -111
- ccxt/bitopro.py +256 -96
- ccxt/bitrue.py +365 -233
- ccxt/bitso.py +201 -89
- ccxt/bitstamp.py +438 -269
- ccxt/bitteam.py +179 -73
- ccxt/bitvavo.py +180 -70
- ccxt/bl3p.py +92 -25
- ccxt/blockchaincom.py +193 -79
- ccxt/blofin.py +392 -148
- ccxt/btcalpha.py +161 -55
- ccxt/btcbox.py +250 -34
- ccxt/btcmarkets.py +232 -85
- ccxt/btcturk.py +159 -60
- ccxt/bybit.py +2231 -1193
- ccxt/cex.py +1408 -1329
- ccxt/coinbase.py +1454 -287
- ccxt/coinbaseadvanced.py +17 -0
- ccxt/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/coinbaseinternational.py +428 -88
- ccxt/coincatch.py +5152 -0
- ccxt/coincheck.py +121 -38
- ccxt/coinex.py +4020 -3339
- ccxt/coinlist.py +273 -116
- ccxt/coinmate.py +204 -97
- ccxt/coinmetro.py +203 -110
- ccxt/coinone.py +142 -68
- ccxt/coinsph.py +206 -89
- ccxt/coinspot.py +137 -62
- ccxt/cryptocom.py +515 -185
- ccxt/currencycom.py +203 -85
- ccxt/defx.py +2065 -0
- ccxt/delta.py +404 -109
- ccxt/deribit.py +557 -323
- ccxt/digifinex.py +340 -223
- ccxt/ellipx.py +1826 -0
- ccxt/exmo.py +259 -128
- ccxt/gate.py +1472 -463
- ccxt/gemini.py +206 -84
- ccxt/hashkey.py +4164 -0
- ccxt/hitbtc.py +334 -178
- ccxt/hollaex.py +134 -83
- ccxt/htx.py +1095 -563
- ccxt/huobijp.py +105 -56
- ccxt/hyperliquid.py +1632 -268
- ccxt/idex.py +148 -95
- ccxt/independentreserve.py +235 -31
- ccxt/indodax.py +165 -62
- ccxt/kraken.py +871 -354
- ccxt/krakenfutures.py +324 -100
- ccxt/kucoin.py +917 -357
- ccxt/kucoinfutures.py +1004 -149
- ccxt/kuna.py +138 -106
- ccxt/latoken.py +135 -79
- ccxt/lbank.py +290 -113
- ccxt/luno.py +112 -62
- ccxt/lykke.py +104 -55
- ccxt/mercado.py +36 -29
- ccxt/mexc.py +994 -429
- ccxt/myokx.py +43 -0
- ccxt/ndax.py +163 -82
- ccxt/novadax.py +121 -75
- ccxt/oceanex.py +175 -59
- ccxt/okcoin.py +222 -163
- ccxt/okx.py +1776 -454
- ccxt/onetrading.py +132 -414
- ccxt/oxfun.py +2831 -0
- ccxt/p2b.py +79 -51
- ccxt/paradex.py +2017 -0
- ccxt/paymium.py +56 -32
- ccxt/phemex.py +572 -196
- ccxt/poloniex.py +218 -95
- ccxt/poloniexfutures.py +260 -92
- ccxt/pro/__init__.py +29 -5
- ccxt/pro/alpaca.py +32 -17
- ccxt/pro/ascendex.py +62 -14
- ccxt/pro/bequant.py +4 -0
- ccxt/pro/binance.py +1596 -329
- ccxt/pro/binancecoinm.py +1 -0
- ccxt/pro/binanceus.py +2 -9
- ccxt/pro/binanceusdm.py +2 -0
- ccxt/pro/bingx.py +527 -134
- ccxt/pro/bitcoincom.py +4 -1
- ccxt/pro/bitfinex.py +731 -266
- ccxt/pro/bitfinex1.py +635 -0
- ccxt/pro/bitget.py +726 -357
- ccxt/pro/bithumb.py +380 -0
- ccxt/pro/bitmart.py +138 -39
- ccxt/pro/bitmex.py +199 -40
- ccxt/pro/bitopro.py +25 -13
- ccxt/pro/bitrue.py +31 -32
- ccxt/pro/bitstamp.py +7 -6
- ccxt/pro/bitvavo.py +203 -81
- ccxt/pro/blockchaincom.py +30 -17
- ccxt/pro/blofin.py +692 -0
- ccxt/pro/bybit.py +791 -82
- ccxt/pro/cex.py +99 -51
- ccxt/pro/coinbase.py +220 -30
- ccxt/{async_support/hitbtc3.py → pro/coinbaseadvanced.py} +5 -5
- ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +19 -19
- ccxt/pro/coinbaseinternational.py +193 -30
- ccxt/pro/coincatch.py +1464 -0
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +965 -665
- ccxt/pro/coinone.py +17 -10
- ccxt/pro/cryptocom.py +446 -66
- ccxt/pro/currencycom.py +11 -10
- ccxt/pro/defx.py +832 -0
- ccxt/pro/deribit.py +167 -31
- ccxt/pro/exmo.py +252 -20
- ccxt/pro/gate.py +729 -64
- ccxt/pro/gemini.py +44 -26
- ccxt/pro/hashkey.py +802 -0
- ccxt/pro/hitbtc.py +208 -103
- ccxt/pro/hollaex.py +25 -9
- ccxt/pro/htx.py +83 -39
- ccxt/pro/huobijp.py +17 -16
- ccxt/pro/hyperliquid.py +502 -31
- ccxt/pro/idex.py +28 -13
- ccxt/pro/independentreserve.py +21 -16
- ccxt/pro/kraken.py +298 -51
- ccxt/pro/krakenfutures.py +166 -75
- ccxt/pro/kucoin.py +395 -77
- ccxt/pro/kucoinfutures.py +400 -99
- ccxt/pro/lbank.py +52 -31
- ccxt/pro/luno.py +12 -10
- ccxt/pro/mexc.py +400 -50
- ccxt/pro/myokx.py +28 -0
- ccxt/pro/ndax.py +25 -12
- ccxt/pro/okcoin.py +28 -9
- ccxt/pro/okx.py +935 -124
- ccxt/pro/onetrading.py +41 -24
- ccxt/pro/oxfun.py +1054 -0
- ccxt/pro/p2b.py +100 -24
- ccxt/pro/paradex.py +352 -0
- ccxt/pro/phemex.py +92 -33
- ccxt/pro/poloniex.py +128 -49
- ccxt/pro/poloniexfutures.py +53 -32
- ccxt/pro/probit.py +92 -85
- ccxt/pro/upbit.py +401 -8
- ccxt/pro/vertex.py +943 -0
- ccxt/pro/wazirx.py +46 -28
- ccxt/pro/whitebit.py +65 -12
- ccxt/pro/woo.py +437 -65
- ccxt/pro/woofipro.py +1271 -0
- ccxt/pro/xt.py +1067 -0
- ccxt/probit.py +143 -110
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/__init__.py +38 -0
- ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
- ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
- ccxt/static_dependencies/lark/ast_utils.py +59 -0
- ccxt/static_dependencies/lark/common.py +86 -0
- ccxt/static_dependencies/lark/exceptions.py +292 -0
- ccxt/static_dependencies/lark/grammar.py +130 -0
- ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- ccxt/static_dependencies/lark/indenter.py +143 -0
- ccxt/static_dependencies/lark/lark.py +658 -0
- ccxt/static_dependencies/lark/lexer.py +678 -0
- ccxt/static_dependencies/lark/load_grammar.py +1428 -0
- ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
- ccxt/static_dependencies/lark/parser_frontends.py +257 -0
- ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
- ccxt/static_dependencies/lark/parsers/earley.py +314 -0
- ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
- ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
- ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
- ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
- ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
- ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/lark/reconstruct.py +107 -0
- ccxt/static_dependencies/lark/tools/__init__.py +70 -0
- ccxt/static_dependencies/lark/tools/nearley.py +202 -0
- ccxt/static_dependencies/lark/tools/serialize.py +32 -0
- ccxt/static_dependencies/lark/tools/standalone.py +196 -0
- ccxt/static_dependencies/lark/tree.py +267 -0
- ccxt/static_dependencies/lark/tree_matcher.py +186 -0
- ccxt/static_dependencies/lark/tree_templates.py +180 -0
- ccxt/static_dependencies/lark/utils.py +343 -0
- ccxt/static_dependencies/lark/visitors.py +596 -0
- ccxt/static_dependencies/marshmallow/__init__.py +81 -0
- ccxt/static_dependencies/marshmallow/base.py +65 -0
- ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
- ccxt/static_dependencies/marshmallow/decorators.py +231 -0
- ccxt/static_dependencies/marshmallow/error_store.py +60 -0
- ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
- ccxt/static_dependencies/marshmallow/fields.py +2114 -0
- ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/schema.py +1228 -0
- ccxt/static_dependencies/marshmallow/types.py +12 -0
- ccxt/static_dependencies/marshmallow/utils.py +378 -0
- ccxt/static_dependencies/marshmallow/validate.py +678 -0
- ccxt/static_dependencies/marshmallow/warnings.py +2 -0
- ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
- ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
- ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
- ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
- ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
- ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
- ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/static_dependencies/starknet/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
- ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
- ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
- ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
- ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
- ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
- ccxt/static_dependencies/starknet/common.py +15 -0
- ccxt/static_dependencies/starknet/constants.py +39 -0
- ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- ccxt/static_dependencies/starknet/hash/address.py +79 -0
- ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
- ccxt/static_dependencies/starknet/hash/selector.py +16 -0
- ccxt/static_dependencies/starknet/hash/storage.py +12 -0
- ccxt/static_dependencies/starknet/hash/utils.py +78 -0
- ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
- ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
- ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
- ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
- ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
- ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
- ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
- ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
- ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
- ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
- ccxt/static_dependencies/starknet/utils/schema.py +13 -0
- ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
- ccxt/static_dependencies/starkware/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
- ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
- ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
- ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
- ccxt/static_dependencies/sympy/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
- ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
- ccxt/static_dependencies/sympy/external/importtools.py +187 -0
- ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
- ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
- ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
- ccxt/test/{test_async.py → tests_async.py} +456 -391
- ccxt/test/tests_helpers.py +285 -0
- ccxt/test/tests_init.py +39 -0
- ccxt/test/{test_sync.py → tests_sync.py} +456 -393
- ccxt/timex.py +123 -70
- ccxt/tokocrypto.py +129 -93
- ccxt/tradeogre.py +39 -25
- ccxt/upbit.py +322 -113
- ccxt/vertex.py +2983 -0
- ccxt/wavesexchange.py +227 -173
- ccxt/wazirx.py +145 -65
- ccxt/whitebit.py +533 -138
- ccxt/woo.py +1137 -296
- ccxt/woofipro.py +2716 -0
- ccxt/xt.py +4627 -0
- ccxt/yobit.py +159 -92
- ccxt/zaif.py +80 -33
- ccxt/zonda.py +140 -69
- ccxt-4.4.48.dist-info/LICENSE.txt +21 -0
- ccxt-4.4.48.dist-info/METADATA +646 -0
- ccxt-4.4.48.dist-info/RECORD +669 -0
- {ccxt-4.2.77.dist-info → ccxt-4.4.48.dist-info}/WHEEL +1 -1
- ccxt/abstract/bitbay.py +0 -47
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3496
- ccxt/async_support/flowbtc.py +0 -34
- ccxt/bitbay.py +0 -17
- ccxt/bitfinex2.py +0 -3496
- ccxt/flowbtc.py +0 -34
- ccxt/hitbtc3.py +0 -16
- ccxt/pro/bitfinex2.py +0 -1081
- ccxt/test/base/__init__.py +0 -28
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -103
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -32
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -190
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -32
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -63
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -345
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -86
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt-4.2.77.dist-info/METADATA +0 -626
- ccxt-4.2.77.dist-info/RECORD +0 -534
- {ccxt-4.2.77.dist-info → ccxt-4.4.48.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2344 @@
|
|
1
|
+
###############################################################################
|
2
|
+
# Copyright 2019 StarkWare Industries Ltd. #
|
3
|
+
# #
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). #
|
5
|
+
# You may not use this file except in compliance with the License. #
|
6
|
+
# You may obtain a copy of the License at #
|
7
|
+
# #
|
8
|
+
# https://www.starkware.co/open-source-license/ #
|
9
|
+
# #
|
10
|
+
# Unless required by applicable law or agreed to in writing, #
|
11
|
+
# software distributed under the License is distributed on an "AS IS" BASIS, #
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
|
13
|
+
# See the License for the specific language governing permissions #
|
14
|
+
# and limitations under the License. #
|
15
|
+
###############################################################################
|
16
|
+
|
17
|
+
import hashlib
|
18
|
+
import itertools
|
19
|
+
import json
|
20
|
+
import math
|
21
|
+
import os
|
22
|
+
import secrets
|
23
|
+
from typing import Optional, Tuple, Union
|
24
|
+
|
25
|
+
from ...ecdsa.rfc6979 import generate_k
|
26
|
+
|
27
|
+
from .math_utils import (
|
28
|
+
ECPoint,
|
29
|
+
div_mod,
|
30
|
+
div_ceil,
|
31
|
+
ec_add,
|
32
|
+
ec_double,
|
33
|
+
ec_mult,
|
34
|
+
)
|
35
|
+
|
36
|
+
# TODO: require more module from sympy
|
37
|
+
# from ...sympy.ntheory.residue_ntheory import (
|
38
|
+
# is_quad_residue,
|
39
|
+
# sqrt_mod,
|
40
|
+
# )
|
41
|
+
|
42
|
+
FIELD_PRIME = 3618502788666131213697322783095070105623107215331596699973092056135872020481
|
43
|
+
FIELD_GEN = 3
|
44
|
+
ALPHA = 1
|
45
|
+
BETA = 3141592653589793238462643383279502884197169399375105820974944592307816406665
|
46
|
+
EC_ORDER = 3618502788666131213697322783095070105526743751716087489154079457884512865583
|
47
|
+
CONSTANT_POINTS = [
|
48
|
+
[
|
49
|
+
2089986280348253421170679821480865132823066470938446095505822317253594081284,
|
50
|
+
1713931329540660377023406109199410414810705867260802078187082345529207694986
|
51
|
+
],
|
52
|
+
[
|
53
|
+
874739451078007766457464989774322083649278607533249481151382481072868806602,
|
54
|
+
152666792071518830868575557812948353041420400780739481342941381225525861407
|
55
|
+
],
|
56
|
+
[
|
57
|
+
996781205833008774514500082376783249102396023663454813447423147977397232763,
|
58
|
+
1668503676786377725805489344771023921079126552019160156920634619255970485781
|
59
|
+
],
|
60
|
+
[
|
61
|
+
100775230685312048816501234355008830851785728808228209380195522984287974518,
|
62
|
+
3198314560325546891798262260233968848553481119985289977998522774043088964633
|
63
|
+
],
|
64
|
+
[
|
65
|
+
1837189741429329983886833789246131275985545035599091291966623919967841244204,
|
66
|
+
469920083884440505232139273974987899994000885911056071194573294589259802432
|
67
|
+
],
|
68
|
+
[
|
69
|
+
1337726844298689299569036965005062374791732295462158862097564380968412485659,
|
70
|
+
3094702644796621069343809899235459280874613277076424986270525032931210979878
|
71
|
+
],
|
72
|
+
[
|
73
|
+
2997390320399291502365701712271136720873363591256030629621859546399086933620,
|
74
|
+
2725742381037070528763700586156979930560374472266472382691451570287013862562
|
75
|
+
],
|
76
|
+
[
|
77
|
+
3608386523905995279224196894194758246854376991737956048428718275550441491554,
|
78
|
+
299638830690759628369563708877422667364443387620215168054000198378323554222
|
79
|
+
],
|
80
|
+
[
|
81
|
+
1733017745745290190841058775834438078769759612359153596488000160651631909868,
|
82
|
+
1973340172374381850851160588687352250788736199336041450103281811142396650489
|
83
|
+
],
|
84
|
+
[
|
85
|
+
855657745844414012325398643860801166203065495756352613799675558543302817038,
|
86
|
+
1379036914678019505188657918379814767819231204146554192918997656166330268474
|
87
|
+
],
|
88
|
+
[
|
89
|
+
2860710426779608457334569506319606721823380279653117262373857444958848532006,
|
90
|
+
1390846552016301495855136360351297463700036202880431397235275981413499580322
|
91
|
+
],
|
92
|
+
[
|
93
|
+
2395624363109833935111082867579092089638282063493755655374369403894420657396,
|
94
|
+
351237427147755677344067136337758392262982966921757802462075586166198965221
|
95
|
+
],
|
96
|
+
[
|
97
|
+
1518817631841006315871038165514435660668372956425694825094659891110110998470,
|
98
|
+
2435234811597428668734076452595083530950234466401981561306652881621340269965
|
99
|
+
],
|
100
|
+
[
|
101
|
+
2173245854114081430013864960244839145346281378834121479101410821419573677603,
|
102
|
+
2546798213917003006819050845641858786968858658397560158974242382076827691040
|
103
|
+
],
|
104
|
+
[
|
105
|
+
2842565516483040219247288049386440051275065340592157409909273207335045943247,
|
106
|
+
3243970369543480657564144388570283526584293743815525434693286186817417955980
|
107
|
+
],
|
108
|
+
[
|
109
|
+
334001339911595275369567085510917903426590364565508070786916614629507192987,
|
110
|
+
3111246400312591389547128607242178414610449977696648758380570718520342084022
|
111
|
+
],
|
112
|
+
[
|
113
|
+
1524160182224703084171959692156493185929433834577885561910744542328224256855,
|
114
|
+
1537801596806048756579645687819844574476915843680990392821821911338917834516
|
115
|
+
],
|
116
|
+
[
|
117
|
+
1534228784878613855372285213913393282004680247144707529194564051083323737667,
|
118
|
+
3521706376781514787959257460794337508069645724875214092054188903006114926236
|
119
|
+
],
|
120
|
+
[
|
121
|
+
2578937995141029655393232141271255572790413762563128577126763729975116228193,
|
122
|
+
17390356333795810120168422581001175036590566546824644641783194730252048211
|
123
|
+
],
|
124
|
+
[
|
125
|
+
947940612979492942947148169286573131514814097313999984923945564630579515590,
|
126
|
+
2308193393705297792974084886503909156992936885451139308263357445074155842124
|
127
|
+
],
|
128
|
+
[
|
129
|
+
732404465937527082089939128149870791505934917542321234949662968808570781433,
|
130
|
+
143709480454569956048931032102611838633822436488408778496842771196869318906
|
131
|
+
],
|
132
|
+
[
|
133
|
+
241248627215637165874725355816367843299343644290443713521922700286140902436,
|
134
|
+
3252553440660691138666231381716834106176440363202963142721270080741642531818
|
135
|
+
],
|
136
|
+
[
|
137
|
+
3333115552336678637619322993761507811794447605372046548664704236825849321847,
|
138
|
+
2074314011440265695926966409849756773065015399410882685131987099183343980472
|
139
|
+
],
|
140
|
+
[
|
141
|
+
2828708362623152676836369441327395494506045083356924287447843608221054063061,
|
142
|
+
107382801318187992328203770492115828936772008265759480771447426051158848300
|
143
|
+
],
|
144
|
+
[
|
145
|
+
3093728769381682918281543022553646237541394965209383769732554106568421526166,
|
146
|
+
3204173745255459543321323207111205642245664180117592291733272407863239345733
|
147
|
+
],
|
148
|
+
[
|
149
|
+
2408410160653222627937499570601090771762354825212795227033567284727088044150,
|
150
|
+
2304538566806563442614047090440785060491938762209719835685218901694719627776
|
151
|
+
],
|
152
|
+
[
|
153
|
+
2758360715188072223623539313334284404194065029791792170224299872004682172868,
|
154
|
+
1002646182229402950578888347706450598176482335256655665515308125378628073404
|
155
|
+
],
|
156
|
+
[
|
157
|
+
2379910339855741683480364155463331175570260120162494489033888506779165916952,
|
158
|
+
2649708833736663077287705299849077665696945338155198794587505679066706972556
|
159
|
+
],
|
160
|
+
[
|
161
|
+
1176714920396664309204390318351093831295503091238549055894748705033779114462,
|
162
|
+
715774545317274898026140714630411642171682270543528864055131586173491427672
|
163
|
+
],
|
164
|
+
[
|
165
|
+
2785974441098456234843127330799770200846625265290625972155616950088804499059,
|
166
|
+
307863489533861377687037248795744305150392367370243564208692826588510059533
|
167
|
+
],
|
168
|
+
[
|
169
|
+
3127903794657845782054923624413460963746108626701051648823597412593664219443,
|
170
|
+
2832400994360149010034695923237223654142501296305205824531678157494587069403
|
171
|
+
],
|
172
|
+
[
|
173
|
+
1131830029003838132931634271160654858275272609594100638978880153740390535738,
|
174
|
+
3607754722674459909791405256520586221653709952825470711876211792388292839610
|
175
|
+
],
|
176
|
+
[
|
177
|
+
2759794674261780431984200708995704387783325908768350345798229435903528807938,
|
178
|
+
1260417916396710926345525006943606967340884567049582926597956766543273788168
|
179
|
+
],
|
180
|
+
[
|
181
|
+
2830057895043497782751868691208958763779500933641414034760294364554584648598,
|
182
|
+
3148801330152002136119343944143478481505330324328753740340717562089558415415
|
183
|
+
],
|
184
|
+
[
|
185
|
+
2506640265270419609137616465635205683276867684162736282412466285973014171890,
|
186
|
+
517183264945713035190384665697926865674306942691511144684578407765174829225
|
187
|
+
],
|
188
|
+
[
|
189
|
+
297135274309227547571122074141892368978567606416603548099453251059259457396,
|
190
|
+
738308515934554491948011858951484620721581230541917718419817808748771885016
|
191
|
+
],
|
192
|
+
[
|
193
|
+
3287710003144516108009450594509223314440628263909148329742349774812346409307,
|
194
|
+
225177091586755328705836619671963709040245082813366263262829376695813391167
|
195
|
+
],
|
196
|
+
[
|
197
|
+
1902667075164809149654789463437998238417922554649696913795190312096632954124,
|
198
|
+
3609476325943007214468624874971854834826753291984136726633316509571578121273
|
199
|
+
],
|
200
|
+
[
|
201
|
+
3452217073856686233854377494033704667278961088549888774623466171791636016755,
|
202
|
+
2444544408047898094236889539040891081629098003972134793849574953018755818545
|
203
|
+
],
|
204
|
+
[
|
205
|
+
2069167537346986671273731269107346759773110422380837126332493778223975152855,
|
206
|
+
357269144817598369811221449775153952909196646906055962631273486250245080334
|
207
|
+
],
|
208
|
+
[
|
209
|
+
1047243972090526803876529530618926456830431728514494419504365869386003201726,
|
210
|
+
493385597033162791196594107722557650629404615534399757351633988473756315396
|
211
|
+
],
|
212
|
+
[
|
213
|
+
965109286411904242713728581817485738428793211202426744037474223240067211186,
|
214
|
+
2413690664561921424572393647761853376475215279589433231249258838213909974115
|
215
|
+
],
|
216
|
+
[
|
217
|
+
1034828486658124322341241159997750207973283714015564270100039839265723642437,
|
218
|
+
3320659525509256706388336697822491014651786050898707765488292630053240833630
|
219
|
+
],
|
220
|
+
[
|
221
|
+
2924967592602073254569141793533465663326310402870978597207810641466195156731,
|
222
|
+
2828397747600941786969312189630745459745605646639868710157419955197341205208
|
223
|
+
],
|
224
|
+
[
|
225
|
+
1208329771806436797417016120088886878299172415075658275611114767604464163273,
|
226
|
+
2810710693404583496584233908768327740199404051365142000873009254465681789118
|
227
|
+
],
|
228
|
+
[
|
229
|
+
2187000042175732773516370724251479381096587891539947053664138571731476871402,
|
230
|
+
746498189666538551392041580103908969319041062419800073057943031798594621183
|
231
|
+
],
|
232
|
+
[
|
233
|
+
2000452964676707688903182602940959322690781577603915068119089450310903786954,
|
234
|
+
866954387631286490641992457358203082174659959202834537990114265745821626191
|
235
|
+
],
|
236
|
+
[
|
237
|
+
1296834309098498653963459206815713058813876510889656567958698555814791917906,
|
238
|
+
900321515532234476515871433334993494171305935536543684417444011164731278279
|
239
|
+
],
|
240
|
+
[
|
241
|
+
1595376832537627540806114085753076669172519984983967639366317789074759898235,
|
242
|
+
1219266627855965397760533984052253611682860681989985974389624113620845749733
|
243
|
+
],
|
244
|
+
[
|
245
|
+
1823240537897691300512000714094702014772232075125035605123065504505635249040,
|
246
|
+
1906261986240090609038909222466712928329872469704972427112770233118685440655
|
247
|
+
],
|
248
|
+
[
|
249
|
+
778303663772980866291056760213466667611301230393329301216572062540133184143,
|
250
|
+
2984789228888160339109292850517099811453943454548552440328876677370962441196
|
251
|
+
],
|
252
|
+
[
|
253
|
+
3543009119282959041814671650391719969699313481882590413207543576117841443934,
|
254
|
+
1490213523215199378557197585333711645365263188010733339965078460230935145833
|
255
|
+
],
|
256
|
+
[
|
257
|
+
1176236937487751405961855617527764992282992896230256112304717984169523263763,
|
258
|
+
327501310716241925530534584357204203311238806558120970999031300336125027957
|
259
|
+
],
|
260
|
+
[
|
261
|
+
2406374227501733859839714271591391036982988438954690468147627905682319529429,
|
262
|
+
2498960794066678523664440543302013058525262611284856216226688049821146904878
|
263
|
+
],
|
264
|
+
[
|
265
|
+
3452133497919418476271423809649290075304287340106989073706651714039300732642,
|
266
|
+
1721794031770397703814538822528137647140579794352083932468384744314312603894
|
267
|
+
],
|
268
|
+
[
|
269
|
+
1149850245936233973982137051189893468427998957468612707869248329754912343300,
|
270
|
+
3458926667343838493950348154788263034977717528749131548957463567618227215963
|
271
|
+
],
|
272
|
+
[
|
273
|
+
889697158819326131781010711389595245311511671705340221964679483759691059211,
|
274
|
+
2019807322878676390755723975464224869137141739292295209065143377221547630036
|
275
|
+
],
|
276
|
+
[
|
277
|
+
1115329342882491971826579323754611049286425400118842701871616630850493708107,
|
278
|
+
279298782170669703031554266329450929495785208527313704344065678320374720785
|
279
|
+
],
|
280
|
+
[
|
281
|
+
3365519876326833923487050935023315949049714901059255282163633136201965868269,
|
282
|
+
1868260280532817409831058300719431634773697469228981331390874154636702517757
|
283
|
+
],
|
284
|
+
[
|
285
|
+
2669519052792032403625707785046224942570603898100356640293648365762798392505,
|
286
|
+
1740654081939116207510779753054238062700744649382792523869583125748991653229
|
287
|
+
],
|
288
|
+
[
|
289
|
+
3121331648294614359396440970780137002689430823241383158647529355695088932901,
|
290
|
+
873685066624425351999444458200994077868639460913455806504495956245857350007
|
291
|
+
],
|
292
|
+
[
|
293
|
+
1816660828193076969492079690868149793376961857938776531133929200951688539889,
|
294
|
+
1617163330180274180907112309026652344859788476549850480902966972316617122251
|
295
|
+
],
|
296
|
+
[
|
297
|
+
928998762106806361096934313135623561544110643422813945289044484271228303836,
|
298
|
+
464078854784700975668790446344005332658112186605529977536203111266829995975
|
299
|
+
],
|
300
|
+
[
|
301
|
+
496484433760448456019075524089809339174015679144397089226817311073355526314,
|
302
|
+
656343647912825200827812764729017634457244310809059156122299990679423100787
|
303
|
+
],
|
304
|
+
[
|
305
|
+
1973676598953671410920434538501081964242302598763799105681937944844095305545,
|
306
|
+
307489436917501023536717840176704363109773690206006513056594461780393179493
|
307
|
+
],
|
308
|
+
[
|
309
|
+
518536787018692743767191710241721928752533989539898170372615978836875877432,
|
310
|
+
2521626354257053998255710814293449754273786720271901759585107157901808273967
|
311
|
+
],
|
312
|
+
[
|
313
|
+
690595468184470683559850269431813912957862648277508592008590933748732173747,
|
314
|
+
2414429566032394919031053748274838227119236756361308391916397575422431579532
|
315
|
+
],
|
316
|
+
[
|
317
|
+
2501095101472669025652293419986706422252484721018908950115277955062729551801,
|
318
|
+
2787294359824056854441860940419185812333861607391901444904784313692077324784
|
319
|
+
],
|
320
|
+
[
|
321
|
+
565118044580500186326118761527011487144705745596478022906701885062524158603,
|
322
|
+
1799231527053210762358771329838631545632111862410291843983616507220396846052
|
323
|
+
],
|
324
|
+
[
|
325
|
+
2037340835455495949556975891561839169602876578929015568690589435716642289270,
|
326
|
+
2204387525434065888311157590483645040393870259860783204107223503007512510657
|
327
|
+
],
|
328
|
+
[
|
329
|
+
2114937389277866993631127029230629118622631637448671765297876516930885448024,
|
330
|
+
2772043872341063054220063825377798998299638741683281348998984204361894484463
|
331
|
+
],
|
332
|
+
[
|
333
|
+
2097763236780897995115236415009286780722416534493059040644518024665003224715,
|
334
|
+
2246556465712181592290422124919768779861225704408240007042932086214236197576
|
335
|
+
],
|
336
|
+
[
|
337
|
+
3612119898822167069923931382556535386023574823466693257258182923730749602297,
|
338
|
+
1269484610898538742657592460359658026176515519847024771198089933933954376158
|
339
|
+
],
|
340
|
+
[
|
341
|
+
2881403268965266082547256964340568575654154178897275699709021163679539118655,
|
342
|
+
1692819601432103623771042884269589390667189502599274435132350636867812310182
|
343
|
+
],
|
344
|
+
[
|
345
|
+
750328371578183028452365126719312491229205795053566378454173411358094968605,
|
346
|
+
953119186030327873981560224892058145045695472203493861081607133113834466378
|
347
|
+
],
|
348
|
+
[
|
349
|
+
1656613311827787565035393466226110392419398195273172946657205368665450125099,
|
350
|
+
2599745208280264384426758693760932474903320975443399225749144566172064401743
|
351
|
+
],
|
352
|
+
[
|
353
|
+
2103692960985198293421966097241235578982164940176248129325331384077838061492,
|
354
|
+
2570917734334329081039835855157625956461983506342767455507599344910133039387
|
355
|
+
],
|
356
|
+
[
|
357
|
+
2956028884218562660581192985661469944972780357808337397013249554146206921192,
|
358
|
+
408046758724714924414144046633476879802492779243354079741111917699605101737
|
359
|
+
],
|
360
|
+
[
|
361
|
+
3295092543885183250245242131201657515391353210344574951962581116320755471573,
|
362
|
+
1642807297265426717090166824916187234878363764999511552230372565887780637331
|
363
|
+
],
|
364
|
+
[
|
365
|
+
3254747955211938731592559910914052760563649051803026767692046312174361324755,
|
366
|
+
2597825541939769956115552787003343561035903289305000309435219987085455364052
|
367
|
+
],
|
368
|
+
[
|
369
|
+
3061661576103456171574781131851984681727274357576590194413976242212020548895,
|
370
|
+
1440946704104779823819051619396174008908467766221900978049401983321224347705
|
371
|
+
],
|
372
|
+
[
|
373
|
+
838962129372725157269649943170983294581294061955271030939039912615696392969,
|
374
|
+
2450855656904900531871678154573620082208900269187857841648756800522172293828
|
375
|
+
],
|
376
|
+
[
|
377
|
+
623738578803750870859101112646088321855359403665383400994605481921028955581,
|
378
|
+
1896987617779463068695767102228909909503881877404532152457554106592081120284
|
379
|
+
],
|
380
|
+
[
|
381
|
+
3005336317328034100451063789097066979058288244531776915568829475740707033442,
|
382
|
+
589659290793751995469380634546964377934517395448274738900772252627065284531
|
383
|
+
],
|
384
|
+
[
|
385
|
+
12756189276497641079437863756137709474617047416617345367587373008165663758,
|
386
|
+
1456142055978131072821045695636502275738045623685201320945241755292775664199
|
387
|
+
],
|
388
|
+
[
|
389
|
+
1074674018821399880635425421583189259497571069746227839865670725436462244312,
|
390
|
+
258858007368753107323242423300483485125794748975129950895267988132082308316
|
391
|
+
],
|
392
|
+
[
|
393
|
+
681655034855073789847960596245322342285304909895796912572444021565696961022,
|
394
|
+
2638585878119722820634387321875125243576892120356441191562743859796708349183
|
395
|
+
],
|
396
|
+
[
|
397
|
+
484275861089119330366419813397313284916585101030604880621077715936286046362,
|
398
|
+
2124340832207188633301820498272014794490866326891190193431359618065899307375
|
399
|
+
],
|
400
|
+
[
|
401
|
+
405073150800337564971044639647327667948449004749665061152270060911349262451,
|
402
|
+
1489771173602690638325396124433593050299556632624187628464627170731054511183
|
403
|
+
],
|
404
|
+
[
|
405
|
+
2210274362697653963013276763896406028937726941229800687802476566182252928069,
|
406
|
+
107281585620564596853732679859399446219714819235699352412476509704530753455
|
407
|
+
],
|
408
|
+
[
|
409
|
+
1574843453768695165378209623495036727403155857878058624836922271817659867629,
|
410
|
+
1555661183633642518402202300513733784743599394430116656383692711334768895734
|
411
|
+
],
|
412
|
+
[
|
413
|
+
1123478630620218654285047429952065588412730975530361457071991777237712271756,
|
414
|
+
2829567770920061439901039508116248775591132699709271161323340183772358690173
|
415
|
+
],
|
416
|
+
[
|
417
|
+
1297650053639848975729187455845252204377426797153455899043246280172874099679,
|
418
|
+
1368877225005672215217218872501867910626338344551878492763876596080463242259
|
419
|
+
],
|
420
|
+
[
|
421
|
+
1370690034945541589206390781179695998551445194688862467131056389583582009970,
|
422
|
+
1470539777067742221259042319802797839837448440044303811384116671245122402709
|
423
|
+
],
|
424
|
+
[
|
425
|
+
3447187626984579154758815357460309989835728867823525757738362796350869385148,
|
426
|
+
1816603979655684111669599224323721980301208636016613170580056711560881185458
|
427
|
+
],
|
428
|
+
[
|
429
|
+
1813653163931885994109909806517422543930671118466754170167858925831571853970,
|
430
|
+
3512341620174737184060311796746868634824078847254277831432645720920236439319
|
431
|
+
],
|
432
|
+
[
|
433
|
+
2837307695083915103816975903131537789416753154015497312646069123780420491714,
|
434
|
+
616619065833574133353826959462642204697394233876988991826103321230494864299
|
435
|
+
],
|
436
|
+
[
|
437
|
+
594079125176886234216350989657852431152571525526195525372802362637040396383,
|
438
|
+
2494644159641327263522333201651180948727022160625648361761185979144016156268
|
439
|
+
],
|
440
|
+
[
|
441
|
+
2908396604150117877413275805593843594741970566352971841958566678954509739722,
|
442
|
+
2270651079544400929734484036612745055500450526594372099549710701035274374884
|
443
|
+
],
|
444
|
+
[
|
445
|
+
2678766929120334020289731872716504689707050034449508844312788171212235149009,
|
446
|
+
335161156418784138664067328871308180390826302690183885244799298812600140579
|
447
|
+
],
|
448
|
+
[
|
449
|
+
292866251242750359983852405638782648443335655395113648998608114038199112084,
|
450
|
+
1929874131411396072089047462553509072816290408149385625319723159940078151305
|
451
|
+
],
|
452
|
+
[
|
453
|
+
882230982554387611436849430391722624915254936568405968528170702860016504332,
|
454
|
+
212032938028459898975134792582247420939126124794435382098720034240512634047
|
455
|
+
],
|
456
|
+
[
|
457
|
+
128726401362994700814735301317860445928097536803417431852613367962589785439,
|
458
|
+
3394124118935926464118252583967031473364357246179309645829616988941527947171
|
459
|
+
],
|
460
|
+
[
|
461
|
+
677401161940040406778133733501716798305847724216576059351439033320244262845,
|
462
|
+
2925999450717968641674678177839015248195288227966544952091044204990727381539
|
463
|
+
],
|
464
|
+
[
|
465
|
+
2609307202957921769201454597723184920663265694086171832237331231605229071753,
|
466
|
+
801185762689670517839772705471851009753066843170718046248101910206876036095
|
467
|
+
],
|
468
|
+
[
|
469
|
+
3164184719276807654208802895852587431370308788690119771658913844464285523544,
|
470
|
+
1905779810840212631464048113896329901522020622508861085333684930860131307278
|
471
|
+
],
|
472
|
+
[
|
473
|
+
3611134164349757211212839193742321198628214417127680099335976437205997336534,
|
474
|
+
2043780132560451089266915016427409559115509465273768103961201197432849551860
|
475
|
+
],
|
476
|
+
[
|
477
|
+
674219880578998785256251799630500124321523321851449394348048261225376968813,
|
478
|
+
3482911053866603432328977995361936638192865211341332440041477929097847986703
|
479
|
+
],
|
480
|
+
[
|
481
|
+
3592898179794583311559546383565181628347625484079136119992096748458485223135,
|
482
|
+
1465170880570843353446345695255388397672185811127330686304727767842553737080
|
483
|
+
],
|
484
|
+
[
|
485
|
+
3479945591612641094508473900775458017345694655844890750906112888442669167437,
|
486
|
+
3101936119331166017640859304880796239643688879875971179134677606262220157899
|
487
|
+
],
|
488
|
+
[
|
489
|
+
1109415449398025759620102870831886622665877707210305893342279346428768457000,
|
490
|
+
2860907454930708330476655483302818728978205359193672814876717458325223426655
|
491
|
+
],
|
492
|
+
[
|
493
|
+
1357688207483205144399854674655145367528198873070486160807161516476844171794,
|
494
|
+
2883341787687489538845947867713953817206085374003322509387259371280461173550
|
495
|
+
],
|
496
|
+
[
|
497
|
+
2673153466150226365693822405439428986034577351717746967078667507408831331822,
|
498
|
+
1711608722888314089357865502727953201489434753448475578858737527005192231458
|
499
|
+
],
|
500
|
+
[
|
501
|
+
3399600989769963316575978481506459307955666332477901574428783938231920315833,
|
502
|
+
3215591135790328619011904119580811201910745729655431204459208397816583809934
|
503
|
+
],
|
504
|
+
[
|
505
|
+
1836471948074401070182493369353230908796463402812051721703561360825727986274,
|
506
|
+
2080945706738209357213401773997996954868066166149050730738271792162977075010
|
507
|
+
],
|
508
|
+
[
|
509
|
+
3078673344420931157936045314816499193943345153816528362806332351627801597029,
|
510
|
+
1525425884468796152026606689861526369646610285280224319617687192867257228599
|
511
|
+
],
|
512
|
+
[
|
513
|
+
2722661126018430265331502523339121563282558062510457654064467493725828237046,
|
514
|
+
2961950709147303512642570304801930511214999580227551995337732709133755475031
|
515
|
+
],
|
516
|
+
[
|
517
|
+
3274644392893639165667150492068461730297126947445956777112794513023991125188,
|
518
|
+
2045331969496016255571307687320013551853048491733214352646441341466617604859
|
519
|
+
],
|
520
|
+
[
|
521
|
+
112765822376634836986557327486952401905342511371567932656784212360129920193,
|
522
|
+
2925784973032974919740053039088226660025084255241123579355659877189527261408
|
523
|
+
],
|
524
|
+
[
|
525
|
+
1615139200617101600744409619536119151548135245881789111743749077087127202607,
|
526
|
+
928952548463900597431429074097494026341638502402888819595959975139532597586
|
527
|
+
],
|
528
|
+
[
|
529
|
+
89110835703618626006281975484745142479630710003689233432269611283359724860,
|
530
|
+
215577133560624823939271084084157878843706221683942956847919314607432159969
|
531
|
+
],
|
532
|
+
[
|
533
|
+
2365204845648678418296386461366871427710672197784591168077970521383279482418,
|
534
|
+
1305956795685348559654727794862561316677393382417655218949059817923691390961
|
535
|
+
],
|
536
|
+
[
|
537
|
+
3079404798552502156907780297645909071656015399012681371402409463283987518254,
|
538
|
+
21056707131743755971547625076568417377953234492785298586731786122687871587
|
539
|
+
],
|
540
|
+
[
|
541
|
+
1774615721844036510130640283396354163953067525827829514432813052928446640946,
|
542
|
+
2335149358230730291686085189834918003837685389648150105141235796252419309479
|
543
|
+
],
|
544
|
+
[
|
545
|
+
1735808336641971303276438949279976616427622212845904655791080520595464040270,
|
546
|
+
1731419497051910986191800745158520013128509429166504524452212426369487243072
|
547
|
+
],
|
548
|
+
[
|
549
|
+
225628732048332665517140883504098234968194122687532130198116739739190659914,
|
550
|
+
2967548981364742052624681942465301778302189310173531702492567780724033172480
|
551
|
+
],
|
552
|
+
[
|
553
|
+
799750724987433962024178782345988625264638811940430837962580781131993819643,
|
554
|
+
2706844911451851414869588131946375233343117270234616506423955430971490523817
|
555
|
+
],
|
556
|
+
[
|
557
|
+
1369724618979165159567545620227678034464433354639639473366228046556595024708,
|
558
|
+
2336720505293481339154253277307615910867992206313138581663759107186258146704
|
559
|
+
],
|
560
|
+
[
|
561
|
+
1930319710428527822612172469423758994346239585108798378474140896733181974186,
|
562
|
+
3075715260783582884087648822116793974103741019719484227525273088977328650560
|
563
|
+
],
|
564
|
+
[
|
565
|
+
3338564282673470966018775402725903223528182579868287010100527892104759349598,
|
566
|
+
3420593956586273983490728381161913171223107153319939485895365605089451302873
|
567
|
+
],
|
568
|
+
[
|
569
|
+
3555800392979470758767025620764223025989211483193054579480906006330657301837,
|
570
|
+
2149899957029896266930433713982567969321434161670385808908337955713550175074
|
571
|
+
],
|
572
|
+
[
|
573
|
+
3608545457332454869249792272060591549043786202385519868035962077469064609868,
|
574
|
+
2809440208316315053241747840271233428261159310708153434099156262944856645508
|
575
|
+
],
|
576
|
+
[
|
577
|
+
3322687396347671973732888070910250198991075315814763746941655084877070735058,
|
578
|
+
832722278416792540687431048542953362405174329235971097088928697230453072453
|
579
|
+
],
|
580
|
+
[
|
581
|
+
3256622670111196871124104758094097761744096984947383503745643093253708235118,
|
582
|
+
978374695622574912744133217293321822318821008760942454268417456141195625584
|
583
|
+
],
|
584
|
+
[
|
585
|
+
3410173130373258134073085888536026114751965010082957684030563699696697480724,
|
586
|
+
1029778749451237919869173468746897632364581346265567722171293156697958069877
|
587
|
+
],
|
588
|
+
[
|
589
|
+
3112433780585229726581053697334217985356658602483885980524816220344484038215,
|
590
|
+
2532342168888613388980558686859546650509221859779222781594186523997684356788
|
591
|
+
],
|
592
|
+
[
|
593
|
+
2105373184300453833566715269278756869308617438842998862447898598873739219726,
|
594
|
+
877369785681960743494801702556244962845285506808792672979162666273085193389
|
595
|
+
],
|
596
|
+
[
|
597
|
+
1393232346062500558436496118495653473949473378263920202909352539047530421805,
|
598
|
+
2756127133762923853208501814856325859087297216739373809908612188013181865996
|
599
|
+
],
|
600
|
+
[
|
601
|
+
2602735208672053198262611186569615211175565049926056251480233572878547833479,
|
602
|
+
629329025417775185892796948300727047077553416972749774530835029538350502253
|
603
|
+
],
|
604
|
+
[
|
605
|
+
1793674060552460299974233062088263069538015472516735538751555695772239138820,
|
606
|
+
3267910293235826685471049883722469455862230494501330393412138559038075359794
|
607
|
+
],
|
608
|
+
[
|
609
|
+
86863311610097694600007716574788775452468848027297474155593683107676444091,
|
610
|
+
2437707467955141280580805831659061124536906723244797886865002980932492722630
|
611
|
+
],
|
612
|
+
[
|
613
|
+
647853547298757687427688341299451732092383134491816678870980494283372695378,
|
614
|
+
3617636854438826076469516140770697015113683007543372219324291693845766252558
|
615
|
+
],
|
616
|
+
[
|
617
|
+
3334781490544017130581236435947958883590529475501049503331616858692678672100,
|
618
|
+
1524104441388820711776621309003922630015731846383839927647934980171536936944
|
619
|
+
],
|
620
|
+
[
|
621
|
+
1706920492017425179811478489658749041569247255320747028220786202351882167016,
|
622
|
+
3136062931779844207701097197470225751864670973511824570767144629934893764829
|
623
|
+
],
|
624
|
+
[
|
625
|
+
149961882640494348338043440935347934018050992098250101342463562074704074105,
|
626
|
+
3512185327682078074777552971488882847736861539286017805546782388407073599152
|
627
|
+
],
|
628
|
+
[
|
629
|
+
370860151698809780775659878430714854391039795566897134502189484720213964480,
|
630
|
+
1238632390866429469777130064298502868565198081327737370254478336416980048965
|
631
|
+
],
|
632
|
+
[
|
633
|
+
1282856472050108295483684218758047396436543346709509434400652555424465185837,
|
634
|
+
3192157841056717224043634359360155098877589892941349993757962372268962797115
|
635
|
+
],
|
636
|
+
[
|
637
|
+
3312829654231446830533616425871987858809512713259532177921343043407846981843,
|
638
|
+
1806976906510042164961209222220236480094335196359899499152673663644589005295
|
639
|
+
],
|
640
|
+
[
|
641
|
+
2826214476236947463134060188026701900955812519597178470627224598830931756638,
|
642
|
+
1580208692732193723402036455390144043645806993218896764366725410799716087870
|
643
|
+
],
|
644
|
+
[
|
645
|
+
379282466405240907198946408283110293887947304133389197401888303636683398267,
|
646
|
+
2678326696284237155462064013317839501356719176588712513572353629324338176024
|
647
|
+
],
|
648
|
+
[
|
649
|
+
523694191683203858486629087773330056719704186407500237062037916699142935895,
|
650
|
+
2926557820959194747499923406515961933437184756076777735860240549085691053587
|
651
|
+
],
|
652
|
+
[
|
653
|
+
124833202191020085496726895079225667003902078587119506095688146305802394652,
|
654
|
+
3363531045637590226091127058344713074476460386293564329053575414302767346399
|
655
|
+
],
|
656
|
+
[
|
657
|
+
2143651374532047414518845091756289685497664604612574318922876963772765730070,
|
658
|
+
2673827034448835877302891179434422590334329367577351180190722501245625474345
|
659
|
+
],
|
660
|
+
[
|
661
|
+
3221138751067425577747344145841964056907436939401545122534796814786108536883,
|
662
|
+
235336175612617006468583569743134666841147774340073069013500151038053147462
|
663
|
+
],
|
664
|
+
[
|
665
|
+
2555268812438549803835155012590418157639496654385486677760162898546595196513,
|
666
|
+
1689750620936872465271905664884810894356966245587199342495604460756806777168
|
667
|
+
],
|
668
|
+
[
|
669
|
+
625234954128220194452646182586699463591457452260757480259168774898052708673,
|
670
|
+
213161676086201716193087398992571428821719377385651036018131821081133441051
|
671
|
+
],
|
672
|
+
[
|
673
|
+
791204612818253360042670315855828265280744396446868065071639490833059389857,
|
674
|
+
2903319472504514375570923883911935291656049846866663158923319947614657595965
|
675
|
+
],
|
676
|
+
[
|
677
|
+
2454646497469354145786043440836113873410753626627793200029667058037294177092,
|
678
|
+
2032912288570051024788875629005185779516597292453270591316074924761292028478
|
679
|
+
],
|
680
|
+
[
|
681
|
+
2123337906329005118437052559658178011321855724007242277348144379266185921681,
|
682
|
+
1894503378078529242131889602767919022671882244815906977803914704575270961364
|
683
|
+
],
|
684
|
+
[
|
685
|
+
3602877859331983834496856242375420741994478431198393391854598373337944528390,
|
686
|
+
1390248307806555980791681315101366407220742869690031661994109003230157894293
|
687
|
+
],
|
688
|
+
[
|
689
|
+
639878381660983183381027433798087557736798886846049125326586828176785833470,
|
690
|
+
3512419367912974372084649665826686824136068377404083433804922599142564888100
|
691
|
+
],
|
692
|
+
[
|
693
|
+
1419134474578125103135604337269063811149389272963545586390539000069337598859,
|
694
|
+
2235806112698740444007125277529836633381483234992038997663439878202987160165
|
695
|
+
],
|
696
|
+
[
|
697
|
+
2778935883893248105666429190432349575416381537333107318387561120528861164061,
|
698
|
+
1077278765722002922040368598422352116268480578772186030121792709039469085744
|
699
|
+
],
|
700
|
+
[
|
701
|
+
428120812125473710465911539814876147732404851270862105382572167865288414733,
|
702
|
+
311433631492674653227552598028197969484982737235311408621797869297871619494
|
703
|
+
],
|
704
|
+
[
|
705
|
+
2952060790673513881810338872881675262252364545105524564508325071871367391468,
|
706
|
+
3582199809541312286609332154241682748678754599041344486017973240874423950806
|
707
|
+
],
|
708
|
+
[
|
709
|
+
1594461313084220822848406979098581830091616974334911374972620995310916825614,
|
710
|
+
2807125397722833979284621487977999302186252215199452982876117209095859541679
|
711
|
+
],
|
712
|
+
[
|
713
|
+
2043845413859332839989544551581949027414436310630598302726839258465898602603,
|
714
|
+
1493460761394315567854883351837738680253927509880345067100858649883130457048
|
715
|
+
],
|
716
|
+
[
|
717
|
+
910520306205610055407037560562219297599712042011958124271729124108713600122,
|
718
|
+
1227332044591912072232756174484900317585931037443282067667157281800895006658
|
719
|
+
],
|
720
|
+
[
|
721
|
+
1356322905904034407802797063629117404975010366322135572201704229186917875805,
|
722
|
+
3062811278605169224008088325523606193685397687377873754697372903028059871958
|
723
|
+
],
|
724
|
+
[
|
725
|
+
2651699680375521157731474794703697878196552894539932179312542308190248741615,
|
726
|
+
1374999585439430684113300998459982464172009456194373596393318069525504982141
|
727
|
+
],
|
728
|
+
[
|
729
|
+
2478956707907870604028063666882128463565422187569850243079631251653021026113,
|
730
|
+
3484420957530723200820826205205389208856700316444106810018542093549855044781
|
731
|
+
],
|
732
|
+
[
|
733
|
+
2745165789654622430617796031383732860380537410258722201878555322390065895409,
|
734
|
+
1389786264162289064932319984048404041828181018706839586582409596900469763316
|
735
|
+
],
|
736
|
+
[
|
737
|
+
792291068607630837524967871082697288161825884871154205347723150298096233265,
|
738
|
+
1595885520235983259847467303703354388143203603602941324268342974672349807911
|
739
|
+
],
|
740
|
+
[
|
741
|
+
1112766696158267198974840537128095637678660084973877593826070735478819877428,
|
742
|
+
76854025577946938851193238773961903814332442336300641590764677722879845665
|
743
|
+
],
|
744
|
+
[
|
745
|
+
3075088147214758449280318679771364592694228314680731955170139149431172226453,
|
746
|
+
2631464825354322427832325664266556982858783834009349057603625173618876560686
|
747
|
+
],
|
748
|
+
[
|
749
|
+
1946952991061874087036397224151139450490763292883750208451596293164980017180,
|
750
|
+
1671486844817988227846350440864329091397847162425205354534975696550529649006
|
751
|
+
],
|
752
|
+
[
|
753
|
+
447922002514491195056340638904274303849743543434622916451489369322819570022,
|
754
|
+
481989665314939062190810517257104327416911189393567287995442516666694890745
|
755
|
+
],
|
756
|
+
[
|
757
|
+
278768424991728679375985793004023299002069942702077846697446381167229872879,
|
758
|
+
2117939832550233574127330090850877444733498561141023361942969078992294709841
|
759
|
+
],
|
760
|
+
[
|
761
|
+
3216273780587845885344648641198104357960391646838456530374473185745790254775,
|
762
|
+
3606237386675957259713749411947060068172141797816584221362457562749070134457
|
763
|
+
],
|
764
|
+
[
|
765
|
+
888490252135075821787230358754699355629649708262317489940736076372880196421,
|
766
|
+
2243899191640238208431440104126936619623401575061085948377697882800556601532
|
767
|
+
],
|
768
|
+
[
|
769
|
+
1748762228708691375443278014066210232528543730943854135660867476022163374357,
|
770
|
+
299810809101280072373711346937892828549469075660577914238588790523849116964
|
771
|
+
],
|
772
|
+
[
|
773
|
+
21800463980443581727936921323539002523916110909487141095813330024439604509,
|
774
|
+
3239991592162948599965263758537867210199504881270279333333530879723254864285
|
775
|
+
],
|
776
|
+
[
|
777
|
+
1945649262091085266248324326387300230209483523911852369537103537534602188669,
|
778
|
+
937547850790372496342721899405171497997439341142225383636485893081045476840
|
779
|
+
],
|
780
|
+
[
|
781
|
+
95187198852190497553925369717104578448538072022660253488035756790745062479,
|
782
|
+
3284691659350683572361562338651440251050266476442725062173141352883841793890
|
783
|
+
],
|
784
|
+
[
|
785
|
+
396966715395293979183022035167233963473677021753099328784772352776439798275,
|
786
|
+
1613322234499535439350563907086596802838800251144492804438492852751836971863
|
787
|
+
],
|
788
|
+
[
|
789
|
+
1705843197146248589209974041619858441399461896194255757072890762703413482026,
|
790
|
+
2709234803093296173390529287307769438552461179797518815269401286400797214943
|
791
|
+
],
|
792
|
+
[
|
793
|
+
965896257227883986820160011629505229958129089095279852981573428580834882124,
|
794
|
+
3222878455111086494470662906288505024631219103956585024274050126506278071618
|
795
|
+
],
|
796
|
+
[
|
797
|
+
1711062768895650467512736187912681238407905324392544748841566987114959619940,
|
798
|
+
2037166002293356114375846587992164902616900087753130705770148512236761109532
|
799
|
+
],
|
800
|
+
[
|
801
|
+
306929171824313514409556697011428394218011837518848517597157431560368406919,
|
802
|
+
2733907887575749650664983471979960087709811489243842872308868788028064963544
|
803
|
+
],
|
804
|
+
[
|
805
|
+
1589132075979748817708848065945386431745143428233530475552120730272187989177,
|
806
|
+
3479574566456289934918449243936076329515058364276769923171744108995406563734
|
807
|
+
],
|
808
|
+
[
|
809
|
+
535088375724656896741944948092293887713409890408387277644439471611811707698,
|
810
|
+
3084839991780046496389632054225148955101489706660124944353740712683200220129
|
811
|
+
],
|
812
|
+
[
|
813
|
+
1108714469400502294909191174424037717245383586375174474928489701713698780203,
|
814
|
+
344696096736515166863459054453204973598183407079213029580530012456358476055
|
815
|
+
],
|
816
|
+
[
|
817
|
+
1896541196944951993777265586048099398652846183460110390523151621587553084390,
|
818
|
+
1356944636529832014079353150870395726873584547194854259003641654476043751831
|
819
|
+
],
|
820
|
+
[
|
821
|
+
2129740212445659709473295068445927295211143686808997136843204790705829600051,
|
822
|
+
2784093412242244048858451658511978494505560368170364505963748965317959330652
|
823
|
+
],
|
824
|
+
[
|
825
|
+
1164682312446525913981569213875150029132760939832308651498251601400403129032,
|
826
|
+
860011516352836343688401715896426496333552023448545234232950198907527747215
|
827
|
+
],
|
828
|
+
[
|
829
|
+
403381603306414312665420204496598046512017134030800187206579847445734886844,
|
830
|
+
156710329648174386978898329138661964114318418114565494873287202679709752521
|
831
|
+
],
|
832
|
+
[
|
833
|
+
3612709524322508414252878964415432233546157461869758422797096779080105910197,
|
834
|
+
3298597797713539922720249912653326762917459398002362406667649739024691730641
|
835
|
+
],
|
836
|
+
[
|
837
|
+
2788472028266807168790808585452088947945831098822807970786023663768554965883,
|
838
|
+
780984533356516602828788864429847085423068302018929746266555371946539918101
|
839
|
+
],
|
840
|
+
[
|
841
|
+
765015221711443098273066494715116075624315673921356068577773696969663768888,
|
842
|
+
121864134634742875401471744901077698759842590065938894637311780483786803739
|
843
|
+
],
|
844
|
+
[
|
845
|
+
3420458059929261250134488209708428351089317850483628650712157545902459535082,
|
846
|
+
2753073224523413466263788479220930266258909876418753081552150110011967761473
|
847
|
+
],
|
848
|
+
[
|
849
|
+
2435788601301668445647253094872163056944118800775256416712610409880768679053,
|
850
|
+
600038247016283378097972299409314284965737590535869850167688589980357128171
|
851
|
+
],
|
852
|
+
[
|
853
|
+
2791234127851217827076638673185921990434565258934782489657649399234080946948,
|
854
|
+
3019532625505810270756207292319968517034464214472035802893765165728566407791
|
855
|
+
],
|
856
|
+
[
|
857
|
+
2175512767988966931157181387193147869682253002700484615343260272758293076239,
|
858
|
+
16356925783563920024655061104076219675967060212474163352137306664035714196
|
859
|
+
],
|
860
|
+
[
|
861
|
+
2346289056582359849501003989438672266264448907419687867675159268542148069281,
|
862
|
+
269429309748271385175467663457270641975914217681440684037010041835530573698
|
863
|
+
],
|
864
|
+
[
|
865
|
+
481679002404926691230990214906065876613510532429501667509718578731645569407,
|
866
|
+
1609976879746739928846288345159176310170130379856291476257183396230103110555
|
867
|
+
],
|
868
|
+
[
|
869
|
+
2127782061956380596600761098774414382531840909564578638354721422890231607858,
|
870
|
+
3522660228464874209807741153414518456209790498657511195587886434205303653276
|
871
|
+
],
|
872
|
+
[
|
873
|
+
2990749966959304578563050621982841125682975201749885210174805380941485460083,
|
874
|
+
295197603441351883186074553477194964532333406546643184464952640061744781463
|
875
|
+
],
|
876
|
+
[
|
877
|
+
322299859114885008311771586431338392030172898629995798709098486233393241698,
|
878
|
+
1023285551085384033485966778701460844235475326250602612915962425374866217237
|
879
|
+
],
|
880
|
+
[
|
881
|
+
2679886206461898569320731641611496876582297592825799115233896892980598546123,
|
882
|
+
3099565537546363902378775008459983997262715254411954165424270988571981464521
|
883
|
+
],
|
884
|
+
[
|
885
|
+
853528159824941445672647399048964399831359191507493106790462832690982526176,
|
886
|
+
1009640753029626140011297690792696405115462988587033910421277684043461588633
|
887
|
+
],
|
888
|
+
[
|
889
|
+
1303674320335969124745880365084447847319437106063642511200542633107159295205,
|
890
|
+
862053741658449155711084470286087651524720201941852653377417774320602998882
|
891
|
+
],
|
892
|
+
[
|
893
|
+
371784976647836509603140476112794524387140033126839183825485397106022337443,
|
894
|
+
1481126947243599849498136670060476522501192641446886664638431717153471858730
|
895
|
+
],
|
896
|
+
[
|
897
|
+
256524228763970643322523560381608580385109852183329255389135850583181280611,
|
898
|
+
406062519770964392170499110443173965524033961539587233636744514155485982986
|
899
|
+
],
|
900
|
+
[
|
901
|
+
889909761640899390466461648537512393214660407373609451150870536404743826631,
|
902
|
+
3579579432590016439918468051553122806010260839218529712227712227008716479453
|
903
|
+
],
|
904
|
+
[
|
905
|
+
2181687776535382366933204874050926043644394510983340241902960182125931413775,
|
906
|
+
125591469249575554746765789850870005842434420699124766244689384267560349454
|
907
|
+
],
|
908
|
+
[
|
909
|
+
1698011648746714871368937594549801676987990963546029514109897028714017239145,
|
910
|
+
2032238188811755521211420251330988300583305301151292725000783151183349336764
|
911
|
+
],
|
912
|
+
[
|
913
|
+
207686199415566734810376310722982179068617367123996792470313948717972567639,
|
914
|
+
1457942055660330932304294699096717861622662715626699977446009835743129689987
|
915
|
+
],
|
916
|
+
[
|
917
|
+
732258411798183046441278957122759122697038828507788948928154704288224686840,
|
918
|
+
2612299176220286719934749375400756907183274870137646747294920834312868644617
|
919
|
+
],
|
920
|
+
[
|
921
|
+
1131610047798062548492567521656272602549897300746434874306725974344582031445,
|
922
|
+
592276015836506844762700749171355258254203250155822561654862572344939966418
|
923
|
+
],
|
924
|
+
[
|
925
|
+
1683203479448902722167828838268483614879733285176640956474769817134838920079,
|
926
|
+
2990934852576563000604264577641206566403815930150479384314858100664762791309
|
927
|
+
],
|
928
|
+
[
|
929
|
+
3379046363093840121427219819819164110884408212445336400953102193400631404907,
|
930
|
+
3581767823598790218171818955173138326266037759069958949236204540729167542495
|
931
|
+
],
|
932
|
+
[
|
933
|
+
267147147550523725868561003543093307186644052136871409944613118661005584614,
|
934
|
+
1306549083362239169609006162611383775071361663461903546405449470601023271459
|
935
|
+
],
|
936
|
+
[
|
937
|
+
296975912955049993838036596802334313092629826214334467025699377929310754375,
|
938
|
+
1563707217733470474074970856533625421700727823760061087588764083345926207730
|
939
|
+
],
|
940
|
+
[
|
941
|
+
409930698864338128894354352383270205190831536703476012076004429065058122460,
|
942
|
+
810813209917474447569624498205572650260997215620628649252215243057189717098
|
943
|
+
],
|
944
|
+
[
|
945
|
+
1244080118151222628554430592856097691345343883216811606005263269357031069918,
|
946
|
+
3112961342564635769384393489844295061472524432493301559668801711930497029521
|
947
|
+
],
|
948
|
+
[
|
949
|
+
3287905561524106163037657312076054800525947413789669708058413492038554328847,
|
950
|
+
2950266460046239577741220775173597014955783375111361479081038783371923101261
|
951
|
+
],
|
952
|
+
[
|
953
|
+
1834667074444753359896291977244884324984125181165619220523638440982002878973,
|
954
|
+
1028938841439025536907121844571940895060940730436245288628559554616030756654
|
955
|
+
],
|
956
|
+
[
|
957
|
+
2696579144808608214357559333220835033277874753649087677547926288655864862396,
|
958
|
+
1205667596625326964488748126939548850792621845142605787353435428502428194722
|
959
|
+
],
|
960
|
+
[
|
961
|
+
2681502303973249854884858344399536104286034851010362500805472440066210957701,
|
962
|
+
2090624297500029615299510863468795665118802449870439334493020091696427901315
|
963
|
+
],
|
964
|
+
[
|
965
|
+
1353314499186573664458206377062562808249080943135426913783009658343962961481,
|
966
|
+
2765083962822990885404819840064727313062737767044627137615530427213920746301
|
967
|
+
],
|
968
|
+
[
|
969
|
+
418493206714369123577433462079076010029158131200185602134250755432510923649,
|
970
|
+
707998386543299716720343491204719022813222859618895609544390001004782644320
|
971
|
+
],
|
972
|
+
[
|
973
|
+
994749436490026363483216765171719719813756635373513071896945407046466009916,
|
974
|
+
3542023359278349542922434792313919575183783573969934645527389879728870323439
|
975
|
+
],
|
976
|
+
[
|
977
|
+
1890008117079085184019219906457544800392678580280084811260498224586609070286,
|
978
|
+
530233764155506684122011374141421351751148778529665626269052967779624308325
|
979
|
+
],
|
980
|
+
[
|
981
|
+
1380484666773413147984807138259355829485624671596401959499503325097178446404,
|
982
|
+
2703143567161792821055257608672826415980743659971254233408855036509811875962
|
983
|
+
],
|
984
|
+
[
|
985
|
+
2143881856351418759124748482049358565778910428733836748398777699149555891034,
|
986
|
+
2186504045350479968631256614333785165240148508469904761831572298072325147795
|
987
|
+
],
|
988
|
+
[
|
989
|
+
2794147613012298673104841054632587797837325721650333247952170883643570500710,
|
990
|
+
2613093490820907283519815366146280477230890436771830509953858178043843459008
|
991
|
+
],
|
992
|
+
[
|
993
|
+
2625979094712716243539648580331695634041650060241725094563615224537054056479,
|
994
|
+
145143322058807873791926380354826174760141531075716146087195666113341406100
|
995
|
+
],
|
996
|
+
[
|
997
|
+
2912042742810958222559628370002186243459717464446177149380721928196350211880,
|
998
|
+
1095311779741249761721276459609161253222688862762095992035499286908387724976
|
999
|
+
],
|
1000
|
+
[
|
1001
|
+
1779688139950750136680613010527778524901137919784933323807835083178662865397,
|
1002
|
+
2443673470483539351187560062972650745287069240410986822268053157528350814229
|
1003
|
+
],
|
1004
|
+
[
|
1005
|
+
2131257578483960220347030216154712350782825143774667810440672905625819556803,
|
1006
|
+
868491622632592338574614600558827126185061061280839427086037749491272636942
|
1007
|
+
],
|
1008
|
+
[
|
1009
|
+
2219005280109778946483442325473674751018277532855518690831693876689847358912,
|
1010
|
+
268228073082292114390894552479318098546823436290210690954657472261887508233
|
1011
|
+
],
|
1012
|
+
[
|
1013
|
+
2467777871565605588821089206361725030593121231139954405293743820019316429337,
|
1014
|
+
2069991336503010889436721322920702620510647146193316568814112316083040831176
|
1015
|
+
],
|
1016
|
+
[
|
1017
|
+
3577501695097063979000880929536422727582550178446643147830010270693854635348,
|
1018
|
+
2035294884291881522017348441414523234930446764971044277218808172917534058938
|
1019
|
+
],
|
1020
|
+
[
|
1021
|
+
2916007638012715951040881085223392656327753091743451984926427831539302440694,
|
1022
|
+
101999113634064710169079402836107323839592545174054596535848670931124794072
|
1023
|
+
],
|
1024
|
+
[
|
1025
|
+
2824482828379328312126109430912691348039395134484392469690037535472985287979,
|
1026
|
+
170123149569960330410734287368175015043768931496132108203420592659991682297
|
1027
|
+
],
|
1028
|
+
[
|
1029
|
+
1722717317273017311710033441508078253294103515222910371014974460548425614659,
|
1030
|
+
2455794982320624552496521720819953146480298894982220570859668985011878438440
|
1031
|
+
],
|
1032
|
+
[
|
1033
|
+
3323332844428319232630841298737492488606773387534937061908049192786445054249,
|
1034
|
+
2775452603532873679877923100539353685218185462328621498382613902225794012998
|
1035
|
+
],
|
1036
|
+
[
|
1037
|
+
1608012153975591201510431671483571431120513181059080848126129285407754084748,
|
1038
|
+
575592304166370707508545110070168578909474113291472127326388774685581172878
|
1039
|
+
],
|
1040
|
+
[
|
1041
|
+
916809345825028426832118427347317839178426151786124666474024597549724310957,
|
1042
|
+
3069555112506328035675763181932227894553434381085323151827207060709357462248
|
1043
|
+
],
|
1044
|
+
[
|
1045
|
+
153560760075250381766471501226441998688409013753252062800770032940893580349,
|
1046
|
+
2329038724186047986576327612748573076822768420981449905843361105210433443270
|
1047
|
+
],
|
1048
|
+
[
|
1049
|
+
2251563274489750535117886426533222435294046428347329203627021249169616184184,
|
1050
|
+
1798716007562728905295480679789526322175868328062420237419143593021674992973
|
1051
|
+
],
|
1052
|
+
[
|
1053
|
+
1952032427782133959985228051054870623876234309599006856796795466237953231448,
|
1054
|
+
744413679445899225088843138289996934867918835619653321950444531036817070023
|
1055
|
+
],
|
1056
|
+
[
|
1057
|
+
3162883296795762041497700357918312017339509549159370543230518526626437112653,
|
1058
|
+
1148816493574468887215135074549621724232310091624566542087195747872792868322
|
1059
|
+
],
|
1060
|
+
[
|
1061
|
+
786950607934610388520508637842877731308927224203614303759337398330090790623,
|
1062
|
+
444134697710380413360573180457740543414390667171294106626775858829645857259
|
1063
|
+
],
|
1064
|
+
[
|
1065
|
+
2138414695194151160943305727036575959195309218611738193261179310511854807447,
|
1066
|
+
113410276730064486255102093846540133784865286929052426931474106396135072156
|
1067
|
+
],
|
1068
|
+
[
|
1069
|
+
955835104121335308947276399583596848959851821452355864667907221325383590383,
|
1070
|
+
1935683370537209806184243406809646867168041420482463925534831987536519170687
|
1071
|
+
],
|
1072
|
+
[
|
1073
|
+
1499611007946205543199170798196098786940176368383871138867689500928607330374,
|
1074
|
+
2662008410012406974490205380527854666032675717377005780162761284021647432331
|
1075
|
+
],
|
1076
|
+
[
|
1077
|
+
2335197826477933983066242217922654955176345813321200025173943441365679314150,
|
1078
|
+
86799141726517067858463816876244730494086420214168736349361077938664862865
|
1079
|
+
],
|
1080
|
+
[
|
1081
|
+
2426305297748003258516448191982872419574201776532744568583614742711471397997,
|
1082
|
+
611146900843862661160935598912412637915904741887617221933114742269852367033
|
1083
|
+
],
|
1084
|
+
[
|
1085
|
+
1819742747902080962279305391799448622733402573848283520339621821028260796959,
|
1086
|
+
1894241144684539746894260685967399165405614901992249187163143950195275701901
|
1087
|
+
],
|
1088
|
+
[
|
1089
|
+
1566900754533300858179807012858131246327928750222566819288909586499451206334,
|
1090
|
+
2323811598271524355017219639060977623543930469383254150460465078663134678714
|
1091
|
+
],
|
1092
|
+
[
|
1093
|
+
1338097767250711433700785616700918851742529208514529951106274243527927831096,
|
1094
|
+
3601290097662913510540208850467494388944371519879253105483940917906091319433
|
1095
|
+
],
|
1096
|
+
[
|
1097
|
+
1683076217460316609061101548674917172577600596732354862732552514637488814573,
|
1098
|
+
2586296790559369551539502725860235780473467857462493373020086667442440193461
|
1099
|
+
],
|
1100
|
+
[
|
1101
|
+
3470075416984304553645258515396988848402044843556043814143694549291509194436,
|
1102
|
+
1666299363887708992239894153878840011200424023864139235605837090808931067390
|
1103
|
+
],
|
1104
|
+
[
|
1105
|
+
129884650079435408471813606095297277059523238954518094473826756223429238429,
|
1106
|
+
913031838387203882010246435451325905809656720680281880669305438372695953289
|
1107
|
+
],
|
1108
|
+
[
|
1109
|
+
3445652480962486836667659474432628384578750077745289335336644514805586651762,
|
1110
|
+
1741653654983215120166402497338863916929176017304303902363120840611844416235
|
1111
|
+
],
|
1112
|
+
[
|
1113
|
+
1173074699967858342716736787366933102436976281324119440358211746283473098092,
|
1114
|
+
3075964035581410146694612776964161590283242001470153540218734715257792166291
|
1115
|
+
],
|
1116
|
+
[
|
1117
|
+
1948864707183825487572530934859230839519236819821721157111541446530257224135,
|
1118
|
+
798780108424505404488913172014962400148988458061505603829909122085722968572
|
1119
|
+
],
|
1120
|
+
[
|
1121
|
+
3165333849798411161138142302194551326502959074734249886012073955960267320358,
|
1122
|
+
2854077232678939262337800847761960471531706329482426572081757005793264065021
|
1123
|
+
],
|
1124
|
+
[
|
1125
|
+
584219684922011437746073096716853840728059302768805720402293458731947997988,
|
1126
|
+
2691605392627141392945611586058726186445966055416403501891746673585009447073
|
1127
|
+
],
|
1128
|
+
[
|
1129
|
+
264865088823397344079537851791331047852344700250947641609789815815437187715,
|
1130
|
+
856557814156118883640651140266045634237123586226962432863642966399740605873
|
1131
|
+
],
|
1132
|
+
[
|
1133
|
+
1212105529543873848411369707567547187480526619270372944387195134251016552437,
|
1134
|
+
2552579868998151139055870387891260255591250119487805856658511804923635744103
|
1135
|
+
],
|
1136
|
+
[
|
1137
|
+
2759929251220121311757096521396321905172783069804137943187241377410890848589,
|
1138
|
+
1013388642776766405334075600441854256934688539631486641630323046104523794325
|
1139
|
+
],
|
1140
|
+
[
|
1141
|
+
3435662243060467637677279408549422366191108299439077218684237876763341810879,
|
1142
|
+
1206100200764686560370450625743787352415337337047308087134628700539206972086
|
1143
|
+
],
|
1144
|
+
[
|
1145
|
+
1977901254287550894956728572957134897985203087357872251941076511047285452123,
|
1146
|
+
1346842642356348816775497637530312996348462152604627197529080983616576235485
|
1147
|
+
],
|
1148
|
+
[
|
1149
|
+
1581907638985290987975047412112008678916597048367684526184099730550194065415,
|
1150
|
+
2288246533671252346247687962179397967163408912494860510981460961024159618572
|
1151
|
+
],
|
1152
|
+
[
|
1153
|
+
3215377452673680185835021004830688268079390648010676635220128902519168416923,
|
1154
|
+
1674957009593589739638616939189211577318542927235942161494800623173476894918
|
1155
|
+
],
|
1156
|
+
[
|
1157
|
+
3396057617195027713159897957858092093258826926757827467732086865786377444102,
|
1158
|
+
2403568170323924513104032431512050355627094479417158474914772545814875796054
|
1159
|
+
],
|
1160
|
+
[
|
1161
|
+
325310856310207888841271598900176645709547071516271373679357299878055669525,
|
1162
|
+
2861677118910432905996905108378731982262901938718390134034663016688312343427
|
1163
|
+
],
|
1164
|
+
[
|
1165
|
+
1925427404573041560549638633971822727278056640694873177265388259055141273564,
|
1166
|
+
2149185931265263003264629477521934555446245963141224065368283592107464297049
|
1167
|
+
],
|
1168
|
+
[
|
1169
|
+
1057655004272797062633705695597766087036831552982842977913880603549380151466,
|
1170
|
+
2130130885627581719544847915036196574607634081790527579681856058518350163936
|
1171
|
+
],
|
1172
|
+
[
|
1173
|
+
1786242059890666469307365196518174814453782118901787482186686744245818012463,
|
1174
|
+
2172680482993759140271167348144713503721696709986572085951066664839388293484
|
1175
|
+
],
|
1176
|
+
[
|
1177
|
+
2592525455921742135918400168106149306210970009440868747852006912674191605906,
|
1178
|
+
2550305630907505809534995587257079662509793820536464892848197484572098781014
|
1179
|
+
],
|
1180
|
+
[
|
1181
|
+
111752568734708072011137681957171091740064310210630952635788677462490949489,
|
1182
|
+
1966538689680059826741582906363349945575114015419692615822155104740977191321
|
1183
|
+
],
|
1184
|
+
[
|
1185
|
+
2324264192758669920944928844116594735168711655659168025211571634463212989215,
|
1186
|
+
2453209181874565651016960427707879723586882840596638134526741863234420038217
|
1187
|
+
],
|
1188
|
+
[
|
1189
|
+
818792252748214652222203568101444114842946877275244081137505104552993989249,
|
1190
|
+
2471135473251293858404864644674805198948427457640609601515835463680395027066
|
1191
|
+
],
|
1192
|
+
[
|
1193
|
+
776167224210253175836285301928858826524230272765386107941590743597167238720,
|
1194
|
+
3044593275856778999572277625341930135050598088363464944610781758478552167560
|
1195
|
+
],
|
1196
|
+
[
|
1197
|
+
2767418361596469194389897577063980781767359707916121685125519618739970163355,
|
1198
|
+
1124183356341334924855702050560569148670124301541230516023323823985404910253
|
1199
|
+
],
|
1200
|
+
[
|
1201
|
+
3513158900447819618700445228863547036694626890925843610953740962149603482734,
|
1202
|
+
2038286698090839235054970774714871346106378670221757061557885786099548421055
|
1203
|
+
],
|
1204
|
+
[
|
1205
|
+
517681831514430710817158481088000571456636089484182444914961386383717794582,
|
1206
|
+
1459737506190708125961565377404508114648445797956698177580320945537417189767
|
1207
|
+
],
|
1208
|
+
[
|
1209
|
+
2764450063359771480330846034975350106048674448417446553801535244886068866892,
|
1210
|
+
2500955915434901122019038304617790171097079017113487693837548584032628559083
|
1211
|
+
],
|
1212
|
+
[
|
1213
|
+
3184601066099193053823632069416872853499121524829816523443698520118638972221,
|
1214
|
+
111399286855641690694757616558822271075634785548525857820633539322287438076
|
1215
|
+
],
|
1216
|
+
[
|
1217
|
+
1861764219607632476451968430680705159045765477029736548085454909942815526303,
|
1218
|
+
3542081125583459227861063385092240523576730790188055012978461087647652048846
|
1219
|
+
],
|
1220
|
+
[
|
1221
|
+
10925555246854055743289295413923076326390541878672074284471241830391529976,
|
1222
|
+
810379063403665716239985697021625834252465819699617633253170927366131373937
|
1223
|
+
],
|
1224
|
+
[
|
1225
|
+
1925469472110966024666451107813057200428670133173573112269655451746350245386,
|
1226
|
+
1187189363484828103108277567024110279560050728332792104397849042655830458502
|
1227
|
+
],
|
1228
|
+
[
|
1229
|
+
1257234032480175630185580604439948675879173824493927714083831311549585046766,
|
1230
|
+
482591378023150470327639933521764621888328430410377343971291074047537101431
|
1231
|
+
],
|
1232
|
+
[
|
1233
|
+
2334319993908953455700110484178707117214967972232088939662977870360647156970,
|
1234
|
+
2818056499399790981578195943345246458116384474394556164088380917912187593212
|
1235
|
+
],
|
1236
|
+
[
|
1237
|
+
1453145677148250112321822321443172335864030607730961070308740138762391252935,
|
1238
|
+
3617981792798631412887889951712686522258702128207981768326584469873932484754
|
1239
|
+
],
|
1240
|
+
[
|
1241
|
+
264643236147417159992044802699391039945632102423375233223220671619422214434,
|
1242
|
+
610904689309149986363589451581676922381464434446910426922817060056083567097
|
1243
|
+
],
|
1244
|
+
[
|
1245
|
+
2773555644105234303846021450759411618679442176305095821653566380427481880668,
|
1246
|
+
2878405667973852006171581845359598408350517329366546879570244783921286317021
|
1247
|
+
],
|
1248
|
+
[
|
1249
|
+
2380074631138752101437386328647668302433161481157298955599519485146473998414,
|
1250
|
+
2940162033501039253058405622329360778854888527422589401316007987697096499987
|
1251
|
+
],
|
1252
|
+
[
|
1253
|
+
59923324335814857005652966889729706976632643533439489239403033851211490829,
|
1254
|
+
3181196819190011787131540430610930324408745638588775047528706552833472475080
|
1255
|
+
],
|
1256
|
+
[
|
1257
|
+
1571134397970145634572604253962346713191790104259693653437624133884723196915,
|
1258
|
+
511309416166810662427969443722895543878733742083314900009440861143766415361
|
1259
|
+
],
|
1260
|
+
[
|
1261
|
+
21090530989878836908367190554625378531500191692603997969723554269923877778,
|
1262
|
+
2771500794785272828011587832172996564585508124740321638858260733779070073032
|
1263
|
+
],
|
1264
|
+
[
|
1265
|
+
621303564182234060808181503818404204870407855544326969616228975404966772646,
|
1266
|
+
1381758119149546152274589114806432955337739448745667222869629159555498152415
|
1267
|
+
],
|
1268
|
+
[
|
1269
|
+
1603367875109750844401808777605019545782079142993759227560886400939494569928,
|
1270
|
+
3404233473008527201696274593235213333767802823633271526617525914604458121747
|
1271
|
+
],
|
1272
|
+
[
|
1273
|
+
3064432839007969661251145008088305693584410819966794512614368597856219962482,
|
1274
|
+
783256745930834086288610539747908078655069214006352981421868494072213571354
|
1275
|
+
],
|
1276
|
+
[
|
1277
|
+
2573509260611834641929601495624663326040450806493971688424856342734838037808,
|
1278
|
+
489632329414366712473800098158402333281555035744201997032862455100685111530
|
1279
|
+
],
|
1280
|
+
[
|
1281
|
+
1373013110025567380060459077575726370083805340382038749245013725221282327457,
|
1282
|
+
2271658983436031571764113689216829854166985975189230813662757962593273370705
|
1283
|
+
],
|
1284
|
+
[
|
1285
|
+
243466876262712870310499646879826213360676861126171299065326838396697300684,
|
1286
|
+
891923608292171984769797750319491387015995834783589731015608767716778489152
|
1287
|
+
],
|
1288
|
+
[
|
1289
|
+
2035465927594189567864787276274121052811830838707542644166137070067107322500,
|
1290
|
+
2293243214098049976425980695256140756537564052456935637846524530699635529072
|
1291
|
+
],
|
1292
|
+
[
|
1293
|
+
1715507122267435124880907385699722499007841543359383748906967432836714601915,
|
1294
|
+
2065683622001523424317888964929493250974883654939917054448293842930286201120
|
1295
|
+
],
|
1296
|
+
[
|
1297
|
+
2906653642813167415863836383642871880050990532175816005542735996509246708445,
|
1298
|
+
2101103582375172516655999605681405804159432128657161521495199065707274548843
|
1299
|
+
],
|
1300
|
+
[
|
1301
|
+
1560478280364678701345899621740888632653158026800096320697331299727453323955,
|
1302
|
+
2502904681091262932533150924633878024793617322541538974642118205130709004124
|
1303
|
+
],
|
1304
|
+
[
|
1305
|
+
1088825136235742041556075285669369753699521218552343596173215811771470309575,
|
1306
|
+
607071558939135607706029375168245965172230512282049740495005044883485254652
|
1307
|
+
],
|
1308
|
+
[
|
1309
|
+
416480930348830698091647060484670913532953382502409400899099946640850762655,
|
1310
|
+
2303434329028515556374106529351629273202094072128674875449835104642893549223
|
1311
|
+
],
|
1312
|
+
[
|
1313
|
+
1059226326329269227798760274851746346121838934144866840722833084379215695718,
|
1314
|
+
455998255867283640545200132173274853754233138086189946906020858549998434504
|
1315
|
+
],
|
1316
|
+
[
|
1317
|
+
1024559718945017260657672873923464530437289768440141950557818820996778411842,
|
1318
|
+
525500033723589597309036453730301911712422803406229661029628208639589866511
|
1319
|
+
],
|
1320
|
+
[
|
1321
|
+
2056028306188984024699016201885443563164872865972667060670091877117616276834,
|
1322
|
+
1419412493706512914027360568510428136300835377049697326470468114560769950308
|
1323
|
+
],
|
1324
|
+
[
|
1325
|
+
2521038744059190227863027780309672155134248925803510182471085885871826328010,
|
1326
|
+
2055664921579551707407017847075753140537141245184993747243302270696485943484
|
1327
|
+
],
|
1328
|
+
[
|
1329
|
+
1408309654797092197568389828883985051397496347829594535681640019995307652445,
|
1330
|
+
295921513421790144469734685069951228414338437813405505294106756210992032229
|
1331
|
+
],
|
1332
|
+
[
|
1333
|
+
1987857595984681386153299845716030466354725651174836127615155461210837869564,
|
1334
|
+
2293923060372667346124288305276256569940238390418855305479173407955750665287
|
1335
|
+
],
|
1336
|
+
[
|
1337
|
+
1074973828105956295697455820943040985586724095278707830076756602555601108444,
|
1338
|
+
3326765437245957223406988059616777659852354773867298474672160569379624598430
|
1339
|
+
],
|
1340
|
+
[
|
1341
|
+
1401862061794147305806657568952279890802547970381675217693442582127912005310,
|
1342
|
+
910058274349373118447954573574441457656632333180366570053619401133150262813
|
1343
|
+
],
|
1344
|
+
[
|
1345
|
+
2040966475187373851921668684777109791068677257197750053913982531497273133975,
|
1346
|
+
1167958332666304570814202030094477634345363022473150543742806601986529818461
|
1347
|
+
],
|
1348
|
+
[
|
1349
|
+
2881780782119017791457583552000797082603415839437706575588805401515980505801,
|
1350
|
+
2436105237174666086889653702042028393653105027534224748338553775980791489395
|
1351
|
+
],
|
1352
|
+
[
|
1353
|
+
1138781660141971412207137170011812332951155719283266572057616562955205995829,
|
1354
|
+
2657768812194147024915418195050409322486415583242017023943729410483676474626
|
1355
|
+
],
|
1356
|
+
[
|
1357
|
+
88581112279530612334542943009705636136002388463681106693549082166685838725,
|
1358
|
+
3496134215297708121790719225608456452574651558469594407547800088961881026765
|
1359
|
+
],
|
1360
|
+
[
|
1361
|
+
866718519953191029204822844477480603275933535155329865978768093814160529674,
|
1362
|
+
2022882774094084071548678749116103222489874860976240925473298660635212244802
|
1363
|
+
],
|
1364
|
+
[
|
1365
|
+
1103918207045639319456460136379598726437052653753960546349780312287131158223,
|
1366
|
+
1656811459960430943611479537236804458740132078453755963357596576700576629867
|
1367
|
+
],
|
1368
|
+
[
|
1369
|
+
2975764785119134105842544511285384981490365867343400021422469912399500877645,
|
1370
|
+
2687980107817591862475555961986751017099827078208385723645417765552791682099
|
1371
|
+
],
|
1372
|
+
[
|
1373
|
+
2054447365318177209738241671190147649701574355450360479017715224292009927393,
|
1374
|
+
1227206940403531159772964107232373497220530020193348767638035040017379885984
|
1375
|
+
],
|
1376
|
+
[
|
1377
|
+
402275007431361887464920597581616397711484740464854159502779178788056390885,
|
1378
|
+
1547405786479003871142635515616266099578579586990668594451288428801472362903
|
1379
|
+
],
|
1380
|
+
[
|
1381
|
+
2669324117696876754084336282080783960314916540857113798726442554388023656184,
|
1382
|
+
3074286759765067223595900394644532377637168990646921851127828180794850850636
|
1383
|
+
],
|
1384
|
+
[
|
1385
|
+
611932396022950536967338459506782836623876614969030243077175645873783092390,
|
1386
|
+
2986433254570022449958119232739190557250941610456904564848292348906028792067
|
1387
|
+
],
|
1388
|
+
[
|
1389
|
+
1110995377995699045828083953623434494450657345505392977032896710538879544144,
|
1390
|
+
3071470793346350302357608763590610007478960895381257765814531991563057030742
|
1391
|
+
],
|
1392
|
+
[
|
1393
|
+
2191168535074842056167853224940102773478321048031820308130136731344529117475,
|
1394
|
+
492617323352024208418412531798559543092874332708570994021422823607454559418
|
1395
|
+
],
|
1396
|
+
[
|
1397
|
+
1818759115593575585308068448791508192789866090941451793170759417890828490762,
|
1398
|
+
1305353903124550364838683686338031038285043137449345518795766390174337151903
|
1399
|
+
],
|
1400
|
+
[
|
1401
|
+
2631013586413722723014078756848572110540232554858227410413816548047325168051,
|
1402
|
+
2105417412111265728359541491742019675861543959418319743611117424131871073867
|
1403
|
+
],
|
1404
|
+
[
|
1405
|
+
494722738667200879981866755759016615873180216451714847099458992922362500227,
|
1406
|
+
1539404447578224883291548288433633968332223396361092124453992010526489574088
|
1407
|
+
],
|
1408
|
+
[
|
1409
|
+
1894316435470914382555165707375744683572341270069865836107052559173764639667,
|
1410
|
+
401287370121559774698743821124544382770349508247396498174321596110198582372
|
1411
|
+
],
|
1412
|
+
[
|
1413
|
+
1339247525522496394127023115420380868431447741930632224270989291600289579235,
|
1414
|
+
2330930519705316142879600410372647788413471043363313385713997026124191817517
|
1415
|
+
],
|
1416
|
+
[
|
1417
|
+
2320587088454453474461645476206103420492539243459981382841070259500342411471,
|
1418
|
+
707303545980793210971675132996162637283200017126206538680628878370110521153
|
1419
|
+
],
|
1420
|
+
[
|
1421
|
+
2377659897024221375470644518744478788982138263672700674443630590978849683809,
|
1422
|
+
3419989952269036538781036113174387172326270380530270982346793780460729200034
|
1423
|
+
],
|
1424
|
+
[
|
1425
|
+
2687585515362755421896341880578567868284030156693703993329134509207013359293,
|
1426
|
+
550674138339341111775701426337380778844351792663711912206724163064378058172
|
1427
|
+
],
|
1428
|
+
[
|
1429
|
+
619785501193479957534515714310017569776352132000912157061487205381157886132,
|
1430
|
+
1961366910419378396302827972401933597848792446727660497590498798601343853897
|
1431
|
+
],
|
1432
|
+
[
|
1433
|
+
2960597928226130798805429646261618976240340007412692237798738046399566677924,
|
1434
|
+
3508695180344311906202946672427154710274134142520774461776498819979015518079
|
1435
|
+
],
|
1436
|
+
[
|
1437
|
+
2926849849449158589418504157622781316761588577631946629896933307400237548255,
|
1438
|
+
3579904677936943713540587614497052174139389714845927197988064028772422409729
|
1439
|
+
],
|
1440
|
+
[
|
1441
|
+
2528266877173878010055911786705258188545546534139599446181068037003246641972,
|
1442
|
+
2090593124885859667054468890302718556366617309852711480847196828672489780384
|
1443
|
+
],
|
1444
|
+
[
|
1445
|
+
2444375104485440204606531945078810145038148666393834678853843328800784491413,
|
1446
|
+
2715725794432857257355582195062001572910526811270194737205485553709223325149
|
1447
|
+
],
|
1448
|
+
[
|
1449
|
+
22830464908174189828089916657865484119153417213263588787115884234394820551,
|
1450
|
+
2144656372197073668726998695697011727390449826738494763726208492934675687351
|
1451
|
+
],
|
1452
|
+
[
|
1453
|
+
2160911736065509245304608365930348966695110267270046309451656634373627649798,
|
1454
|
+
1163682116033125825657519424156769471044453229066709940373641637423931934054
|
1455
|
+
],
|
1456
|
+
[
|
1457
|
+
3337375727076925923347860860990507186997043901018925752183704995009780982617,
|
1458
|
+
789849303430659746633537234664825369690245855962498730835768457501816445262
|
1459
|
+
],
|
1460
|
+
[
|
1461
|
+
2716386435720211080341482697862373973972358535390181213762877306777737012402,
|
1462
|
+
1694833211852186945995412154030088403536183890500755705683031155572812198349
|
1463
|
+
],
|
1464
|
+
[
|
1465
|
+
2068303401887779893147375033717840031634024130559056428854775490478246923099,
|
1466
|
+
1302558735633136858997628501160702103360976241643583615145118788605800501823
|
1467
|
+
],
|
1468
|
+
[
|
1469
|
+
2528669114399089536204487719847492540160633221112006566613245017377953815975,
|
1470
|
+
3355482321728480378876070603715444548564989647597270339584107783929482403385
|
1471
|
+
],
|
1472
|
+
[
|
1473
|
+
1261599618177618962793920186597687295419265824130061936332619302494768478919,
|
1474
|
+
2783617516834130711477034905360493329011706287809097673216506817763076782638
|
1475
|
+
],
|
1476
|
+
[
|
1477
|
+
2296010137652334615076906848600702206420819604705598933314103330038064507904,
|
1478
|
+
593137988508667983800537181778974626700843711375991890922024569808180330689
|
1479
|
+
],
|
1480
|
+
[
|
1481
|
+
3550068663997426488921976653382588625011435366616319009448120503817895378028,
|
1482
|
+
333410037907206817306890788780367628702748092247180262748072669817226553712
|
1483
|
+
],
|
1484
|
+
[
|
1485
|
+
1578244233650262393441190533726865755228496176869169339972883019206417143875,
|
1486
|
+
2916675240291132751272523072177820169167325640678555998767122677068069504203
|
1487
|
+
],
|
1488
|
+
[
|
1489
|
+
2578708307946151727285356080366654771256622596667386016883098096024764936468,
|
1490
|
+
3547149991717605187248264974055140267141465574101933313814496584854066409070
|
1491
|
+
],
|
1492
|
+
[
|
1493
|
+
1067242594064079501648168388172061910333397472745655832282853323030820063843,
|
1494
|
+
108409220808480307369448490727067533487994293376444700684037781053298403259
|
1495
|
+
],
|
1496
|
+
[
|
1497
|
+
1438879968873284678993516485008080871992105419269026450500135928583384168688,
|
1498
|
+
333856453999414929392413408589358932084193824353874579187651515313020359769
|
1499
|
+
],
|
1500
|
+
[
|
1501
|
+
2085247683945044480852971266898030909967072967111091473808832254928660354607,
|
1502
|
+
2485835628881711191910958556160457454778996828420985267633930125611726115768
|
1503
|
+
],
|
1504
|
+
[
|
1505
|
+
477210647966136763919276861800763093178095337893692383194424592690231940061,
|
1506
|
+
249607430987277999234526517540164575126654109544108544480054797746736570800
|
1507
|
+
],
|
1508
|
+
[
|
1509
|
+
3439303457066047146897968415062046665605853275226669283725228224973410585910,
|
1510
|
+
576124419653395914968187737099874519814103127209134795696921745172483058236
|
1511
|
+
],
|
1512
|
+
[
|
1513
|
+
3028687819239678122848199946542573863395992135514552484651611678970005763129,
|
1514
|
+
2961643823025691121513520662201781259179479037567198808346912150041025760642
|
1515
|
+
],
|
1516
|
+
[
|
1517
|
+
3217248534103588798939334232631337032410025788470581973981396764231465681047,
|
1518
|
+
2382487873308676654385098962584563887276844064402347832716704744043722784812
|
1519
|
+
],
|
1520
|
+
[
|
1521
|
+
70223145378785170243702578121178644986245368450401326703486231450287863627,
|
1522
|
+
566197969536520322901287947074318556204558945230303949390810423446802406323
|
1523
|
+
],
|
1524
|
+
[
|
1525
|
+
3028144136397350722039435806065376945342224221363467830775872476071042099596,
|
1526
|
+
167098690867154485139002287996988541908068352838119188548912894969546326088
|
1527
|
+
],
|
1528
|
+
[
|
1529
|
+
1424858530411014835161893358951895950005600021438253129735780882682252689593,
|
1530
|
+
2305727793424806539572292293130051301594968780927626275319782923070998204084
|
1531
|
+
],
|
1532
|
+
[
|
1533
|
+
2137513716516327603808109201538743935930903413061745351331773762548511760158,
|
1534
|
+
1642530299556920094344308735995008094003081457462443723760327041776469019076
|
1535
|
+
],
|
1536
|
+
[
|
1537
|
+
2170444911584390774802338541806841054793712556211735475250435550223474552592,
|
1538
|
+
925789261675057834371037875523035088704965828465840628994713637520457333016
|
1539
|
+
],
|
1540
|
+
[
|
1541
|
+
239299595833165228919005931278081722748571104921165506568868902567605074538,
|
1542
|
+
485001543376876278371961680415603784960370504830892419674368813289405424875
|
1543
|
+
],
|
1544
|
+
[
|
1545
|
+
3080380062043844759018736411849858262358110468668995639984779021951968636078,
|
1546
|
+
2402265611218391177266008066876605247210502592712781467199097469773462678225
|
1547
|
+
],
|
1548
|
+
[
|
1549
|
+
726523175548388386261502324171774291430220813407320118077006064537560392330,
|
1550
|
+
786330320941681238670628195289980168691286367143496676979339036480301999376
|
1551
|
+
],
|
1552
|
+
[
|
1553
|
+
527181411328890981971052946489613295601720332326053123212209359114463976205,
|
1554
|
+
2153641849366054831187204654204168306183349514724183599886856681068048360647
|
1555
|
+
],
|
1556
|
+
[
|
1557
|
+
548403912567710249138395852931702442214070304260935779684833978128636533986,
|
1558
|
+
1820119432165084967589110130985988930607430366654346658826186881340393135345
|
1559
|
+
],
|
1560
|
+
[
|
1561
|
+
1055707400443116102787479640936967686027177253722371245083270825233659393085,
|
1562
|
+
1529404944427212407459549740446357844894249706911152782301314430602619804108
|
1563
|
+
],
|
1564
|
+
[
|
1565
|
+
3604699563774018613013478662139866299897364136688436784910471089709564771121,
|
1566
|
+
1877420639173665439817870412707771026257151154196414247016132896387470215862
|
1567
|
+
],
|
1568
|
+
[
|
1569
|
+
1334227623025169197188407571635794051283637310231760303667085410581915700021,
|
1570
|
+
1949877078010470778680860969498171171122335730952599024624803418631307495103
|
1571
|
+
],
|
1572
|
+
[
|
1573
|
+
3308762084022080981421381628996649710517264452719086435874478919169368804715,
|
1574
|
+
2402101985509711398701847117755018203425777675996940000965112623957330145868
|
1575
|
+
],
|
1576
|
+
[
|
1577
|
+
1665881871958289138802712383541734953129067055326286239727041865486531283570,
|
1578
|
+
3616247644667366899175075134655397038478794588048970408476914992988017251161
|
1579
|
+
],
|
1580
|
+
[
|
1581
|
+
2112164335316897143532032199025725867588905166012009239598709182355280065515,
|
1582
|
+
2825402900866689367007140167090188180425426910788355395313762834688260248117
|
1583
|
+
],
|
1584
|
+
[
|
1585
|
+
634951525865404702868066023611980901349684561467873427882470721637495099919,
|
1586
|
+
2178647893306834053326446190201725650048611097288227403773599186740980976285
|
1587
|
+
],
|
1588
|
+
[
|
1589
|
+
1341178436815612054719172387245100541421209962514061177862693819245929984135,
|
1590
|
+
1326643103813011222249037873591741605099080649257821474786188634904101413693
|
1591
|
+
],
|
1592
|
+
[
|
1593
|
+
1928710057077228449920040314271488497108943704097705502064531376997670270931,
|
1594
|
+
2266181469128837281287656381761672050739367882500404480638892977272852366881
|
1595
|
+
],
|
1596
|
+
[
|
1597
|
+
969218608841843132346322324841729971529593954176078767277133720598489668357,
|
1598
|
+
606900183168454040777559974758602149603502324650244544303079399500690042393
|
1599
|
+
],
|
1600
|
+
[
|
1601
|
+
2013350832011494097843192023013584600183073420263235866273101164869312611708,
|
1602
|
+
90712660236563155479754789398598402903732977477056735001011271430022436372
|
1603
|
+
],
|
1604
|
+
[
|
1605
|
+
3396976507268771940572242446745957441443927281190120339106378150765794683243,
|
1606
|
+
2412741837818252081470894623640222254809923360460175760983381510548136273698
|
1607
|
+
],
|
1608
|
+
[
|
1609
|
+
3606409001635563285156761927226165887070229114178147857036216526058311335249,
|
1610
|
+
1092396833411428890667907446500502751825053988217814009934347833612745642070
|
1611
|
+
],
|
1612
|
+
[
|
1613
|
+
1544923824473254019116239003129558626125362616742425500116394033599505254529,
|
1614
|
+
1465349443371708061238467795142261954743713344644799596216285990321977000373
|
1615
|
+
],
|
1616
|
+
[
|
1617
|
+
113491804090467857612125750322844575213787440679203395630526874638303077885,
|
1618
|
+
2028057101479207102461777655354995420997496563459354054546268475793811643845
|
1619
|
+
],
|
1620
|
+
[
|
1621
|
+
1652495545845371778467883968680026022222422089600601509520876233591221298667,
|
1622
|
+
1257512680478734992352959448953843834930888651298716349936596227713642044718
|
1623
|
+
],
|
1624
|
+
[
|
1625
|
+
1735132339493184243340725542423753987254833174769560101474361526571946583351,
|
1626
|
+
27330540439335548628321946448059137005887875330678118281933391074303528644
|
1627
|
+
],
|
1628
|
+
[
|
1629
|
+
999589601024651596708840623565818878499651672244526787051482333844246243941,
|
1630
|
+
1556707544224102520772713942483754928174646286011090264336584778980967757013
|
1631
|
+
],
|
1632
|
+
[
|
1633
|
+
1681312560856804229526683984753830811943700510863269888887897515341932766251,
|
1634
|
+
2065757756192665992865056781757244443742379869237378116242523960469865631998
|
1635
|
+
],
|
1636
|
+
[
|
1637
|
+
2058951870735992982026605733702307208101813514180467857318656495202383185176,
|
1638
|
+
3268996299695136959341188422640393244547564085474313632107392993963324140014
|
1639
|
+
],
|
1640
|
+
[
|
1641
|
+
2056960676848885737798371134589584163780497279931334671919866051948581811168,
|
1642
|
+
1741359147160041371302807510240561900995865771279421888187249838945794238723
|
1643
|
+
],
|
1644
|
+
[
|
1645
|
+
1167002070266749840825005896490956016236165528302729567545471999112944906391,
|
1646
|
+
724716405138963198014997547695908810889048549156514080027596147160291370305
|
1647
|
+
],
|
1648
|
+
[
|
1649
|
+
717433242268160049163784137690479364638414455354853503549047874912074602102,
|
1650
|
+
1548748206365927633434472413810887260565959748266730133832127499425371516599
|
1651
|
+
],
|
1652
|
+
[
|
1653
|
+
1113770395880110291540688660582111108167550152891676896388447618267044770699,
|
1654
|
+
225614903467949057887693353344008462684737622787852941160491287904124662539
|
1655
|
+
],
|
1656
|
+
[
|
1657
|
+
1485058593675291436770632813229171213081600725926085342541850536046844108938,
|
1658
|
+
1793621954142096162709529585852653649155672217087744074142012644930653464937
|
1659
|
+
],
|
1660
|
+
[
|
1661
|
+
3476670695984120275482827092638881388770060638684248848714588194147006700081,
|
1662
|
+
1886524232365250879956678425943479251575532912879489640410209691903853633501
|
1663
|
+
],
|
1664
|
+
[
|
1665
|
+
78942502761918568770028495237440346726648682399909104284710887733399086106,
|
1666
|
+
2352329060006211734866796061368085624251562468004096360671974444953215839619
|
1667
|
+
],
|
1668
|
+
[
|
1669
|
+
813411306209308549231686755344288448950826770557611647490856063401538266082,
|
1670
|
+
388260357229176651922921451505223699462456291090208287248038895703757789197
|
1671
|
+
],
|
1672
|
+
[
|
1673
|
+
2400377653395741560762585517571389386824872672242294297839787377212513042206,
|
1674
|
+
625963574857112775116550276725479329998557438550085741821320481021022314633
|
1675
|
+
],
|
1676
|
+
[
|
1677
|
+
2328311306030212189043981540771838515808167713931548944984202663139515716155,
|
1678
|
+
2492267419179473373149177460543961766435995439950143787911026640253198630634
|
1679
|
+
],
|
1680
|
+
[
|
1681
|
+
2387278462118275663019682655223568758817746496473668610784380666316276847549,
|
1682
|
+
2366392912056517351075178537570019722508034279024404671859228940369425653110
|
1683
|
+
],
|
1684
|
+
[
|
1685
|
+
2114043901163989266960550512790503188352140805965143750858598214845925650606,
|
1686
|
+
1263535257267454609784459072919175411484521178579707297022413088083025242903
|
1687
|
+
],
|
1688
|
+
[
|
1689
|
+
59742145227906406483850036502479681434689473008676866553687016399244912392,
|
1690
|
+
2542708853923609004067985135730679808561712875491472740521746862583772210812
|
1691
|
+
],
|
1692
|
+
[
|
1693
|
+
636010637932045133320800908704730609314370804715286131693312911610589568614,
|
1694
|
+
961184011917051478754418596971670071602153673068923576248721877819369343802
|
1695
|
+
],
|
1696
|
+
[
|
1697
|
+
1385321288061225556756217710115128107797163633073592537851457891527164069955,
|
1698
|
+
884133458066727093516473175829774361048238638693699012568518768170315343692
|
1699
|
+
],
|
1700
|
+
[
|
1701
|
+
758367055389438625364170431009355773885665422613428814074753204465381568635,
|
1702
|
+
1297727568042288931569138891121976026502156814623013130863114577102812764955
|
1703
|
+
],
|
1704
|
+
[
|
1705
|
+
347250288556045883174524792293804631653970133899259158293492482097831569584,
|
1706
|
+
1961316292966031207016509998947408765986081794211886403901120755246344327975
|
1707
|
+
],
|
1708
|
+
[
|
1709
|
+
1618690143706255801807773941554549190817935595982010405820190876061657720006,
|
1710
|
+
869166062594354289846899813362309895350435099932527145815122092397979607037
|
1711
|
+
],
|
1712
|
+
[
|
1713
|
+
1838634315648320098377933813041132543577219555069642930639820023291216325415,
|
1714
|
+
1529983605494771676066515349178506396294249260663468133203781588859819007226
|
1715
|
+
],
|
1716
|
+
[
|
1717
|
+
1605761809110472849967286703249646269449262088256390507097425667304759998260,
|
1718
|
+
2778705695237273113564800057362189513234607857754067598956643514325456052945
|
1719
|
+
],
|
1720
|
+
[
|
1721
|
+
3411908887615707635377666445857046055873541270252857286357865762696431003144,
|
1722
|
+
731871578063282896385513070338640294885089868946599519285295305156675019160
|
1723
|
+
],
|
1724
|
+
[
|
1725
|
+
3087826179342245618253320870694339144383060104280990174148199503867526625383,
|
1726
|
+
3491370412646223145431588455284304413010853471815192082926914611232193577659
|
1727
|
+
],
|
1728
|
+
[
|
1729
|
+
1436482751270429389743178806038120026461471807922309148229447715029903414786,
|
1730
|
+
1666868445318653269944338633661851246179662160526363040276638175667354338167
|
1731
|
+
],
|
1732
|
+
[
|
1733
|
+
2083331818739824497741363579518842947887353398223338451239015909684569222581,
|
1734
|
+
803732308089347618300580814078570019393110433387113056533917045601819866173
|
1735
|
+
],
|
1736
|
+
[
|
1737
|
+
1333165738767294811324643473740459024513360282013848003638568328453569807861,
|
1738
|
+
3324872774354633383424936425649606578793830970593411555017483797025902771350
|
1739
|
+
],
|
1740
|
+
[
|
1741
|
+
1701353517399938600269579188937389421636718828509341624534004474699861544304,
|
1742
|
+
982045252370486712463601150815912589800926352240648829942255288306435594694
|
1743
|
+
],
|
1744
|
+
[
|
1745
|
+
154403491180633257693040438747387470378033364863415878175486169393433469355,
|
1746
|
+
3204938488959824048546277939996603027140231747699901842459271581175521669368
|
1747
|
+
],
|
1748
|
+
[
|
1749
|
+
723459534533890816489433777735842913898349668429456824296910758117461179034,
|
1750
|
+
242799587564906089500242560200906533162881507520621156475321851862194708981
|
1751
|
+
],
|
1752
|
+
[
|
1753
|
+
2753553332546729968386491500304817162737325726065761497175967890302687642812,
|
1754
|
+
1607942131855693595003166153590488091960419143993462584570217492975562129656
|
1755
|
+
],
|
1756
|
+
[
|
1757
|
+
1318380449900940858865061333131606747009833602974109493687016869645480407519,
|
1758
|
+
824831465625011385685225132275899244334146133266851046834317903702436443339
|
1759
|
+
],
|
1760
|
+
[
|
1761
|
+
3406605858133553361333265720938744225870879664771897953784469453809670221140,
|
1762
|
+
951771439755520751413184037659273661906475899204291367776225253586492726939
|
1763
|
+
],
|
1764
|
+
[
|
1765
|
+
322881185844437667428941222631269048437916337535492466690110884912942662893,
|
1766
|
+
2408973683372380251710642884281850709418801321112976394586138388159314573007
|
1767
|
+
],
|
1768
|
+
[
|
1769
|
+
405651299272338889177305609117326577035390334272323319632791541534976007116,
|
1770
|
+
2403189350929802616202215631814070933678092854541380504903809068323291560762
|
1771
|
+
],
|
1772
|
+
[
|
1773
|
+
224362689432001608162440684107608338550077679080690583663897253625637368804,
|
1774
|
+
1089475930411433192334001657654788489125032803526758217361824123802939165263
|
1775
|
+
],
|
1776
|
+
[
|
1777
|
+
3427005033874860450481529297496326414099998098069008018777339291027217607772,
|
1778
|
+
1838523767315535107424920135038015356690704952046462913411177863052889918094
|
1779
|
+
],
|
1780
|
+
[
|
1781
|
+
971265369167429416740822747897568727646706124584943344118217646401474769333,
|
1782
|
+
1841017974237665428880957941884047733042022771551566493876831131552515616862
|
1783
|
+
],
|
1784
|
+
[
|
1785
|
+
593870383382776876660279010014844606756390978498220975404532129561707141345,
|
1786
|
+
1686799834245885653972636115594234495471835994524713453126028613189622517928
|
1787
|
+
],
|
1788
|
+
[
|
1789
|
+
158526420068961916859457596090914564342752702816639997380569526445580395317,
|
1790
|
+
829117473118004491391038359292216575457137041347974965494549565557957856696
|
1791
|
+
],
|
1792
|
+
[
|
1793
|
+
1145779849055685339419364615770769333393499278335670275163049680913140509683,
|
1794
|
+
2788919154400397863209918313477978879516215345298341199550275309881538159925
|
1795
|
+
],
|
1796
|
+
[
|
1797
|
+
3116362794833038183976492329109547313095843900691440633169686540582464014059,
|
1798
|
+
3493161563205582068593545591027301392887053692389997071622408416554079460959
|
1799
|
+
],
|
1800
|
+
[
|
1801
|
+
1484626752109997960148427439402147978447920625565926552692192513400801032840,
|
1802
|
+
106197164952655019784492783946283241349642545386756801239606388396528838557
|
1803
|
+
],
|
1804
|
+
[
|
1805
|
+
1905886704700624859591161108842694006068401527337545253689518506514368311453,
|
1806
|
+
2930319791340393503878111037261975689788636509301758506631633748789105811524
|
1807
|
+
],
|
1808
|
+
[
|
1809
|
+
2520975745491353699235764487116637116999082965127347369976279028452140192996,
|
1810
|
+
1121629571053704096076618751099836481664435087676492791791464786738401934277
|
1811
|
+
],
|
1812
|
+
[
|
1813
|
+
243197297174950489047429059272755382647269925832357483684904121385442353161,
|
1814
|
+
2417007034799146494310932386003928951978739444041601103686030150489540099099
|
1815
|
+
],
|
1816
|
+
[
|
1817
|
+
808704503940529633042533527196170354739879165235854099335954018048090166094,
|
1818
|
+
3250069164566476474875427019235306310423414676070245668865855537758860899226
|
1819
|
+
],
|
1820
|
+
[
|
1821
|
+
154229390082782874040656704404635500870072484057583506571360633170672994819,
|
1822
|
+
2702580522127958238752043600053843204107536082922189692357192526470020183763
|
1823
|
+
],
|
1824
|
+
[
|
1825
|
+
2296876062395150663198655775945704456626070946553449162794630784785525562017,
|
1826
|
+
2954047352783324167659477602480890942097095078541501369002104009282407983605
|
1827
|
+
],
|
1828
|
+
[
|
1829
|
+
2369843936932443670822535910120393374869045918271657278773939763527759009977,
|
1830
|
+
1504523220772650882417075434754212591932774780940943124208852030753505106366
|
1831
|
+
],
|
1832
|
+
[
|
1833
|
+
939818528450006271533633387575035651098636084551955010694000346778607054148,
|
1834
|
+
3288036962429189904257974342922419507417520404552917887258043999949243251337
|
1835
|
+
],
|
1836
|
+
[
|
1837
|
+
3261482392020733556192001297773623607067547108643955544388526649674482826812,
|
1838
|
+
3591646574338256506691865028073929692592246225874807859597509821099836701353
|
1839
|
+
],
|
1840
|
+
[
|
1841
|
+
1787025500314509707209621873912066561653490978360118110526034359358411964417,
|
1842
|
+
3421109838181987883898563834025345980326698037134918112926105203592921164968
|
1843
|
+
],
|
1844
|
+
[
|
1845
|
+
2311067462891595099991833582046690970468764702035366824733716384542858538356,
|
1846
|
+
470591103372156288650571624843786296549423881481598013229606695835762897581
|
1847
|
+
],
|
1848
|
+
[
|
1849
|
+
342559482224571965025189023541087083168706464251790471061097523992515769052,
|
1850
|
+
2368202754453331817392255123704696636258753331639084720511390832405023708522
|
1851
|
+
],
|
1852
|
+
[
|
1853
|
+
2572444430230869831563822697183525106374829659556462575156759807443152314062,
|
1854
|
+
1629527166738200666038465328035159152469458766421654684492365855846947518815
|
1855
|
+
],
|
1856
|
+
[
|
1857
|
+
1737389803319738463977618408470915902963778725702701713925657991380950954649,
|
1858
|
+
607082767712049126327196794168950822631607164722155751481706035333917604213
|
1859
|
+
],
|
1860
|
+
[
|
1861
|
+
2871556558000552242893836092551691122481664492915647218631883507493547887264,
|
1862
|
+
500384672074954803514661117946887054859762315512424468765642494189718439748
|
1863
|
+
],
|
1864
|
+
[
|
1865
|
+
3461109898461294404913712148331642005392308171104928758316008253448940997221,
|
1866
|
+
1749611977268851605988230236285965166361721258988901681470546570063157256891
|
1867
|
+
],
|
1868
|
+
[
|
1869
|
+
78615564253467413638171585726207276986620474184921384429093571227531830518,
|
1870
|
+
1981471018460691817560093727855711117339515783816308036046814473313844294189
|
1871
|
+
],
|
1872
|
+
[
|
1873
|
+
1474473102515930508594064469182212180992913337870765723235685741540431041359,
|
1874
|
+
1469840572053747949720853289796099707562318378077626046833147818685776895044
|
1875
|
+
],
|
1876
|
+
[
|
1877
|
+
2774277348282328170085742674659971495571500392161601753293416467112865068097,
|
1878
|
+
3137849475565620656681313987560185334413793189698703604034985791122356336275
|
1879
|
+
],
|
1880
|
+
[
|
1881
|
+
672166412479844650342747861081472852496472428762577522054587528815692740558,
|
1882
|
+
1663866879616164274903483340205017481052054060286752355521506181082184021495
|
1883
|
+
],
|
1884
|
+
[
|
1885
|
+
3180945697595716737370693680466484191429900897946060952610697010699886591271,
|
1886
|
+
370261256417300103212360232751326303498788243730491970857436044670395786744
|
1887
|
+
],
|
1888
|
+
[
|
1889
|
+
1201682462650513594149029305106730482154241597912555054934133306913124052927,
|
1890
|
+
2702519627582077982048055809065014719130205668704469328908061241215382284753
|
1891
|
+
],
|
1892
|
+
[
|
1893
|
+
2573098232031718801548737595348908190100964683270928802802545310591952021697,
|
1894
|
+
421880381247280215923854338509978900130125935079274502459764130391391089799
|
1895
|
+
],
|
1896
|
+
[
|
1897
|
+
3080354619128885268149548971617703089581818473398812557354479708280835955809,
|
1898
|
+
256390985131798172675848658065159234227830929883285189158702397702435740036
|
1899
|
+
],
|
1900
|
+
[
|
1901
|
+
3305006433068254197629607860194494003641107593674801290918966761186348868243,
|
1902
|
+
3339026583930460592461023889277320373514761589020084302062859793412730118034
|
1903
|
+
],
|
1904
|
+
[
|
1905
|
+
1923241940978623629561560707497295652725232345651095835780507541645042579369,
|
1906
|
+
1034987404476549078390013964157937064176009291357135198452850234267991254512
|
1907
|
+
],
|
1908
|
+
[
|
1909
|
+
1242878056067701165715334664693705019638823755244701687487484225344981621708,
|
1910
|
+
2778020811088591142544537894197696376781458923989081525073574174237563505877
|
1911
|
+
],
|
1912
|
+
[
|
1913
|
+
103159350300766901891674139940778235823347527941771255048984655353665811131,
|
1914
|
+
2998408586900586528158477448701326671048806329090729531148457644075161991659
|
1915
|
+
],
|
1916
|
+
[
|
1917
|
+
71218614431436475107665191107448218056096758969742620338129750710339397239,
|
1918
|
+
2301542035924343190515686028267024414404475677263930511758245534549493426119
|
1919
|
+
],
|
1920
|
+
[
|
1921
|
+
1192223060475270158246514565467403478627193592812213292121865811070708026418,
|
1922
|
+
3208674842884877565377729626392486507374130037365033772947426862394273679084
|
1923
|
+
],
|
1924
|
+
[
|
1925
|
+
2701994874964587709938210915198043688526355413043491003913483399075336026535,
|
1926
|
+
2886333482965974313702782452985415254520267819631653595494065556318924996302
|
1927
|
+
],
|
1928
|
+
[
|
1929
|
+
3306009714468475346677294651301864623371911173285781201209240934162798592783,
|
1930
|
+
605466198613255313875059832114128899690381126611676641778478133738267702577
|
1931
|
+
],
|
1932
|
+
[
|
1933
|
+
1450098270166428194278914193816868101013739489893607935042066987079292018245,
|
1934
|
+
60254834310937851613452000117427371272748499709961477924319944539270878930
|
1935
|
+
],
|
1936
|
+
[
|
1937
|
+
3472634693037182832142729498155218303319113785483118130849719300023909673520,
|
1938
|
+
1641508292869191604146734378916767617013327049910565729753281855691648138118
|
1939
|
+
],
|
1940
|
+
[
|
1941
|
+
1894817968472977732589643163725633598408826498334595898528746877517402007256,
|
1942
|
+
193046947184625502016096786396456839948351998258967537298275688147378157385
|
1943
|
+
],
|
1944
|
+
[
|
1945
|
+
798518742331453195093601874576575285888369661705098199469223675278431898599,
|
1946
|
+
107377575629504498627957848614396996685294283100119805971247351789316564355
|
1947
|
+
],
|
1948
|
+
[
|
1949
|
+
72958015465538907944252844948497831886498059248823205873862483987609118945,
|
1950
|
+
382019162223291772579736282379325284805025953290359275955015292364404489133
|
1951
|
+
],
|
1952
|
+
[
|
1953
|
+
3314147563388677609583640640385513143694481753397403848688825124581323140921,
|
1954
|
+
3133015892701145825892878874198767217439365812782859844688129544070997319541
|
1955
|
+
],
|
1956
|
+
[
|
1957
|
+
2444095071507078967491725470181706633826193926858202958437137361403432629390,
|
1958
|
+
3611326330343873710939978620686319096878621369582121415988028359537867630792
|
1959
|
+
],
|
1960
|
+
[
|
1961
|
+
2107740367200683219354058003519333570583941271011338026730935614636775950367,
|
1962
|
+
953104025671531038979165726896993106119997272237926795749220750824852831326
|
1963
|
+
],
|
1964
|
+
[
|
1965
|
+
3234656093348684616411954956071945712517868853923240328793520762092030352104,
|
1966
|
+
593797219275153872348854593022027262920747808515266478952508298984248786194
|
1967
|
+
],
|
1968
|
+
[
|
1969
|
+
1602095369325252473599793473477096021341779224145909730627015015569257565602,
|
1970
|
+
3272207934512491788245765497830881358513949839139669547034252308088069134971
|
1971
|
+
],
|
1972
|
+
[
|
1973
|
+
3149982146511124605253586861983261220008132001764223357617600582721741955729,
|
1974
|
+
2095033709871635786785037791315376486221829475125386227641672208905379085173
|
1975
|
+
],
|
1976
|
+
[
|
1977
|
+
3001928273494873166012582714776651165587585607934603548408913923445707516447,
|
1978
|
+
1090266449665582127890982346068170500195143341692394417827957481874850148101
|
1979
|
+
],
|
1980
|
+
[
|
1981
|
+
1200188694803418163698740652082064619102559508865389996854547617715365179733,
|
1982
|
+
2701249247866363010207334776256734312390753341409567681725083482804664533572
|
1983
|
+
],
|
1984
|
+
[
|
1985
|
+
2181535855195652401374211290838795366238299923929423873085735410894622521047,
|
1986
|
+
2376412857416063533601832417302250911062085318826783757605801470091451365057
|
1987
|
+
],
|
1988
|
+
[
|
1989
|
+
482216227882593950837484293882738923170227555670484160841935409522897080275,
|
1990
|
+
3568625956076637648484022304136932386854238480511347282187445648692365982275
|
1991
|
+
],
|
1992
|
+
[
|
1993
|
+
2597799669063340267995599892195854202917996255210920411104497198234262573206,
|
1994
|
+
3599688873496047961188179975715306136394737017927100659789000949688648352738
|
1995
|
+
],
|
1996
|
+
[
|
1997
|
+
1074803073878259665128704812644508804681887514658526880458531694790041080733,
|
1998
|
+
2797007314237358398853761880558407828488654212157591536243300688627270327611
|
1999
|
+
],
|
2000
|
+
[
|
2001
|
+
468516314257643341712703808920275922572701541039900608201362821198817231181,
|
2002
|
+
1374527914917866113032496762177078616084751647116110264806150108724834406388
|
2003
|
+
],
|
2004
|
+
[
|
2005
|
+
1208295021405021769918747031548141820393186404250802478605705170489054454157,
|
2006
|
+
1808650369660257850053512198148641736021245568921649705336796845945032764079
|
2007
|
+
],
|
2008
|
+
[
|
2009
|
+
1565766387634045687737221757815822397332528241094852872444435795933964809539,
|
2010
|
+
3012257951756551767601579252037773433674622118381097513581891561867035592007
|
2011
|
+
],
|
2012
|
+
[
|
2013
|
+
296854483963576847362550837105567519963678928320906132062353506063381160038,
|
2014
|
+
2997621846549637009998526882695309289938245125374301351844169021609166074993
|
2015
|
+
],
|
2016
|
+
[
|
2017
|
+
967192065183772403576792198824105189328662921952353748318585728895552782317,
|
2018
|
+
343259257621685032456419166732348373845783852374756662051672936363788935338
|
2019
|
+
],
|
2020
|
+
[
|
2021
|
+
456199991075423266290193634515181612721738873753897142916892886319728411618,
|
2022
|
+
3009804764464949268795409945347301690744692042792259709767667423717478448229
|
2023
|
+
],
|
2024
|
+
[
|
2025
|
+
242210936510534966601707881924518098930470912600217515366037129037143259602,
|
2026
|
+
2698396953115175496998177800235267214917400761768300598355994305287141321271
|
2027
|
+
],
|
2028
|
+
[
|
2029
|
+
943070145114606420402378547694273832277173459266557776382587828687889744387,
|
2030
|
+
463274201648439487604179878678549669204059390508994779482933722127905403494
|
2031
|
+
],
|
2032
|
+
[
|
2033
|
+
958740504301613688526614902955971923282735882762427544770668882582144756278,
|
2034
|
+
1648715733425449195104866742590789175535499260400395501324113794510596751843
|
2035
|
+
],
|
2036
|
+
[
|
2037
|
+
2738467504442851843676882768027062309179245908086784030957627999641833602734,
|
2038
|
+
403058158250173068725971433188527745485878446592356816888847490041658726521
|
2039
|
+
],
|
2040
|
+
[
|
2041
|
+
851584175891221844656684173543344216725376446573878021753176795750916050165,
|
2042
|
+
2989949954698892115645230865442980084822288702406021287339635187958555345139
|
2043
|
+
],
|
2044
|
+
[
|
2045
|
+
2648599427528401936572004779373684054684563511138695864967500218937169746782,
|
2046
|
+
545540526832939914359571382575431287745621956136188859527645452849687661804
|
2047
|
+
],
|
2048
|
+
[
|
2049
|
+
2781909713387830233242081629088160756893816968845366829353355409163126437112,
|
2050
|
+
3474066345655056798683792894555452083305620276965763551620554269294421970656
|
2051
|
+
],
|
2052
|
+
[
|
2053
|
+
62007937137219837991330947293062511223089197148302827535260096716770644685,
|
2054
|
+
3537197938414984401398955238628360208832764753222288521326061893140886724271
|
2055
|
+
],
|
2056
|
+
[
|
2057
|
+
2379962749567351885752724891227938183011949129833673362440656643086021394946,
|
2058
|
+
776496453633298175483985398648758586525933812536653089401905292063708816422
|
2059
|
+
],
|
2060
|
+
[
|
2061
|
+
553697491755753712548822408932664734674730150084063981046477343718694621804,
|
2062
|
+
2797798649021537247229237999331435556632872779265479409612091247299955463913
|
2063
|
+
],
|
2064
|
+
[
|
2065
|
+
2026114267613810970244390071397350467776533880677809710454617259260017487512,
|
2066
|
+
3330593270696197494966018967263043594632970418364498628573044882141635806155
|
2067
|
+
],
|
2068
|
+
[
|
2069
|
+
1254733481274108825174693797237617285863727098996450904398879255272288617861,
|
2070
|
+
2644890941682394074696857415419096381561354281743803087373802494123523779468
|
2071
|
+
]
|
2072
|
+
]
|
2073
|
+
|
2074
|
+
N_ELEMENT_BITS_ECDSA = math.floor(math.log(FIELD_PRIME, 2))
|
2075
|
+
assert N_ELEMENT_BITS_ECDSA == 251
|
2076
|
+
|
2077
|
+
N_ELEMENT_BITS_HASH = FIELD_PRIME.bit_length()
|
2078
|
+
assert N_ELEMENT_BITS_HASH == 252
|
2079
|
+
|
2080
|
+
# Elliptic curve parameters.
|
2081
|
+
assert 2**N_ELEMENT_BITS_ECDSA < EC_ORDER < FIELD_PRIME
|
2082
|
+
|
2083
|
+
SHIFT_POINT = CONSTANT_POINTS[0]
|
2084
|
+
MINUS_SHIFT_POINT = (SHIFT_POINT[0], FIELD_PRIME - SHIFT_POINT[1])
|
2085
|
+
EC_GEN = CONSTANT_POINTS[1]
|
2086
|
+
|
2087
|
+
assert SHIFT_POINT == [
|
2088
|
+
0x49EE3EBA8C1600700EE1B87EB599F16716B0B1022947733551FDE4050CA6804,
|
2089
|
+
0x3CA0CFE4B3BC6DDF346D49D06EA0ED34E621062C0E056C1D0405D266E10268A,
|
2090
|
+
]
|
2091
|
+
assert EC_GEN == [
|
2092
|
+
0x1EF15C18599971B7BECED415A40F0C7DEACFD9B0D1819E03D723D8BC943CFCA,
|
2093
|
+
0x5668060AA49730B7BE4801DF46EC62DE53ECD11ABE43A32873000C36E8DC1F,
|
2094
|
+
]
|
2095
|
+
|
2096
|
+
|
2097
|
+
#########
|
2098
|
+
# ECDSA #
|
2099
|
+
#########
|
2100
|
+
|
2101
|
+
# A type for the digital signature.
|
2102
|
+
ECSignature = Tuple[int, int]
|
2103
|
+
|
2104
|
+
|
2105
|
+
class InvalidPublicKeyError(Exception):
|
2106
|
+
def __init__(self):
|
2107
|
+
super().__init__("Given x coordinate does not represent any point on the elliptic curve.")
|
2108
|
+
|
2109
|
+
|
2110
|
+
def get_y_coordinate(stark_key_x_coordinate: int) -> int:
|
2111
|
+
"""
|
2112
|
+
Given the x coordinate of a stark_key, returns a possible y coordinate such that together the
|
2113
|
+
point (x,y) is on the curve.
|
2114
|
+
Note that the real y coordinate is either y or -y.
|
2115
|
+
If x is invalid stark_key it throws an error.
|
2116
|
+
"""
|
2117
|
+
|
2118
|
+
x = stark_key_x_coordinate
|
2119
|
+
y_squared = (x * x * x + ALPHA * x + BETA) % FIELD_PRIME
|
2120
|
+
if not is_quad_residue(y_squared, FIELD_PRIME):
|
2121
|
+
raise InvalidPublicKeyError()
|
2122
|
+
return sqrt_mod(y_squared, FIELD_PRIME, all_roots=True)
|
2123
|
+
|
2124
|
+
|
2125
|
+
def get_random_private_key() -> int:
|
2126
|
+
# Returns a private key in the range [1, EC_ORDER).
|
2127
|
+
return secrets.randbelow(EC_ORDER - 1) + 1
|
2128
|
+
|
2129
|
+
|
2130
|
+
def private_key_to_ec_point_on_stark_curve(priv_key: int) -> ECPoint:
|
2131
|
+
assert 0 < priv_key < EC_ORDER
|
2132
|
+
return ec_mult(priv_key, EC_GEN, ALPHA, FIELD_PRIME)
|
2133
|
+
|
2134
|
+
|
2135
|
+
def private_to_stark_key(priv_key: int) -> int:
|
2136
|
+
return private_key_to_ec_point_on_stark_curve(priv_key)[0]
|
2137
|
+
|
2138
|
+
|
2139
|
+
def inv_mod_curve_size(x: int) -> int:
|
2140
|
+
return div_mod(1, x, EC_ORDER)
|
2141
|
+
|
2142
|
+
|
2143
|
+
def generate_k_rfc6979(msg_hash: int, priv_key: int, seed: Optional[int] = None) -> int:
|
2144
|
+
# Pad the message hash, for consistency with the elliptic.js library.
|
2145
|
+
if 1 <= msg_hash.bit_length() % 8 <= 4 and msg_hash.bit_length() >= 248:
|
2146
|
+
# Only if we are one-nibble short:
|
2147
|
+
msg_hash *= 16
|
2148
|
+
|
2149
|
+
if seed is None:
|
2150
|
+
extra_entropy = b""
|
2151
|
+
else:
|
2152
|
+
extra_entropy = seed.to_bytes(math.ceil(seed.bit_length() / 8), "big")
|
2153
|
+
|
2154
|
+
return generate_k(
|
2155
|
+
EC_ORDER,
|
2156
|
+
priv_key,
|
2157
|
+
hashlib.sha256,
|
2158
|
+
msg_hash.to_bytes(math.ceil(msg_hash.bit_length() / 8), "big"),
|
2159
|
+
extra_entropy=extra_entropy,
|
2160
|
+
)
|
2161
|
+
|
2162
|
+
|
2163
|
+
def sign(msg_hash: int, priv_key: int, seed: Optional[int] = None) -> ECSignature:
|
2164
|
+
# Note: msg_hash must be smaller than 2**N_ELEMENT_BITS_ECDSA.
|
2165
|
+
# Message whose hash is >= 2**N_ELEMENT_BITS_ECDSA cannot be signed.
|
2166
|
+
# This happens with a very small probability.
|
2167
|
+
assert 0 <= msg_hash < 2**N_ELEMENT_BITS_ECDSA, "Message not signable."
|
2168
|
+
|
2169
|
+
# Choose a valid k. In our version of ECDSA not every k value is valid,
|
2170
|
+
# and there is a negligible probability a drawn k cannot be used for signing.
|
2171
|
+
# This is why we have this loop.
|
2172
|
+
while True:
|
2173
|
+
k = generate_k_rfc6979(msg_hash, priv_key, seed)
|
2174
|
+
# Update seed for next iteration in case the value of k is bad.
|
2175
|
+
if seed is None:
|
2176
|
+
seed = 1
|
2177
|
+
else:
|
2178
|
+
seed += 1
|
2179
|
+
|
2180
|
+
# Cannot fail because 0 < k < EC_ORDER and EC_ORDER is prime.
|
2181
|
+
x = ec_mult(k, EC_GEN, ALPHA, FIELD_PRIME)[0]
|
2182
|
+
|
2183
|
+
# DIFF: in classic ECDSA, we take int(x) % n.
|
2184
|
+
r = int(x)
|
2185
|
+
if not (1 <= r < 2**N_ELEMENT_BITS_ECDSA):
|
2186
|
+
# Bad value. This fails with negligible probability.
|
2187
|
+
continue
|
2188
|
+
|
2189
|
+
if (msg_hash + r * priv_key) % EC_ORDER == 0:
|
2190
|
+
# Bad value. This fails with negligible probability.
|
2191
|
+
continue
|
2192
|
+
|
2193
|
+
w = div_mod(k, msg_hash + r * priv_key, EC_ORDER)
|
2194
|
+
if not (1 <= w < 2**N_ELEMENT_BITS_ECDSA):
|
2195
|
+
# Bad value. This fails with negligible probability.
|
2196
|
+
continue
|
2197
|
+
|
2198
|
+
s = inv_mod_curve_size(w)
|
2199
|
+
return r, s
|
2200
|
+
|
2201
|
+
|
2202
|
+
def mimic_ec_mult_air(m: int, point: ECPoint, shift_point: ECPoint) -> ECPoint:
|
2203
|
+
"""
|
2204
|
+
Computes m * point + shift_point using the same steps like the AIR and throws an exception if
|
2205
|
+
and only if the AIR errors.
|
2206
|
+
"""
|
2207
|
+
assert 0 < m < 2**N_ELEMENT_BITS_ECDSA
|
2208
|
+
partial_sum = shift_point
|
2209
|
+
for _ in range(N_ELEMENT_BITS_ECDSA):
|
2210
|
+
assert partial_sum[0] != point[0]
|
2211
|
+
if m & 1:
|
2212
|
+
partial_sum = ec_add(partial_sum, point, FIELD_PRIME)
|
2213
|
+
point = ec_double(point, ALPHA, FIELD_PRIME)
|
2214
|
+
m >>= 1
|
2215
|
+
assert m == 0
|
2216
|
+
return partial_sum
|
2217
|
+
|
2218
|
+
|
2219
|
+
def is_point_on_curve(x: int, y: int) -> bool:
|
2220
|
+
return pow(y, 2, FIELD_PRIME) == (pow(x, 3, FIELD_PRIME) + ALPHA * x + BETA) % FIELD_PRIME
|
2221
|
+
|
2222
|
+
|
2223
|
+
def is_valid_stark_private_key(private_key: int) -> bool:
|
2224
|
+
"""
|
2225
|
+
Returns whether the given input is a valid STARK private key.
|
2226
|
+
"""
|
2227
|
+
return 0 < private_key < EC_ORDER
|
2228
|
+
|
2229
|
+
|
2230
|
+
# def is_valid_stark_key(stark_key: int) -> bool:
|
2231
|
+
# """
|
2232
|
+
# Returns whether the given input is a valid STARK key.
|
2233
|
+
# """
|
2234
|
+
# # Only the x coordinate of the point is given, get the y coordinate and make sure that the
|
2235
|
+
# # point is on the curve.
|
2236
|
+
# try:
|
2237
|
+
# get_y_coordinate(stark_key_x_coordinate=stark_key)
|
2238
|
+
# except InvalidPublicKeyError:
|
2239
|
+
# return False
|
2240
|
+
# return True
|
2241
|
+
|
2242
|
+
|
2243
|
+
# def verify(msg_hash: int, r: int, s: int, public_key: Union[int, ECPoint]) -> bool:
|
2244
|
+
# # Compute w = s^-1 (mod EC_ORDER).
|
2245
|
+
# assert 1 <= s < EC_ORDER, "s = %s" % s
|
2246
|
+
# w = inv_mod_curve_size(s)
|
2247
|
+
|
2248
|
+
# # Preassumptions:
|
2249
|
+
# # DIFF: in classic ECDSA, we assert 1 <= r, w <= EC_ORDER-1.
|
2250
|
+
# # Since r, w < 2**N_ELEMENT_BITS_ECDSA < EC_ORDER, we only need to verify r, w != 0.
|
2251
|
+
# assert 1 <= r < 2**N_ELEMENT_BITS_ECDSA, "r = %s" % r
|
2252
|
+
# assert 1 <= w < 2**N_ELEMENT_BITS_ECDSA, "w = %s" % w
|
2253
|
+
# assert 0 <= msg_hash < 2**N_ELEMENT_BITS_ECDSA, "msg_hash = %s" % msg_hash
|
2254
|
+
|
2255
|
+
# if isinstance(public_key, int):
|
2256
|
+
# # Only the x coordinate of the point is given, check the two possibilities for the y
|
2257
|
+
# # coordinate.
|
2258
|
+
# try:
|
2259
|
+
# y = get_y_coordinate(public_key)
|
2260
|
+
# except InvalidPublicKeyError:
|
2261
|
+
# return False
|
2262
|
+
# return verify(msg_hash, r, s, (public_key, y)) or verify(
|
2263
|
+
# msg_hash, r, s, (public_key, (-y) % FIELD_PRIME)
|
2264
|
+
# )
|
2265
|
+
|
2266
|
+
# # The public key is provided as a point.
|
2267
|
+
# assert is_point_on_curve(x=public_key[0], y=public_key[1])
|
2268
|
+
|
2269
|
+
# # Signature validation.
|
2270
|
+
# # DIFF: original formula is:
|
2271
|
+
# # x = (w*msg_hash)*EC_GEN + (w*r)*public_key
|
2272
|
+
# # While what we implement is:
|
2273
|
+
# # x = w*(msg_hash*EC_GEN + r*public_key).
|
2274
|
+
# # While both mathematically equivalent, one might error while the other doesn't,
|
2275
|
+
# # given the current implementation.
|
2276
|
+
# # This formula ensures that if the verification errors in our AIR, it errors here as well.
|
2277
|
+
# try:
|
2278
|
+
# zG = mimic_ec_mult_air(msg_hash, EC_GEN, MINUS_SHIFT_POINT)
|
2279
|
+
# rQ = mimic_ec_mult_air(r, public_key, SHIFT_POINT)
|
2280
|
+
# wB = mimic_ec_mult_air(w, ec_add(zG, rQ, FIELD_PRIME), SHIFT_POINT)
|
2281
|
+
# x = ec_add(wB, MINUS_SHIFT_POINT, FIELD_PRIME)[0]
|
2282
|
+
# except AssertionError:
|
2283
|
+
# return False
|
2284
|
+
|
2285
|
+
# # DIFF: Here we drop the mod n from classic ECDSA.
|
2286
|
+
# return r == x
|
2287
|
+
|
2288
|
+
|
2289
|
+
def grind_key(key_seed: int, key_value_limit: int) -> int: # type: ignore[return]
|
2290
|
+
"""
|
2291
|
+
Given a cryptographically-secure seed and a limit, deterministically generates a pseudorandom
|
2292
|
+
key in the range [0, limit).
|
2293
|
+
This is a reference implementation, and cryptographic security is not guaranteed (for example,
|
2294
|
+
it may be vulnerable to side-channel attacks); this function is not recommended for use with key
|
2295
|
+
generation on mainnet.
|
2296
|
+
"""
|
2297
|
+
# Simply taking a uniform value in [0, 2**256) and returning the result modulo key_value_limit
|
2298
|
+
# is not necessarily uniform on [0, key_value_limit). We define max_allowed_value to be a
|
2299
|
+
# multiple of the limit, so that a uniform sample of [0, max_allowed_value) mod key_value_limit
|
2300
|
+
# is uniform on [0, key_value_limit).
|
2301
|
+
max_allowed_value = 2**256 - (2**256 % key_value_limit)
|
2302
|
+
|
2303
|
+
def to_bytes_no_pad(x: int) -> bytes:
|
2304
|
+
# To conform with the JS implementation, convert integer to bytes using minimal amount of
|
2305
|
+
# bytes possible. We would like 0.to_bytes() to be b'\x00', so a minimal length of 1 is
|
2306
|
+
# enforced.
|
2307
|
+
return x.to_bytes(length=max(1, div_ceil(x.bit_length(), 8)), byteorder="big", signed=False)
|
2308
|
+
|
2309
|
+
# Increment the index (salt) until the hash value falls in the range [0, max_allowed_value).
|
2310
|
+
for index in itertools.count():
|
2311
|
+
hash_input = to_bytes_no_pad(key_seed) + to_bytes_no_pad(index)
|
2312
|
+
key = int(hashlib.sha256(hash_input).hexdigest(), 16)
|
2313
|
+
if key < max_allowed_value:
|
2314
|
+
return key % key_value_limit
|
2315
|
+
|
2316
|
+
|
2317
|
+
#################
|
2318
|
+
# Pedersen hash #
|
2319
|
+
#################
|
2320
|
+
|
2321
|
+
|
2322
|
+
def pedersen_hash(*elements: int) -> int:
|
2323
|
+
return pedersen_hash_as_point(*elements)[0]
|
2324
|
+
|
2325
|
+
|
2326
|
+
def pedersen_hash_as_point(*elements: int) -> ECPoint:
|
2327
|
+
"""
|
2328
|
+
Similar to pedersen_hash but also returns the y coordinate of the resulting EC point.
|
2329
|
+
This function is used for testing.
|
2330
|
+
"""
|
2331
|
+
point = SHIFT_POINT
|
2332
|
+
for i, x in enumerate(elements):
|
2333
|
+
assert 0 <= x < FIELD_PRIME
|
2334
|
+
point_list = CONSTANT_POINTS[
|
2335
|
+
2 + i * N_ELEMENT_BITS_HASH : 2 + (i + 1) * N_ELEMENT_BITS_HASH
|
2336
|
+
]
|
2337
|
+
assert len(point_list) == N_ELEMENT_BITS_HASH
|
2338
|
+
for pt in point_list:
|
2339
|
+
assert point[0] != pt[0], "Unhashable input."
|
2340
|
+
if x & 1:
|
2341
|
+
point = ec_add(point, pt, FIELD_PRIME)
|
2342
|
+
x >>= 1
|
2343
|
+
assert x == 0
|
2344
|
+
return point
|