@intechstudio/grid-protocol 1.20260331.1332 → 1.20260427.1238
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +29 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -370,6 +370,10 @@ var GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_short = "glsb";
|
|
|
370
370
|
var GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_human = "lcd_set_backlight";
|
|
371
371
|
var GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_fnptr = "l_grid_lcd_set_backlight";
|
|
372
372
|
var GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_usage = "lcd_set_backlight(strength) Sets the LCD backlight strength between 0 and 255.";
|
|
373
|
+
var GRID_LUA_FNC_G_ACTION_SET_short = "gas";
|
|
374
|
+
var GRID_LUA_FNC_G_ACTION_SET_human = "action_set";
|
|
375
|
+
var GRID_LUA_FNC_G_ACTION_SET_fnptr = "l_grid_action_set";
|
|
376
|
+
var GRID_LUA_FNC_G_ACTION_SET_usage = "action_set(element, event, path) Sets the script to be executed upon an event for the given element. The path argument should be a path to a file for a custom script, or an empty string for the default script.";
|
|
373
377
|
var GRID_LUA_FNC_B_ELEMENT_INDEX_index = "0";
|
|
374
378
|
var GRID_LUA_FNC_B_ELEMENT_INDEX_short = "ind";
|
|
375
379
|
var GRID_LUA_FNC_B_ELEMENT_INDEX_human = "element_index";
|
|
@@ -834,29 +838,29 @@ var GRID_CLASS_HIDGAMEPADBUTTON_STATE_offset = "7";
|
|
|
834
838
|
var GRID_CLASS_HIDGAMEPADBUTTON_STATE_length = "2";
|
|
835
839
|
var GRID_LUA_S_TYPE = "System";
|
|
836
840
|
var GRID_LUA_S_META_init = "GRID_LUA_S_TYPE \" = { __index = {type = 'system', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",}}\"";
|
|
837
|
-
var GRID_ACTIONSTRING_SYSTEM_INIT = "
|
|
838
|
-
var GRID_ACTIONSTRING_SYSTEM_MAPMODE = "
|
|
839
|
-
var GRID_ACTIONSTRING_SYSTEM_TIMER = "
|
|
841
|
+
var GRID_ACTIONSTRING_SYSTEM_INIT = "--[[@cb]]--[[page init]]";
|
|
842
|
+
var GRID_ACTIONSTRING_SYSTEM_MAPMODE = "--[[@cb]]gpl(gpn())";
|
|
843
|
+
var GRID_ACTIONSTRING_SYSTEM_TIMER = "--[[@cb]]print(\\\"tick\\\")";
|
|
840
844
|
var GRID_BUTTON_THRESHOLD = "0.5";
|
|
841
845
|
var GRID_BUTTON_HYSTERESIS = "0.2";
|
|
842
846
|
var GRID_LUA_B_TYPE = "Button";
|
|
843
847
|
var GRID_LUA_B_META_init = "GRID_LUA_B_TYPE \" = { __index = {type = 'button', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() self:\"GRID_LUA_FNC_A_BUTTON_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",\" GRID_LUA_FNC_B_BUTTON_STEP_short \" =function (self) local steps, min, max, value = self:\" GRID_LUA_FNC_B_BUTTON_MODE_short \"(), self:\" GRID_LUA_FNC_B_BUTTON_MIN_short \"(), self:\" GRID_LUA_FNC_B_BUTTON_MAX_short \"(), self:\" GRID_LUA_FNC_B_BUTTON_VALUE_short \"() if steps == 0 then return false end return value // ((max - min) // steps) end,}}\"";
|
|
844
|
-
var GRID_ACTIONSTRING_BUTTON_INIT = "
|
|
845
|
-
var GRID_ACTIONSTRING_BUTTON_BUTTON = "
|
|
848
|
+
var GRID_ACTIONSTRING_BUTTON_INIT = "--[[@cb]]--[[Button Init]]";
|
|
849
|
+
var GRID_ACTIONSTRING_BUTTON_BUTTON = "--[[@sbc]]self:bmo(0)self:bmi(0)self:bma(127)--[[@sglc]]self:glc(-1,{{-1,-1,-1,1}})self:glp(-1,-1)--[[@gms]]self:gms(-1,-1,-1,-1)";
|
|
846
850
|
var GRID_UI_ENCODER_INIT_SAMPLES = "2";
|
|
847
851
|
var GRID_LUA_E_TYPE = "Encoder";
|
|
848
852
|
var GRID_LUA_E_META_init = "GRID_LUA_E_TYPE \" = { __index = { type = 'encoder', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() self:\"GRID_LUA_FNC_A_BUTTON_short\"() self:\"GRID_LUA_FNC_A_ENCODER_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",\" GRID_LUA_FNC_E_BUTTON_STEP_short \" =function (self) local steps, min, max, value = self:\" GRID_LUA_FNC_E_BUTTON_MODE_short \"(), self:\" GRID_LUA_FNC_E_BUTTON_MIN_short \"(), self:\" GRID_LUA_FNC_E_BUTTON_MAX_short \"(), self:\" GRID_LUA_FNC_E_BUTTON_VALUE_short \"() if steps == 0 then return false end return value // ((max - min) // steps) end,}}\"";
|
|
849
|
-
var GRID_ACTIONSTRING_ENCODER_INIT = "
|
|
850
|
-
var GRID_ACTIONSTRING_ENCODER_ENCODER = "
|
|
853
|
+
var GRID_ACTIONSTRING_ENCODER_INIT = "--[[@cb]]--[[Encoder Init]]";
|
|
854
|
+
var GRID_ACTIONSTRING_ENCODER_ENCODER = "--[[@sec]]self:emo(0)self:ev0(50)self:emi(0)self:ema(127)self:ese(100)--[[@sglc]]self:glc(-1,{{-1,-1,-1,1}})self:glp(-1,-1)--[[@gms]]self:gms(-1,-1,-1,-1)";
|
|
851
855
|
var GRID_LUA_EP_TYPE = "Endless";
|
|
852
856
|
var GRID_LUA_EP_META_init = "GRID_LUA_EP_TYPE \" = { __index = {type = 'endless', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() self:\"GRID_LUA_FNC_A_BUTTON_short\"() self:\"GRID_LUA_FNC_A_ENDLESS_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",\" GRID_LUA_FNC_EP_BUTTON_STEP_short \" =function (self) local steps, min, max, value = self:\" GRID_LUA_FNC_EP_BUTTON_MODE_short \"(), self:\" GRID_LUA_FNC_EP_BUTTON_MIN_short \"(), self:\" GRID_LUA_FNC_EP_BUTTON_MAX_short \"(), self:\" GRID_LUA_FNC_EP_BUTTON_VALUE_short \"() if steps == 0 then return false end return value // ((max - min) // steps) end,}}\"";
|
|
853
|
-
var GRID_ACTIONSTRING_ENDLESS_INIT = "
|
|
854
|
-
var GRID_ACTIONSTRING_ENDLESS_ENDLESS = "
|
|
855
|
-
var GRID_ACTIONSTRING_ENDLESS_BUTTON = "
|
|
857
|
+
var GRID_ACTIONSTRING_ENDLESS_INIT = "--[[@cb]]--[[Endless Init]]";
|
|
858
|
+
var GRID_ACTIONSTRING_ENDLESS_ENDLESS = "--[[@sen]]self:epmo(0)self:epv0(50)self:epmi(0)self:epma(127)self:epse(50)--[[@sglc]]self:glc(-1,{{-1,-1,-1,1}})self:glp(-1,-1)--[[@gms]]self:gms(-1,-1,-1,-1)";
|
|
859
|
+
var GRID_ACTIONSTRING_ENDLESS_BUTTON = "--[[@sbc]]self:bmo(0)self:bmi(0)self:bma(127)--[[@sglc]]self:glc(-1,{{-1,-1,-1,1}})self:glp(-1,-1)--[[@gms]]self:gms(-1,-1,-1,-1)";
|
|
856
860
|
var GRID_LUA_P_TYPE = "Potmeter";
|
|
857
861
|
var GRID_LUA_P_META_init = "GRID_LUA_P_TYPE \" = { __index = {type = 'potmeter', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() self:\"GRID_LUA_FNC_A_POTMETER_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",}}\"";
|
|
858
|
-
var GRID_ACTIONSTRING_POTMETER_INIT = "
|
|
859
|
-
var GRID_ACTIONSTRING_POTMETER_POTMETER = "
|
|
862
|
+
var GRID_ACTIONSTRING_POTMETER_INIT = "--[[@cb]]--[[Potmeter Init]]";
|
|
863
|
+
var GRID_ACTIONSTRING_POTMETER_POTMETER = "--[[@spc]]self:pmo(7)self:pmi(0)self:pma(127)--[[@sglc]]self:glc(-1,{{-1,-1,-1,1}})self:glp(-1,-1)--[[@gms]]self:gms(-1,-1,-1,-1)";
|
|
860
864
|
var GRID_LUA_FNC_L_DRAW_SWAP_short = "ldsw";
|
|
861
865
|
var GRID_LUA_FNC_L_DRAW_SWAP_human = "draw_swap";
|
|
862
866
|
var GRID_LUA_FNC_L_DRAW_SWAP_usage = "lcd:draw_swap() Updates the screen with the contents of the background buffer.";
|
|
@@ -901,8 +905,8 @@ var GRID_LUA_FNC_L_GET_RENDER_TIME_human = "get_render_time";
|
|
|
901
905
|
var GRID_LUA_FNC_L_GET_RENDER_TIME_usage = "lcd:get_render_time() Returns the time spent rendering between the last two swaps, in microseconds.";
|
|
902
906
|
var GRID_LUA_L_TYPE = "Lcd";
|
|
903
907
|
var GRID_LUA_L_META_init = "GRID_LUA_L_TYPE \" = { __index = {type = 'lcd', post_init_cb = function (self) self:\"GRID_LUA_FNC_A_INIT_short\"() end,\" GRID_LUA_FNC_ASSIGN_META_PAR1_RET(\"gen\", GRID_LUA_FNC_G_ELEMENTNAME_short) \",}}\"";
|
|
904
|
-
var GRID_ACTIONSTRING_LCD_INIT = "
|
|
905
|
-
var GRID_ACTIONSTRING_LCD_DRAW = "
|
|
908
|
+
var GRID_ACTIONSTRING_LCD_INIT = "--[[@cb]]glsb(255)pi,s,c,self.f,self.v,self.id=math.pi,64,{{0,0,0},{255,255,255},{glr(),glg(),glb()}},1,{27,0,100},\\\"VSN1\\\" d={[1]=\\\"Linear\\\",[2]=\\\"Encoder\\\",[3]=\\\"Button\\\",[7]=\\\"Endless\\\"}xc,yc,p=160,120,s * 5 / 8 self.eventrx_cb=function(self,hdr,e,v,n)self.v=v if #n==0 and d[e[3]]then n=d[e[3]].. e[2]end self.id=string.sub(n,1,(self:lsw()/(s / 2)- 1)// 1)self.f=1 end self:ldaf(0,0,319,239,c[1])self:ldrr(3,3,317,237,10,c[2])";
|
|
909
|
+
var GRID_ACTIONSTRING_LCD_DRAW = "--[[@cb]]if self.f > 0 then self.f=self.f - 1 local a,xo=gmaps(self.v[1],self.v[2],self.v[3],0.1,1),#tostring(self.v[1])/ 2 * s / 2 - #tostring(self.v[1])- s // 32 self:ldaf(10,10,310,230,c[1])self:ldrr(xc - p // 1 - 1,yc - p // 1 - 1,xc + p // 1 + 1,yc + p // 1 + 1,s,c[2])self:ldrrf(xc - p * a // 1,yc - p * a // 1,xc + p * a // 1,yc + p * a // 1,s,c[3])self:ldft(self.v[1],xc - xo,yc + s,s / 2,c[2])local xn=(#self.id *(s / 2))/ 2 - s // 32 self:ldft(self.id,xc - xn,yc - 1.5 * s,s / 2,c[2])self:ldsw()end";
|
|
906
910
|
var GRID_LUA_FNC_G_DECODE_source = "common_src_lua_decode_lua";
|
|
907
911
|
var GRID_LUA_FNC_G_DECODE_short = "gdec";
|
|
908
912
|
var GRID_LUA_FNC_G_DECODE_human = "decode";
|
|
@@ -913,6 +917,7 @@ var GRID_LUA_FNC_G_ELEMENTNAME_source = "common_src_lua_elementname_lua";
|
|
|
913
917
|
var GRID_LUA_FNC_G_ELEMENTNAME_short = "gen";
|
|
914
918
|
var GRID_LUA_FNC_G_ELEMENTNAME_human = "element_name";
|
|
915
919
|
var GRID_LUA_FNC_G_EVENTFNAME_source = "common_src_lua_eventfname_lua";
|
|
920
|
+
var GRID_LUA_FNC_G_INIT_source = "common_src_lua_init_lua";
|
|
916
921
|
var GRID_LUA_FNC_G_LIMIT_source = "common_src_lua_limit_lua";
|
|
917
922
|
var GRID_LUA_FNC_G_LIMIT_short = "glim";
|
|
918
923
|
var GRID_LUA_FNC_G_LIMIT_human = "limit";
|
|
@@ -1320,6 +1325,10 @@ var grid_protocol_bot = {
|
|
|
1320
1325
|
GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_human: GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_human,
|
|
1321
1326
|
GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_fnptr: GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_fnptr,
|
|
1322
1327
|
GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_usage: GRID_LUA_FNC_G_LCD_SET_BACKLIGHT_usage,
|
|
1328
|
+
GRID_LUA_FNC_G_ACTION_SET_short: GRID_LUA_FNC_G_ACTION_SET_short,
|
|
1329
|
+
GRID_LUA_FNC_G_ACTION_SET_human: GRID_LUA_FNC_G_ACTION_SET_human,
|
|
1330
|
+
GRID_LUA_FNC_G_ACTION_SET_fnptr: GRID_LUA_FNC_G_ACTION_SET_fnptr,
|
|
1331
|
+
GRID_LUA_FNC_G_ACTION_SET_usage: GRID_LUA_FNC_G_ACTION_SET_usage,
|
|
1323
1332
|
GRID_LUA_FNC_B_ELEMENT_INDEX_index: GRID_LUA_FNC_B_ELEMENT_INDEX_index,
|
|
1324
1333
|
GRID_LUA_FNC_B_ELEMENT_INDEX_short: GRID_LUA_FNC_B_ELEMENT_INDEX_short,
|
|
1325
1334
|
GRID_LUA_FNC_B_ELEMENT_INDEX_human: GRID_LUA_FNC_B_ELEMENT_INDEX_human,
|
|
@@ -1863,6 +1872,7 @@ var grid_protocol_bot = {
|
|
|
1863
1872
|
GRID_LUA_FNC_G_ELEMENTNAME_short: GRID_LUA_FNC_G_ELEMENTNAME_short,
|
|
1864
1873
|
GRID_LUA_FNC_G_ELEMENTNAME_human: GRID_LUA_FNC_G_ELEMENTNAME_human,
|
|
1865
1874
|
GRID_LUA_FNC_G_EVENTFNAME_source: GRID_LUA_FNC_G_EVENTFNAME_source,
|
|
1875
|
+
GRID_LUA_FNC_G_INIT_source: GRID_LUA_FNC_G_INIT_source,
|
|
1866
1876
|
GRID_LUA_FNC_G_LIMIT_source: GRID_LUA_FNC_G_LIMIT_source,
|
|
1867
1877
|
GRID_LUA_FNC_G_LIMIT_short: GRID_LUA_FNC_G_LIMIT_short,
|
|
1868
1878
|
GRID_LUA_FNC_G_LIMIT_human: GRID_LUA_FNC_G_LIMIT_human,
|
|
@@ -2389,6 +2399,10 @@ var protocol_data = /*#__PURE__*/Object.freeze({
|
|
|
2389
2399
|
GRID_LUA_FNC_E_LED_INDEX_index: GRID_LUA_FNC_E_LED_INDEX_index,
|
|
2390
2400
|
GRID_LUA_FNC_E_LED_INDEX_short: GRID_LUA_FNC_E_LED_INDEX_short,
|
|
2391
2401
|
GRID_LUA_FNC_E_LIST_length: GRID_LUA_FNC_E_LIST_length,
|
|
2402
|
+
GRID_LUA_FNC_G_ACTION_SET_fnptr: GRID_LUA_FNC_G_ACTION_SET_fnptr,
|
|
2403
|
+
GRID_LUA_FNC_G_ACTION_SET_human: GRID_LUA_FNC_G_ACTION_SET_human,
|
|
2404
|
+
GRID_LUA_FNC_G_ACTION_SET_short: GRID_LUA_FNC_G_ACTION_SET_short,
|
|
2405
|
+
GRID_LUA_FNC_G_ACTION_SET_usage: GRID_LUA_FNC_G_ACTION_SET_usage,
|
|
2392
2406
|
GRID_LUA_FNC_G_AUTOVALUE_source: GRID_LUA_FNC_G_AUTOVALUE_source,
|
|
2393
2407
|
GRID_LUA_FNC_G_CALIBRATION_RESET_fnptr: GRID_LUA_FNC_G_CALIBRATION_RESET_fnptr,
|
|
2394
2408
|
GRID_LUA_FNC_G_CALIBRATION_RESET_human: GRID_LUA_FNC_G_CALIBRATION_RESET_human,
|
|
@@ -2501,6 +2515,7 @@ var protocol_data = /*#__PURE__*/Object.freeze({
|
|
|
2501
2515
|
GRID_LUA_FNC_G_IMMEDIATE_SEND_human: GRID_LUA_FNC_G_IMMEDIATE_SEND_human,
|
|
2502
2516
|
GRID_LUA_FNC_G_IMMEDIATE_SEND_short: GRID_LUA_FNC_G_IMMEDIATE_SEND_short,
|
|
2503
2517
|
GRID_LUA_FNC_G_IMMEDIATE_SEND_usage: GRID_LUA_FNC_G_IMMEDIATE_SEND_usage,
|
|
2518
|
+
GRID_LUA_FNC_G_INIT_source: GRID_LUA_FNC_G_INIT_source,
|
|
2504
2519
|
GRID_LUA_FNC_G_KEYBOARD_SEND_fnptr: GRID_LUA_FNC_G_KEYBOARD_SEND_fnptr,
|
|
2505
2520
|
GRID_LUA_FNC_G_KEYBOARD_SEND_human: GRID_LUA_FNC_G_KEYBOARD_SEND_human,
|
|
2506
2521
|
GRID_LUA_FNC_G_KEYBOARD_SEND_short: GRID_LUA_FNC_G_KEYBOARD_SEND_short,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED