File size: 48,939 Bytes
c8aa036
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a7539c22",
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
    "execution": {
     "iopub.execute_input": "2024-11-17T05:58:54.410649Z",
     "iopub.status.busy": "2024-11-17T05:58:54.410173Z",
     "iopub.status.idle": "2024-11-17T05:58:55.495726Z",
     "shell.execute_reply": "2024-11-17T05:58:55.494342Z"
    },
    "papermill": {
     "duration": 1.093188,
     "end_time": "2024-11-17T05:58:55.498784",
     "exception": false,
     "start_time": "2024-11-17T05:58:54.405596",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# This Python 3 environment comes with many helpful analytics libraries installed\n",
    "# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n",
    "# For example, here's several helpful packages to load\n",
    "\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "\n",
    "# Input data files are available in the read-only \"../input/\" directory\n",
    "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",
    "\n",
    "import os\n",
    "for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "    for filename in filenames:\n",
    "        print(os.path.join(dirname, filename))\n",
    "\n",
    "# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n",
    "# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ad0cc7db",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-17T05:58:55.505703Z",
     "iopub.status.busy": "2024-11-17T05:58:55.505111Z",
     "iopub.status.idle": "2024-11-17T05:58:56.224081Z",
     "shell.execute_reply": "2024-11-17T05:58:56.222818Z"
    },
    "papermill": {
     "duration": 0.725574,
     "end_time": "2024-11-17T05:58:56.226902",
     "exception": false,
     "start_time": "2024-11-17T05:58:55.501328",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "        <script type=\"text/javascript\">\n",
       "        window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
       "        if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
       "        if (typeof require !== 'undefined') {\n",
       "        require.undef(\"plotly\");\n",
       "        requirejs.config({\n",
       "            paths: {\n",
       "                'plotly': ['https://cdn.plot.ly/plotly-2.32.0.min']\n",
       "            }\n",
       "        });\n",
       "        require(['plotly'], function(Plotly) {\n",
       "            window._Plotly = Plotly;\n",
       "        });\n",
       "        }\n",
       "        </script>\n",
       "        "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>                            <div id=\"48ebd5d8-a679-4ce8-991d-00d9ef26f9a1\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                require([\"plotly\"], function(Plotly) {                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"48ebd5d8-a679-4ce8-991d-00d9ef26f9a1\")) {                    Plotly.newPlot(                        \"48ebd5d8-a679-4ce8-991d-00d9ef26f9a1\",                        [{\"marker\":{\"color\":[\"rgb(0, 5, 142)\",\"rgb(0, 58, 242)\",\"rgb(0, 73, 252)\",\"rgb(0, 84, 219)\",\"rgb(0, 132, 191)\",\"rgb(0, 153, 114)\",\"rgb(0, 160, 48)\",\"rgb(0, 178, 53)\",\"rgb(0, 198, 68)\",\"rgb(0, 198, 104)\",\"rgb(0, 198, 150)\",\"rgb(2, 20, 51)\",\"rgb(2, 38, 28)\",\"rgb(2, 56, 45)\",\"rgb(2, 155, 196)\",\"rgb(2, 163, 17)\",\"rgb(2, 186, 22)\",\"rgb(5, 22, 5)\",\"rgb(5, 22, 81)\",\"rgb(5, 33, 237)\",\"rgb(5, 147, 45)\",\"rgb(5, 188, 145)\",\"rgb(5, 206, 211)\",\"rgb(5, 209, 165)\",\"rgb(7, 5, 58)\",\"rgb(7, 17, 71)\",\"rgb(7, 40, 188)\",\"rgb(7, 107, 221)\",\"rgb(7, 119, 17)\",\"rgb(7, 124, 244)\",\"rgb(7, 142, 237)\",\"rgb(7, 155, 35)\",\"rgb(7, 214, 43)\",\"rgb(10, 38, 117)\",\"rgb(10, 71, 114)\",\"rgb(10, 76, 142)\",\"rgb(10, 104, 249)\",\"rgb(10, 135, 191)\",\"rgb(10, 175, 237)\",\"rgb(10, 216, 91)\",\"rgb(10, 239, 181)\",\"rgb(10, 249, 33)\",\"rgb(12, 7, 58)\",\"rgb(12, 22, 247)\",\"rgb(12, 25, 38)\",\"rgb(12, 43, 102)\",\"rgb(12, 48, 5)\",\"rgb(12, 84, 112)\",\"rgb(12, 122, 150)\",\"rgb(12, 165, 140)\",\"rgb(12, 198, 242)\",\"rgb(12, 214, 155)\",\"rgb(15, 63, 242)\",\"rgb(15, 76, 0)\",\"rgb(15, 96, 142)\",\"rgb(15, 99, 12)\",\"rgb(15, 109, 178)\",\"rgb(15, 117, 71)\",\"rgb(15, 178, 114)\",\"rgb(15, 201, 109)\",\"rgb(17, 7, 99)\",\"rgb(17, 33, 170)\",\"rgb(17, 40, 221)\",\"rgb(17, 73, 73)\",\"rgb(17, 137, 165)\",\"rgb(17, 191, 84)\",\"rgb(17, 209, 99)\",\"rgb(17, 214, 135)\",\"rgb(17, 229, 86)\",\"rgb(17, 232, 196)\",\"rgb(20, 76, 135)\",\"rgb(20, 86, 150)\",\"rgb(20, 94, 76)\",\"rgb(20, 117, 198)\",\"rgb(20, 127, 196)\",\"rgb(20, 188, 63)\",\"rgb(20, 226, 160)\",\"rgb(20, 234, 153)\",\"rgb(22, 7, 201)\",\"rgb(22, 22, 142)\",\"rgb(22, 35, 142)\",\"rgb(22, 58, 216)\",\"rgb(22, 94, 219)\",\"rgb(22, 112, 158)\",\"rgb(22, 122, 76)\",\"rgb(22, 173, 112)\",\"rgb(22, 178, 181)\",\"rgb(22, 221, 119)\",\"rgb(22, 224, 114)\",\"rgb(25, 5, 178)\",\"rgb(25, 15, 84)\",\"rgb(25, 76, 216)\",\"rgb(25, 142, 229)\",\"rgb(25, 242, 191)\",\"rgb(28, 15, 224)\",\"rgb(28, 89, 45)\",\"rgb(28, 102, 2)\",\"rgb(28, 102, 119)\",\"rgb(28, 104, 25)\",\"rgb(28, 119, 89)\",\"rgb(28, 127, 114)\",\"rgb(28, 150, 145)\",\"rgb(28, 178, 51)\",\"rgb(30, 53, 206)\",\"rgb(30, 53, 229)\",\"rgb(30, 63, 61)\",\"rgb(30, 79, 140)\",\"rgb(30, 117, 224)\",\"rgb(30, 122, 239)\",\"rgb(30, 155, 56)\",\"rgb(30, 188, 229)\",\"rgb(30, 201, 2)\",\"rgb(30, 226, 10)\",\"rgb(30, 226, 153)\",\"rgb(30, 247, 183)\",\"rgb(33, 10, 206)\",\"rgb(33, 17, 216)\",\"rgb(33, 28, 247)\",\"rgb(33, 48, 211)\",\"rgb(33, 86, 158)\",\"rgb(33, 119, 158)\",\"rgb(33, 135, 147)\",\"rgb(33, 173, 201)\",\"rgb(33, 214, 96)\",\"rgb(35, 5, 81)\",\"rgb(35, 30, 107)\",\"rgb(35, 114, 216)\",\"rgb(35, 147, 25)\",\"rgb(35, 155, 122)\",\"rgb(35, 163, 214)\",\"rgb(35, 237, 181)\",\"rgb(38, 2, 224)\",\"rgb(38, 38, 76)\",\"rgb(38, 109, 150)\",\"rgb(38, 132, 150)\",\"rgb(38, 137, 181)\",\"rgb(38, 165, 232)\",\"rgb(38, 216, 209)\",\"rgb(38, 221, 196)\",\"rgb(38, 224, 219)\",\"rgb(38, 249, 168)\",\"rgb(38, 249, 191)\",\"rgb(40, 5, 112)\",\"rgb(40, 12, 53)\",\"rgb(40, 33, 249)\",\"rgb(40, 140, 30)\",\"rgb(40, 216, 168)\",\"rgb(43, 130, 221)\",\"rgb(43, 140, 0)\",\"rgb(43, 155, 63)\",\"rgb(43, 155, 229)\",\"rgb(43, 191, 145)\",\"rgb(43, 193, 109)\",\"rgb(43, 244, 45)\",\"rgb(43, 247, 158)\",\"rgb(45, 58, 53)\",\"rgb(45, 61, 76)\",\"rgb(45, 71, 193)\",\"rgb(45, 73, 2)\",\"rgb(45, 81, 142)\",\"rgb(45, 86, 43)\",\"rgb(45, 119, 102)\",\"rgb(45, 153, 38)\",\"rgb(45, 160, 219)\",\"rgb(45, 165, 96)\",\"rgb(45, 168, 249)\",\"rgb(45, 201, 10)\",\"rgb(45, 224, 10)\",\"rgb(45, 232, 153)\",\"rgb(48, 28, 122)\",\"rgb(48, 30, 104)\",\"rgb(48, 79, 56)\",\"rgb(48, 104, 58)\",\"rgb(48, 124, 201)\",\"rgb(48, 155, 33)\",\"rgb(48, 163, 2)\",\"rgb(48, 168, 196)\",\"rgb(48, 216, 112)\",\"rgb(48, 244, 186)\",\"rgb(51, 12, 30)\",\"rgb(51, 17, 193)\",\"rgb(51, 40, 170)\",\"rgb(51, 130, 168)\",\"rgb(51, 137, 150)\",\"rgb(51, 155, 94)\",\"rgb(51, 206, 204)\",\"rgb(51, 219, 58)\",\"rgb(51, 226, 232)\",\"rgb(51, 232, 48)\",\"rgb(53, 15, 35)\",\"rgb(53, 86, 137)\",\"rgb(53, 145, 33)\",\"rgb(56, 5, 249)\",\"rgb(56, 35, 7)\",\"rgb(56, 45, 86)\",\"rgb(56, 66, 84)\",\"rgb(56, 86, 153)\",\"rgb(56, 102, 66)\",\"rgb(56, 104, 112)\",\"rgb(56, 109, 96)\",\"rgb(56, 112, 242)\",\"rgb(56, 119, 122)\",\"rgb(56, 127, 124)\",\"rgb(56, 221, 221)\",\"rgb(56, 249, 61)\",\"rgb(58, 25, 119)\",\"rgb(58, 51, 45)\",\"rgb(58, 96, 188)\",\"rgb(58, 232, 48)\",\"rgb(58, 244, 30)\",\"rgb(58, 247, 132)\",\"rgb(61, 2, 10)\",\"rgb(61, 12, 168)\",\"rgb(61, 40, 33)\",\"rgb(61, 71, 104)\",\"rgb(61, 84, 66)\",\"rgb(61, 114, 107)\",\"rgb(61, 135, 178)\",\"rgb(61, 178, 204)\",\"rgb(63, 48, 122)\",\"rgb(63, 96, 53)\",\"rgb(63, 99, 168)\",\"rgb(63, 153, 173)\",\"rgb(63, 173, 45)\",\"rgb(63, 188, 15)\",\"rgb(63, 191, 109)\",\"rgb(66, 5, 104)\",\"rgb(66, 5, 252)\",\"rgb(68, 22, 244)\",\"rgb(68, 63, 10)\",\"rgb(68, 66, 5)\",\"rgb(68, 119, 15)\",\"rgb(68, 150, 173)\",\"rgb(68, 170, 10)\",\"rgb(68, 175, 249)\",\"rgb(68, 209, 193)\",\"rgb(71, 10, 40)\",\"rgb(71, 25, 193)\",\"rgb(71, 30, 5)\",\"rgb(71, 66, 165)\",\"rgb(71, 73, 66)\",\"rgb(71, 145, 38)\",\"rgb(71, 170, 122)\",\"rgb(71, 175, 7)\",\"rgb(71, 196, 170)\",\"rgb(71, 209, 198)\",\"rgb(71, 221, 94)\",\"rgb(71, 234, 196)\",\"rgb(71, 252, 12)\",\"rgb(73, 28, 145)\",\"rgb(73, 40, 117)\",\"rgb(73, 56, 58)\",\"rgb(73, 71, 229)\",\"rgb(73, 79, 193)\",\"rgb(73, 86, 61)\",\"rgb(73, 89, 114)\",\"rgb(73, 122, 155)\",\"rgb(73, 127, 25)\",\"rgb(73, 211, 168)\",\"rgb(73, 211, 191)\",\"rgb(73, 216, 232)\",\"rgb(73, 247, 132)\",\"rgb(76, 2, 28)\",\"rgb(76, 10, 84)\",\"rgb(76, 20, 66)\",\"rgb(76, 109, 186)\",\"rgb(76, 112, 86)\",\"rgb(76, 140, 68)\",\"rgb(76, 175, 132)\",\"rgb(76, 178, 7)\",\"rgb(76, 198, 211)\",\"rgb(76, 204, 196)\",\"rgb(76, 232, 79)\",\"rgb(79, 5, 237)\",\"rgb(79, 7, 155)\",\"rgb(79, 17, 117)\",\"rgb(79, 17, 206)\",\"rgb(79, 22, 244)\",\"rgb(79, 56, 38)\",\"rgb(79, 81, 112)\",\"rgb(79, 94, 22)\",\"rgb(79, 127, 191)\",\"rgb(79, 135, 112)\",\"rgb(79, 147, 130)\",\"rgb(79, 163, 114)\",\"rgb(79, 163, 209)\",\"rgb(79, 170, 188)\",\"rgb(79, 196, 142)\",\"rgb(79, 198, 22)\",\"rgb(81, 7, 56)\",\"rgb(81, 25, 153)\",\"rgb(81, 56, 96)\",\"rgb(81, 61, 232)\",\"rgb(81, 89, 43)\",\"rgb(81, 140, 168)\",\"rgb(81, 145, 226)\",\"rgb(81, 150, 117)\",\"rgb(81, 181, 30)\",\"rgb(81, 181, 112)\",\"rgb(81, 193, 244)\",\"rgb(81, 226, 188)\",\"rgb(84, 7, 237)\",\"rgb(84, 38, 135)\",\"rgb(84, 48, 153)\",\"rgb(84, 56, 206)\",\"rgb(84, 86, 104)\",\"rgb(84, 96, 214)\",\"rgb(84, 112, 234)\",\"rgb(84, 140, 68)\",\"rgb(84, 142, 12)\",\"rgb(84, 165, 153)\",\"rgb(84, 168, 232)\",\"rgb(84, 181, 130)\",\"rgb(84, 193, 122)\",\"rgb(84, 204, 252)\",\"rgb(84, 211, 20)\",\"rgb(84, 214, 119)\",\"rgb(84, 239, 96)\",\"rgb(86, 5, 142)\",\"rgb(86, 38, 66)\",\"rgb(86, 61, 244)\",\"rgb(86, 81, 191)\",\"rgb(86, 102, 229)\",\"rgb(86, 107, 94)\",\"rgb(86, 165, 173)\",\"rgb(86, 247, 198)\",\"rgb(89, 2, 224)\",\"rgb(89, 33, 48)\",\"rgb(89, 33, 124)\",\"rgb(89, 35, 109)\",\"rgb(89, 91, 198)\",\"rgb(89, 96, 196)\",\"rgb(89, 117, 229)\",\"rgb(89, 140, 201)\",\"rgb(89, 147, 183)\",\"rgb(89, 150, 204)\",\"rgb(89, 150, 249)\",\"rgb(89, 168, 35)\",\"rgb(89, 188, 150)\",\"rgb(89, 237, 232)\",\"rgb(91, 5, 237)\",\"rgb(91, 12, 45)\",\"rgb(91, 15, 102)\",\"rgb(91, 25, 35)\",\"rgb(91, 66, 204)\",\"rgb(91, 94, 216)\",\"rgb(91, 96, 132)\",\"rgb(91, 107, 53)\",\"rgb(91, 122, 234)\",\"rgb(91, 127, 196)\",\"rgb(91, 142, 112)\",\"rgb(91, 147, 122)\",\"rgb(91, 178, 163)\",\"rgb(91, 181, 211)\",\"rgb(91, 206, 132)\",\"rgb(91, 209, 114)\",\"rgb(91, 214, 170)\",\"rgb(91, 229, 234)\",\"rgb(91, 234, 219)\",\"rgb(94, 5, 204)\",\"rgb(94, 63, 56)\",\"rgb(94, 68, 38)\",\"rgb(94, 96, 117)\",\"rgb(94, 119, 117)\",\"rgb(94, 119, 119)\",\"rgb(94, 127, 242)\",\"rgb(94, 153, 135)\",\"rgb(94, 158, 130)\",\"rgb(94, 183, 109)\",\"rgb(94, 209, 216)\",\"rgb(94, 214, 79)\",\"rgb(96, 17, 107)\",\"rgb(96, 30, 40)\",\"rgb(96, 45, 10)\",\"rgb(96, 51, 107)\",\"rgb(96, 79, 48)\",\"rgb(96, 99, 71)\",\"rgb(96, 112, 211)\",\"rgb(96, 114, 76)\",\"rgb(96, 135, 15)\",\"rgb(96, 153, 244)\",\"rgb(96, 165, 158)\",\"rgb(96, 173, 51)\",\"rgb(96, 181, 104)\",\"rgb(96, 196, 102)\",\"rgb(96, 239, 51)\",\"rgb(99, 17, 211)\",\"rgb(99, 61, 40)\",\"rgb(99, 94, 109)\",\"rgb(99, 181, 122)\",\"rgb(99, 219, 0)\",\"rgb(99, 229, 155)\",\"rgb(99, 229, 198)\",\"rgb(102, 10, 216)\",\"rgb(102, 17, 86)\",\"rgb(102, 35, 206)\",\"rgb(102, 76, 178)\",\"rgb(102, 130, 188)\",\"rgb(102, 150, 25)\",\"rgb(102, 160, 114)\",\"rgb(102, 209, 155)\",\"rgb(104, 43, 104)\",\"rgb(104, 71, 104)\",\"rgb(104, 132, 63)\",\"rgb(104, 234, 234)\",\"rgb(107, 20, 249)\",\"rgb(107, 33, 35)\",\"rgb(107, 35, 71)\",\"rgb(107, 51, 252)\",\"rgb(107, 86, 48)\",\"rgb(107, 104, 122)\",\"rgb(107, 122, 5)\",\"rgb(107, 145, 196)\",\"rgb(107, 224, 214)\",\"rgb(107, 242, 224)\",\"rgb(107, 244, 173)\",\"rgb(109, 12, 165)\",\"rgb(109, 43, 48)\",\"rgb(109, 79, 242)\",\"rgb(109, 91, 244)\",\"rgb(109, 155, 165)\",\"rgb(109, 173, 112)\",\"rgb(109, 188, 216)\",\"rgb(109, 193, 91)\",\"rgb(112, 25, 38)\",\"rgb(112, 86, 56)\",\"rgb(112, 94, 178)\",\"rgb(112, 102, 209)\",\"rgb(112, 114, 209)\",\"rgb(112, 117, 183)\",\"rgb(112, 124, 38)\",\"rgb(112, 153, 163)\",\"rgb(112, 163, 196)\",\"rgb(112, 168, 20)\",\"rgb(112, 201, 45)\",\"rgb(112, 211, 25)\",\"rgb(112, 234, 61)\",\"rgb(112, 239, 211)\",\"rgb(114, 22, 22)\",\"rgb(114, 25, 43)\",\"rgb(114, 45, 102)\",\"rgb(114, 51, 242)\",\"rgb(114, 73, 237)\",\"rgb(114, 89, 114)\",\"rgb(114, 94, 140)\",\"rgb(114, 99, 237)\",\"rgb(114, 122, 71)\",\"rgb(114, 140, 173)\",\"rgb(114, 181, 38)\",\"rgb(114, 188, 186)\",\"rgb(114, 214, 242)\",\"rgb(114, 224, 196)\",\"rgb(114, 247, 232)\",\"rgb(117, 2, 22)\",\"rgb(117, 2, 76)\",\"rgb(117, 20, 99)\",\"rgb(117, 20, 147)\",\"rgb(117, 22, 20)\",\"rgb(117, 135, 198)\",\"rgb(117, 186, 89)\",\"rgb(117, 191, 153)\",\"rgb(117, 204, 17)\",\"rgb(117, 249, 0)\",\"rgb(117, 252, 232)\",\"rgb(119, 12, 249)\",\"rgb(119, 28, 201)\",\"rgb(119, 30, 232)\",\"rgb(119, 132, 173)\",\"rgb(119, 137, 17)\",\"rgb(119, 158, 193)\",\"rgb(119, 170, 186)\",\"rgb(119, 224, 40)\",\"rgb(119, 232, 239)\",\"rgb(119, 239, 145)\",\"rgb(122, 30, 25)\",\"rgb(122, 48, 102)\",\"rgb(122, 51, 7)\",\"rgb(122, 61, 191)\",\"rgb(122, 104, 219)\",\"rgb(122, 181, 102)\",\"rgb(122, 244, 102)\",\"rgb(122, 247, 30)\",\"rgb(122, 249, 237)\",\"rgb(124, 35, 79)\",\"rgb(124, 61, 68)\",\"rgb(124, 79, 196)\",\"rgb(124, 140, 124)\",\"rgb(124, 153, 249)\",\"rgb(124, 163, 119)\",\"rgb(124, 198, 99)\",\"rgb(124, 252, 244)\",\"rgb(127, 20, 107)\",\"rgb(127, 43, 204)\",\"rgb(127, 66, 0)\",\"rgb(127, 76, 15)\",\"rgb(127, 76, 96)\",\"rgb(127, 117, 45)\",\"rgb(127, 137, 178)\",\"rgb(127, 153, 137)\",\"rgb(127, 155, 173)\",\"rgb(127, 175, 135)\",\"rgb(127, 214, 183)\",\"rgb(127, 224, 211)\",\"rgb(130, 28, 89)\",\"rgb(130, 45, 51)\",\"rgb(130, 45, 96)\",\"rgb(130, 99, 51)\",\"rgb(130, 160, 122)\",\"rgb(130, 168, 249)\",\"rgb(130, 175, 173)\",\"rgb(130, 188, 53)\",\"rgb(130, 237, 186)\",\"rgb(132, 17, 247)\",\"rgb(132, 35, 45)\",\"rgb(132, 56, 28)\",\"rgb(132, 66, 99)\",\"rgb(132, 94, 221)\",\"rgb(132, 112, 20)\",\"rgb(132, 201, 201)\",\"rgb(132, 229, 112)\",\"rgb(135, 25, 186)\",\"rgb(135, 38, 137)\",\"rgb(135, 76, 99)\",\"rgb(135, 112, 158)\",\"rgb(135, 114, 94)\",\"rgb(135, 206, 30)\",\"rgb(135, 216, 201)\",\"rgb(135, 234, 175)\",\"rgb(137, 15, 40)\",\"rgb(137, 38, 211)\",\"rgb(137, 119, 122)\",\"rgb(137, 127, 244)\",\"rgb(137, 137, 43)\",\"rgb(137, 150, 142)\",\"rgb(137, 153, 40)\",\"rgb(137, 153, 91)\",\"rgb(137, 158, 63)\",\"rgb(137, 163, 196)\",\"rgb(137, 206, 147)\",\"rgb(137, 214, 232)\",\"rgb(137, 234, 104)\",\"rgb(137, 239, 193)\",\"rgb(137, 249, 45)\",\"rgb(140, 51, 237)\",\"rgb(140, 76, 10)\",\"rgb(140, 86, 140)\",\"rgb(140, 89, 84)\",\"rgb(140, 122, 33)\",\"rgb(140, 137, 214)\",\"rgb(140, 140, 119)\",\"rgb(140, 150, 12)\",\"rgb(140, 160, 178)\",\"rgb(140, 229, 198)\",\"rgb(140, 242, 63)\",\"rgb(142, 43, 188)\",\"rgb(142, 51, 224)\",\"rgb(142, 89, 191)\",\"rgb(142, 107, 2)\",\"rgb(142, 112, 188)\",\"rgb(142, 147, 170)\",\"rgb(142, 165, 56)\",\"rgb(142, 175, 51)\",\"rgb(142, 181, 89)\",\"rgb(142, 193, 142)\",\"rgb(142, 198, 22)\",\"rgb(142, 211, 48)\",\"rgb(142, 232, 244)\",\"rgb(142, 239, 145)\",\"rgb(145, 2, 168)\",\"rgb(145, 81, 178)\",\"rgb(145, 124, 73)\",\"rgb(145, 150, 89)\",\"rgb(145, 165, 10)\",\"rgb(145, 173, 15)\",\"rgb(145, 188, 196)\",\"rgb(145, 221, 102)\",\"rgb(147, 53, 53)\",\"rgb(147, 66, 140)\",\"rgb(147, 79, 5)\",\"rgb(147, 132, 43)\",\"rgb(147, 140, 109)\",\"rgb(147, 158, 145)\",\"rgb(147, 209, 12)\",\"rgb(147, 237, 140)\",\"rgb(147, 239, 142)\",\"rgb(147, 244, 247)\",\"rgb(150, 10, 35)\",\"rgb(150, 73, 237)\",\"rgb(150, 104, 142)\",\"rgb(150, 132, 137)\",\"rgb(150, 173, 147)\",\"rgb(150, 183, 17)\",\"rgb(150, 186, 96)\",\"rgb(150, 204, 71)\",\"rgb(150, 216, 137)\",\"rgb(153, 12, 66)\",\"rgb(153, 22, 181)\",\"rgb(153, 48, 94)\",\"rgb(153, 122, 53)\",\"rgb(153, 127, 71)\",\"rgb(153, 145, 12)\",\"rgb(153, 181, 76)\",\"rgb(153, 201, 216)\",\"rgb(155, 2, 48)\",\"rgb(155, 5, 137)\",\"rgb(155, 114, 226)\",\"rgb(155, 117, 242)\",\"rgb(155, 214, 140)\",\"rgb(155, 216, 124)\",\"rgb(155, 229, 61)\",\"rgb(155, 237, 153)\",\"rgb(155, 237, 163)\",\"rgb(155, 247, 7)\",\"rgb(158, 56, 135)\",\"rgb(158, 96, 186)\",\"rgb(158, 122, 186)\",\"rgb(158, 147, 196)\",\"rgb(158, 153, 109)\",\"rgb(158, 214, 53)\",\"rgb(160, 22, 86)\",\"rgb(160, 33, 56)\",\"rgb(160, 68, 224)\",\"rgb(160, 122, 237)\",\"rgb(160, 163, 99)\",\"rgb(160, 229, 53)\",\"rgb(163, 12, 127)\",\"rgb(163, 76, 201)\",\"rgb(163, 86, 168)\",\"rgb(163, 89, 76)\",\"rgb(163, 127, 226)\",\"rgb(163, 150, 175)\",\"rgb(163, 158, 150)\",\"rgb(163, 178, 178)\",\"rgb(163, 209, 112)\",\"rgb(165, 30, 20)\",\"rgb(165, 48, 119)\",\"rgb(165, 56, 43)\",\"rgb(165, 73, 96)\",\"rgb(165, 186, 86)\",\"rgb(165, 206, 193)\",\"rgb(165, 214, 147)\",\"rgb(165, 219, 242)\",\"rgb(165, 237, 237)\",\"rgb(165, 247, 102)\",\"rgb(168, 2, 38)\",\"rgb(168, 51, 135)\",\"rgb(168, 86, 173)\",\"rgb(168, 137, 117)\",\"rgb(168, 150, 229)\",\"rgb(168, 209, 94)\",\"rgb(168, 209, 211)\",\"rgb(168, 232, 244)\",\"rgb(170, 38, 43)\",\"rgb(170, 73, 142)\",\"rgb(170, 81, 165)\",\"rgb(170, 112, 201)\",\"rgb(170, 117, 165)\",\"rgb(170, 163, 188)\",\"rgb(170, 170, 40)\",\"rgb(170, 204, 33)\",\"rgb(170, 226, 196)\",\"rgb(170, 232, 142)\",\"rgb(170, 237, 48)\",\"rgb(170, 242, 140)\",\"rgb(173, 20, 48)\",\"rgb(173, 38, 81)\",\"rgb(173, 43, 73)\",\"rgb(173, 45, 48)\",\"rgb(173, 76, 109)\",\"rgb(173, 99, 229)\",\"rgb(173, 102, 155)\",\"rgb(173, 130, 63)\",\"rgb(173, 135, 7)\",\"rgb(173, 137, 2)\",\"rgb(173, 142, 102)\",\"rgb(173, 221, 30)\",\"rgb(173, 234, 247)\",\"rgb(173, 239, 237)\",\"rgb(175, 0, 150)\",\"rgb(175, 25, 247)\",\"rgb(175, 38, 33)\",\"rgb(175, 40, 99)\",\"rgb(175, 51, 170)\",\"rgb(175, 53, 181)\",\"rgb(175, 91, 15)\",\"rgb(175, 132, 119)\",\"rgb(175, 140, 186)\",\"rgb(175, 219, 216)\",\"rgb(175, 224, 119)\",\"rgb(178, 20, 71)\",\"rgb(178, 22, 124)\",\"rgb(178, 33, 15)\",\"rgb(178, 102, 140)\",\"rgb(178, 112, 91)\",\"rgb(178, 124, 86)\",\"rgb(178, 137, 17)\",\"rgb(178, 137, 84)\",\"rgb(178, 183, 22)\",\"rgb(178, 196, 91)\",\"rgb(178, 216, 237)\",\"rgb(178, 221, 71)\",\"rgb(181, 20, 142)\",\"rgb(181, 89, 119)\",\"rgb(181, 102, 127)\",\"rgb(181, 132, 91)\",\"rgb(181, 181, 244)\",\"rgb(183, 66, 204)\",\"rgb(183, 68, 132)\",\"rgb(183, 71, 127)\",\"rgb(183, 160, 209)\",\"rgb(183, 242, 132)\",\"rgb(183, 249, 53)\",\"rgb(186, 5, 30)\",\"rgb(186, 25, 102)\",\"rgb(186, 56, 68)\",\"rgb(186, 109, 96)\",\"rgb(186, 127, 79)\",\"rgb(186, 158, 249)\",\"rgb(186, 173, 122)\",\"rgb(186, 211, 91)\",\"rgb(188, 0, 38)\",\"rgb(188, 20, 22)\",\"rgb(188, 71, 25)\",\"rgb(188, 76, 226)\",\"rgb(188, 102, 22)\",\"rgb(188, 102, 58)\",\"rgb(188, 104, 17)\",\"rgb(188, 107, 102)\",\"rgb(188, 130, 193)\",\"rgb(188, 142, 239)\",\"rgb(188, 150, 155)\",\"rgb(188, 160, 191)\",\"rgb(188, 165, 147)\",\"rgb(188, 232, 71)\",\"rgb(188, 232, 135)\",\"rgb(191, 43, 2)\",\"rgb(191, 48, 61)\",\"rgb(191, 79, 45)\",\"rgb(191, 102, 58)\",\"rgb(191, 124, 12)\",\"rgb(191, 160, 247)\",\"rgb(191, 201, 181)\",\"rgb(191, 204, 0)\",\"rgb(191, 229, 130)\",\"rgb(193, 10, 249)\",\"rgb(193, 114, 181)\",\"rgb(193, 124, 28)\",\"rgb(193, 186, 22)\",\"rgb(193, 186, 61)\",\"rgb(193, 193, 61)\",\"rgb(193, 211, 242)\",\"rgb(196, 7, 117)\",\"rgb(196, 81, 209)\",\"rgb(196, 89, 102)\",\"rgb(196, 91, 28)\",\"rgb(196, 114, 33)\",\"rgb(196, 119, 107)\",\"rgb(196, 147, 119)\",\"rgb(196, 160, 158)\",\"rgb(196, 193, 160)\",\"rgb(196, 196, 96)\",\"rgb(196, 252, 73)\",\"rgb(198, 15, 117)\",\"rgb(198, 15, 165)\",\"rgb(198, 45, 226)\",\"rgb(198, 45, 244)\",\"rgb(198, 73, 5)\",\"rgb(198, 89, 81)\",\"rgb(198, 91, 0)\",\"rgb(198, 99, 117)\",\"rgb(198, 112, 66)\",\"rgb(198, 155, 224)\",\"rgb(198, 209, 73)\",\"rgb(198, 219, 81)\",\"rgb(201, 7, 7)\",\"rgb(201, 22, 96)\",\"rgb(201, 38, 183)\",\"rgb(201, 119, 181)\",\"rgb(201, 155, 117)\",\"rgb(201, 160, 229)\",\"rgb(201, 186, 30)\",\"rgb(201, 186, 132)\",\"rgb(201, 219, 15)\",\"rgb(204, 12, 12)\",\"rgb(204, 20, 58)\",\"rgb(204, 61, 204)\",\"rgb(204, 94, 109)\",\"rgb(204, 114, 76)\",\"rgb(204, 114, 226)\",\"rgb(204, 170, 229)\",\"rgb(204, 209, 7)\",\"rgb(204, 221, 119)\",\"rgb(204, 239, 153)\",\"rgb(206, 51, 158)\",\"rgb(206, 84, 160)\",\"rgb(206, 94, 2)\",\"rgb(206, 107, 109)\",\"rgb(206, 109, 73)\",\"rgb(206, 198, 140)\",\"rgb(206, 209, 127)\",\"rgb(209, 22, 12)\",\"rgb(209, 84, 168)\",\"rgb(209, 84, 170)\",\"rgb(209, 104, 81)\",\"rgb(209, 137, 150)\",\"rgb(209, 181, 89)\",\"rgb(209, 188, 30)\",\"rgb(209, 188, 249)\",\"rgb(209, 193, 122)\",\"rgb(209, 198, 150)\",\"rgb(209, 234, 71)\",\"rgb(211, 25, 61)\",\"rgb(211, 48, 201)\",\"rgb(211, 51, 25)\",\"rgb(211, 66, 20)\",\"rgb(211, 71, 89)\",\"rgb(211, 99, 81)\",\"rgb(211, 104, 209)\",\"rgb(211, 107, 104)\",\"rgb(211, 117, 153)\",\"rgb(211, 122, 124)\",\"rgb(211, 127, 12)\",\"rgb(211, 137, 68)\",\"rgb(211, 137, 84)\",\"rgb(211, 142, 76)\",\"rgb(211, 183, 28)\",\"rgb(211, 191, 122)\",\"rgb(211, 198, 147)\",\"rgb(211, 204, 45)\",\"rgb(211, 244, 58)\",\"rgb(214, 66, 68)\",\"rgb(214, 84, 96)\",\"rgb(214, 127, 104)\",\"rgb(214, 168, 66)\",\"rgb(214, 239, 96)\",\"rgb(216, 22, 17)\",\"rgb(216, 56, 211)\",\"rgb(216, 99, 160)\",\"rgb(216, 107, 204)\",\"rgb(216, 117, 99)\",\"rgb(216, 130, 94)\",\"rgb(216, 142, 135)\",\"rgb(216, 158, 40)\",\"rgb(216, 191, 142)\",\"rgb(216, 232, 86)\",\"rgb(219, 40, 71)\",\"rgb(219, 66, 124)\",\"rgb(219, 84, 89)\",\"rgb(219, 127, 196)\",\"rgb(219, 147, 20)\",\"rgb(219, 150, 219)\",\"rgb(219, 160, 112)\",\"rgb(219, 170, 242)\",\"rgb(219, 183, 214)\",\"rgb(219, 206, 145)\",\"rgb(219, 206, 196)\",\"rgb(219, 216, 173)\",\"rgb(219, 232, 237)\",\"rgb(219, 237, 153)\",\"rgb(219, 249, 186)\",\"rgb(221, 2, 153)\",\"rgb(221, 68, 224)\",\"rgb(221, 76, 33)\",\"rgb(221, 81, 48)\",\"rgb(221, 117, 216)\",\"rgb(221, 124, 163)\",\"rgb(221, 153, 89)\",\"rgb(221, 178, 56)\",\"rgb(224, 48, 43)\",\"rgb(224, 135, 119)\",\"rgb(224, 168, 196)\",\"rgb(224, 168, 239)\",\"rgb(224, 188, 22)\",\"rgb(224, 206, 122)\",\"rgb(224, 239, 226)\",\"rgb(226, 17, 186)\",\"rgb(226, 25, 232)\",\"rgb(226, 30, 173)\",\"rgb(226, 35, 51)\",\"rgb(226, 63, 76)\",\"rgb(226, 68, 109)\",\"rgb(226, 73, 158)\",\"rgb(226, 102, 112)\",\"rgb(226, 119, 71)\",\"rgb(226, 124, 0)\",\"rgb(226, 198, 247)\",\"rgb(226, 204, 89)\",\"rgb(226, 224, 153)\",\"rgb(229, 48, 71)\",\"rgb(229, 58, 33)\",\"rgb(229, 63, 28)\",\"rgb(229, 79, 107)\",\"rgb(229, 79, 196)\",\"rgb(229, 102, 191)\",\"rgb(229, 104, 71)\",\"rgb(229, 107, 130)\",\"rgb(229, 155, 204)\",\"rgb(229, 198, 193)\",\"rgb(229, 252, 137)\",\"rgb(232, 5, 109)\",\"rgb(232, 25, 191)\",\"rgb(232, 40, 91)\",\"rgb(232, 53, 147)\",\"rgb(232, 94, 242)\",\"rgb(232, 109, 53)\",\"rgb(232, 112, 226)\",\"rgb(232, 130, 204)\",\"rgb(232, 232, 22)\",\"rgb(232, 232, 204)\",\"rgb(232, 249, 232)\",\"rgb(234, 12, 5)\",\"rgb(234, 30, 198)\",\"rgb(234, 53, 22)\",\"rgb(234, 53, 30)\",\"rgb(234, 56, 91)\",\"rgb(234, 71, 0)\",\"rgb(234, 86, 165)\",\"rgb(234, 135, 221)\",\"rgb(234, 160, 0)\",\"rgb(234, 178, 181)\",\"rgb(234, 181, 43)\",\"rgb(234, 181, 119)\",\"rgb(234, 193, 51)\",\"rgb(237, 28, 158)\",\"rgb(237, 45, 51)\",\"rgb(237, 71, 247)\",\"rgb(237, 79, 5)\",\"rgb(237, 122, 216)\",\"rgb(237, 127, 181)\",\"rgb(237, 145, 224)\",\"rgb(237, 204, 84)\",\"rgb(239, 51, 5)\",\"rgb(239, 71, 56)\",\"rgb(239, 76, 7)\",\"rgb(239, 76, 234)\",\"rgb(239, 84, 142)\",\"rgb(239, 130, 58)\",\"rgb(239, 130, 130)\",\"rgb(239, 168, 150)\",\"rgb(239, 178, 0)\",\"rgb(239, 183, 201)\",\"rgb(239, 229, 40)\",\"rgb(239, 234, 81)\",\"rgb(239, 247, 193)\",\"rgb(242, 51, 124)\",\"rgb(242, 61, 117)\",\"rgb(242, 94, 96)\",\"rgb(242, 112, 135)\",\"rgb(242, 114, 211)\",\"rgb(242, 132, 56)\",\"rgb(242, 135, 137)\",\"rgb(242, 140, 204)\",\"rgb(242, 142, 186)\",\"rgb(242, 160, 209)\",\"rgb(242, 234, 45)\",\"rgb(244, 53, 221)\",\"rgb(244, 68, 109)\",\"rgb(244, 81, 79)\",\"rgb(244, 107, 43)\",\"rgb(244, 107, 142)\",\"rgb(244, 196, 0)\",\"rgb(244, 198, 206)\",\"rgb(244, 198, 211)\",\"rgb(244, 247, 168)\",\"rgb(247, 20, 89)\",\"rgb(247, 25, 252)\",\"rgb(247, 84, 244)\",\"rgb(247, 94, 68)\",\"rgb(247, 104, 178)\",\"rgb(247, 112, 237)\",\"rgb(247, 142, 81)\",\"rgb(247, 155, 22)\",\"rgb(247, 158, 2)\",\"rgb(247, 226, 99)\",\"rgb(247, 234, 10)\",\"rgb(249, 15, 28)\",\"rgb(249, 43, 73)\",\"rgb(249, 61, 196)\",\"rgb(249, 109, 40)\",\"rgb(249, 155, 17)\",\"rgb(249, 163, 48)\",\"rgb(249, 201, 91)\",\"rgb(249, 214, 73)\",\"rgb(249, 214, 81)\",\"rgb(249, 234, 45)\",\"rgb(252, 0, 196)\",\"rgb(252, 2, 181)\",\"rgb(252, 48, 96)\",\"rgb(252, 73, 89)\",\"rgb(252, 73, 201)\",\"rgb(252, 79, 63)\",\"rgb(252, 109, 86)\",\"rgb(252, 109, 191)\",\"rgb(252, 127, 112)\",\"rgb(252, 145, 247)\",\"rgb(252, 158, 130)\",\"rgb(252, 175, 127)\",\"rgb(252, 204, 2)\",\"rgb(252, 221, 25)\",\"rgb(252, 229, 86)\",\"rgb(252, 247, 170)\"],\"opacity\":0.8,\"size\":5},\"mode\":\"markers\",\"x\":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,26,26,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,41,41,41,41,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,63,63,63,63,63,63,64,64,64,64,64,64,64,64,64,65,65,65,65,65,65,65,65,65,65,66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,71,71,71,71,71,72,72,72,72,72,72,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,84,84,84,84,84,85,85,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,91,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,93,93,93,93,94,94,94,94,94,94,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,96,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],\"y\":[2,23,29,33,52,60,63,70,78,78,78,8,15,22,61,64,73,9,9,13,58,74,81,82,2,7,16,42,47,49,56,61,84,15,28,30,41,53,69,85,94,98,3,9,10,17,19,33,48,65,78,84,25,30,38,39,43,46,70,79,3,13,16,29,54,75,82,84,90,91,30,34,37,46,50,74,89,92,3,9,14,23,37,44,48,68,70,87,88,2,6,30,56,95,6,35,40,40,41,47,50,59,70,21,21,25,31,46,48,61,74,79,89,89,97,4,7,11,19,34,47,53,68,84,2,12,45,58,61,64,93,1,15,43,52,54,65,85,87,88,98,98,2,5,13,55,85,51,55,61,61,75,76,96,97,23,24,28,29,32,34,47,60,63,65,66,79,88,91,11,12,31,41,49,61,64,66,85,96,5,7,16,51,54,61,81,86,89,91,6,34,57,2,14,18,26,34,40,41,43,44,47,50,87,98,10,20,38,91,96,97,1,5,16,28,33,45,53,70,19,38,39,60,68,74,75,2,2,9,25,26,47,59,67,69,82,4,10,12,26,29,57,67,69,77,82,87,92,99,11,16,22,28,31,34,35,48,50,83,83,85,97,1,4,8,43,44,55,69,70,78,80,91,2,3,7,7,9,22,32,37,50,53,58,64,64,67,77,78,3,10,22,24,35,55,57,59,71,71,76,89,3,15,19,22,34,38,44,55,56,65,66,71,76,80,83,84,94,2,15,24,32,40,42,65,97,1,13,13,14,36,38,46,55,58,59,59,66,74,93,2,5,6,10,26,37,38,42,48,50,56,58,70,71,81,82,84,90,92,2,25,27,38,47,47,50,60,62,72,82,84,7,12,18,20,31,39,44,45,53,60,65,68,71,77,94,7,24,37,71,86,90,90,4,7,14,30,51,59,63,82,17,28,52,92,8,13,14,20,34,41,48,57,88,95,96,5,17,31,36,61,68,74,76,10,34,37,40,45,46,49,60,64,66,79,83,92,94,9,10,18,20,29,35,37,39,48,55,71,74,84,88,97,1,1,8,8,9,53,73,75,80,98,99,5,11,12,52,54,62,67,88,91,94,12,19,20,24,41,71,96,97,98,14,24,31,55,60,64,78,99,8,17,26,30,30,46,54,60,61,69,84,88,11,18,18,39,63,66,69,74,93,7,14,22,26,37,44,79,90,10,15,30,44,45,81,85,92,6,15,47,50,54,59,60,60,62,64,81,84,92,94,98,20,30,34,35,48,54,55,59,63,90,95,17,20,35,42,44,58,65,69,71,76,78,83,91,94,1,32,49,59,65,68,74,87,21,26,31,52,55,62,82,93,94,96,4,29,41,52,68,72,73,80,85,5,9,19,48,50,57,71,79,1,2,45,46,84,85,90,93,93,97,22,38,48,58,60,84,9,13,27,48,64,90,5,30,34,35,50,59,62,70,82,12,19,22,29,73,81,84,86,93,97,1,20,34,54,59,82,82,91,15,29,32,44,46,64,67,80,89,91,93,95,8,15,17,18,30,39,40,51,53,54,56,87,92,94,0,10,15,16,20,21,36,52,55,86,88,8,9,13,40,44,49,54,54,72,77,85,87,8,35,40,52,71,26,27,28,63,95,98,2,10,22,43,50,62,68,83,0,8,28,30,40,40,41,42,51,56,59,63,65,91,91,17,19,31,40,49,63,79,80,90,4,45,49,73,73,76,83,3,32,35,36,45,47,58,63,76,77,99,6,6,18,18,29,35,36,39,44,61,82,86,3,9,15,47,61,63,73,73,86,5,8,24,37,45,45,67,82,87,94,20,33,37,42,43,78,82,9,33,33,41,54,71,74,74,76,78,92,10,19,20,26,28,39,41,42,46,48,50,54,54,56,72,75,78,80,96,26,33,50,66,94,9,22,39,42,46,51,56,62,75,91,16,26,33,50,58,59,63,67,72,81,81,85,91,93,98,1,27,30,32,46,49,60,70,19,53,66,66,74,81,94,7,10,12,14,25,27,29,40,47,49,78,80,88,19,23,25,31,31,40,41,42,61,78,99,2,10,16,21,37,43,44,51,91,91,98,5,12,21,21,22,28,34,53,63,70,71,71,76,11,18,28,31,48,50,57,80,20,28,30,30,33,51,51,66,70,72,90,92,97,20,24,37,44,45,52,53,55,56,63,92,21,27,32,42,42,77,78,78,97,8,10,33,37,41,44,56,61,62,89,92,6,17,24,43,61,64,79,84,84,92,0,1,19,29,29,31,43,43,50,57,62,69,80,87,90,97],\"z\":[56,95,99,86,75,45,19,21,27,41,59,20,11,18,77,7,9,2,32,93,18,57,83,65,23,28,74,87,7,96,93,14,17,46,45,56,98,75,93,36,71,13,23,97,15,40,2,44,59,55,95,61,95,0,56,5,70,28,45,43,39,67,87,29,65,33,39,53,34,77,53,59,30,78,77,25,63,60,79,56,56,85,86,62,30,44,71,47,45,70,33,85,90,75,88,18,1,47,10,35,45,57,20,81,90,24,55,88,94,22,90,1,4,60,72,81,85,97,83,62,62,58,79,38,32,42,85,10,48,84,71,88,30,59,59,71,91,82,77,86,66,75,44,21,98,12,66,87,0,25,90,57,43,18,62,21,30,76,1,56,17,40,15,86,38,98,4,4,60,48,41,22,23,79,13,1,77,44,73,12,76,67,66,59,37,80,23,91,19,14,54,13,98,3,34,33,60,26,44,38,95,48,49,87,24,47,18,74,19,12,52,4,66,13,41,26,42,70,80,48,21,66,68,18,6,43,41,99,96,4,2,6,68,4,98,76,16,76,2,65,26,15,48,3,67,78,37,77,5,57,46,23,90,76,24,45,61,10,66,75,91,52,11,33,26,73,34,27,52,3,83,77,31,93,61,46,81,96,15,44,9,75,44,51,45,82,74,56,9,22,60,38,91,17,66,89,46,12,44,96,74,93,53,60,81,41,84,92,27,5,60,91,51,48,99,8,47,38,56,26,96,75,90,37,68,78,88,19,49,43,78,77,90,79,72,80,98,14,59,91,93,18,40,14,80,85,52,21,92,77,44,48,64,83,52,45,67,92,86,80,22,15,46,46,47,95,53,51,43,85,31,42,16,4,42,19,28,83,30,6,96,62,20,41,40,20,83,16,43,48,0,61,78,85,34,81,70,74,10,45,61,41,41,25,92,98,14,28,99,19,48,2,77,84,88,68,65,19,95,96,65,44,85,36,15,22,70,82,82,72,15,64,77,8,18,10,24,83,9,17,40,95,93,45,55,93,28,68,15,73,95,77,91,9,30,39,58,8,78,35,60,7,0,91,98,79,91,68,7,76,73,16,94,57,10,40,3,75,86,40,40,12,93,31,27,77,49,98,47,39,96,42,80,0,6,38,18,70,54,68,53,72,83,35,20,38,20,48,98,68,21,73,97,18,11,39,87,8,79,44,73,54,39,62,37,12,79,69,16,83,48,96,17,56,16,36,25,77,58,91,41,76,18,93,4,55,33,13,84,47,5,70,78,25,74,88,75,1,74,67,22,20,35,56,9,19,96,57,66,70,29,35,4,6,77,40,21,55,2,17,43,57,5,55,56,97,14,93,56,54,58,7,38,28,54,26,71,37,21,28,5,30,85,19,54,89,95,55,49,24,60,64,3,53,73,73,77,43,21,34,22,88,93,39,21,50,79,66,30,89,69,59,70,44,8,47,17,38,34,76,58,95,93,40,15,53,68,46,90,37,83,96,17,56,65,79,65,74,16,13,77,56,19,55,19,32,29,19,43,90,61,25,3,1,40,12,97,93,59,97,13,39,67,71,6,47,73,85,47,28,49,6,55,36,34,7,33,9,36,93,28,56,47,50,36,96,80,52,50,82,52,21,12,40,27,38,31,98,48,36,15,9,10,89,9,23,7,40,76,94,61,75,58,28,53,1,24,18,23,5,97,71,0,51,98,71,11,9,24,24,95,46,82,40,11,13,42,47,62,63,38,29,46,65,89,96,2,32,0,46,26,88,29,32,3,38,72,71,46,90,12,52,6,5,23,80,43,30,89,90,3,47,60,62,63,1,43,29,55,50,5,66,67,32,59,35,12,98,48,59,28,24,79,10,8,35,32,82,41,60,49,5,27,33,30,11,48,58,18,23,27,38,41,26,38,7,83,63,80,39,37,53,16,56,34,28,49,35,77,8,86,44,95,84,57,77,68,93,60,73,60,88,13,19,85,64,35,22,17,47,77,94,9,48,89,73,91,68,20,30,43,62,44,28,0,97,35,60,28,13,11,42,77,75,28,51,80,76,54,43,75,36,58,95,21,89,80,9,80,91,2,78,9,12,36,0,65,87,0,71,17,47,20,62,20,97,2,85,71,88,33,2,22,3,92,56,23,51,59,0,79,16,32,76,49,46,38,53,83,22,54,80,73,82,18,87,43,31,17,56,0,81,83,66,35,99,96,27,70,93,32,9,1,39,4,11,29,77,16,7,19,36,29,32,18,77,71,38,35,79,25,34,75,44,97,51,50,1,10,34,67],\"type\":\"scatter3d\"}],                        {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"title\":{\"text\":\"3D RGB Cube Visualization\"},\"scene\":{\"xaxis\":{\"title\":{\"text\":\"Red Intensity\"}},\"yaxis\":{\"title\":{\"text\":\"Green Intensity\"}},\"zaxis\":{\"title\":{\"text\":\"Blue Intensity\"}}}},                        {\"responsive\": true}                    ).then(function(){\n",
       "                            \n",
       "var gd = document.getElementById('48ebd5d8-a679-4ce8-991d-00d9ef26f9a1');\n",
       "var x = new MutationObserver(function (mutations, observer) {{\n",
       "        var display = window.getComputedStyle(gd).display;\n",
       "        if (!display || display === 'none') {{\n",
       "            console.log([gd, 'removed!']);\n",
       "            Plotly.purge(gd);\n",
       "            observer.disconnect();\n",
       "        }}\n",
       "}});\n",
       "\n",
       "// Listen for the removal of the full notebook cells\n",
       "var notebookContainer = gd.closest('#notebook-container');\n",
       "if (notebookContainer) {{\n",
       "    x.observe(notebookContainer, {childList: true});\n",
       "}}\n",
       "\n",
       "// Listen for the clearing of the current output cell\n",
       "var outputEl = gd.closest('.output');\n",
       "if (outputEl) {{\n",
       "    x.observe(outputEl, {childList: true});\n",
       "}}\n",
       "\n",
       "                        })                };                });            </script>        </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import necessary libraries\n",
    "import numpy as np\n",
    "import plotly.graph_objects as go\n",
    "import logging\n",
    "import random\n",
    "\n",
    "# Setup logging\n",
    "logging.basicConfig(level=logging.INFO, format=\"%(asctime)s - %(message)s\")\n",
    "logger = logging.getLogger()\n",
    "\n",
    "# Step 1: Initialize the Boolean Matrix (Cube)\n",
    "def create_rgb_cube(size=20):\n",
    "    \"\"\"\n",
    "    Create a 3D Boolean matrix to represent the RGB cube.\n",
    "    Each cell corresponds to an RGB combination.\n",
    "    \"\"\"\n",
    "    logger.info(f\"Initializing RGB cube of size {size}x{size}x{size}.\")\n",
    "    return np.zeros((size, size, size), dtype=bool)\n",
    "\n",
    "# Step 2: Activate random cells for testing\n",
    "def activate_random_cells(cube, num_cells=5000):\n",
    "    \"\"\"\n",
    "    Randomly activate a specified number of cells in the cube.\n",
    "    \"\"\"\n",
    "    logger.info(f\"Activating {num_cells} random cells.\")\n",
    "    size = cube.shape[0]\n",
    "    for _ in range(num_cells):\n",
    "        x, y, z = random.randint(0, size - 1), random.randint(0, size - 1), random.randint(0, size - 1)\n",
    "        cube[x, y, z] = True\n",
    "        logger.debug(f\"Activated cell at ({x}, {y}, {z}).\")\n",
    "\n",
    "# Step 3: Visualize the Cube\n",
    "def visualize_rgb_cube(cube):\n",
    "    \"\"\"\n",
    "    Visualize the RGB cube using Plotly.\n",
    "    \"\"\"\n",
    "    logger.info(\"Preparing RGB cube visualization.\")\n",
    "    \n",
    "    # Extract active cell coordinates\n",
    "    x, y, z = np.where(cube)\n",
    "    size = cube.shape[0]\n",
    "    \n",
    "    # Map coordinates to RGB colors\n",
    "    colors = [f\"rgb({int(255 * xi / size)}, {int(255 * yi / size)}, {int(255 * zi / size)})\"\n",
    "              for xi, yi, zi in zip(x, y, z)]\n",
    "    \n",
    "    # Create scatter plot\n",
    "    fig = go.Figure(data=[go.Scatter3d(\n",
    "        x=x, y=y, z=z,\n",
    "        mode='markers',\n",
    "        marker=dict(size=5, color=colors, opacity=0.8),\n",
    "    )])\n",
    "    fig.update_layout(\n",
    "        title=\"3D RGB Cube Visualization\",\n",
    "        scene=dict(\n",
    "            xaxis_title=\"Red Intensity\",\n",
    "            yaxis_title=\"Green Intensity\",\n",
    "            zaxis_title=\"Blue Intensity\",\n",
    "        )\n",
    "    )\n",
    "    fig.show()\n",
    "\n",
    "# Step 4: Update Cube with State Changes\n",
    "def update_cube_state(cube, x, y, z, state=True):\n",
    "    \"\"\"\n",
    "    Update the state of a specific cell in the cube.\n",
    "    \"\"\"\n",
    "    try:\n",
    "        cube[x, y, z] = state\n",
    "        logger.info(f\"Cell at ({x}, {y}, {z}) set to {'Active' if state else 'Inactive'}.\")\n",
    "    except IndexError as e:\n",
    "        logger.error(f\"Failed to update cell at ({x}, {y}, {z}): {e}\")\n",
    "\n",
    "# Step 5: Debugging Example\n",
    "def debug_matrix(cube):\n",
    "    \"\"\"\n",
    "    Print a summary of the matrix for debugging.\n",
    "    \"\"\"\n",
    "    active_cells = np.sum(cube)\n",
    "    logger.info(f\"Cube Summary: {active_cells} active cells.\")\n",
    "    return active_cells\n",
    "\n",
    "# Main Workflow\n",
    "if __name__ == \"__main__\":\n",
    "    # Initialize the cube\n",
    "    size = 100\n",
    "    rgb_cube = create_rgb_cube(size)\n",
    "\n",
    "    # Activate random cells\n",
    "    activate_random_cells(rgb_cube, num_cells=1000)\n",
    "\n",
    "    # Debug and log the state of the matrix\n",
    "    debug_matrix(rgb_cube)\n",
    "\n",
    "    # Update specific cells\n",
    "    update_cube_state(rgb_cube, 5, 10, 15, state=True)\n",
    "    update_cube_state(rgb_cube, 10, 10, 10, state=False)\n",
    "\n",
    "    # Visualize the RGB cube\n",
    "    visualize_rgb_cube(rgb_cube)"
   ]
  }
 ],
 "metadata": {
  "kaggle": {
   "accelerator": "none",
   "dataSources": [],
   "dockerImageVersionId": 30786,
   "isGpuEnabled": false,
   "isInternetEnabled": true,
   "language": "python",
   "sourceType": "notebook"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 5.683453,
   "end_time": "2024-11-17T05:58:56.752401",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2024-11-17T05:58:51.068948",
   "version": "2.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}