Matter fix StatusReport and RemovFabric (#18271)

This commit is contained in:
s-hadinger 2023-03-26 19:57:43 +02:00 committed by GitHub
parent bbdd8e1eda
commit 90260e2381
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 863 additions and 534 deletions

View File

@ -104,7 +104,7 @@ class Matter_Commisioning_Context
var raw = resp.encode_frame(status_raw) var raw = resp.encode_frame(status_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter) self.responder.send_response(raw, msg.remote_ip, msg.remote_port, reliable ? resp.message_counter : nil)
end end
def parse_PBKDFParamRequest(msg) def parse_PBKDFParamRequest(msg)

View File

@ -88,8 +88,8 @@ class Matter_Device
# add the default plugin # add the default plugin
self.plugins.push(matter.Plugin_Root(self, 0)) self.plugins.push(matter.Plugin_Root(self, 0))
self.plugins.push(matter.Plugin_OnOff(self, 1, 0#-tasmota relay 1-#)) self.plugins.push(matter.Plugin_OnOff(self, 1, 0#-tasmota relay 1-#))
# self.plugins.push(matter.Plugin_Light3(self, 2)) # self.plugins.push(matter.Plugin_Light3(self, 1))
# self.plugins.push(matter.Plugin_Temp_Sensor(self, 2, "ESP32#Temperature")) # self.plugins.push(matter.Plugin_Temp_Sensor(self, 1, "ESP32#Temperature"))
# for now read sensors every 5 seconds # for now read sensors every 5 seconds
tasmota.add_cron("*/5 * * * * *", def () self.trigger_read_sensors() end, "matter_sensors_5s") tasmota.add_cron("*/5 * * * * *", def () self.trigger_read_sensors() end, "matter_sensors_5s")

View File

@ -31,7 +31,7 @@ class Matter_Plugin_Light3 : Matter_Plugin
0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21 0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21
0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable 0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable
0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48 0x0006: [0,0xFFFC,0xFFFD], # On/Off 1.5 p.48
0x0008: [0,0x0F,0x11,0xFFFC,0xFFFD], # Level Control 1.6 p.57 0x0008: [0,2,3,0x0F,0x11,0xFFFC,0xFFFD], # Level Control 1.6 p.57
0x0300: [0,1,7,8,0xF,0x4001,0x400A,0xFFFC,0xFFFD],# Color Control 3.2 p.111 0x0300: [0,1,7,8,0xF,0x4001,0x400A,0xFFFC,0xFFFD],# Color Control 3.2 p.111
} }
static var TYPES = { 0x010D: 2 } # Extended Color Light static var TYPES = { 0x010D: 2 } # Extended Color Light
@ -44,9 +44,9 @@ class Matter_Plugin_Light3 : Matter_Plugin
def init(device, endpoint) def init(device, endpoint)
super(self).init(device, endpoint) super(self).init(device, endpoint)
self.shadow_hue = 0 self.shadow_hue = 0
# self.get_onoff() # read actual value self.shadow_bri = 0
# if tasmota_relay_index == nil tasmota_relay_index = 0 end self.shadow_sat = 0
# self.tasmota_relay_index = tasmota_relay_index self.shadow_onoff = false
end end
############################################################# #############################################################
@ -68,29 +68,6 @@ class Matter_Plugin_Light3 : Matter_Plugin
if sat != self.shadow_sat self.attribute_updated(nil, 0x0300, 0x0001) self.shadow_sat = sat end if sat != self.shadow_sat self.attribute_updated(nil, 0x0300, 0x0001) self.shadow_sat = sat end
end end
# #############################################################
# # Model
# #
# def set_onoff(v)
# tasmota.set_power(self.tasmota_relay_index, bool(v))
# self.get_onoff()
# end
# #############################################################
# # get_onoff
# #
# # Update shadow and signal any change
# def get_onoff()
# var state = tasmota.get_power(self.tasmota_relay_index)
# if state != nil
# if self.shadow_onoff != nil && self.shadow_onoff != bool(state)
# self.onoff_changed() # signal any change
# end
# self.shadow_onoff = state
# end
# if self.shadow_onoff == nil self.shadow_onoff = false end # avoid any `nil` value when initializing
# return self.shadow_onoff
# end
############################################################# #############################################################
# read an attribute # read an attribute
# #
@ -143,11 +120,15 @@ class Matter_Plugin_Light3 : Matter_Plugin
# ==================================================================================================== # ====================================================================================================
elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ========== elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
if attribute == 0x0000 # ---------- CurrentLevel / u1 ---------- if attribute == 0x0000 # ---------- CurrentLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 0x88) return TLV.create_TLV(TLV.U1, self.shadow_bri)
elif attribute == 0x0002 # ---------- MinLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 0)
elif attribute == 0x0003 # ---------- MaxLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 254)
elif attribute == 0x000F # ---------- Options / map8 ---------- elif attribute == 0x000F # ---------- Options / map8 ----------
return TLV.create_TLV(TLV.U1, 0) # return TLV.create_TLV(TLV.U1, 0) #
elif attribute == 0x0011 # ---------- OnLevel / u1 ---------- elif attribute == 0x0011 # ---------- OnLevel / u1 ----------
return TLV.create_TLV(TLV.U1, 1) # return TLV.create_TLV(TLV.U1, self.shadow_bri)
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ---------- elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
return TLV.create_TLV(TLV.U4, 0X01) # OnOff return TLV.create_TLV(TLV.U4, 0X01) # OnOff
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ---------- elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
@ -163,13 +144,18 @@ class Matter_Plugin_Light3 : Matter_Plugin
elif attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ---------- elif attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ----------
return TLV.create_TLV(TLV.U1, 0) return TLV.create_TLV(TLV.U1, 0)
elif attribute == 0x0008 # ---------- ColorMode / u1 ---------- elif attribute == 0x0008 # ---------- ColorMode / u1 ----------
return TLV.create_TLV(TLV.U1, 0) return TLV.create_TLV(TLV.U1, 0)# 0 = CurrentHue and CurrentSaturation
elif attribute == 0x000F # ---------- Options / u1 ---------- elif attribute == 0x000F # ---------- Options / u1 ----------
return TLV.create_TLV(TLV.U1, 0) return TLV.create_TLV(TLV.U1, 0)
elif attribute == 0x4001 # ---------- EnhancedColorMode / u1 ---------- elif attribute == 0x4001 # ---------- EnhancedColorMode / u1 ----------
return TLV.create_TLV(TLV.U1, 0) return TLV.create_TLV(TLV.U1, 0)
elif attribute == 0x400A # ---------- ColorCapabilities / map2 ---------- elif attribute == 0x400A # ---------- ColorCapabilities / map2 ----------
return TLV.create_TLV(TLV.U1, 0) return TLV.create_TLV(TLV.U1, 0)
# Defined Primaries Information Attribute Set
elif attribute == 0x0010 # ---------- NumberOfPrimaries / u1 ----------
return TLV.create_TLV(TLV.U1, 0)
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ---------- elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
return TLV.create_TLV(TLV.U4, 0x01) # HS return TLV.create_TLV(TLV.U4, 0x01) # HS
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ---------- elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
@ -187,6 +173,7 @@ class Matter_Plugin_Light3 : Matter_Plugin
# returns a TLV object if successful, contains the response # returns a TLV object if successful, contains the response
# or an `int` to indicate a status # or an `int` to indicate a status
def invoke_request(session, val, ctx) def invoke_request(session, val, ctx)
import light
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var command = ctx.command var command = ctx.command
@ -220,32 +207,88 @@ class Matter_Plugin_Light3 : Matter_Plugin
# ==================================================================================================== # ====================================================================================================
elif cluster == 0x0006 # ========== On/Off 1.5 p.48 ========== elif cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
if command == 0x0000 # ---------- Off ---------- if command == 0x0000 # ---------- Off ----------
self.set_onoff(false) light.set({'power':false})
self.update_shadow()
return true return true
elif command == 0x0001 # ---------- On ---------- elif command == 0x0001 # ---------- On ----------
self.set_onoff(true) light.set({'power':true})
self.update_shadow()
return true return true
elif command == 0x0002 # ---------- Toggle ---------- elif command == 0x0002 # ---------- Toggle ----------
self.set_onoff(!self.get_onoff()) light.set({'power':!self.shadow_onoff})
self.update_shadow()
return true return true
end end
# ==================================================================================================== # ====================================================================================================
elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ========== elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
if command == 0x0000 # ---------- MoveToLevel ---------- if command == 0x0000 # ---------- MoveToLevel ----------
var bri_in = val.findsubval(0) # Hue 0..254
var bri = tasmota.scale_uint(bri_in, 0, 254, 0, 360)
light.set({'bri': bri})
self.update_shadow()
return true return true
elif command == 0x0001 # ---------- Move ---------- elif command == 0x0001 # ---------- Move ----------
# TODO, we don't really support it
return true return true
elif command == 0x0002 # ---------- Step ---------- elif command == 0x0002 # ---------- Step ----------
# TODO, we don't really support it
return true return true
elif command == 0x0003 # ---------- Stop ---------- elif command == 0x0003 # ---------- Stop ----------
# TODO, we don't really support it
return true return true
elif command == 0x0004 # ---------- MoveToLevelWithOnOff ---------- elif command == 0x0004 # ---------- MoveToLevelWithOnOff ----------
var bri_in = val.findsubval(0) # Hue 0..254
var bri = tasmota.scale_uint(bri_in, 0, 254, 0, 360)
var onoff = bri > 0
light.set({'bri': bri, 'power': onoff})
self.update_shadow()
return true return true
elif command == 0x0005 # ---------- MoveWithOnOff ---------- elif command == 0x0005 # ---------- MoveWithOnOff ----------
# TODO, we don't really support it
return true return true
elif command == 0x0006 # ---------- StepWithOnOff ---------- elif command == 0x0006 # ---------- StepWithOnOff ----------
# TODO, we don't really support it
return true return true
elif command == 0x0007 # ---------- StopWithOnOff ---------- elif command == 0x0007 # ---------- StopWithOnOff ----------
# TODO, we don't really support it
return true
end
# ====================================================================================================
elif cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
if command == 0x0000 # ---------- MoveToHue ----------
var hue_in = val.findsubval(0) # Hue 0..254
var hue = tasmota.scale_uint(hue_in, 0, 254, 0, 360)
light.set({'hue': hue})
self.update_shadow()
return true
elif command == 0x0001 # ---------- MoveHue ----------
# TODO, we don't really support it
return true
elif command == 0x0002 # ---------- StepHue ----------
# TODO, we don't really support it
return true
elif command == 0x0003 # ---------- MoveToSaturation ----------
var sat_in = val.findsubval(0) # Sat 0..254
var sat = tasmota.scale_uint(sat_in, 0, 254, 0, 255)
light.set({'sat': sat})
self.update_shadow()
return true
elif command == 0x0004 # ---------- MoveSaturation ----------
# TODO, we don't really support it
return true
elif command == 0x0005 # ---------- StepSaturation ----------
# TODO, we don't really support it
return true
elif command == 0x0006 # ---------- MoveToHueAndSaturation ----------
var hue_in = val.findsubval(0) # Hue 0..254
var hue = tasmota.scale_uint(hue_in, 0, 254, 0, 360)
var sat_in = val.findsubval(1) # Sat 0..254
var sat = tasmota.scale_uint(sat_in, 0, 254, 0, 255)
light.set({'hue': hue, 'sat': sat})
self.update_shadow()
return true
elif command == 0x0047 # ---------- StopMoveStep ----------
# TODO, we don't really support it
return true return true
end end
end end

View File

@ -519,12 +519,13 @@ class Matter_Plugin_Root : Matter_Plugin
for fab: self.device.sessions.active_fabrics() for fab: self.device.sessions.active_fabrics()
if fab.get_fabric_index() == index if fab.get_fabric_index() == index
tasmota.log("MTR: removing fabric " + fab.get_fabric_id().copy().reverse().tohex(), 2) tasmota.log("MTR: removing fabric " + fab.get_fabric_id().copy().reverse().tohex(), 2)
self.device.remove_fabric(fab) # defer actual removal to send a response
break tasmota.set_timer(2000, def () self.device.remove_fabric(fab) end)
return true # Ok
end end
end end
tasmota.log("MTR: RemoveFabric fabric("+str(index)+") not found", 2) tasmota.log("MTR: RemoveFabric fabric("+str(index)+") not found", 2)
ctx.status = matter.SUCCESS # OK ctx.status = matter.INVALID_ACTION
return nil # trigger a standalone ack return nil # trigger a standalone ack
end end

View File

@ -646,6 +646,14 @@ class Matter_Session_Store
############################################################# #############################################################
# remove fabric # remove fabric
def remove_fabric(fabric) def remove_fabric(fabric)
var idx = 0
while idx < size(self.sessions)
if self.sessions[idx]._fabric == fabric
self.sessions.remove(idx)
else
idx += 1
end
end
self.fabrics.remove(self.fabrics.find(fabric)) # fail safe self.fabrics.remove(self.fabrics.find(fabric)) # fail safe
end end

View File

@ -36,7 +36,7 @@ class Matter_UDPPacket_sent
var raw # bytes() to be sent var raw # bytes() to be sent
var addr # ip_address (string) var addr # ip_address (string)
var port # port (int) var port # port (int)
var msg_id # (int) message identifier that needs to be acknowledged var msg_id # (int) message identifier that needs to be acknowledged, or `nil` if no ack needed
var retries # 0 in first attempts, goes up to RETRIES var retries # 0 in first attempts, goes up to RETRIES
var next_try # timestamp (millis) when to try again var next_try # timestamp (millis) when to try again

View File

@ -2574,7 +2574,7 @@ be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
}), }),
be_str_weak(send_status_report), be_str_weak(send_status_report),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[29]) { /* code */ ( &(const binstruction[32]) { /* code */
0x8C180300, // 0000 GETMET R6 R1 K0 0x8C180300, // 0000 GETMET R6 R1 K0
0x5422003F, // 0001 LDINT R8 64 0x5422003F, // 0001 LDINT R8 64
0x5C240A00, // 0002 MOVE R9 R5 0x5C240A00, // 0002 MOVE R9 R5
@ -2601,9 +2601,12 @@ be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
0x5C2C1000, // 0017 MOVE R11 R8 0x5C2C1000, // 0017 MOVE R11 R8
0x88300306, // 0018 GETMBR R12 R1 K6 0x88300306, // 0018 GETMBR R12 R1 K6
0x88340307, // 0019 GETMBR R13 R1 K7 0x88340307, // 0019 GETMBR R13 R1 K7
0x88380D08, // 001A GETMBR R14 R6 K8 0x78160001, // 001A JMPF R5 #001D
0x7C240A00, // 001B CALL R9 5 0x88380D08, // 001B GETMBR R14 R6 K8
0x80000000, // 001C RET 0 0x70020000, // 001C JMP #001E
0x4C380000, // 001D LDNIL R14
0x7C240A00, // 001E CALL R9 5
0x80000000, // 001F RET 0
}) })
) )
); );

View File

@ -51,14 +51,17 @@ be_local_closure(Matter_Plugin_Light3_init, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 3]) { /* constants */ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(init), /* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(shadow_hue), /* K1 */ be_nested_str_weak(shadow_hue),
/* K2 */ be_const_int(0), /* K2 */ be_const_int(0),
/* K3 */ be_nested_str_weak(shadow_bri),
/* K4 */ be_nested_str_weak(shadow_sat),
/* K5 */ be_nested_str_weak(shadow_onoff),
}), }),
be_str_weak(init), be_str_weak(init),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */ ( &(const binstruction[13]) { /* code */
0x600C0003, // 0000 GETGBL R3 G3 0x600C0003, // 0000 GETGBL R3 G3
0x5C100000, // 0001 MOVE R4 R0 0x5C100000, // 0001 MOVE R4 R0
0x7C0C0200, // 0002 CALL R3 1 0x7C0C0200, // 0002 CALL R3 1
@ -67,7 +70,11 @@ be_local_closure(Matter_Plugin_Light3_init, /* name */
0x5C180400, // 0005 MOVE R6 R2 0x5C180400, // 0005 MOVE R6 R2
0x7C0C0600, // 0006 CALL R3 3 0x7C0C0600, // 0006 CALL R3 3
0x90020302, // 0007 SETMBR R0 K1 K2 0x90020302, // 0007 SETMBR R0 K1 K2
0x80000000, // 0008 RET 0 0x90020702, // 0008 SETMBR R0 K3 K2
0x90020902, // 0009 SETMBR R0 K4 K2
0x500C0000, // 000A LDBOOL R3 0 0
0x90020A03, // 000B SETMBR R0 K5 R3
0x80000000, // 000C RET 0
}) })
) )
); );
@ -87,7 +94,7 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[17]) { /* constants */ ( &(const bvalue[19]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(TLV),
@ -102,13 +109,15 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
/* K11 */ be_nested_str_weak(U4), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(BOOL), /* K12 */ be_nested_str_weak(BOOL),
/* K13 */ be_nested_str_weak(shadow_onoff), /* K13 */ be_nested_str_weak(shadow_onoff),
/* K14 */ be_nested_str_weak(shadow_hue), /* K14 */ be_nested_str_weak(shadow_bri),
/* K15 */ be_nested_str_weak(shadow_sat), /* K15 */ be_const_int(2),
/* K16 */ be_nested_str_weak(read_attribute), /* K16 */ be_nested_str_weak(shadow_hue),
/* K17 */ be_nested_str_weak(shadow_sat),
/* K18 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[255]) { /* code */ ( &(const binstruction[280]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100902, // 0002 GETMBR R4 R4 K2
@ -149,7 +158,7 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0x542A0003, // 0025 LDINT R10 4 0x542A0003, // 0025 LDINT R10 4
0x7C1C0600, // 0026 CALL R7 3 0x7C1C0600, // 0026 CALL R7 3
0x80040E00, // 0027 RET 1 R7 0x80040E00, // 0027 RET 1 R7
0x700200D4, // 0028 JMP #00FE 0x700200ED, // 0028 JMP #0117
0x541E0003, // 0029 LDINT R7 4 0x541E0003, // 0029 LDINT R7 4
0x1C1C0A07, // 002A EQ R7 R5 R7 0x1C1C0A07, // 002A EQ R7 R5 R7
0x781E0016, // 002B JMPF R7 #0043 0x781E0016, // 002B JMPF R7 #0043
@ -175,7 +184,7 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0x542A0003, // 003F LDINT R10 4 0x542A0003, // 003F LDINT R10 4
0x7C1C0600, // 0040 CALL R7 3 0x7C1C0600, // 0040 CALL R7 3
0x80040E00, // 0041 RET 1 R7 0x80040E00, // 0041 RET 1 R7
0x700200BA, // 0042 JMP #00FE 0x700200D3, // 0042 JMP #0117
0x541E0004, // 0043 LDINT R7 5 0x541E0004, // 0043 LDINT R7 5
0x1C1C0A07, // 0044 EQ R7 R5 R7 0x1C1C0A07, // 0044 EQ R7 R5 R7
0x781E0011, // 0045 JMPF R7 #0058 0x781E0011, // 0045 JMPF R7 #0058
@ -196,7 +205,7 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0x542A0003, // 0054 LDINT R10 4 0x542A0003, // 0054 LDINT R10 4
0x7C1C0600, // 0055 CALL R7 3 0x7C1C0600, // 0055 CALL R7 3
0x80040E00, // 0056 RET 1 R7 0x80040E00, // 0056 RET 1 R7
0x700200A5, // 0057 JMP #00FE 0x700200BE, // 0057 JMP #0117
0x541E0005, // 0058 LDINT R7 6 0x541E0005, // 0058 LDINT R7 6
0x1C1C0A07, // 0059 EQ R7 R5 R7 0x1C1C0A07, // 0059 EQ R7 R5 R7
0x781E0019, // 005A JMPF R7 #0075 0x781E0019, // 005A JMPF R7 #0075
@ -225,145 +234,170 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0x542A0003, // 0071 LDINT R10 4 0x542A0003, // 0071 LDINT R10 4
0x7C1C0600, // 0072 CALL R7 3 0x7C1C0600, // 0072 CALL R7 3
0x80040E00, // 0073 RET 1 R7 0x80040E00, // 0073 RET 1 R7
0x70020088, // 0074 JMP #00FE 0x700200A1, // 0074 JMP #0117
0x541E0007, // 0075 LDINT R7 8 0x541E0007, // 0075 LDINT R7 8
0x1C1C0A07, // 0076 EQ R7 R5 R7 0x1C1C0A07, // 0076 EQ R7 R5 R7
0x781E002B, // 0077 JMPF R7 #00A4 0x781E003B, // 0077 JMPF R7 #00B4
0x1C1C0D06, // 0078 EQ R7 R6 K6 0x1C1C0D06, // 0078 EQ R7 R6 K6
0x781E0005, // 0079 JMPF R7 #0080 0x781E0005, // 0079 JMPF R7 #0080
0x8C1C0907, // 007A GETMET R7 R4 K7 0x8C1C0907, // 007A GETMET R7 R4 K7
0x8824090A, // 007B GETMBR R9 R4 K10 0x8824090A, // 007B GETMBR R9 R4 K10
0x542A0087, // 007C LDINT R10 136 0x8828010E, // 007C GETMBR R10 R0 K14
0x7C1C0600, // 007D CALL R7 3 0x7C1C0600, // 007D CALL R7 3
0x80040E00, // 007E RET 1 R7 0x80040E00, // 007E RET 1 R7
0x70020022, // 007F JMP #00A3 0x70020032, // 007F JMP #00B3
0x541E000E, // 0080 LDINT R7 15 0x1C1C0D0F, // 0080 EQ R7 R6 K15
0x1C1C0C07, // 0081 EQ R7 R6 R7 0x781E0005, // 0081 JMPF R7 #0088
0x781E0005, // 0082 JMPF R7 #0089 0x8C1C0907, // 0082 GETMET R7 R4 K7
0x8C1C0907, // 0083 GETMET R7 R4 K7 0x8824090A, // 0083 GETMBR R9 R4 K10
0x8824090A, // 0084 GETMBR R9 R4 K10 0x58280006, // 0084 LDCONST R10 K6
0x58280006, // 0085 LDCONST R10 K6 0x7C1C0600, // 0085 CALL R7 3
0x7C1C0600, // 0086 CALL R7 3 0x80040E00, // 0086 RET 1 R7
0x80040E00, // 0087 RET 1 R7 0x7002002A, // 0087 JMP #00B3
0x70020019, // 0088 JMP #00A3 0x1C1C0D05, // 0088 EQ R7 R6 K5
0x541E0010, // 0089 LDINT R7 17 0x781E0005, // 0089 JMPF R7 #0090
0x1C1C0C07, // 008A EQ R7 R6 R7 0x8C1C0907, // 008A GETMET R7 R4 K7
0x781E0005, // 008B JMPF R7 #0092 0x8824090A, // 008B GETMBR R9 R4 K10
0x8C1C0907, // 008C GETMET R7 R4 K7 0x542A00FD, // 008C LDINT R10 254
0x8824090A, // 008D GETMBR R9 R4 K10 0x7C1C0600, // 008D CALL R7 3
0x58280009, // 008E LDCONST R10 K9 0x80040E00, // 008E RET 1 R7
0x7C1C0600, // 008F CALL R7 3 0x70020022, // 008F JMP #00B3
0x80040E00, // 0090 RET 1 R7 0x541E000E, // 0090 LDINT R7 15
0x70020010, // 0091 JMP #00A3 0x1C1C0C07, // 0091 EQ R7 R6 R7
0x541EFFFB, // 0092 LDINT R7 65532 0x781E0005, // 0092 JMPF R7 #0099
0x1C1C0C07, // 0093 EQ R7 R6 R7 0x8C1C0907, // 0093 GETMET R7 R4 K7
0x781E0005, // 0094 JMPF R7 #009B 0x8824090A, // 0094 GETMBR R9 R4 K10
0x8C1C0907, // 0095 GETMET R7 R4 K7 0x58280006, // 0095 LDCONST R10 K6
0x8824090B, // 0096 GETMBR R9 R4 K11 0x7C1C0600, // 0096 CALL R7 3
0x58280009, // 0097 LDCONST R10 K9 0x80040E00, // 0097 RET 1 R7
0x7C1C0600, // 0098 CALL R7 3 0x70020019, // 0098 JMP #00B3
0x80040E00, // 0099 RET 1 R7 0x541E0010, // 0099 LDINT R7 17
0x70020007, // 009A JMP #00A3 0x1C1C0C07, // 009A EQ R7 R6 R7
0x541EFFFC, // 009B LDINT R7 65533 0x781E0005, // 009B JMPF R7 #00A2
0x1C1C0C07, // 009C EQ R7 R6 R7 0x8C1C0907, // 009C GETMET R7 R4 K7
0x781E0004, // 009D JMPF R7 #00A3 0x8824090A, // 009D GETMBR R9 R4 K10
0x8C1C0907, // 009E GETMET R7 R4 K7 0x8828010E, // 009E GETMBR R10 R0 K14
0x8824090B, // 009F GETMBR R9 R4 K11 0x7C1C0600, // 009F CALL R7 3
0x542A0004, // 00A0 LDINT R10 5 0x80040E00, // 00A0 RET 1 R7
0x7C1C0600, // 00A1 CALL R7 3 0x70020010, // 00A1 JMP #00B3
0x80040E00, // 00A2 RET 1 R7 0x541EFFFB, // 00A2 LDINT R7 65532
0x70020059, // 00A3 JMP #00FE 0x1C1C0C07, // 00A3 EQ R7 R6 R7
0x541E02FF, // 00A4 LDINT R7 768 0x781E0005, // 00A4 JMPF R7 #00AB
0x1C1C0A07, // 00A5 EQ R7 R5 R7 0x8C1C0907, // 00A5 GETMET R7 R4 K7
0x781E004E, // 00A6 JMPF R7 #00F6 0x8824090B, // 00A6 GETMBR R9 R4 K11
0x1C1C0D06, // 00A7 EQ R7 R6 K6 0x58280009, // 00A7 LDCONST R10 K9
0x781E0005, // 00A8 JMPF R7 #00AF 0x7C1C0600, // 00A8 CALL R7 3
0x8C1C0907, // 00A9 GETMET R7 R4 K7 0x80040E00, // 00A9 RET 1 R7
0x8824090A, // 00AA GETMBR R9 R4 K10 0x70020007, // 00AA JMP #00B3
0x8828010E, // 00AB GETMBR R10 R0 K14 0x541EFFFC, // 00AB LDINT R7 65533
0x7C1C0600, // 00AC CALL R7 3 0x1C1C0C07, // 00AC EQ R7 R6 R7
0x80040E00, // 00AD RET 1 R7 0x781E0004, // 00AD JMPF R7 #00B3
0x70020045, // 00AE JMP #00F5 0x8C1C0907, // 00AE GETMET R7 R4 K7
0x1C1C0D09, // 00AF EQ R7 R6 K9 0x8824090B, // 00AF GETMBR R9 R4 K11
0x781E0005, // 00B0 JMPF R7 #00B7 0x542A0004, // 00B0 LDINT R10 5
0x8C1C0907, // 00B1 GETMET R7 R4 K7 0x7C1C0600, // 00B1 CALL R7 3
0x8824090A, // 00B2 GETMBR R9 R4 K10 0x80040E00, // 00B2 RET 1 R7
0x8828010F, // 00B3 GETMBR R10 R0 K15 0x70020062, // 00B3 JMP #0117
0x7C1C0600, // 00B4 CALL R7 3 0x541E02FF, // 00B4 LDINT R7 768
0x80040E00, // 00B5 RET 1 R7 0x1C1C0A07, // 00B5 EQ R7 R5 R7
0x7002003D, // 00B6 JMP #00F5 0x781E0057, // 00B6 JMPF R7 #010F
0x541E0006, // 00B7 LDINT R7 7 0x1C1C0D06, // 00B7 EQ R7 R6 K6
0x1C1C0C07, // 00B8 EQ R7 R6 R7 0x781E0005, // 00B8 JMPF R7 #00BF
0x781E0005, // 00B9 JMPF R7 #00C0 0x8C1C0907, // 00B9 GETMET R7 R4 K7
0x8C1C0907, // 00BA GETMET R7 R4 K7 0x8824090A, // 00BA GETMBR R9 R4 K10
0x8824090A, // 00BB GETMBR R9 R4 K10 0x88280110, // 00BB GETMBR R10 R0 K16
0x58280006, // 00BC LDCONST R10 K6 0x7C1C0600, // 00BC CALL R7 3
0x7C1C0600, // 00BD CALL R7 3 0x80040E00, // 00BD RET 1 R7
0x80040E00, // 00BE RET 1 R7 0x7002004E, // 00BE JMP #010E
0x70020034, // 00BF JMP #00F5 0x1C1C0D09, // 00BF EQ R7 R6 K9
0x541E0007, // 00C0 LDINT R7 8 0x781E0005, // 00C0 JMPF R7 #00C7
0x1C1C0C07, // 00C1 EQ R7 R6 R7 0x8C1C0907, // 00C1 GETMET R7 R4 K7
0x781E0005, // 00C2 JMPF R7 #00C9 0x8824090A, // 00C2 GETMBR R9 R4 K10
0x8C1C0907, // 00C3 GETMET R7 R4 K7 0x88280111, // 00C3 GETMBR R10 R0 K17
0x8824090A, // 00C4 GETMBR R9 R4 K10 0x7C1C0600, // 00C4 CALL R7 3
0x58280006, // 00C5 LDCONST R10 K6 0x80040E00, // 00C5 RET 1 R7
0x7C1C0600, // 00C6 CALL R7 3 0x70020046, // 00C6 JMP #010E
0x80040E00, // 00C7 RET 1 R7 0x541E0006, // 00C7 LDINT R7 7
0x7002002B, // 00C8 JMP #00F5 0x1C1C0C07, // 00C8 EQ R7 R6 R7
0x541E000E, // 00C9 LDINT R7 15 0x781E0005, // 00C9 JMPF R7 #00D0
0x1C1C0C07, // 00CA EQ R7 R6 R7 0x8C1C0907, // 00CA GETMET R7 R4 K7
0x781E0005, // 00CB JMPF R7 #00D2 0x8824090A, // 00CB GETMBR R9 R4 K10
0x8C1C0907, // 00CC GETMET R7 R4 K7 0x58280006, // 00CC LDCONST R10 K6
0x8824090A, // 00CD GETMBR R9 R4 K10 0x7C1C0600, // 00CD CALL R7 3
0x58280006, // 00CE LDCONST R10 K6 0x80040E00, // 00CE RET 1 R7
0x7C1C0600, // 00CF CALL R7 3 0x7002003D, // 00CF JMP #010E
0x80040E00, // 00D0 RET 1 R7 0x541E0007, // 00D0 LDINT R7 8
0x70020022, // 00D1 JMP #00F5 0x1C1C0C07, // 00D1 EQ R7 R6 R7
0x541E4000, // 00D2 LDINT R7 16385 0x781E0005, // 00D2 JMPF R7 #00D9
0x1C1C0C07, // 00D3 EQ R7 R6 R7 0x8C1C0907, // 00D3 GETMET R7 R4 K7
0x781E0005, // 00D4 JMPF R7 #00DB 0x8824090A, // 00D4 GETMBR R9 R4 K10
0x8C1C0907, // 00D5 GETMET R7 R4 K7 0x58280006, // 00D5 LDCONST R10 K6
0x8824090A, // 00D6 GETMBR R9 R4 K10 0x7C1C0600, // 00D6 CALL R7 3
0x58280006, // 00D7 LDCONST R10 K6 0x80040E00, // 00D7 RET 1 R7
0x7C1C0600, // 00D8 CALL R7 3 0x70020034, // 00D8 JMP #010E
0x80040E00, // 00D9 RET 1 R7 0x541E000E, // 00D9 LDINT R7 15
0x70020019, // 00DA JMP #00F5 0x1C1C0C07, // 00DA EQ R7 R6 R7
0x541E4009, // 00DB LDINT R7 16394 0x781E0005, // 00DB JMPF R7 #00E2
0x1C1C0C07, // 00DC EQ R7 R6 R7 0x8C1C0907, // 00DC GETMET R7 R4 K7
0x781E0005, // 00DD JMPF R7 #00E4 0x8824090A, // 00DD GETMBR R9 R4 K10
0x8C1C0907, // 00DE GETMET R7 R4 K7 0x58280006, // 00DE LDCONST R10 K6
0x8824090A, // 00DF GETMBR R9 R4 K10 0x7C1C0600, // 00DF CALL R7 3
0x58280006, // 00E0 LDCONST R10 K6 0x80040E00, // 00E0 RET 1 R7
0x7C1C0600, // 00E1 CALL R7 3 0x7002002B, // 00E1 JMP #010E
0x80040E00, // 00E2 RET 1 R7 0x541E4000, // 00E2 LDINT R7 16385
0x70020010, // 00E3 JMP #00F5 0x1C1C0C07, // 00E3 EQ R7 R6 R7
0x541EFFFB, // 00E4 LDINT R7 65532 0x781E0005, // 00E4 JMPF R7 #00EB
0x1C1C0C07, // 00E5 EQ R7 R6 R7 0x8C1C0907, // 00E5 GETMET R7 R4 K7
0x781E0005, // 00E6 JMPF R7 #00ED 0x8824090A, // 00E6 GETMBR R9 R4 K10
0x8C1C0907, // 00E7 GETMET R7 R4 K7 0x58280006, // 00E7 LDCONST R10 K6
0x8824090B, // 00E8 GETMBR R9 R4 K11 0x7C1C0600, // 00E8 CALL R7 3
0x58280009, // 00E9 LDCONST R10 K9 0x80040E00, // 00E9 RET 1 R7
0x7C1C0600, // 00EA CALL R7 3 0x70020022, // 00EA JMP #010E
0x80040E00, // 00EB RET 1 R7 0x541E4009, // 00EB LDINT R7 16394
0x70020007, // 00EC JMP #00F5 0x1C1C0C07, // 00EC EQ R7 R6 R7
0x541EFFFC, // 00ED LDINT R7 65533 0x781E0005, // 00ED JMPF R7 #00F4
0x1C1C0C07, // 00EE EQ R7 R6 R7 0x8C1C0907, // 00EE GETMET R7 R4 K7
0x781E0004, // 00EF JMPF R7 #00F5 0x8824090A, // 00EF GETMBR R9 R4 K10
0x8C1C0907, // 00F0 GETMET R7 R4 K7 0x58280006, // 00F0 LDCONST R10 K6
0x8824090B, // 00F1 GETMBR R9 R4 K11 0x7C1C0600, // 00F1 CALL R7 3
0x542A0004, // 00F2 LDINT R10 5 0x80040E00, // 00F2 RET 1 R7
0x7C1C0600, // 00F3 CALL R7 3 0x70020019, // 00F3 JMP #010E
0x80040E00, // 00F4 RET 1 R7 0x541E000F, // 00F4 LDINT R7 16
0x70020007, // 00F5 JMP #00FE 0x1C1C0C07, // 00F5 EQ R7 R6 R7
0x601C0003, // 00F6 GETGBL R7 G3 0x781E0005, // 00F6 JMPF R7 #00FD
0x5C200000, // 00F7 MOVE R8 R0 0x8C1C0907, // 00F7 GETMET R7 R4 K7
0x7C1C0200, // 00F8 CALL R7 1 0x8824090A, // 00F8 GETMBR R9 R4 K10
0x8C1C0F10, // 00F9 GETMET R7 R7 K16 0x58280006, // 00F9 LDCONST R10 K6
0x5C240200, // 00FA MOVE R9 R1 0x7C1C0600, // 00FA CALL R7 3
0x5C280400, // 00FB MOVE R10 R2 0x80040E00, // 00FB RET 1 R7
0x7C1C0600, // 00FC CALL R7 3 0x70020010, // 00FC JMP #010E
0x80040E00, // 00FD RET 1 R7 0x541EFFFB, // 00FD LDINT R7 65532
0x80000000, // 00FE RET 0 0x1C1C0C07, // 00FE EQ R7 R6 R7
0x781E0005, // 00FF JMPF R7 #0106
0x8C1C0907, // 0100 GETMET R7 R4 K7
0x8824090B, // 0101 GETMBR R9 R4 K11
0x58280009, // 0102 LDCONST R10 K9
0x7C1C0600, // 0103 CALL R7 3
0x80040E00, // 0104 RET 1 R7
0x70020007, // 0105 JMP #010E
0x541EFFFC, // 0106 LDINT R7 65533
0x1C1C0C07, // 0107 EQ R7 R6 R7
0x781E0004, // 0108 JMPF R7 #010E
0x8C1C0907, // 0109 GETMET R7 R4 K7
0x8824090B, // 010A GETMBR R9 R4 K11
0x542A0004, // 010B LDINT R10 5
0x7C1C0600, // 010C CALL R7 3
0x80040E00, // 010D RET 1 R7
0x70020007, // 010E JMP #0117
0x601C0003, // 010F GETGBL R7 G3
0x5C200000, // 0110 MOVE R8 R0
0x7C1C0200, // 0111 CALL R7 1
0x8C1C0F12, // 0112 GETMET R7 R7 K18
0x5C240200, // 0113 MOVE R9 R1
0x5C280400, // 0114 MOVE R10 R2
0x7C1C0600, // 0115 CALL R7 3
0x80040E00, // 0116 RET 1 R7
0x80000000, // 0117 RET 0
}) })
) )
); );
@ -535,7 +569,7 @@ be_local_closure(Matter_Plugin_Light3_every_second, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */ be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 18, /* nstack */
4, /* argc */ 4, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -543,143 +577,318 @@ be_local_closure(Matter_Plugin_Light3_invoke_request, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[13]) { /* constants */ ( &(const bvalue[22]) { /* constants */
/* K0 */ be_nested_str_weak(matter), /* K0 */ be_nested_str_weak(light),
/* K1 */ be_nested_str_weak(TLV), /* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(cluster), /* K2 */ be_nested_str_weak(TLV),
/* K3 */ be_nested_str_weak(command), /* K3 */ be_nested_str_weak(cluster),
/* K4 */ be_const_int(3), /* K4 */ be_nested_str_weak(command),
/* K5 */ be_const_int(0), /* K5 */ be_const_int(3),
/* K6 */ be_const_int(1), /* K6 */ be_const_int(0),
/* K7 */ be_nested_str_weak(Matter_TLV_struct), /* K7 */ be_const_int(1),
/* K8 */ be_nested_str_weak(add_TLV), /* K8 */ be_nested_str_weak(Matter_TLV_struct),
/* K9 */ be_nested_str_weak(U2), /* K9 */ be_nested_str_weak(add_TLV),
/* K10 */ be_nested_str_weak(set_onoff), /* K10 */ be_nested_str_weak(U2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(set),
/* K12 */ be_nested_str_weak(get_onoff), /* K12 */ be_nested_str_weak(power),
/* K13 */ be_nested_str_weak(update_shadow),
/* K14 */ be_const_int(2),
/* K15 */ be_nested_str_weak(shadow_onoff),
/* K16 */ be_nested_str_weak(findsubval),
/* K17 */ be_nested_str_weak(tasmota),
/* K18 */ be_nested_str_weak(scale_uint),
/* K19 */ be_nested_str_weak(bri),
/* K20 */ be_nested_str_weak(hue),
/* K21 */ be_nested_str_weak(sat),
}), }),
be_str_weak(invoke_request), be_str_weak(invoke_request),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[119]) { /* code */ ( &(const binstruction[285]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0 0xA4120000, // 0000 IMPORT R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1 0xB8160200, // 0001 GETNGBL R5 K1
0x88140702, // 0002 GETMBR R5 R3 K2 0x88140B02, // 0002 GETMBR R5 R5 K2
0x88180703, // 0003 GETMBR R6 R3 K3 0x88180703, // 0003 GETMBR R6 R3 K3
0x1C1C0B04, // 0004 EQ R7 R5 K4 0x881C0704, // 0004 GETMBR R7 R3 K4
0x781E0016, // 0005 JMPF R7 #001D 0x1C200D05, // 0005 EQ R8 R6 K5
0x1C1C0D05, // 0006 EQ R7 R6 K5 0x78220016, // 0006 JMPF R8 #001E
0x781E0002, // 0007 JMPF R7 #000B 0x1C200F06, // 0007 EQ R8 R7 K6
0x501C0200, // 0008 LDBOOL R7 1 0 0x78220002, // 0008 JMPF R8 #000C
0x80040E00, // 0009 RET 1 R7 0x50200200, // 0009 LDBOOL R8 1 0
0x70020010, // 000A JMP #001C 0x80041000, // 000A RET 1 R8
0x1C1C0D06, // 000B EQ R7 R6 K6 0x70020010, // 000B JMP #001D
0x781E0009, // 000C JMPF R7 #0017 0x1C200F07, // 000C EQ R8 R7 K7
0x8C1C0907, // 000D GETMET R7 R4 K7 0x78220009, // 000D JMPF R8 #0018
0x7C1C0200, // 000E CALL R7 1 0x8C200B08, // 000E GETMET R8 R5 K8
0x8C200F08, // 000F GETMET R8 R7 K8 0x7C200200, // 000F CALL R8 1
0x58280005, // 0010 LDCONST R10 K5 0x8C241109, // 0010 GETMET R9 R8 K9
0x882C0909, // 0011 GETMBR R11 R4 K9 0x582C0006, // 0011 LDCONST R11 K6
0x58300005, // 0012 LDCONST R12 K5 0x88300B0A, // 0012 GETMBR R12 R5 K10
0x7C200800, // 0013 CALL R8 4 0x58340006, // 0013 LDCONST R13 K6
0x900E0705, // 0014 SETMBR R3 K3 K5 0x7C240800, // 0014 CALL R9 4
0x80040E00, // 0015 RET 1 R7 0x900E0906, // 0015 SETMBR R3 K4 K6
0x70020004, // 0016 JMP #001C 0x80041000, // 0016 RET 1 R8
0x541E003F, // 0017 LDINT R7 64 0x70020004, // 0017 JMP #001D
0x1C1C0C07, // 0018 EQ R7 R6 R7 0x5422003F, // 0018 LDINT R8 64
0x781E0001, // 0019 JMPF R7 #001C 0x1C200E08, // 0019 EQ R8 R7 R8
0x501C0200, // 001A LDBOOL R7 1 0 0x78220001, // 001A JMPF R8 #001D
0x80040E00, // 001B RET 1 R7 0x50200200, // 001B LDBOOL R8 1 0
0x70020058, // 001C JMP #0076 0x80041000, // 001C RET 1 R8
0x541E0003, // 001D LDINT R7 4 0x700200FD, // 001D JMP #011C
0x1C1C0A07, // 001E EQ R7 R5 R7 0x54220003, // 001E LDINT R8 4
0x781E0002, // 001F JMPF R7 #0023 0x1C200C08, // 001F EQ R8 R6 R8
0x501C0200, // 0020 LDBOOL R7 1 0 0x78220002, // 0020 JMPF R8 #0024
0x80040E00, // 0021 RET 1 R7 0x50200200, // 0021 LDBOOL R8 1 0
0x70020052, // 0022 JMP #0076 0x80041000, // 0022 RET 1 R8
0x541E0004, // 0023 LDINT R7 5 0x700200F7, // 0023 JMP #011C
0x1C1C0A07, // 0024 EQ R7 R5 R7 0x54220004, // 0024 LDINT R8 5
0x781E0002, // 0025 JMPF R7 #0029 0x1C200C08, // 0025 EQ R8 R6 R8
0x501C0200, // 0026 LDBOOL R7 1 0 0x78220002, // 0026 JMPF R8 #002A
0x80040E00, // 0027 RET 1 R7 0x50200200, // 0027 LDBOOL R8 1 0
0x7002004C, // 0028 JMP #0076 0x80041000, // 0028 RET 1 R8
0x541E0005, // 0029 LDINT R7 6 0x700200F1, // 0029 JMP #011C
0x1C1C0A07, // 002A EQ R7 R5 R7 0x54220005, // 002A LDINT R8 6
0x781E001B, // 002B JMPF R7 #0048 0x1C200C08, // 002B EQ R8 R6 R8
0x1C1C0D05, // 002C EQ R7 R6 K5 0x78220029, // 002C JMPF R8 #0057
0x781E0005, // 002D JMPF R7 #0034 0x1C200F06, // 002D EQ R8 R7 K6
0x8C1C010A, // 002E GETMET R7 R0 K10 0x7822000A, // 002E JMPF R8 #003A
0x50240000, // 002F LDBOOL R9 0 0 0x8C20090B, // 002F GETMET R8 R4 K11
0x7C1C0400, // 0030 CALL R7 2 0x60280013, // 0030 GETGBL R10 G19
0x501C0200, // 0031 LDBOOL R7 1 0 0x7C280000, // 0031 CALL R10 0
0x80040E00, // 0032 RET 1 R7 0x502C0000, // 0032 LDBOOL R11 0 0
0x70020012, // 0033 JMP #0047 0x982A180B, // 0033 SETIDX R10 K12 R11
0x1C1C0D06, // 0034 EQ R7 R6 K6 0x7C200400, // 0034 CALL R8 2
0x781E0005, // 0035 JMPF R7 #003C 0x8C20010D, // 0035 GETMET R8 R0 K13
0x8C1C010A, // 0036 GETMET R7 R0 K10 0x7C200200, // 0036 CALL R8 1
0x50240200, // 0037 LDBOOL R9 1 0 0x50200200, // 0037 LDBOOL R8 1 0
0x7C1C0400, // 0038 CALL R7 2 0x80041000, // 0038 RET 1 R8
0x501C0200, // 0039 LDBOOL R7 1 0 0x7002001B, // 0039 JMP #0056
0x80040E00, // 003A RET 1 R7 0x1C200F07, // 003A EQ R8 R7 K7
0x7002000A, // 003B JMP #0047 0x7822000A, // 003B JMPF R8 #0047
0x1C1C0D0B, // 003C EQ R7 R6 K11 0x8C20090B, // 003C GETMET R8 R4 K11
0x781E0008, // 003D JMPF R7 #0047 0x60280013, // 003D GETGBL R10 G19
0x8C1C010A, // 003E GETMET R7 R0 K10 0x7C280000, // 003E CALL R10 0
0x8C24010C, // 003F GETMET R9 R0 K12 0x502C0200, // 003F LDBOOL R11 1 0
0x7C240200, // 0040 CALL R9 1 0x982A180B, // 0040 SETIDX R10 K12 R11
0x78260000, // 0041 JMPF R9 #0043 0x7C200400, // 0041 CALL R8 2
0x50240001, // 0042 LDBOOL R9 0 1 0x8C20010D, // 0042 GETMET R8 R0 K13
0x50240200, // 0043 LDBOOL R9 1 0 0x7C200200, // 0043 CALL R8 1
0x7C1C0400, // 0044 CALL R7 2 0x50200200, // 0044 LDBOOL R8 1 0
0x501C0200, // 0045 LDBOOL R7 1 0 0x80041000, // 0045 RET 1 R8
0x80040E00, // 0046 RET 1 R7 0x7002000E, // 0046 JMP #0056
0x7002002D, // 0047 JMP #0076 0x1C200F0E, // 0047 EQ R8 R7 K14
0x541E0007, // 0048 LDINT R7 8 0x7822000C, // 0048 JMPF R8 #0056
0x1C1C0A07, // 0049 EQ R7 R5 R7 0x8C20090B, // 0049 GETMET R8 R4 K11
0x781E002A, // 004A JMPF R7 #0076 0x60280013, // 004A GETGBL R10 G19
0x1C1C0D05, // 004B EQ R7 R6 K5 0x7C280000, // 004B CALL R10 0
0x781E0002, // 004C JMPF R7 #0050 0x882C010F, // 004C GETMBR R11 R0 K15
0x501C0200, // 004D LDBOOL R7 1 0 0x782E0000, // 004D JMPF R11 #004F
0x80040E00, // 004E RET 1 R7 0x502C0001, // 004E LDBOOL R11 0 1
0x70020025, // 004F JMP #0076 0x502C0200, // 004F LDBOOL R11 1 0
0x1C1C0D06, // 0050 EQ R7 R6 K6 0x982A180B, // 0050 SETIDX R10 K12 R11
0x781E0002, // 0051 JMPF R7 #0055 0x7C200400, // 0051 CALL R8 2
0x501C0200, // 0052 LDBOOL R7 1 0 0x8C20010D, // 0052 GETMET R8 R0 K13
0x80040E00, // 0053 RET 1 R7 0x7C200200, // 0053 CALL R8 1
0x70020020, // 0054 JMP #0076 0x50200200, // 0054 LDBOOL R8 1 0
0x1C1C0D0B, // 0055 EQ R7 R6 K11 0x80041000, // 0055 RET 1 R8
0x781E0002, // 0056 JMPF R7 #005A 0x700200C4, // 0056 JMP #011C
0x501C0200, // 0057 LDBOOL R7 1 0 0x54220007, // 0057 LDINT R8 8
0x80040E00, // 0058 RET 1 R7 0x1C200C08, // 0058 EQ R8 R6 R8
0x7002001B, // 0059 JMP #0076 0x78220051, // 0059 JMPF R8 #00AC
0x1C1C0D04, // 005A EQ R7 R6 K4 0x1C200F06, // 005A EQ R8 R7 K6
0x781E0002, // 005B JMPF R7 #005F 0x78220014, // 005B JMPF R8 #0071
0x501C0200, // 005C LDBOOL R7 1 0 0x8C200510, // 005C GETMET R8 R2 K16
0x80040E00, // 005D RET 1 R7 0x58280006, // 005D LDCONST R10 K6
0x70020016, // 005E JMP #0076 0x7C200400, // 005E CALL R8 2
0x541E0003, // 005F LDINT R7 4 0xB8262200, // 005F GETNGBL R9 K17
0x1C1C0C07, // 0060 EQ R7 R6 R7 0x8C241312, // 0060 GETMET R9 R9 K18
0x781E0002, // 0061 JMPF R7 #0065 0x5C2C1000, // 0061 MOVE R11 R8
0x501C0200, // 0062 LDBOOL R7 1 0 0x58300006, // 0062 LDCONST R12 K6
0x80040E00, // 0063 RET 1 R7 0x543600FD, // 0063 LDINT R13 254
0x70020010, // 0064 JMP #0076 0x58380006, // 0064 LDCONST R14 K6
0x541E0004, // 0065 LDINT R7 5 0x543E0167, // 0065 LDINT R15 360
0x1C1C0C07, // 0066 EQ R7 R6 R7 0x7C240C00, // 0066 CALL R9 6
0x781E0002, // 0067 JMPF R7 #006B 0x8C28090B, // 0067 GETMET R10 R4 K11
0x501C0200, // 0068 LDBOOL R7 1 0 0x60300013, // 0068 GETGBL R12 G19
0x80040E00, // 0069 RET 1 R7 0x7C300000, // 0069 CALL R12 0
0x7002000A, // 006A JMP #0076 0x98322609, // 006A SETIDX R12 K19 R9
0x541E0005, // 006B LDINT R7 6 0x7C280400, // 006B CALL R10 2
0x1C1C0C07, // 006C EQ R7 R6 R7 0x8C28010D, // 006C GETMET R10 R0 K13
0x781E0002, // 006D JMPF R7 #0071 0x7C280200, // 006D CALL R10 1
0x501C0200, // 006E LDBOOL R7 1 0 0x50280200, // 006E LDBOOL R10 1 0
0x80040E00, // 006F RET 1 R7 0x80041400, // 006F RET 1 R10
0x70020004, // 0070 JMP #0076 0x70020039, // 0070 JMP #00AB
0x541E0006, // 0071 LDINT R7 7 0x1C200F07, // 0071 EQ R8 R7 K7
0x1C1C0C07, // 0072 EQ R7 R6 R7 0x78220002, // 0072 JMPF R8 #0076
0x781E0001, // 0073 JMPF R7 #0076 0x50200200, // 0073 LDBOOL R8 1 0
0x501C0200, // 0074 LDBOOL R7 1 0 0x80041000, // 0074 RET 1 R8
0x80040E00, // 0075 RET 1 R7 0x70020034, // 0075 JMP #00AB
0x80000000, // 0076 RET 0 0x1C200F0E, // 0076 EQ R8 R7 K14
0x78220002, // 0077 JMPF R8 #007B
0x50200200, // 0078 LDBOOL R8 1 0
0x80041000, // 0079 RET 1 R8
0x7002002F, // 007A JMP #00AB
0x1C200F05, // 007B EQ R8 R7 K5
0x78220002, // 007C JMPF R8 #0080
0x50200200, // 007D LDBOOL R8 1 0
0x80041000, // 007E RET 1 R8
0x7002002A, // 007F JMP #00AB
0x54220003, // 0080 LDINT R8 4
0x1C200E08, // 0081 EQ R8 R7 R8
0x78220016, // 0082 JMPF R8 #009A
0x8C200510, // 0083 GETMET R8 R2 K16
0x58280006, // 0084 LDCONST R10 K6
0x7C200400, // 0085 CALL R8 2
0xB8262200, // 0086 GETNGBL R9 K17
0x8C241312, // 0087 GETMET R9 R9 K18
0x5C2C1000, // 0088 MOVE R11 R8
0x58300006, // 0089 LDCONST R12 K6
0x543600FD, // 008A LDINT R13 254
0x58380006, // 008B LDCONST R14 K6
0x543E0167, // 008C LDINT R15 360
0x7C240C00, // 008D CALL R9 6
0x24281306, // 008E GT R10 R9 K6
0x8C2C090B, // 008F GETMET R11 R4 K11
0x60340013, // 0090 GETGBL R13 G19
0x7C340000, // 0091 CALL R13 0
0x98362609, // 0092 SETIDX R13 K19 R9
0x9836180A, // 0093 SETIDX R13 K12 R10
0x7C2C0400, // 0094 CALL R11 2
0x8C2C010D, // 0095 GETMET R11 R0 K13
0x7C2C0200, // 0096 CALL R11 1
0x502C0200, // 0097 LDBOOL R11 1 0
0x80041600, // 0098 RET 1 R11
0x70020010, // 0099 JMP #00AB
0x54220004, // 009A LDINT R8 5
0x1C200E08, // 009B EQ R8 R7 R8
0x78220002, // 009C JMPF R8 #00A0
0x50200200, // 009D LDBOOL R8 1 0
0x80041000, // 009E RET 1 R8
0x7002000A, // 009F JMP #00AB
0x54220005, // 00A0 LDINT R8 6
0x1C200E08, // 00A1 EQ R8 R7 R8
0x78220002, // 00A2 JMPF R8 #00A6
0x50200200, // 00A3 LDBOOL R8 1 0
0x80041000, // 00A4 RET 1 R8
0x70020004, // 00A5 JMP #00AB
0x54220006, // 00A6 LDINT R8 7
0x1C200E08, // 00A7 EQ R8 R7 R8
0x78220001, // 00A8 JMPF R8 #00AB
0x50200200, // 00A9 LDBOOL R8 1 0
0x80041000, // 00AA RET 1 R8
0x7002006F, // 00AB JMP #011C
0x542202FF, // 00AC LDINT R8 768
0x1C200C08, // 00AD EQ R8 R6 R8
0x7822006C, // 00AE JMPF R8 #011C
0x1C200F06, // 00AF EQ R8 R7 K6
0x78220014, // 00B0 JMPF R8 #00C6
0x8C200510, // 00B1 GETMET R8 R2 K16
0x58280006, // 00B2 LDCONST R10 K6
0x7C200400, // 00B3 CALL R8 2
0xB8262200, // 00B4 GETNGBL R9 K17
0x8C241312, // 00B5 GETMET R9 R9 K18
0x5C2C1000, // 00B6 MOVE R11 R8
0x58300006, // 00B7 LDCONST R12 K6
0x543600FD, // 00B8 LDINT R13 254
0x58380006, // 00B9 LDCONST R14 K6
0x543E0167, // 00BA LDINT R15 360
0x7C240C00, // 00BB CALL R9 6
0x8C28090B, // 00BC GETMET R10 R4 K11
0x60300013, // 00BD GETGBL R12 G19
0x7C300000, // 00BE CALL R12 0
0x98322809, // 00BF SETIDX R12 K20 R9
0x7C280400, // 00C0 CALL R10 2
0x8C28010D, // 00C1 GETMET R10 R0 K13
0x7C280200, // 00C2 CALL R10 1
0x50280200, // 00C3 LDBOOL R10 1 0
0x80041400, // 00C4 RET 1 R10
0x70020055, // 00C5 JMP #011C
0x1C200F07, // 00C6 EQ R8 R7 K7
0x78220002, // 00C7 JMPF R8 #00CB
0x50200200, // 00C8 LDBOOL R8 1 0
0x80041000, // 00C9 RET 1 R8
0x70020050, // 00CA JMP #011C
0x1C200F0E, // 00CB EQ R8 R7 K14
0x78220002, // 00CC JMPF R8 #00D0
0x50200200, // 00CD LDBOOL R8 1 0
0x80041000, // 00CE RET 1 R8
0x7002004B, // 00CF JMP #011C
0x1C200F05, // 00D0 EQ R8 R7 K5
0x78220014, // 00D1 JMPF R8 #00E7
0x8C200510, // 00D2 GETMET R8 R2 K16
0x58280006, // 00D3 LDCONST R10 K6
0x7C200400, // 00D4 CALL R8 2
0xB8262200, // 00D5 GETNGBL R9 K17
0x8C241312, // 00D6 GETMET R9 R9 K18
0x5C2C1000, // 00D7 MOVE R11 R8
0x58300006, // 00D8 LDCONST R12 K6
0x543600FD, // 00D9 LDINT R13 254
0x58380006, // 00DA LDCONST R14 K6
0x543E00FE, // 00DB LDINT R15 255
0x7C240C00, // 00DC CALL R9 6
0x8C28090B, // 00DD GETMET R10 R4 K11
0x60300013, // 00DE GETGBL R12 G19
0x7C300000, // 00DF CALL R12 0
0x98322A09, // 00E0 SETIDX R12 K21 R9
0x7C280400, // 00E1 CALL R10 2
0x8C28010D, // 00E2 GETMET R10 R0 K13
0x7C280200, // 00E3 CALL R10 1
0x50280200, // 00E4 LDBOOL R10 1 0
0x80041400, // 00E5 RET 1 R10
0x70020034, // 00E6 JMP #011C
0x54220003, // 00E7 LDINT R8 4
0x1C200E08, // 00E8 EQ R8 R7 R8
0x78220002, // 00E9 JMPF R8 #00ED
0x50200200, // 00EA LDBOOL R8 1 0
0x80041000, // 00EB RET 1 R8
0x7002002E, // 00EC JMP #011C
0x54220004, // 00ED LDINT R8 5
0x1C200E08, // 00EE EQ R8 R7 R8
0x78220002, // 00EF JMPF R8 #00F3
0x50200200, // 00F0 LDBOOL R8 1 0
0x80041000, // 00F1 RET 1 R8
0x70020028, // 00F2 JMP #011C
0x54220005, // 00F3 LDINT R8 6
0x1C200E08, // 00F4 EQ R8 R7 R8
0x78220020, // 00F5 JMPF R8 #0117
0x8C200510, // 00F6 GETMET R8 R2 K16
0x58280006, // 00F7 LDCONST R10 K6
0x7C200400, // 00F8 CALL R8 2
0xB8262200, // 00F9 GETNGBL R9 K17
0x8C241312, // 00FA GETMET R9 R9 K18
0x5C2C1000, // 00FB MOVE R11 R8
0x58300006, // 00FC LDCONST R12 K6
0x543600FD, // 00FD LDINT R13 254
0x58380006, // 00FE LDCONST R14 K6
0x543E0167, // 00FF LDINT R15 360
0x7C240C00, // 0100 CALL R9 6
0x8C280510, // 0101 GETMET R10 R2 K16
0x58300007, // 0102 LDCONST R12 K7
0x7C280400, // 0103 CALL R10 2
0xB82E2200, // 0104 GETNGBL R11 K17
0x8C2C1712, // 0105 GETMET R11 R11 K18
0x5C341400, // 0106 MOVE R13 R10
0x58380006, // 0107 LDCONST R14 K6
0x543E00FD, // 0108 LDINT R15 254
0x58400006, // 0109 LDCONST R16 K6
0x544600FE, // 010A LDINT R17 255
0x7C2C0C00, // 010B CALL R11 6
0x8C30090B, // 010C GETMET R12 R4 K11
0x60380013, // 010D GETGBL R14 G19
0x7C380000, // 010E CALL R14 0
0x983A2809, // 010F SETIDX R14 K20 R9
0x983A2A0B, // 0110 SETIDX R14 K21 R11
0x7C300400, // 0111 CALL R12 2
0x8C30010D, // 0112 GETMET R12 R0 K13
0x7C300200, // 0113 CALL R12 1
0x50300200, // 0114 LDBOOL R12 1 0
0x80041800, // 0115 RET 1 R12
0x70020004, // 0116 JMP #011C
0x54220046, // 0117 LDINT R8 71
0x1C200E08, // 0118 EQ R8 R7 R8
0x78220001, // 0119 JMPF R8 #011C
0x50200200, // 011A LDBOOL R8 1 0
0x80041000, // 011B RET 1 R8
0x80000000, // 011C RET 0
}) })
) )
); );
@ -733,9 +942,11 @@ be_local_class(Matter_Plugin_Light3,
be_const_int(65533), be_const_int(65533),
})) ) } )) }, })) ) } )) },
{ be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, { { be_const_key_int(8, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(5, be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) { ( (struct bvalue*) &(const bvalue[]) {
be_const_int(0), be_const_int(0),
be_const_int(2),
be_const_int(3),
be_const_int(15), be_const_int(15),
be_const_int(17), be_const_int(17),
be_const_int(65532), be_const_int(65532),

View File

@ -1173,10 +1173,38 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
NULL, /* no upvals */ NULL, /* no upvals */
1, /* has sup protos */
( &(const struct bproto*[ 1]) {
be_nested_proto(
3, /* nstack */
0, /* argc */
0, /* varg */
1, /* has upvals */
( &(const bupvaldesc[ 2]) { /* upvals */
be_local_const_upval(1, 0),
be_local_const_upval(1, 11),
}),
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[95]) { /* constants */ ( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(device),
/* K1 */ be_nested_str_weak(remove_fabric),
}),
be_str_weak(_anonymous_),
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x68000000, // 0000 GETUPV R0 U0
0x88000100, // 0001 GETMBR R0 R0 K0
0x8C000101, // 0002 GETMET R0 R0 K1
0x68080001, // 0003 GETUPV R2 U1
0x7C000400, // 0004 CALL R0 2
0x80000000, // 0005 RET 0
})
),
}),
1, /* has constants */
( &(const bvalue[96]) { /* constants */
/* K0 */ be_nested_str_weak(crypto), /* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(string),
/* K2 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(matter),
@ -1257,25 +1285,26 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
/* K77 */ be_nested_str_weak(get_fabric_index), /* K77 */ be_nested_str_weak(get_fabric_index),
/* K78 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20), /* K78 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
/* K79 */ be_nested_str_weak(get_fabric_id), /* K79 */ be_nested_str_weak(get_fabric_id),
/* K80 */ be_nested_str_weak(remove_fabric), /* K80 */ be_nested_str_weak(set_timer),
/* K81 */ be_nested_str_weak(stop_iteration), /* K81 */ be_nested_str_weak(stop_iteration),
/* K82 */ be_nested_str_weak(MTR_X3A_X20RemoveFabric_X20fabric_X28), /* K82 */ be_nested_str_weak(MTR_X3A_X20RemoveFabric_X20fabric_X28),
/* K83 */ be_nested_str_weak(_X29_X20not_X20found), /* K83 */ be_nested_str_weak(_X29_X20not_X20found),
/* K84 */ be_nested_str_weak(format), /* K84 */ be_nested_str_weak(INVALID_ACTION),
/* K85 */ be_nested_str_weak(MTR_X3A_X20OpenCommissioningWindow_X28timeout_X3D_X25i_X2C_X20passcode_X3D_X25s_X2C_X20discriminator_X3D_X25i_X2C_X20iterations_X3D_X25i_X2C_X20salt_X3D_X25s_X29), /* K85 */ be_nested_str_weak(format),
/* K86 */ be_nested_str_weak(INVALID_DATA_TYPE), /* K86 */ be_nested_str_weak(MTR_X3A_X20OpenCommissioningWindow_X28timeout_X3D_X25i_X2C_X20passcode_X3D_X25s_X2C_X20discriminator_X3D_X25i_X2C_X20iterations_X3D_X25i_X2C_X20salt_X3D_X25s_X29),
/* K87 */ be_nested_str_weak(MTR_X3A_X20wrong_X20size_X20for_X20PAKE_X20parameters), /* K87 */ be_nested_str_weak(INVALID_DATA_TYPE),
/* K88 */ be_nested_str_weak(CONSTRAINT_ERROR), /* K88 */ be_nested_str_weak(MTR_X3A_X20wrong_X20size_X20for_X20PAKE_X20parameters),
/* K89 */ be_nested_str_weak(start_basic_commissioning), /* K89 */ be_nested_str_weak(CONSTRAINT_ERROR),
/* K90 */ be_nested_str_weak(get_fabric), /* K90 */ be_nested_str_weak(start_basic_commissioning),
/* K91 */ be_nested_str_weak(MTR_X3A_X20OpenBasicCommissioningWindow_X20commissioning_timeout_X3D), /* K91 */ be_nested_str_weak(get_fabric),
/* K92 */ be_nested_str_weak(start_root_basic_commissioning), /* K92 */ be_nested_str_weak(MTR_X3A_X20OpenBasicCommissioningWindow_X20commissioning_timeout_X3D),
/* K93 */ be_nested_str_weak(stop_basic_commissioning), /* K93 */ be_nested_str_weak(start_root_basic_commissioning),
/* K94 */ be_nested_str_weak(invoke_request), /* K94 */ be_nested_str_weak(stop_basic_commissioning),
/* K95 */ be_nested_str_weak(invoke_request),
}), }),
be_str_weak(invoke_request), be_str_weak(invoke_request),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[694]) { /* code */ ( &(const binstruction[706]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0 0xA4120000, // 0000 IMPORT R4 K0
0xA4160200, // 0001 IMPORT R5 K1 0xA4160200, // 0001 IMPORT R5 K1
0xB81A0400, // 0002 GETNGBL R6 K2 0xB81A0400, // 0002 GETNGBL R6 K2
@ -1369,10 +1398,10 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x5C300200, // 005A MOVE R12 R1 0x5C300200, // 005A MOVE R12 R1
0x7C280400, // 005B CALL R10 2 0x7C280400, // 005B CALL R10 2
0x80041200, // 005C RET 1 R9 0x80041200, // 005C RET 1 R9
0x70020256, // 005D JMP #02B5 0x70020261, // 005D JMP #02C0
0x5426003D, // 005E LDINT R9 62 0x5426003D, // 005E LDINT R9 62
0x1C240E09, // 005F EQ R9 R7 R9 0x1C240E09, // 005F EQ R9 R7 R9
0x782601BF, // 0060 JMPF R9 #0221 0x782601C3, // 0060 JMPF R9 #0225
0x1C24110F, // 0061 EQ R9 R8 K15 0x1C24110F, // 0061 EQ R9 R8 K15
0x7826001D, // 0062 JMPF R9 #0081 0x7826001D, // 0062 JMPF R9 #0081
0x8C240507, // 0063 GETMET R9 R2 K7 0x8C240507, // 0063 GETMET R9 R2 K7
@ -1404,7 +1433,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x7C2C0800, // 007D CALL R11 4 0x7C2C0800, // 007D CALL R11 4
0x900E0B11, // 007E SETMBR R3 K5 K17 0x900E0B11, // 007E SETMBR R3 K5 K17
0x80041400, // 007F RET 1 R10 0x80041400, // 007F RET 1 R10
0x7002019E, // 0080 JMP #0220 0x700201A2, // 0080 JMP #0224
0x1C241106, // 0081 EQ R9 R8 K6 0x1C241106, // 0081 EQ R9 R8 K6
0x78260044, // 0082 JMPF R9 #00C8 0x78260044, // 0082 JMPF R9 #00C8
0x8C240507, // 0083 GETMET R9 R2 K7 0x8C240507, // 0083 GETMET R9 R2 K7
@ -1475,7 +1504,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x7C400800, // 00C4 CALL R16 4 0x7C400800, // 00C4 CALL R16 4
0x900E0B08, // 00C5 SETMBR R3 K5 K8 0x900E0B08, // 00C5 SETMBR R3 K5 K8
0x80041E00, // 00C6 RET 1 R15 0x80041E00, // 00C6 RET 1 R15
0x70020157, // 00C7 JMP #0220 0x7002015B, // 00C7 JMP #0224
0x54260003, // 00C8 LDINT R9 4 0x54260003, // 00C8 LDINT R9 4
0x1C241009, // 00C9 EQ R9 R8 R9 0x1C241009, // 00C9 EQ R9 R8 R9
0x78260040, // 00CA JMPF R9 #010C 0x78260040, // 00CA JMPF R9 #010C
@ -1543,7 +1572,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x54460004, // 0108 LDINT R17 5 0x54460004, // 0108 LDINT R17 5
0x900E0A11, // 0109 SETMBR R3 K5 R17 0x900E0A11, // 0109 SETMBR R3 K5 R17
0x80042000, // 010A RET 1 R16 0x80042000, // 010A RET 1 R16
0x70020113, // 010B JMP #0220 0x70020117, // 010B JMP #0224
0x5426000A, // 010C LDINT R9 11 0x5426000A, // 010C LDINT R9 11
0x1C241009, // 010D EQ R9 R8 R9 0x1C241009, // 010D EQ R9 R8 R9
0x78260012, // 010E JMPF R9 #0122 0x78260012, // 010E JMPF R9 #0122
@ -1565,7 +1594,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x900E2E0A, // 011E SETMBR R3 K23 R10 0x900E2E0A, // 011E SETMBR R3 K23 R10
0x4C280000, // 011F LDNIL R10 0x4C280000, // 011F LDNIL R10
0x80041400, // 0120 RET 1 R10 0x80041400, // 0120 RET 1 R10
0x700200FD, // 0121 JMP #0220 0x70020101, // 0121 JMP #0224
0x54260005, // 0122 LDINT R9 6 0x54260005, // 0122 LDINT R9 6
0x1C241009, // 0123 EQ R9 R8 R9 0x1C241009, // 0123 EQ R9 R8 R9
0x782600B2, // 0124 JMPF R9 #01D8 0x782600B2, // 0124 JMPF R9 #01D8
@ -1747,7 +1776,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x54620007, // 01D4 LDINT R24 8 0x54620007, // 01D4 LDINT R24 8
0x900E0A18, // 01D5 SETMBR R3 K5 R24 0x900E0A18, // 01D5 SETMBR R3 K5 R24
0x80042E00, // 01D6 RET 1 R23 0x80042E00, // 01D6 RET 1 R23
0x70020047, // 01D7 JMP #0220 0x7002004B, // 01D7 JMP #0224
0x54260008, // 01D8 LDINT R9 9 0x54260008, // 01D8 LDINT R9 9
0x1C241009, // 01D9 EQ R9 R8 R9 0x1C241009, // 01D9 EQ R9 R8 R9
0x7826000B, // 01DA JMPF R9 #01E7 0x7826000B, // 01DA JMPF R9 #01E7
@ -1762,10 +1791,10 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x900E2E0A, // 01E3 SETMBR R3 K23 R10 0x900E2E0A, // 01E3 SETMBR R3 K23 R10
0x4C280000, // 01E4 LDNIL R10 0x4C280000, // 01E4 LDNIL R10
0x80041400, // 01E5 RET 1 R10 0x80041400, // 01E5 RET 1 R10
0x70020038, // 01E6 JMP #0220 0x7002003C, // 01E6 JMP #0224
0x54260009, // 01E7 LDINT R9 10 0x54260009, // 01E7 LDINT R9 10
0x1C241009, // 01E8 EQ R9 R8 R9 0x1C241009, // 01E8 EQ R9 R8 R9
0x78260035, // 01E9 JMPF R9 #0220 0x78260039, // 01E9 JMPF R9 #0224
0x8C240507, // 01EA GETMET R9 R2 K7 0x8C240507, // 01EA GETMET R9 R2 K7
0x582C0006, // 01EB LDCONST R11 K6 0x582C0006, // 01EB LDCONST R11 K6
0x7C240400, // 01EC CALL R9 2 0x7C240400, // 01EC CALL R9 2
@ -1775,13 +1804,13 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x8C2C174C, // 01F0 GETMET R11 R11 K76 0x8C2C174C, // 01F0 GETMET R11 R11 K76
0x7C2C0200, // 01F1 CALL R11 1 0x7C2C0200, // 01F1 CALL R11 1
0x7C280200, // 01F2 CALL R10 1 0x7C280200, // 01F2 CALL R10 1
0xA802001A, // 01F3 EXBLK 0 #020F 0xA802001D, // 01F3 EXBLK 0 #0212
0x5C2C1400, // 01F4 MOVE R11 R10 0x5C2C1400, // 01F4 MOVE R11 R10
0x7C2C0000, // 01F5 CALL R11 0 0x7C2C0000, // 01F5 CALL R11 0
0x8C30174D, // 01F6 GETMET R12 R11 K77 0x8C30174D, // 01F6 GETMET R12 R11 K77
0x7C300200, // 01F7 CALL R12 1 0x7C300200, // 01F7 CALL R12 1
0x1C301809, // 01F8 EQ R12 R12 R9 0x1C301809, // 01F8 EQ R12 R12 R9
0x78320011, // 01F9 JMPF R12 #020C 0x78320015, // 01F9 JMPF R12 #0210
0xB8323E00, // 01FA GETNGBL R12 K31 0xB8323E00, // 01FA GETNGBL R12 K31
0x8C301924, // 01FB GETMET R12 R12 K36 0x8C301924, // 01FB GETMET R12 R12 K36
0x8C38174F, // 01FC GETMET R14 R11 K79 0x8C38174F, // 01FC GETMET R14 R11 K79
@ -1795,181 +1824,193 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */
0x003A9C0E, // 0204 ADD R14 K78 R14 0x003A9C0E, // 0204 ADD R14 K78 R14
0x583C000F, // 0205 LDCONST R15 K15 0x583C000F, // 0205 LDCONST R15 K15
0x7C300600, // 0206 CALL R12 3 0x7C300600, // 0206 CALL R12 3
0x88300115, // 0207 GETMBR R12 R0 K21 0xB8323E00, // 0207 GETNGBL R12 K31
0x8C301950, // 0208 GETMET R12 R12 K80 0x8C301950, // 0208 GETMET R12 R12 K80
0x5C381600, // 0209 MOVE R14 R11 0x543A07CF, // 0209 LDINT R14 2000
0x7C300400, // 020A CALL R12 2 0x843C0000, // 020A CLOSURE R15 P0
0x70020000, // 020B JMP #020D 0x7C300600, // 020B CALL R12 3
0x7001FFE6, // 020C JMP #01F4 0x50300200, // 020C LDBOOL R12 1 0
0xA8040001, // 020D EXBLK 1 1 0xA0000000, // 020D CLOSE R0
0x70020002, // 020E JMP #0212 0xA8040001, // 020E EXBLK 1 1
0x58280051, // 020F LDCONST R10 K81 0x80041800, // 020F RET 1 R12
0xAC280200, // 0210 CATCH R10 1 0 0xA0280000, // 0210 CLOSE R10
0xB0080000, // 0211 RAISE 2 R0 R0 0x7001FFE1, // 0211 JMP #01F4
0xB82A3E00, // 0212 GETNGBL R10 K31 0x58280051, // 0212 LDCONST R10 K81
0x8C281524, // 0213 GETMET R10 R10 K36 0xAC280200, // 0213 CATCH R10 1 0
0x60300008, // 0214 GETGBL R12 G8 0xB0080000, // 0214 RAISE 2 R0 R0
0x5C341200, // 0215 MOVE R13 R9 0xB82A3E00, // 0215 GETNGBL R10 K31
0x7C300200, // 0216 CALL R12 1 0x8C281524, // 0216 GETMET R10 R10 K36
0x0032A40C, // 0217 ADD R12 K82 R12 0x60300008, // 0217 GETGBL R12 G8
0x00301953, // 0218 ADD R12 R12 K83 0x5C341200, // 0218 MOVE R13 R9
0x5834000F, // 0219 LDCONST R13 K15 0x7C300200, // 0219 CALL R12 1
0x7C280600, // 021A CALL R10 3 0x0032A40C, // 021A ADD R12 K82 R12
0xB82A0400, // 021B GETNGBL R10 K2 0x00301953, // 021B ADD R12 R12 K83
0x8828152E, // 021C GETMBR R10 R10 K46 0x5834000F, // 021C LDCONST R13 K15
0x900E2E0A, // 021D SETMBR R3 K23 R10 0x7C280600, // 021D CALL R10 3
0x4C280000, // 021E LDNIL R10 0xB82A0400, // 021E GETNGBL R10 K2
0x80041400, // 021F RET 1 R10 0x88281554, // 021F GETMBR R10 R10 K84
0x70020093, // 0220 JMP #02B5 0x900E2E0A, // 0220 SETMBR R3 K23 R10
0x5426003B, // 0221 LDINT R9 60 0x4C280000, // 0221 LDNIL R10
0x1C240E09, // 0222 EQ R9 R7 R9 0xA0000000, // 0222 CLOSE R0
0x7826007F, // 0223 JMPF R9 #02A4 0x80041400, // 0223 RET 1 R10
0x1C241106, // 0224 EQ R9 R8 K6 0x7002009A, // 0224 JMP #02C0
0x78260061, // 0225 JMPF R9 #0288 0x5426003B, // 0225 LDINT R9 60
0x8C240507, // 0226 GETMET R9 R2 K7 0x1C240E09, // 0226 EQ R9 R7 R9
0x582C0006, // 0227 LDCONST R11 K6 0x78260084, // 0227 JMPF R9 #02AD
0x7C240400, // 0228 CALL R9 2 0x1C241106, // 0228 EQ R9 R8 K6
0x8C280507, // 0229 GETMET R10 R2 K7 0x78260064, // 0229 JMPF R9 #028F
0x58300008, // 022A LDCONST R12 K8 0x8C240507, // 022A GETMET R9 R2 K7
0x7C280400, // 022B CALL R10 2 0x582C0006, // 022B LDCONST R11 K6
0x8C2C0507, // 022C GETMET R11 R2 K7 0x7C240400, // 022C CALL R9 2
0x5834000F, // 022D LDCONST R13 K15 0x8C280507, // 022D GETMET R10 R2 K7
0x7C2C0400, // 022E CALL R11 2 0x58300008, // 022E LDCONST R12 K8
0x8C300507, // 022F GETMET R12 R2 K7 0x7C280400, // 022F CALL R10 2
0x58380011, // 0230 LDCONST R14 K17 0x8C2C0507, // 0230 GETMET R11 R2 K7
0x7C300400, // 0231 CALL R12 2 0x5834000F, // 0231 LDCONST R13 K15
0x8C340507, // 0232 GETMET R13 R2 K7 0x7C2C0400, // 0232 CALL R11 2
0x543E0003, // 0233 LDINT R15 4 0x8C300507, // 0233 GETMET R12 R2 K7
0x7C340400, // 0234 CALL R13 2 0x58380011, // 0234 LDCONST R14 K17
0xB83A3E00, // 0235 GETNGBL R14 K31 0x7C300400, // 0235 CALL R12 2
0x8C381D24, // 0236 GETMET R14 R14 K36 0x8C340507, // 0236 GETMET R13 R2 K7
0x8C400B54, // 0237 GETMET R16 R5 K84 0x543E0003, // 0237 LDINT R15 4
0x58480055, // 0238 LDCONST R18 K85 0x7C340400, // 0238 CALL R13 2
0x5C4C1200, // 0239 MOVE R19 R9 0xB83A3E00, // 0239 GETNGBL R14 K31
0x8C501526, // 023A GETMET R20 R10 K38 0x8C381D24, // 023A GETMET R14 R14 K36
0x7C500200, // 023B CALL R20 1 0x8C400B55, // 023B GETMET R16 R5 K85
0x5C541600, // 023C MOVE R21 R11 0x58480056, // 023C LDCONST R18 K86
0x5C581800, // 023D MOVE R22 R12 0x5C4C1200, // 023D MOVE R19 R9
0x8C5C1B26, // 023E GETMET R23 R13 K38 0x8C501526, // 023E GETMET R20 R10 K38
0x7C5C0200, // 023F CALL R23 1 0x7C500200, // 023F CALL R20 1
0x7C400E00, // 0240 CALL R16 7 0x5C541600, // 0240 MOVE R21 R11
0x5844000F, // 0241 LDCONST R17 K15 0x5C581800, // 0241 MOVE R22 R12
0x7C380600, // 0242 CALL R14 3 0x8C5C1B26, // 0242 GETMET R23 R13 K38
0x4C380000, // 0243 LDNIL R14 0x7C5C0200, // 0243 CALL R23 1
0x1C38120E, // 0244 EQ R14 R9 R14 0x7C400E00, // 0244 CALL R16 7
0x743A000B, // 0245 JMPT R14 #0252 0x5844000F, // 0245 LDCONST R17 K15
0x4C380000, // 0246 LDNIL R14 0x7C380600, // 0246 CALL R14 3
0x1C38140E, // 0247 EQ R14 R10 R14 0x4C380000, // 0247 LDNIL R14
0x743A0008, // 0248 JMPT R14 #0252 0x1C38120E, // 0248 EQ R14 R9 R14
0x4C380000, // 0249 LDNIL R14 0x743A000B, // 0249 JMPT R14 #0256
0x1C38160E, // 024A EQ R14 R11 R14 0x4C380000, // 024A LDNIL R14
0x743A0005, // 024B JMPT R14 #0252 0x1C38140E, // 024B EQ R14 R10 R14
0x4C380000, // 024C LDNIL R14 0x743A0008, // 024C JMPT R14 #0256
0x1C38180E, // 024D EQ R14 R12 R14 0x4C380000, // 024D LDNIL R14
0x743A0002, // 024E JMPT R14 #0252 0x1C38160E, // 024E EQ R14 R11 R14
0x4C380000, // 024F LDNIL R14 0x743A0005, // 024F JMPT R14 #0256
0x1C381A0E, // 0250 EQ R14 R13 R14 0x4C380000, // 0250 LDNIL R14
0x783A0004, // 0251 JMPF R14 #0257 0x1C38180E, // 0251 EQ R14 R12 R14
0xB83A0400, // 0252 GETNGBL R14 K2 0x743A0002, // 0252 JMPT R14 #0256
0x88381D56, // 0253 GETMBR R14 R14 K86 0x4C380000, // 0253 LDNIL R14
0x900E2E0E, // 0254 SETMBR R3 K23 R14 0x1C381A0E, // 0254 EQ R14 R13 R14
0x4C380000, // 0255 LDNIL R14 0x783A0005, // 0255 JMPF R14 #025C
0x80041C00, // 0256 RET 1 R14 0xB83A0400, // 0256 GETNGBL R14 K2
0x6038000C, // 0257 GETGBL R14 G12 0x88381D57, // 0257 GETMBR R14 R14 K87
0x5C3C1400, // 0258 MOVE R15 R10 0x900E2E0E, // 0258 SETMBR R3 K23 R14
0x7C380200, // 0259 CALL R14 1 0x4C380000, // 0259 LDNIL R14
0x543E001F, // 025A LDINT R15 32 0xA0000000, // 025A CLOSE R0
0x54420040, // 025B LDINT R16 65 0x80041C00, // 025B RET 1 R14
0x003C1E10, // 025C ADD R15 R15 R16 0x6038000C, // 025C GETGBL R14 G12
0x20381C0F, // 025D NE R14 R14 R15 0x5C3C1400, // 025D MOVE R15 R10
0x743A000B, // 025E JMPT R14 #026B 0x7C380200, // 025E CALL R14 1
0x6038000C, // 025F GETGBL R14 G12 0x543E001F, // 025F LDINT R15 32
0x5C3C1A00, // 0260 MOVE R15 R13 0x54420040, // 0260 LDINT R16 65
0x7C380200, // 0261 CALL R14 1 0x003C1E10, // 0261 ADD R15 R15 R16
0x543E000F, // 0262 LDINT R15 16 0x20381C0F, // 0262 NE R14 R14 R15
0x14381C0F, // 0263 LT R14 R14 R15 0x743A000B, // 0263 JMPT R14 #0270
0x743A0005, // 0264 JMPT R14 #026B 0x6038000C, // 0264 GETGBL R14 G12
0x6038000C, // 0265 GETGBL R14 G12 0x5C3C1A00, // 0265 MOVE R15 R13
0x5C3C1A00, // 0266 MOVE R15 R13 0x7C380200, // 0266 CALL R14 1
0x7C380200, // 0267 CALL R14 1 0x543E000F, // 0267 LDINT R15 16
0x543E001F, // 0268 LDINT R15 32 0x14381C0F, // 0268 LT R14 R14 R15
0x24381C0F, // 0269 GT R14 R14 R15 0x743A0005, // 0269 JMPT R14 #0270
0x783A0008, // 026A JMPF R14 #0274 0x6038000C, // 026A GETGBL R14 G12
0xB83A3E00, // 026B GETNGBL R14 K31 0x5C3C1A00, // 026B MOVE R15 R13
0x8C381D24, // 026C GETMET R14 R14 K36 0x7C380200, // 026C CALL R14 1
0x58400057, // 026D LDCONST R16 K87 0x543E001F, // 026D LDINT R15 32
0x7C380400, // 026E CALL R14 2 0x24381C0F, // 026E GT R14 R14 R15
0xB83A0400, // 026F GETNGBL R14 K2 0x783A0009, // 026F JMPF R14 #027A
0x88381D58, // 0270 GETMBR R14 R14 K88 0xB83A3E00, // 0270 GETNGBL R14 K31
0x900E2E0E, // 0271 SETMBR R3 K23 R14 0x8C381D24, // 0271 GETMET R14 R14 K36
0x4C380000, // 0272 LDNIL R14 0x58400058, // 0272 LDCONST R16 K88
0x80041C00, // 0273 RET 1 R14 0x7C380400, // 0273 CALL R14 2
0x543A001E, // 0274 LDINT R14 31 0xB83A0400, // 0274 GETNGBL R14 K2
0x403A0C0E, // 0275 CONNECT R14 K6 R14 0x88381D59, // 0275 GETMBR R14 R14 K89
0x9438140E, // 0276 GETIDX R14 R10 R14 0x900E2E0E, // 0276 SETMBR R3 K23 R14
0x543E001F, // 0277 LDINT R15 32 0x4C380000, // 0277 LDNIL R14
0x403C1F3B, // 0278 CONNECT R15 R15 K59 0xA0000000, // 0278 CLOSE R0
0x943C140F, // 0279 GETIDX R15 R10 R15 0x80041C00, // 0279 RET 1 R14
0x88400115, // 027A GETMBR R16 R0 K21 0x543A001E, // 027A LDINT R14 31
0x8C402159, // 027B GETMET R16 R16 K89 0x403A0C0E, // 027B CONNECT R14 K6 R14
0x5C481200, // 027C MOVE R18 R9 0x9438140E, // 027C GETIDX R14 R10 R14
0x5C4C1800, // 027D MOVE R19 R12 0x543E001F, // 027D LDINT R15 32
0x5C501600, // 027E MOVE R20 R11 0x403C1F3B, // 027E CONNECT R15 R15 K59
0x5C541A00, // 027F MOVE R21 R13 0x943C140F, // 027F GETIDX R15 R10 R15
0x5C581C00, // 0280 MOVE R22 R14 0x88400115, // 0280 GETMBR R16 R0 K21
0x5C5C1E00, // 0281 MOVE R23 R15 0x8C40215A, // 0281 GETMET R16 R16 K90
0x8C60035A, // 0282 GETMET R24 R1 K90 0x5C481200, // 0282 MOVE R18 R9
0x7C600200, // 0283 CALL R24 1 0x5C4C1800, // 0283 MOVE R19 R12
0x7C401000, // 0284 CALL R16 8 0x5C501600, // 0284 MOVE R20 R11
0x50400200, // 0285 LDBOOL R16 1 0 0x5C541A00, // 0285 MOVE R21 R13
0x80042000, // 0286 RET 1 R16 0x5C581C00, // 0286 MOVE R22 R14
0x7002001A, // 0287 JMP #02A3 0x5C5C1E00, // 0287 MOVE R23 R15
0x1C241108, // 0288 EQ R9 R8 K8 0x8C60035B, // 0288 GETMET R24 R1 K91
0x78260011, // 0289 JMPF R9 #029C 0x7C600200, // 0289 CALL R24 1
0x8C240507, // 028A GETMET R9 R2 K7 0x7C401000, // 028A CALL R16 8
0x582C0006, // 028B LDCONST R11 K6 0x50400200, // 028B LDBOOL R16 1 0
0x7C240400, // 028C CALL R9 2 0xA0000000, // 028C CLOSE R0
0xB82A3E00, // 028D GETNGBL R10 K31 0x80042000, // 028D RET 1 R16
0x8C281524, // 028E GETMET R10 R10 K36 0x7002001C, // 028E JMP #02AC
0x60300008, // 028F GETGBL R12 G8 0x1C241108, // 028F EQ R9 R8 K8
0x5C341200, // 0290 MOVE R13 R9 0x78260012, // 0290 JMPF R9 #02A4
0x7C300200, // 0291 CALL R12 1 0x8C240507, // 0291 GETMET R9 R2 K7
0x0032B60C, // 0292 ADD R12 K91 R12 0x582C0006, // 0292 LDCONST R11 K6
0x5834000F, // 0293 LDCONST R13 K15 0x7C240400, // 0293 CALL R9 2
0x7C280600, // 0294 CALL R10 3 0xB82A3E00, // 0294 GETNGBL R10 K31
0x88280115, // 0295 GETMBR R10 R0 K21 0x8C281524, // 0295 GETMET R10 R10 K36
0x8C28155C, // 0296 GETMET R10 R10 K92 0x60300008, // 0296 GETGBL R12 G8
0x5C301200, // 0297 MOVE R12 R9 0x5C341200, // 0297 MOVE R13 R9
0x7C280400, // 0298 CALL R10 2 0x7C300200, // 0298 CALL R12 1
0x50280200, // 0299 LDBOOL R10 1 0 0x0032B80C, // 0299 ADD R12 K92 R12
0x80041400, // 029A RET 1 R10 0x5834000F, // 029A LDCONST R13 K15
0x70020006, // 029B JMP #02A3 0x7C280600, // 029B CALL R10 3
0x1C24110F, // 029C EQ R9 R8 K15 0x88280115, // 029C GETMBR R10 R0 K21
0x78260004, // 029D JMPF R9 #02A3 0x8C28155D, // 029D GETMET R10 R10 K93
0x88240115, // 029E GETMBR R9 R0 K21 0x5C301200, // 029E MOVE R12 R9
0x8C24135D, // 029F GETMET R9 R9 K93 0x7C280400, // 029F CALL R10 2
0x7C240200, // 02A0 CALL R9 1 0x50280200, // 02A0 LDBOOL R10 1 0
0x50240200, // 02A1 LDBOOL R9 1 0 0xA0000000, // 02A1 CLOSE R0
0x80041200, // 02A2 RET 1 R9 0x80041400, // 02A2 RET 1 R10
0x70020010, // 02A3 JMP #02B5 0x70020007, // 02A3 JMP #02AC
0x54260029, // 02A4 LDINT R9 42 0x1C24110F, // 02A4 EQ R9 R8 K15
0x1C240E09, // 02A5 EQ R9 R7 R9 0x78260005, // 02A5 JMPF R9 #02AC
0x78260004, // 02A6 JMPF R9 #02AC 0x88240115, // 02A6 GETMBR R9 R0 K21
0x1C241106, // 02A7 EQ R9 R8 K6 0x8C24135E, // 02A7 GETMET R9 R9 K94
0x78260001, // 02A8 JMPF R9 #02AB 0x7C240200, // 02A8 CALL R9 1
0x50240200, // 02A9 LDBOOL R9 1 0 0x50240200, // 02A9 LDBOOL R9 1 0
0x80041200, // 02AA RET 1 R9 0xA0000000, // 02AA CLOSE R0
0x70020008, // 02AB JMP #02B5 0x80041200, // 02AB RET 1 R9
0x60240003, // 02AC GETGBL R9 G3 0x70020012, // 02AC JMP #02C0
0x5C280000, // 02AD MOVE R10 R0 0x54260029, // 02AD LDINT R9 42
0x7C240200, // 02AE CALL R9 1 0x1C240E09, // 02AE EQ R9 R7 R9
0x8C24135E, // 02AF GETMET R9 R9 K94 0x78260005, // 02AF JMPF R9 #02B6
0x5C2C0200, // 02B0 MOVE R11 R1 0x1C241106, // 02B0 EQ R9 R8 K6
0x5C300400, // 02B1 MOVE R12 R2 0x78260002, // 02B1 JMPF R9 #02B5
0x5C340600, // 02B2 MOVE R13 R3 0x50240200, // 02B2 LDBOOL R9 1 0
0x7C240800, // 02B3 CALL R9 4 0xA0000000, // 02B3 CLOSE R0
0x80041200, // 02B4 RET 1 R9 0x80041200, // 02B4 RET 1 R9
0x80000000, // 02B5 RET 0 0x70020009, // 02B5 JMP #02C0
0x60240003, // 02B6 GETGBL R9 G3
0x5C280000, // 02B7 MOVE R10 R0
0x7C240200, // 02B8 CALL R9 1
0x8C24135F, // 02B9 GETMET R9 R9 K95
0x5C2C0200, // 02BA MOVE R11 R1
0x5C300400, // 02BB MOVE R12 R2
0x5C340600, // 02BC MOVE R13 R3
0x7C240800, // 02BD CALL R9 4
0xA0000000, // 02BE CLOSE R0
0x80041200, // 02BF RET 1 R9
0xA0000000, // 02C0 CLOSE R0
0x80000000, // 02C1 RET 0
}) })
) )
); );

View File

@ -4101,7 +4101,7 @@ be_local_closure(Matter_Session_Store_active_fabrics, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_Store_remove_fabric, /* name */ be_local_closure(Matter_Session_Store_remove_fabric, /* name */
be_nested_proto( be_nested_proto(
7, /* nstack */ 8, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -4109,22 +4109,44 @@ be_local_closure(Matter_Session_Store_remove_fabric, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 3]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(fabrics), /* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(remove), /* K1 */ be_nested_str_weak(sessions),
/* K2 */ be_nested_str_weak(find), /* K2 */ be_nested_str_weak(_fabric),
/* K3 */ be_nested_str_weak(remove),
/* K4 */ be_const_int(1),
/* K5 */ be_nested_str_weak(fabrics),
/* K6 */ be_nested_str_weak(find),
}), }),
be_str_weak(remove_fabric), be_str_weak(remove_fabric),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */ ( &(const binstruction[26]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0 0x58080000, // 0000 LDCONST R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1 0x600C000C, // 0001 GETGBL R3 G12
0x88100100, // 0002 GETMBR R4 R0 K0 0x88100101, // 0002 GETMBR R4 R0 K1
0x8C100902, // 0003 GETMET R4 R4 K2 0x7C0C0200, // 0003 CALL R3 1
0x5C180200, // 0004 MOVE R6 R1 0x140C0403, // 0004 LT R3 R2 R3
0x7C100400, // 0005 CALL R4 2 0x780E000B, // 0005 JMPF R3 #0012
0x7C080400, // 0006 CALL R2 2 0x880C0101, // 0006 GETMBR R3 R0 K1
0x80000000, // 0007 RET 0 0x940C0602, // 0007 GETIDX R3 R3 R2
0x880C0702, // 0008 GETMBR R3 R3 K2
0x1C0C0601, // 0009 EQ R3 R3 R1
0x780E0004, // 000A JMPF R3 #0010
0x880C0101, // 000B GETMBR R3 R0 K1
0x8C0C0703, // 000C GETMET R3 R3 K3
0x5C140400, // 000D MOVE R5 R2
0x7C0C0400, // 000E CALL R3 2
0x70020000, // 000F JMP #0011
0x00080504, // 0010 ADD R2 R2 K4
0x7001FFEE, // 0011 JMP #0001
0x880C0105, // 0012 GETMBR R3 R0 K5
0x8C0C0703, // 0013 GETMET R3 R3 K3
0x88140105, // 0014 GETMBR R5 R0 K5
0x8C140B06, // 0015 GETMET R5 R5 K6
0x5C1C0200, // 0016 MOVE R7 R1
0x7C140400, // 0017 CALL R5 2
0x7C0C0400, // 0018 CALL R3 2
0x80000000, // 0019 RET 0
}) })
) )
); );