6OZ32QPUY3AQABJED2YWD3PQVEBZJU2TLV63SLWPXIEFQVQV4QPAC
WGMWIZHFFIHQM5XDPNFXILOJM5EDIFKWEDKWAWOPD4QL47EQZ4PQC
X555TR3LEKORXOZWKRXO2CADK6YGE4R2TSKCNOMMKOL7NPAE47TAC
NP7J5YWCLHXKN7MZDXU4EOBHAUSWLQ4NE5SRCPR2HTRFE6WOJCIAC
EYM7P7WU6DKJWUJLVSYMEIIIA6PYXCQP7BH7B5ER2KAM5RWCYBYAC
JQGPCFES2F2VVNY5CFUHKBWP5QGK4TYREHUKSCEFZYXQO3KQ7VYAC
BBIC4T6Q3VLSCOENZNP4RKHZD3EOCZHTTGM3J3D5HH2H4KKUSZRAC
GYUGB4M3NFWVJP5KKGDJIH6UY4UOSRCV5QYTGDIP6XLEQWBY7SBAC
G3DLS5OUO77V4MC6754KTETRCTVUBYBHMGR7MTV52IYYM7QA3ROQC
R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC
KKMFQDR43ZWVCDRHQLWWX3FCWCFA3ZSXYOBRJNPHUQZR2XPKWULAC
W6XUYQKPHYZLEMBPY5L2WCGXIDBKAHVAWAH5V7BKYQXZO33DTNIQC
V5SYDHPQ7IKNLZZ3NJ24FDW3IG4O23AASLP2DTKOBPWUUZ5KUPOAC
LEP7X3CT5H7NRQOBIAKQU32QLQQWLBURBNTR2YZUYL53C5BRAM6QC
BULPIBEGL7TMK6CVIE7IS7WGAHGOSUJBGJSFQK542MOWGHP2ADQQC
Z5HLXU4PJWWJJDBCK52NBD6PIRIA3TAN2BKZB5HBYFGIDBX4F5HAC
6LBSEPBJTXIVBYX3AH5FYCQCN66ZRFFO3IVYMDS7IQUGEAZM3MHQC
SR4C3ZYZVKXU5WWNJ46NJO5RHTBVO3ZDGVUXUDHA275FRM263PNAC
MXA3RZYKUI4UF2ISY7JEF6VKX6NOPZMZH5SLLCZHRJKFIXXXDPSAC
QBL4YDQ5QC4MZ7RFS4ZSEBPN5WATAJ7UQLUPTXDUMXAMGBGQDOOQC
3OKKTUT4Q7W44JHILOFV5BVUA7ZOBIHBCEXGZ65CPXV4PRLI2W4QC
NEKADRAL5JYGCVY7PYWC73SVQQUFCAYE6AHXIFHNMLUYV5XUQOOAC
JMUE7GSN6QDQZ6NDRB55MRJMKJN6LBD6MVQPKROYPDOIXM7I3XNQC
I5AZCCITRO63LNWJRME5S4VV4BSSRBHCN7S2WBRZUPMLLPMYVHAAC
RVVRBJFNEHF3WRQARNVTXM75PLL4UKJZISPWPK45D6TVY45VVOTAC
53LXFA2O4DZ2GJ7GC6M3FUUNFJ5MOKSUJ74XU2YNLO3HSOEASSXAC
ONVQPNBJRWL3VLMV3UJGQOKR26GELHHOUZ7F3ISVVY6ET6OVITOQC
3U6YMMN2GMRL27TLPE7V3KUGM6MI2L3SAQSNU6HMNRINVXVRL3QAC
Q3HD3NQ6VOHEXHBSMQ5QDLKUH4OU2OJDMR3UXVOTB65IUUFJ2FCAC
VPCPK52KMU4MZUXP4SUSJJDEHDR4C3KJ45HLMUQUK32FMY6OCQ4QC
AHOO2ILEJWTPCYHJH26WAF7A4YYVMHFX4UWHSAAAMHI73TSQZ6CAC
GR4RROJFJOGM2WLQSVK5R5UYD7IK6ITF6UP5RVHAHD3J4OFJWGCAC
KXIWX3X5UH6PSNOYDBYBAHKQZAQJIDHNSDWSIZREGOE6HLS26DBQC
VHQCNMARPMNBSIUFLJG7HVK4QGDNPCGNVFLHS3I4IGNVSV5MRLYQC
2XLZCWZCOFZGNAPSD7XNCYITKVY5WZW3OD7IXMC7WJQ5SBI7YHNQC
ETM7YJKNFZJ6URA4EMRK7VCW3P45DLEG3UK4IENF6MBTJHHFV6JQC
IOYWCTDEHO4GHC777JYUODJSSHL2SJWYTUG5PQPZOG5HEVR6XXYQC
P2PODHT74V3R3IKCSMOQOIAZBBEK5ZGTLWMDDBXO7XNVX5FPSNJQC
74C6RCXRROHRH6AYCDWZF4EBNLI6OZGUXZKPOF6RFK222GHBHNDQC
UCFOE6KJM4USAO3SATXQQQBF3H6ERZCEWIKTYYYSLJK5TASKZOVAC
QYIFOHW3WDDQMK4ATY6IOSQRFHJOQ5QCPDKRC4GVGWLQEH4HGWVQC
4KC7I3E2DIKLIP7LQRKB5WFA2Z5XZXAU46RFHNFQU5BVEJPDX6UQC
D2TYQVN3UGM76SYX2NVKKXTRXSEKZV5M5C4HXF7TSHYOQ2AEKBBQC
2L5MEZV344TOZLVY3432RHJFIRVXFD6O3GWLL5O4CV66BGAFTURQC
RRMDUZP7S7DJW6QDCVSMQVF5TZHYM3LL65Q7Z4GQIX4GWMVK7A3AC
ZCELTHLQU3DL337ELVAPHLDQ2SFY4ENAQA2STBLLVOLR4PXLKNYQC
A76AOSKCKOQL5ZGYGWCGNRCMKLUTKGCDVJ5G3ELTIVHZ7OFH35MQC
GO4OXDP4USUBN2UGNY2ZZEUZE3NG52F3T5CZ76H7VQ23Q4CQOSJAC
UHB4GARJI5AB5UCDCZRFSCJNXGJSLU5DYGUGX5ITYEXI7Q43Z4CAC
BLWAYPKV3MLDZ4ALXLUJ25AIR6PCIL4RFYNRYLB26GFVC2KQBYBAC
LW6UME22NIRDLYNQDP47SLYT2ZEBD4HMHQOJNXJRRXQYVMNF4IGAC
3OTESDW65UJ2W5RIXA6FNKRSD7TBCZTCCCEAYOQMEVGYZ6RCU34QC
SEBFLWZVK6Y7GX62DXQFWJG4IFV2VTXHGEWS25ZIQYKC3AQW5TFQC
KXRF6Q5QSSC4JIUJSUTJ376PNKD42CLYICJNQCBUNIZVEUHX2HYAC
EHSUSZMKVRSJ5HPJZQCKWFY3BRNLAIBDATSHDQ7AMJZ6SX2I6Z2AC
GQBUV2XOMEPMTXMPCBQWGGIUXGQDX77VTGPFIG6YT7G64ASOYHXQC
F7JBFZFRALHRUTYYHJ2J7OBBB5WYPJBDTLDLZAMTVC3FUVJ7MAIAC
IUBUKOBFGTLXNHRNYGVN35F5OQISTGQDB27WMS2LXBVVBXCXGUDQC
F7MP5BERVKCYMWFWQ7EBOJFYY3FYWFVLYENXTWKPREGDLFRESPBAC
D3FRDRWOY6VGMAOGR35GPX7QYBEHDT6J4JKUZCGDEFDPWXGHD3YQC
WNILGROUH2LQ7GFGGWCHIE4YUWBQNU6QQETTL7UHGK3P5P7SEWCQC
ACJAMKBT4W65O2U5PFWO6XCGF7ULSKVPTIC4PXPIZGHHJGETU3MAC
CJ4VCNOZPQSBURPNWCOGJCWPEUI43WTKGJHUJZOYMNGRUPFGVM3QC
ZU3HJ6NH26LFY2NWRCCRMXECNEPVR25OJNOFEK5XJ3KYFJUCKQXAC
5CPFKPDDH4X5L5G267NZCKDSCOCVZOURU7WI4HYRFGUBOVVMH7NAC
SPTL7VK47SAGTCGQDCQWMEFC43KWJNWCL76NSYHEVBENHIWKRWNAC
5MRLKZV574TCMNL5APG4XCHPK6CB36BI6KV3HMXOGD47WB5VKPTAC
V6JHPHYNDGOBF3OKHPYJ6IQEU5PSLWNUCQBGVW4TG7TYL6OLF3QAC
assert(index, 'file missing from manifest')
table.remove(File_navigation.all_candidates, index)
table.insert(File_navigation.all_candidates, 1, s)
--? print('down', State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos, State.screen_bottom1.line, State.screen_bottom1.pos)
assert(State.cursor1.pos)
assert(Directory_error == nil) -- this will go into an infinite loop if handle_error ever tries to save settings
-- avoid an infinite loop if handle_error ever tries to save settings
assert(Directory_error == nil,
"tried to save settings when we couldn't determine the directory to browse notes in")
assert(App.screen.height - (cursor_sy-Display_settings.y) > 1.5*Line_height)
assert(App.screen.height - (cursor_sy-Display_settings.y) > 1.5*Line_height, 'ugh, ancient bug is back: panning the viewport when cursor falls off')
else
assert(false, ('unknown dir %s'):format(dir))
if #State.lines ~= #State.line_cache then
log(2, os.date('%Y/%m/%d/%H-%M-%S')..(' line_cache is out of date; %d when it should be %d'):format(#State.line_cache, #State.lines))
assert(false)
end
assert(#State.lines == #State.line_cache, ('line_cache is out of date; %d elements when it should be %d'):format(#State.line_cache, #State.lines))
assert(#State.lines == #State.line_cache, ('line_cache is out of date; %d elements when it should be %d'):format(#State.line_cache, #State.lines))
assert(Text.le1(State.screen_top1, State.cursor1), ('screen_top (line=%d,pos=%d) is below cursor (line=%d,pos=%d)'):format(State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos))