add inferring nkode selection
This commit is contained in:
@@ -30,12 +30,12 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.577863Z",
|
"end_time": "2025-03-20T12:00:21.292663Z",
|
||||||
"start_time": "2025-03-20T10:38:44.572040Z"
|
"start_time": "2025-03-20T12:00:21.253426Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 75
|
"execution_count": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -53,12 +53,12 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.585583Z",
|
"end_time": "2025-03-20T12:00:21.298357Z",
|
||||||
"start_time": "2025-03-20T10:38:44.582961Z"
|
"start_time": "2025-03-20T12:00:21.296258Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"execution_count": 76
|
"execution_count": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -75,10 +75,10 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"#### Customer Cipher Keys\n",
|
"#### Customer Cipher Keys\n",
|
||||||
"Each customer has unique cipher keys.\n",
|
"Each customer has unique cipher keys.\n",
|
||||||
"These keys are used to encipher and decipher user nKode.\n",
|
"These keys are used to encipher and decipher a user's nKode.\n",
|
||||||
"There are two types of Customer Cipher Keys:\n",
|
"There are two types of Customer Cipher Keys:\n",
|
||||||
"1. property key: Combined with the user property key to get the server-side representation of a users icons.\n",
|
"1. property key: Combined with the user property key to get the server-side representation of a users icons.\n",
|
||||||
"2. position key: Combined with the user position key to the server-side representation the position in each key.\n"
|
"2. position key: Combined with the user position key to get the server-side representation the position in each key.\n"
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false
|
"collapsed": false
|
||||||
@@ -112,8 +112,8 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"collapsed": false,
|
"collapsed": false,
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.601079Z",
|
"end_time": "2025-03-20T12:00:21.317747Z",
|
||||||
"start_time": "2025-03-20T10:38:44.595017Z"
|
"start_time": "2025-03-20T12:00:21.306163Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@@ -121,30 +121,30 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Customer Position Key: [10895 31772 47823 53466 56263 49352]\n",
|
"Customer Position Key: [37938 42486 36680 47679 5944 46439]\n",
|
||||||
"Customer Properties Key:\n",
|
"Customer Properties Key:\n",
|
||||||
"[32913 31208 39571 1116 2737 19900]\n",
|
"[14469 12272 54942 53713 60529 64319]\n",
|
||||||
"[ 4026 23392 64571 25864 56877 34756]\n",
|
"[49129 65121 60219 33860 48996 57925]\n",
|
||||||
"[56837 8582 51951 34890 37611 61978]\n",
|
"[61464 3328 59612 33957 62738 42039]\n",
|
||||||
"[55074 11623 3931 21342 53702 21700]\n",
|
"[ 3074 46306 41956 4712 59250 7730]\n",
|
||||||
"[26922 1472 49420 42668 7254 41918]\n",
|
"[23724 39640 530 27472 33903 26824]\n",
|
||||||
"Position to Properties Map:\n",
|
"Position to Properties Map:\n",
|
||||||
"10895: [32913 4026 56837 55074 26922]\n",
|
"37938: [14469 49129 61464 3074 23724]\n",
|
||||||
"31772: [31208 23392 8582 11623 1472]\n",
|
"42486: [12272 65121 3328 46306 39640]\n",
|
||||||
"47823: [39571 64571 51951 3931 49420]\n",
|
"36680: [54942 60219 59612 41956 530]\n",
|
||||||
"53466: [ 1116 25864 34890 21342 42668]\n",
|
"47679: [53713 33860 33957 4712 27472]\n",
|
||||||
"56263: [ 2737 56877 37611 53702 7254]\n",
|
"5944: [60529 48996 62738 59250 33903]\n",
|
||||||
"49352: [19900 34756 61978 21700 41918]\n"
|
"46439: [64319 57925 42039 7730 26824]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 77
|
"execution_count": 4
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.612692Z",
|
"end_time": "2025-03-20T12:00:21.325478Z",
|
||||||
"start_time": "2025-03-20T10:38:44.610267Z"
|
"start_time": "2025-03-20T12:00:21.322970Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -161,41 +161,41 @@
|
|||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Position Value to Icons Map:\n",
|
"Position Value to Icons Map:\n",
|
||||||
"10895: ['😀' '🥺' '🤔' '🐱' '🦄']\n",
|
"37938: ['😀' '🥺' '🤔' '🐱' '🦄']\n",
|
||||||
"31772: ['😂' '😡' '🙃' '🐶' '🌟']\n",
|
"42486: ['😂' '😡' '🙃' '🐶' '🌟']\n",
|
||||||
"47823: ['🥳' '😱' '😇' '🦁' '⚡']\n",
|
"36680: ['🥳' '😱' '😇' '🦁' '⚡']\n",
|
||||||
"53466: ['😍' '🤯' '🤖' '🐻' '🔥']\n",
|
"47679: ['😍' '🤯' '🤖' '🐻' '🔥']\n",
|
||||||
"56263: ['🤓' '🥰' '👽' '🐸' '🍕']\n",
|
"5944: ['🤓' '🥰' '👽' '🐸' '🍕']\n",
|
||||||
"49352: ['😎' '😴' '👾' '🐙' '🎉']\n"
|
"46439: ['😎' '😴' '👾' '🐙' '🎉']\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 78
|
"execution_count": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"source": [
|
"source": [
|
||||||
"### User Signup\n",
|
"### User Signup\n",
|
||||||
"Users can create an nkode with these steps:\n",
|
"Users can create an nKode with these steps:\n",
|
||||||
"1. Generate a randomly shuffled keypad\n",
|
"1. Generate a randomly shuffled keypad\n",
|
||||||
"2. Set user nKode\n",
|
"2. Set user nKode\n",
|
||||||
"3. Confirm user nKode\n",
|
"3. Confirm user nKode\n",
|
||||||
"\n",
|
"\n",
|
||||||
"#### Generate Keypad\n",
|
"#### Generate Keypad\n",
|
||||||
" For the server to determine the users nkode, the user's keypad must be dispersable.\n",
|
" For the server to determine the users nKode, the user's keypad must be dispersable.\n",
|
||||||
" To make the keypad dispersable, the server will randomly drop key positions so the number of properties per key is equal to the number of keys.\n",
|
" To make the keypad dispersable, the server will randomly drop key positions so the number of properties per key is equal to the number of keys.\n",
|
||||||
" In our case, the server drops 1 key position to give us a 5 X 5 keypad with possible index values ranging from 0-29.\n",
|
" In our case, the server drops 1 key position to give us a 5 X 5 keypad with possible index values ranging from 0-29.\n",
|
||||||
" - Run the cell below over and over to see it change. Notice that values never move out of their columns just their rows.\n",
|
" - Run the cell below over and over to see it change. Notice that values never move out of their columns just their rows.\n",
|
||||||
" - each value in the keypad is the index value of a customer properties\n",
|
" - each value in the keypad is the index value of a customer properties\n",
|
||||||
" - the user never learns what their server-side properties"
|
" - the user never learns their server-side properties"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.636348Z",
|
"end_time": "2025-03-20T12:00:21.349267Z",
|
||||||
"start_time": "2025-03-20T10:38:44.630660Z"
|
"start_time": "2025-03-20T12:00:21.342655Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -223,11 +223,11 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: ['🐱' '🌟' '🤖' '🤓' '🎉']\n",
|
"Key 0: ['🐱' '🐶' '😱' '😍' '🍕']\n",
|
||||||
"Key 1: ['🥺' '🙃' '🔥' '🍕' '😎']\n",
|
"Key 1: ['🦄' '😡' '⚡' '🤯' '🐸']\n",
|
||||||
"Key 2: ['🦄' '🐶' '🤯' '👽' '🐙']\n",
|
"Key 2: ['😀' '🙃' '😇' '🔥' '👽']\n",
|
||||||
"Key 3: ['😀' '😂' '😍' '🥰' '😴']\n",
|
"Key 3: ['🥺' '😂' '🥳' '🐻' '🥰']\n",
|
||||||
"Key 4: ['🤔' '😡' '🐻' '🐸' '👾']\n"
|
"Key 4: ['🤔' '🌟' '🦁' '🤖' '🤓']\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -244,11 +244,11 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [18 25 15 4 29]\n",
|
"Key 0: [18 19 8 3 28]\n",
|
||||||
"Key 1: [ 6 13 27 28 5]\n",
|
"Key 1: [24 7 26 9 22]\n",
|
||||||
"Key 2: [24 19 9 16 23]\n",
|
"Key 2: [ 0 13 14 27 16]\n",
|
||||||
"Key 3: [ 0 1 3 10 11]\n",
|
"Key 3: [ 6 1 2 21 10]\n",
|
||||||
"Key 4: [12 7 21 22 17]\n"
|
"Key 4: [12 25 20 15 4]\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -265,29 +265,29 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [55074 1472 34890 2737 41918]\n",
|
"Key 0: [ 3074 46306 60219 53713 33903]\n",
|
||||||
"Key 1: [ 4026 8582 42668 7254 19900]\n",
|
"Key 1: [23724 65121 530 33860 59250]\n",
|
||||||
"Key 2: [26922 11623 25864 37611 21700]\n",
|
"Key 2: [14469 3328 59612 27472 62738]\n",
|
||||||
"Key 3: [32913 31208 1116 56877 34756]\n",
|
"Key 3: [49129 12272 54942 4712 48996]\n",
|
||||||
"Key 4: [56837 23392 21342 53702 61978]\n"
|
"Key 4: [61464 39640 41956 33957 60529]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 79
|
"execution_count": 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"source": [
|
"source": [
|
||||||
"## Set nKode\n",
|
"### Set nKode\n",
|
||||||
"The client receives `user_icons`, `set_signup_keypad`\n"
|
"The client receives `user_icons`, `set_signup_keypad`\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.674025Z",
|
"end_time": "2025-03-20T12:00:21.372390Z",
|
||||||
"start_time": "2025-03-20T10:38:44.671302Z"
|
"start_time": "2025-03-20T12:00:21.369564Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -306,20 +306,28 @@
|
|||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"User Passcode Indices: [28, 13, 9, 10]\n",
|
"User Passcode Indices: [19, 28, 22, 18]\n",
|
||||||
"User Passcode Icons: ['🍕' '🙃' '🤯' '🥰']\n",
|
"User Passcode Icons: ['🐶' '🍕' '🐸' '🐱']\n",
|
||||||
"User Passcode Server-side properties: [ 7254 8582 25864 56877]\n",
|
"User Passcode Server-side properties: [46306 33903 59250 3074]\n",
|
||||||
"Selected Keys: [1, 1, 2, 3]\n"
|
"Selected Keys: [0, 0, 1, 0]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 80
|
"execution_count": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": [
|
||||||
|
"### Confirm nKode\n",
|
||||||
|
"Submit the set key entry to render the confirm keypad."
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.700525Z",
|
"end_time": "2025-03-20T12:00:21.631111Z",
|
||||||
"start_time": "2025-03-20T10:38:44.697597Z"
|
"start_time": "2025-03-20T12:00:21.391841Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -327,40 +335,71 @@
|
|||||||
"confirm_keypad = api.set_nkode(username, customer_id, selected_keys_set, signup_session_id)\n",
|
"confirm_keypad = api.set_nkode(username, customer_id, selected_keys_set, signup_session_id)\n",
|
||||||
"keypad_view(confirm_keypad, keypad_size.numb_of_keys)\n",
|
"keypad_view(confirm_keypad, keypad_size.numb_of_keys)\n",
|
||||||
"selected_keys_confirm = select_keys_with_passcode_values(passcode_property_indices, confirm_keypad, keypad_size.numb_of_keys)\n",
|
"selected_keys_confirm = select_keys_with_passcode_values(passcode_property_indices, confirm_keypad, keypad_size.numb_of_keys)\n",
|
||||||
"print(f\"Selected Keys\\n{selected_keys_confirm}\")"
|
"print(f\"Selected Keys\\n{selected_keys_confirm}\")\n",
|
||||||
|
"success = api.confirm_nkode(username, customer_id, selected_keys_confirm, signup_session_id)\n",
|
||||||
|
"assert success"
|
||||||
],
|
],
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Key 0: [ 6 7 3 4 23]\n",
|
"Key 0: [0 7 2 3 4]\n",
|
||||||
"Key 1: [24 1 15 28 17]\n",
|
"Key 1: [ 6 25 26 27 28]\n",
|
||||||
"Key 2: [12 25 27 16 11]\n",
|
"Key 2: [24 19 20 21 16]\n",
|
||||||
"Key 3: [ 0 13 9 22 29]\n",
|
"Key 3: [12 13 8 9 10]\n",
|
||||||
"Key 4: [18 19 21 10 5]\n",
|
"Key 4: [18 1 14 15 22]\n",
|
||||||
"Selected Keys\n",
|
"Selected Keys\n",
|
||||||
"[1, 3, 3, 4]\n"
|
"[2, 1, 4, 4]\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"execution_count": 81
|
"execution_count": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": "### Inferring an nKode selection"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.947744Z",
|
"end_time": "2025-03-20T12:08:59.799827Z",
|
||||||
"start_time": "2025-03-20T10:38:44.709897Z"
|
"start_time": "2025-03-20T12:08:59.796887Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"# the session is deleted after the nkode is confirmed. To rerun this cell, rerun the cells above starting with cell 8 where the username is created\n",
|
"for idx in range(passcode_len):\n",
|
||||||
"success = api.confirm_nkode(username, customer_id, selected_keys_confirm, signup_session_id)\n",
|
" selected_key_set = selected_keys_set[idx]\n",
|
||||||
"assert success"
|
" selected_set_key_idx = set_signup_keypad.reshape(-1, keypad_size.numb_of_keys)[selected_key_set]\n",
|
||||||
|
" print(f\"Set Key {idx}: {user_icons[selected_set_key_idx]}\")\n",
|
||||||
|
" selected_key_confirm = selected_keys_confirm[idx]\n",
|
||||||
|
" selected_confirm_key_idx = confirm_keypad.reshape(-1, keypad_size.numb_of_keys)[selected_key_confirm]\n",
|
||||||
|
" print(f\"Confirm Key {idx}: {user_icons[selected_confirm_key_idx]}\")\n",
|
||||||
|
" print(f\"Overlapping icon {user_icons[passcode_property_indices[idx]]}\")"
|
||||||
],
|
],
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
"execution_count": 82
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Set Key 0: ['🐱' '🐶' '😱' '😍' '🍕']\n",
|
||||||
|
"Confirm Key 0: ['🦄' '🐶' '🦁' '🐻' '👽']\n",
|
||||||
|
"Overlapping icon 🐶\n",
|
||||||
|
"Set Key 1: ['🐱' '🐶' '😱' '😍' '🍕']\n",
|
||||||
|
"Confirm Key 1: ['🥺' '🌟' '⚡' '🔥' '🍕']\n",
|
||||||
|
"Overlapping icon 🍕\n",
|
||||||
|
"Set Key 2: ['🦄' '😡' '⚡' '🤯' '🐸']\n",
|
||||||
|
"Confirm Key 2: ['🐱' '😂' '😇' '🤖' '🐸']\n",
|
||||||
|
"Overlapping icon 🐸\n",
|
||||||
|
"Set Key 3: ['🐱' '🐶' '😱' '😍' '🍕']\n",
|
||||||
|
"Confirm Key 3: ['🐱' '😂' '😇' '🤖' '🐸']\n",
|
||||||
|
"Overlapping icon 🐱\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"execution_count": 15
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
@@ -380,7 +419,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.959614Z",
|
"end_time": "2025-03-20T12:00:21.680780Z",
|
||||||
"start_time": "2025-03-20T10:38:44.954840Z"
|
"start_time": "2025-03-20T10:38:44.954840Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -396,7 +435,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.968863Z",
|
"end_time": "2025-03-20T12:00:21.683788Z",
|
||||||
"start_time": "2025-03-20T10:38:44.966571Z"
|
"start_time": "2025-03-20T10:38:44.966571Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -421,7 +460,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:44.985451Z",
|
"end_time": "2025-03-20T12:00:21.684015Z",
|
||||||
"start_time": "2025-03-20T10:38:44.983449Z"
|
"start_time": "2025-03-20T10:38:44.983449Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -441,7 +480,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.007753Z",
|
"end_time": "2025-03-20T12:00:21.689867Z",
|
||||||
"start_time": "2025-03-20T10:38:45.005712Z"
|
"start_time": "2025-03-20T10:38:45.005712Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -461,7 +500,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.026885Z",
|
"end_time": "2025-03-20T12:00:21.690242Z",
|
||||||
"start_time": "2025-03-20T10:38:45.024649Z"
|
"start_time": "2025-03-20T10:38:45.024649Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -481,7 +520,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.041101Z",
|
"end_time": "2025-03-20T12:00:21.694701Z",
|
||||||
"start_time": "2025-03-20T10:38:45.038985Z"
|
"start_time": "2025-03-20T10:38:45.038985Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -501,7 +540,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.059433Z",
|
"end_time": "2025-03-20T12:00:21.696066Z",
|
||||||
"start_time": "2025-03-20T10:38:45.056942Z"
|
"start_time": "2025-03-20T10:38:45.056942Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -544,7 +583,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.070036Z",
|
"end_time": "2025-03-20T12:00:21.696415Z",
|
||||||
"start_time": "2025-03-20T10:38:45.068009Z"
|
"start_time": "2025-03-20T10:38:45.068009Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -574,7 +613,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.320480Z",
|
"end_time": "2025-03-20T12:00:21.696640Z",
|
||||||
"start_time": "2025-03-20T10:38:45.087096Z"
|
"start_time": "2025-03-20T10:38:45.087096Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -603,7 +642,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.559945Z",
|
"end_time": "2025-03-20T12:00:21.696764Z",
|
||||||
"start_time": "2025-03-20T10:38:45.326214Z"
|
"start_time": "2025-03-20T10:38:45.326214Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -662,7 +701,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.570140Z",
|
"end_time": "2025-03-20T12:00:21.696874Z",
|
||||||
"start_time": "2025-03-20T10:38:45.567396Z"
|
"start_time": "2025-03-20T10:38:45.567396Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -706,7 +745,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:45.809575Z",
|
"end_time": "2025-03-20T12:00:21.697134Z",
|
||||||
"start_time": "2025-03-20T10:38:45.576610Z"
|
"start_time": "2025-03-20T10:38:45.576610Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -732,7 +771,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:46.286081Z",
|
"end_time": "2025-03-20T12:00:21.697273Z",
|
||||||
"start_time": "2025-03-20T10:38:45.816688Z"
|
"start_time": "2025-03-20T10:38:45.816688Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -780,7 +819,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:46.296985Z",
|
"end_time": "2025-03-20T12:00:21.697386Z",
|
||||||
"start_time": "2025-03-20T10:38:46.293584Z"
|
"start_time": "2025-03-20T10:38:46.293584Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -814,7 +853,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:46.312031Z",
|
"end_time": "2025-03-20T12:00:21.697503Z",
|
||||||
"start_time": "2025-03-20T10:38:46.310019Z"
|
"start_time": "2025-03-20T10:38:46.310019Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -841,7 +880,7 @@
|
|||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"ExecuteTime": {
|
"ExecuteTime": {
|
||||||
"end_time": "2025-03-20T10:38:46.553807Z",
|
"end_time": "2025-03-20T12:00:21.697608Z",
|
||||||
"start_time": "2025-03-20T10:38:46.318482Z"
|
"start_time": "2025-03-20T10:38:46.318482Z"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user