This commit is contained in:
2025-03-26 09:00:04 -05:00
parent 8376fe7e87
commit ccaab11f45
2 changed files with 112 additions and 112 deletions

View File

@@ -7,44 +7,44 @@
- total number of properties: 54
## Customer Cipher
- property key: [17433 57572 21505 8444 45652 40584 48852 43446 5599 62405 28323 40256
47776 49892 26386 48063 8519 55431 26581 11344 39650 4798 19208 64337
33689 12686 45679 3132 40090 40966 37000 33485 30170 45501 20844 20464
53748 19697 19768 4387 39395 35315 9619 28777 48707 30931 62584 35610
46036 40873 63440 33641 852 11131]
- position key: [38077 51455 31958 23938 20630 60053 9765 10657 7626]
- property key: [54514 1965 53378 19192 22047 51452 10113 45652 29057 9429 21502 46988
49588 18367 49270 58262 42600 57355 6832 60785 43122 21094 14401 36145
20935 57304 48338 48291 26673 19914 28977 28652 19987 31121 12774 35536
48255 12852 54678 55834 85 26003 45160 20835 54874 52921 15169 50516
60357 42125 30022 45817 60130 11197]
- position key: [48112 26772 62306 37312 9280 53287 8575 52285 23223]
---
## User Cipher
- property key: [24983 41762 20840 27438 7273 19213 38577 61466 23138 47314 23998 50092
273 14037 34702 41428 64080 27332 13490 12880 55541 24199 778 9414
29001 19211 3074 60661 6134 25585 30166 41331 20480 63833 34395 54478
26155 58076 18811 43725 18545 28882 15969 25829 22807 22588 35663 41312
34398 20904 148 47345 50354 38166]
- passcode key: [29182 58569 45520 52787 7372 34618 40716 38549 23700 43116]
- combined position key: [55717 12248 3398 52977 52974 12019 47318 59100 12380]
- mask key: [51996 30221 59877 58879 34382 22287 31520 64981 60412 37143]
- property key: [25402 45448 18385 37857 57541 32953 19697 45767 30288 57822 46599 257
21882 41216 65271 33191 57236 24801 10848 60418 40003 30516 42964 54926
4678 57740 23458 22941 19199 13444 34602 28269 28151 31470 11589 62172
53096 14757 9376 55563 54085 33633 7682 13084 27027 41237 11751 3039
37222 20544 22215 44963 6713 65186]
- passcode key: [28538 33084 55942 23635 1822 36202 45572 34373 48530 20714]
- combined position key: [57013 27802 42252 20840 26015 37308 27613 15454 15422]
- mask key: [29393 54843 61220 63539 63750 28279 20755 38066 32824 58482]
### Combined Postion Key
```mermaid
block-beta
columns 2
user_pos["user position key:\n[41859 3923 32291 54686 34461 59585 18017 7286 34891]"]
customer_pos["customer position key:\n[38077 51455 31958 23938 20630 60053 9765 10657 7626]"]
user_pos["user position key:\n[16087 54566 2672 43037 1335 65132 16145 49723 39280]"]
customer_pos["customer position key:\n[48112 26772 62306 37312 9280 53287 8575 52285 23223]"]
space:2
xor(("XOR")):2
user_pos --> xor
customer_pos --> xor
space:2
comb_pos["combined position key\n[55717 12248 3398 52977 52974 12019 47318 59100 12380]"]:2
comb_pos["combined position key\n[57013 27802 42252 20840 26015 37308 27613 15454 15422]"]:2
xor --> comb_pos
```
## User Keypad
- keypad example:<br/>Key 0: [36 28 38 21 4 41 15 43 26]<br/>Key 1: [ 0 19 47 12 49 14 33 16 17]<br/>Key 2: [ 9 37 2 39 40 50 51 52 44]<br/>Key 3: [27 46 29 30 31 5 24 25 35]<br/>Key 4: [18 10 20 48 22 23 42 34 53]<br/>Key 5: [45 1 11 3 13 32 6 7 8]<br/>
- user passcode indices: [1, 32, 34, 5]
- keypad example:<br/>Key 0: [27 1 2 48 31 41 24 7 17]<br/>Key 1: [45 10 11 39 4 50 42 25 53]<br/>Key 2: [ 9 19 29 3 40 32 51 16 8]<br/>Key 3: [18 37 38 21 22 14 33 43 44]<br/>Key 4: [ 0 28 47 30 49 5 15 34 26]<br/>Key 5: [36 46 20 12 13 23 6 52 35]<br/>
- user passcode indices: [28, 24, 34, 1]
## nKode Cipher
@@ -52,54 +52,54 @@ block-beta
```mermaid
block-beta
columns 2
cprop["customer_property_key\n[17433 57572 21505 8444 45652 40584 48852 43446 5599 62405 28323 40256
47776 49892 26386 48063 8519 55431 26581 11344 39650 4798 19208 64337
33689 12686 45679 3132 40090 40966 37000 33485 30170 45501 20844 20464
53748 19697 19768 4387 39395 35315 9619 28777 48707 30931 62584 35610
46036 40873 63440 33641 852 11131]"]
uprop["user_property_key\n[24983 41762 20840 27438 7273 19213 38577 61466 23138 47314 23998 50092
273 14037 34702 41428 64080 27332 13490 12880 55541 24199 778 9414
29001 19211 3074 60661 6134 25585 30166 41331 20480 63833 34395 54478
26155 58076 18811 43725 18545 28882 15969 25829 22807 22588 35663 41312
34398 20904 148 47345 50354 38166]"]
cprop["customer_property_key\n[54514 1965 53378 19192 22047 51452 10113 45652 29057 9429 21502 46988
49588 18367 49270 58262 42600 57355 6832 60785 43122 21094 14401 36145
20935 57304 48338 48291 26673 19914 28977 28652 19987 31121 12774 35536
48255 12852 54678 55834 85 26003 45160 20835 54874 52921 15169 50516
60357 42125 30022 45817 60130 11197]"]
uprop["user_property_key\n[25402 45448 18385 37857 57541 32953 19697 45767 30288 57822 46599 257
21882 41216 65271 33191 57236 24801 10848 60418 40003 30516 42964 54926
4678 57740 23458 22941 19199 13444 34602 28269 28151 31470 11589 62172
53096 14757 9376 55563 54085 33633 7682 13084 27027 41237 11751 3039
37222 20544 22215 44963 6713 65186]"]
space:2
xor1(("XOR")):2
cprop --> xor1
uprop --> xor1
space:2
prop["combined_property_key\n[ 9552 31208 37587 40095 45072 12350 32006 2925 11611 34589 36849 42561
26580 61891 26520 39789 65017 7624 63974 8702 9646 62493 54967 42708
52347 11714 29071 28123 11157 34826 4115 53992 58115 20982 19018 55103
48003 8472 18407 52180 52783 23938 12226 59018 22734 31178 30431 34796
35730 22961 11250 19920 45688 49980]"]
prop["combined_property_key\n[22860 48501 43623 2691 11008 34410 41991 51506 29272 24365 54234 54358
3371 32869 56118 23725 27650 38652 25509 24668 2625 31115 7846 1530
28577 8896 10269 5837 40269 59501 63202 34622 24010 60186 38638 52779
27566 57898 58845 6587 13015 10925 7087 34598 49492 27689 9569 8776
60168 63531 64702 53160 62709 51058]"]
xor1 --> prop
pass["user_passcode_indices\n[1, 32, 34, 5]"]
pass["user_passcode_indices\n[28, 24, 34, 1]"]
space:2
sel(("select\nproperties")):2
pass --> sel
prop --> sel
space:2
passcode["user passcode properties:\n[31208 58115 19018 12350]"]:2
passcode["user passcode properties:\n[40269 28577 38638 48501]"]:2
sel --> passcode
space:2
pad["zero pad to\nmax nkode length: 10"]:2
passcode -->pad
space:2
paddedpasscode["padded passcode:\n[31208 58115 19018 12350 0 0 0 0 0 0]"]
paddedpasscode["padded passcode:\n[40269 28577 38638 48501 0 0 0 0 0 0]"]
pad --> paddedpasscode
passkey["passcode key:\n[29182 58569 45520 52787 7372 34618 40716 38549 23700 43116]"]
passkey["passcode key:\n[28538 33084 55942 23635 1822 36202 45572 34373 48530 20714]"]
space:2
xor2(("XOR")):2
passkey --> xor2
paddedpasscode --> xor2
space:2
cipheredpass["ciphered passcode:\n[ 2070 1994 64410 65037 7372 34618 40716 38549 23700 43116]"]:2
cipheredpass["ciphered passcode:\n[62007 61085 19560 57638 1822 36202 45572 34373 48530 20714]"]:2
xor2 --> cipheredpass
space:2
hash(("hash")):2
cipheredpass --> hash
space:2
cipheredhashed["hashed ciphered passcode:\n$2b$12$mSfxfqokaUYYc8CHnj1nV.3fz.FUkMo4dNreWfUUO4zdgN0LQQ2Tm"]:2
cipheredhashed["hashed ciphered passcode:\n$2b$12$YW2vbeWXlAc3TdUGX9l8gOghIZ3ZQSMF8ia2K0Bj5dzmtUlx3hWqS"]:2
hash --> cipheredhashed
```
@@ -107,9 +107,9 @@ block-beta
```mermaid
block-beta
columns 3
passcode_idx["passcode indices:\n[1, 32, 34, 5]"]
comb_pos["combined position key:\n[55717 12248 3398 52977 52974 12019 47318 59100 12380]"]
cust_pos["customer position key:\n[38077 51455 31958 23938 20630 60053 9765 10657 7626]"]
passcode_idx["passcode indices:\n[28, 24, 34, 1]"]
comb_pos["combined position key:\n[57013 27802 42252 20840 26015 37308 27613 15454 15422]"]
cust_pos["customer position key:\n[48112 26772 62306 37312 9280 53287 8575 52285 23223]"]
space:3
propidx(["Get Position Idx:\nmap each to element mod props_per_key"])
@@ -120,7 +120,7 @@ block-beta
cust_pos --> xor1
space:3
passcode_position_idx["passcode poition indices:\n[1, 5, 7, 5]"]
passcode_position_idx["passcode poition indices:\n[1, 6, 7, 1]"]
propidx --> passcode_position_idx
space:5
@@ -128,10 +128,10 @@ block-beta
passcode_position_idx --> pad1
space:5
posidx["Padded Passcode Position Indices:\n[1, 5, 7, 5, 7, 2, 8, 1, 7, 1]"]
posidx["Padded Passcode Position Indices:\n[1, 6, 7, 1, 5, 0, 8, 6, 2, 0]"]
pad1 --> posidx
space:1
user_pos["user position key:\n[41859 3923 32291 54686 34461 59585 18017 7286 34891]"]
user_pos["user position key:\n[16087 54566 2672 43037 1335 65132 16145 49723 39280]"]
xor1 --> user_pos
space:4
@@ -139,15 +139,15 @@ block-beta
user_pos --> sel
posidx --> sel
space:5
passcode_pos["ordered user passcode positions:\n[ 3923 59585 7286 59585 7286 32291 34891 3923 7286 3923]"]
passcode_pos["ordered user passcode positions:\n[54566 16145 49723 54566 65132 16087 39280 16145 2672 16087]"]
sel --> passcode_pos
mask_key["mask key\n[51996 30221 59877 58879 34382 22287 31520 64981 60412 37143]"]
mask_key["mask key\n[29393 54843 61220 63539 63750 28279 20755 38066 32824 58482]"]
space:4
xor2(("XOR"))
mask_key --> xor2
passcode_pos --> xor2
space:5
mask["enciphered mask:\n [50255 40652 62867 3390 39480 10540 62315 62086 63370 40516]"]
mask["enciphered mask:\n [42999 59690 11551 11541 1898 20640 51299 43939 35400 55973]"]
xor2 --> mask
```
@@ -156,19 +156,19 @@ block-beta
```mermaid
block-beta
columns 3
pass["user_passcode_indices\n[1, 32, 34, 5]"]
login_keypad["login keypad:\nKey 0: [36 28 38 21 4 41 15 43 26]
Key 1: [ 0 19 47 12 49 14 33 16 17]
Key 2: [ 9 37 2 39 40 50 51 52 44]
Key 3: [27 46 29 30 31 5 24 25 35]
Key 4: [18 10 20 48 22 23 42 34 53]
Key 5: [45 1 11 3 13 32 6 7 8]
pass["user_passcode_indices\n[28, 24, 34, 1]"]
login_keypad["login keypad:\nKey 0: [27 1 2 48 31 41 24 7 17]
Key 1: [45 10 11 39 4 50 42 25 53]
Key 2: [ 9 19 29 3 40 32 51 16 8]
Key 3: [18 37 38 21 22 14 33 43 44]
Key 4: [ 0 28 47 30 49 5 15 34 26]
Key 5: [36 46 20 12 13 23 6 52 35]
"]
space:4
selectkeys(("user"))
mask["enciphered mask:\n [50255 40652 62867 3390 39480 10540 62315 62086 63370 40516]"]
mask_key["mask key:\n[51996 30221 59877 58879 34382 22287 31520 64981 60412 37143]"]
selectkeys(("select keys"))
mask["enciphered mask:\n [42999 59690 11551 11541 1898 20640 51299 43939 35400 55973]"]
mask_key["mask key:\n[29393 54843 61220 63539 63750 28279 20755 38066 32824 58482]"]
space:2
xor1(("XOR"))
@@ -178,12 +178,12 @@ Key 5: [45 1 11 3 13 32 6 7 8]
login_keypad --> selectkeys
space:3
ordered_keys["ordered keys:\n[[45 1 11 3 13 32 6 7 8]
[45 1 11 3 13 32 6 7 8]
[18 10 20 48 22 23 42 34 53]
[27 46 29 30 31 5 24 25 35]]"]
user_position_key["user position key:\n[41859 3923 32291 54686 34461 59585 18017 7286 34891]"]
passcode_pos["ordered user passcode positions:\n[ 3923 59585 7286 59585 7286 32291 34891 3923 7286 3923]"]
ordered_keys["ordered keys:\n[[ 0 28 47 30 49 5 15 34 26]
[27 1 2 48 31 41 24 7 17]
[ 0 28 47 30 49 5 15 34 26]
[27 1 2 48 31 41 24 7 17]]"]
user_position_key["user position key:\n[16087 54566 2672 43037 1335 65132 16145 49723 39280]"]
passcode_pos["ordered user passcode positions:\n[54566 16145 49723 54566 65132 16087 39280 16145 2672 16087]"]
selectkeys --> ordered_keys
xor1 --> passcode_pos
space:8
@@ -193,7 +193,7 @@ Key 5: [45 1 11 3 13 32 6 7 8]
passcode_pos --> get_passcode_idxs
space:8
passcode_pos_idxs["padded passcode position indices:\n[1, 5, 7, 5, 7, 2, 8, 1, 7, 1]"]
passcode_pos_idxs["padded passcode position indices:\n[1, 6, 7, 1, 5, 0, 8, 6, 2, 0]"]
get_passcode_idxs --> passcode_pos_idxs
space:3
@@ -202,13 +202,13 @@ Key 5: [45 1 11 3 13 32 6 7 8]
passcode_pos_idxs --> get_presumed_idxs
space:5
passcode_prop_idxs["presumed passcode property indices:\n[1, 32, 34, 5]"]
prop["combined_property_key\n[ 9552 31208 37587 40095 45072 12350 32006 2925 11611 34589 36849 42561
26580 61891 26520 39789 65017 7624 63974 8702 9646 62493 54967 42708
52347 11714 29071 28123 11157 34826 4115 53992 58115 20982 19018 55103
48003 8472 18407 52180 52783 23938 12226 59018 22734 31178 30431 34796
35730 22961 11250 19920 45688 49980]"]
cipheredhashed["hashed ciphered passcode:\n$2b$12$mSfxfqokaUYYc8CHnj1nV.3fz.FUkMo4dNreWfUUO4zdgN0LQQ2Tm"]
passcode_prop_idxs["presumed passcode property indices:\n[28, 24, 34, 1]"]
prop["combined_property_key\n[22860 48501 43623 2691 11008 34410 41991 51506 29272 24365 54234 54358
3371 32869 56118 23725 27650 38652 25509 24668 2625 31115 7846 1530
28577 8896 10269 5837 40269 59501 63202 34622 24010 60186 38638 52779
27566 57898 58845 6587 13015 10925 7087 34598 49492 27689 9569 8776
60168 63531 64702 53160 62709 51058]"]
cipheredhashed["hashed ciphered passcode:\n$2b$12$YW2vbeWXlAc3TdUGX9l8gOghIZ3ZQSMF8ia2K0Bj5dzmtUlx3hWqS"]
get_presumed_idxs --> passcode_prop_idxs
space:3
@@ -217,7 +217,7 @@ Key 5: [45 1 11 3 13 32 6 7 8]
prop --> sel
space:5
passcode_prop["presumed passcode properties:\n[31208 58115 19018 12350]"]
passcode_prop["presumed passcode properties:\n[40269 28577 38638 48501]"]
sel --> passcode_prop
space:5
@@ -225,7 +225,7 @@ Key 5: [45 1 11 3 13 32 6 7 8]
passcode_prop --> cipher
space:5
cipheredpass["ciphered passcode:\n[ 2070 1994 64410 65037 7372 34618 40716 38549 23700 43116]"]
cipheredpass["ciphered passcode:\n[62007 61085 19560 57638 1822 36202 45572 34373 48530 20714]"]
cipher --> cipheredpass
space:7
@@ -250,26 +250,26 @@ nKode renewal is a three step process:
```mermaid
flowchart
subgraph Renew Customer Keys
old_prop["`old customer property key:<br/>[17607 56010 50107 63409 44153 31539 60343 64375 30521 16335 53839 26093
26309 50966 57366 15033 1961 30476 52564 5038 64859 43674 54717 33298
48434 26313 32141 33070 15459 60411 26053 29595 45827 43183 52241 1009
56744 50116 3740 24857 34398 11600 4515 33391 473 8694 64912 9868
3532 2073 11110 62753 30410 22058]`"]
new_prop["`new customer property key:<br/>[17433 57572 21505 8444 45652 40584 48852 43446 5599 62405 28323 40256
47776 49892 26386 48063 8519 55431 26581 11344 39650 4798 19208 64337
33689 12686 45679 3132 40090 40966 37000 33485 30170 45501 20844 20464
53748 19697 19768 4387 39395 35315 9619 28777 48707 30931 62584 35610
46036 40873 63440 33641 852 11131]`"]
old_pos["`old customer position key:<br/>[31270 8331 29541 7023 18547 50738 65207 64170 47127]`"]
new_pos["`new customer position key:<br/>[38077 51455 31958 23938 20630 60053 9765 10657 7626]`"]
old_prop["`old customer property key:<br/>[14966 3325 60854 39266 52165 1747 59638 31733 1032 48883 26077 54615
22609 8549 9665 56586 45974 63005 18885 35934 38402 3775 47474 54132
32231 49996 29631 20304 55218 56553 29128 59731 12349 37364 48043 15607
42182 56207 49533 49328 57746 43468 1453 46138 43207 52540 2182 10647
31342 43115 43641 24587 61132 14800]`"]
new_prop["`new customer property key:<br/>[54514 1965 53378 19192 22047 51452 10113 45652 29057 9429 21502 46988
49588 18367 49270 58262 42600 57355 6832 60785 43122 21094 14401 36145
20935 57304 48338 48291 26673 19914 28977 28652 19987 31121 12774 35536
48255 12852 54678 55834 85 26003 45160 20835 54874 52921 15169 50516
60357 42125 30022 45817 60130 11197]`"]
old_pos["`old customer position key:<br/>[57442 47548 44924 63861 24744 28624 21708 65125 42318]`"]
new_pos["`new customer position key:<br/>[48112 26772 62306 37312 9280 53287 8575 52285 23223]`"]
xor1(("XOR"))
xor2(("XOR"))
xor_prop["`xor property key:<br/>[ 222 14894 38842 55117 7725 58811 21859 21185 25318 52234 48364 63661
56421 1522 34564 33030 9966 44939 43649 16382 26553 47140 40629 31043
16043 22343 53218 36114 41209 19453 62797 61782 50905 6418 40317 19457
3164 36661 17316 28730 8125 42147 13360 61958 49050 22821 2536 44438
48664 38832 56502 30280 30110 32081]`"]
xor_pos["`xor position key:<br/>[61083 59508 4019 18157 6373 11431 55442 54027 42461]`"]
xor_prop["`xor property key:<br/>[61060 2896 15668 54170 40410 52783 53111 51617 30089 39462 13859 25307
39397 26330 58807 16028 5630 5654 21365 24879 15984 23769 33075 24133
11296 7316 53101 62451 49027 37155 249 34495 32302 59493 35405 46631
6329 59835 5355 6826 57799 52319 46533 58713 32413 901 13255 60611
37291 3302 57151 54002 1070 4717]`"]
xor_pos["`xor position key:<br/>[23442 53544 23582 26805 17640 49143 30131 12888 65529]`"]
old_prop --> xor1
new_prop --> xor1
xor1 --> xor_prop
@@ -283,12 +283,12 @@ nKode renewal is a three step process:
users --> eachuser
subgraph eachuser [for each user]
subgraph old user keys
old_user_pos["`combined position key:<br/>[41859 3923 32291 54686 34461 59585 18017 7286 34891]`"]
old_user_prop["`property key:<br/>[24983 41762 20840 27438 7273 19213 38577 61466 23138 47314 23998 50092
273 14037 34702 41428 64080 27332 13490 12880 55541 24199 778 9414
29001 19211 3074 60661 6134 25585 30166 41331 20480 63833 34395 54478
26155 58076 18811 43725 18545 28882 15969 25829 22807 22588 35663 41312
34398 20904 148 47345 50354 38166]`"]
old_user_pos["`combined position key:<br/>[16087 54566 2672 43037 1335 65132 16145 49723 39280]`"]
old_user_prop["`property key:<br/>[25402 45448 18385 37857 57541 32953 19697 45767 30288 57822 46599 257
21882 41216 65271 33191 57236 24801 10848 60418 40003 30516 42964 54926
4678 57740 23458 22941 19199 13444 34602 28269 28151 31470 11589 62172
53096 14757 9376 55563 54085 33633 7682 13084 27027 41237 11751 3039
37222 20544 22215 44963 6713 65186]`"]
old_renew["renew: False"]
end
xor3(("XOR"))
@@ -300,12 +300,12 @@ nKode renewal is a three step process:
xor_prop --> xor4
xor4 --> inter_user_prop
subgraph inter_user[intermediate user keys]
inter_user_pos["`combined position key:<br/>[14142 51116 757 34844 54795 596 24644 13783 38273]`"]
inter_user_prop["`property key:<br/>[24905 39180 50898 48227 580 44726 50130 41691 14468 29912 57682 15105
56692 13095 138 8402 56510 50511 40499 3502 48972 59043 40383 23941
20450 7244 50144 25063 46863 10252 32923 20517 38617 57419 6950 39119
27255 28137 2783 56055 22476 54385 2641 38627 59021 281 33447 3318
14406 50712 56354 52921 45356 59463]`"]
inter_user_pos["`combined position key:<br/>[34087 48562 63762 14813 8567 11851 7790 3590 50119]`"]
inter_user_prop["`property key:<br/>[36286 47832 31461 16507 32031 20118 33670 31590 985 31736 32804 25562
52383 51162 6976 48955 51818 30455 30997 36141 41523 11245 9959 35019
15974 64792 38095 43630 62844 42407 34771 59602 5081 37515 42760 17659
55249 53278 12363 50081 12930 20286 43975 54853 5902 41616 7712 59164
205 23718 35320 32081 7703 60623]`"]
inter_renew["renew: True"]
end
end
@@ -316,12 +316,12 @@ nKode renewal is a three step process:
login["First login post renew"]
inter_user --> login
subgraph new_user [New User Keys]
new_user_pos["`combined position key:<br/>[23942 46252 53843 37910 7611 30257 63826 52812 27525]`"]
new_user_prop["`property key:<br/>[12027 59464 45926 15881 63336 21673 37395 23025 6329 62833 48208 18116
21253 58416 65368 58683 20373 46352 59037 5050 28807 6687 11647 25865
62465 1781 2953 15931 16596 36975 19053 5585 53652 10011 18034 31490
25501 8993 19946 5980 35552 33588 63303 2644 62898 12532 3981 16334
9471 17209 53533 43576 41327 37349]`"]
new_user_pos["`combined position key:<br/>[30180 41733 51338 65033 46822 22413 14740 11265 36086]`"]
new_user_prop["`property key:<br/>[63029 58440 35697 22366 54518 106 30872 42634 43391 56303 8441 57457
40463 15976 60517 30636 40657 60903 39392 12539 19960 16602 3225 8105
30680 64909 9750 19292 15934 38070 9733 36553 61894 2864 25710 48492
54051 23592 44246 3991 38055 9064 51185 33976 39567 54282 59604 15986
12137 21928 16931 38440 25594 42613]`"]
new_renew["renew: False"]
end
login --> new_user