HVXZLNCCLSMOKMA6TU7H7LKCRH5TAOP3X3EY6MEWFWZRWMVHEFWQC
TOKSRJMDHARCJBMYT5AA5N6EH5L7Y6TUGCZAIA2ZXTMNTJBB3EMQC
GAKJROFZ5QBGUKTCAFC53JT5U2NYWVMUZHPYRALERQD7UUXSRHYAC
6DJMOJKEO5DIOEDV655SPA7C7HN2HXWMDJ7UF2CRDRBAF5YO3UEAC
JNAQUQKBGJNCTE3JYJ2PPGITFT4447ITKNECMP5LVLIRMRXHHZHAC
N2NUGNN4E37TNLC6JZE4H4HKJZPNVBV4VYTLXW57AP5BOU4ZK7LQC
R2ASHK5CEE3PTRLS37GP4PXJ7HIGJ6UD72KKBI57UDJI7VRROQGQC
2L5MEZV344TOZLVY3432RHJFIRVXFD6O3GWLL5O4CV66BGAFTURQC
R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC
I52S4E5FT6E6FHH3QEDJPWO7C6W7AIMAFDP2KQ5FEWXFQX7RY6CAC
JV27LDDKKY57IEBWGBFPSHEARMOEGLBYGBJD27PDPTNWWYXA4T6AC
ZM7NOBRMD5HHA35Y4JDC76EOA2RD4KQOQCPURXYKXA6ABMKOJIGQC
IP4LD33DQFWQ4654YPNJRKQ3CNYSHRZPX6U6ZPY7OLE744XX3MEQC
ZOLCTAGUUMQQ4MOZNVUANNOGEHWS7BYDTIMP3ZABLYKWUSAAMMPQC
PRE6XPRNICDCHMF7C45A6DRPVT47IPAIWW6Q7AHNGW3D2PBGOPNAC
RK2ASPN7A55RCEG2YRFZLFXNPSME2VKBE2ZXO257DYZPS5TPXC5QC
UEG224LHBOPWSKOVXTKVAUEL47HET566LJF7ZSWVKMMLBSJWUHFAC
clear_handlers = function()
for k in pairs(car) do
car[k] = nil
end
end
call_protected = function(f, ...)
local args = {...}
xpcall(
function()
f(unpack(args))
end,
send_errors_to_output)
end
send_errors_to_output = function(err)
local callstack = debug.traceback('', 3)
local error_with_callstack = cleaned_up_frame(tostring(err))..'\n'..cleaned_up_callstack(callstack)
Text.insert_text(Current_pane.output_editor_state, error_with_callstack)
Text.redraw_all(Current_pane.output_editor_state)
clear_handlers()
end
if car.mouse_release then car.mouse_release(x,y, mouse_button) end
if car.mousereleased then car.mousereleased(x,y, mouse_button) end
if car.mouse_release then
call_protected(car.mouse_release, x,y, mouse_button)
end
if car.mousereleased then
call_protected(car.mousereleased, x,y, mouse_button)
end
if car.key_release then car.key_release(key, scancode) end
if car.keyreleased then car.keyreleased(key, scancode) end
if car.key_release then
call_protected(car.key_release, key, scancode)
end
if car.keyreleased then
call_protected(car.keyreleased, key, scancode)
end