krixano / EdimCoder

1902b

By Krixano on February 16, 2019
This patch is not signed.
Av77Q9Yv99iNDpfxrjZzfnWdzTdc16KXjWXGgS9EAjPhNvZV5ZkuoaFMAHiwQA62iYJWtVEVFgaqAq2oe2YQkjVA
This patch is in the following branches:
master
Moved edimcoder to build/debug/edimcoder
Moved edimcoder to build/release/edimcoder


1
ELF>@#@8@@@@hh44

@

DDPtdLLQtdRtd

/lib64/ld-linux-x86-64.so.2GNUGNU&<8mw~>& &')gUaJ,6 49	n`|R uR%a "}0Z@libc.so.6fflushexitfopenstrncmpperrorstrncpyputs__stack_chk_failputcharreallocstdin__assert_failrewindstrtolfgetccallocstrlentcsetattrfseekreadstdoutfputcmemcpyfclosemallocioctlfwritetcgetattr__cxa_finalizememmove__libc_start_mainvfprintffreeGLIBC_2.14GLIBC_2.4GLIBC_2.2.5_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableii
 ui	*

  #$0&@' (08@HP	X
`hp
x !"%HHHtH5%@%h%h%h%h%h%h%h%hp%h`%h	P%h
@%h0%h %zh
%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@%
h0%h %h%h%hH%H%@fDUHTSHdH%(HD$1HcH=HHHH=H<@C@HHtHX5MH\HHtLH;pH%trvu1fu@HuHHHHHqHpHȉu<@HH;pv@{H=1I^HHPTLH
H=HH=H
H9tHHt	H=H5H)HHH?HHtHHtfD=u3UH=bHt
H=~Pc]f.ff.@gSfH`H=@dH%(HD$X1H\$D$)D$)D$ )D$0HD$@D$HA1Hwxs11Hڃd$fD$&h1Ht$Hxj1HھL$
6x:HL$XdH3%(D$u^H`[H=M$|H=Yf.H=:fH=_f.SfH`H=dH%(HD$X1H\$D$)D$)D$ )D$0HD$@D$H1HGxs111Hڃd$fD$&;1Ht$rHxm1HھL$
	x=HL$XdH3%(D$uaH`[f.H=|H=)f.H=
fH=\jf.H=1bfHTdH%(HD$1HjD$H H$H	HL$dH3%(uHff.fHH=H=HATU-SHLcH`dH%(HD$X1HD$<D$<HPHrH;pvHEHPH$HrHp@,I9t+HH$HuDHD$8Ht|HPHrH;pwsHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHHDHHD$XdH3%(u1H`[]A\fPHnHPHKHrlDSHH`dH%(HD$X1HЊHHHPHrH;pHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHsHH|H=貊Hst*H=1'OHD$XdH3%(uMH`[ÐH=H}@<d}fPHN~HPH+Hr,eDHH=5H<tHH9tH=1HHvH=J1H1ifH°HtHPHHHPHH9tlGHHtHPHHHH=HwPH)HiHHHHFHBHHBHiH@ےH
HAHHHAHHTH$fHHH°HtHPHHHPH=HH9tzuHHtHPHHHH=HwPH)HiHHHHtHBHHBHtHfD1fH
<HAHHHAHHTHDfHHtLHpHvBt&HH1DH9t#HHPuH=̤1݄DH1]f.1?-HHH9rHH9t0<	vHÐH@HHH9w*HFʃ߃Av
QЀ	v_uHH9ufHff.HH9sH&tfHsHH9v vIHDDσ߃A@v-tAy@	vA-tt5Ay@?w;Is%DEtH9vEuHH9wHfA{AvD1ff.f1ff.fH9svfDHff.H9s+<'t<P߀?w$HHs<.t<$uHH@{<v@HE11ɺDUHHSH1H{HII9HAL)HtW1-|1H@ILJI9tL9v
Ar@	vޅ~
@EHcH[]r@
wH=p@Hc4H1[]HIs1H9vASIgHEHt1HxHE1HtHHHcM8w@H9r1ff.H9w?#uHff.AUAATIUSHH=)u{H= t	t
tgtwE~mfDADH=ƒ
!A9HuHcIčEA$H[]A\A]
uA$H[]A\A]øfUHSHH=puH=Y4Ã t	t
uVhHPHrH;pvHEwHPHEHrHpH=ƒ
tHEHu@HEHt@H[]DH1[][AWAVAUATUHSH8H|$Ht$L$dH%(HD$(1D$$D$HtVHFD$H8	1D
HH9^v3<@	H	@	H5Ht$D$$HuL-ID1<fHt1HL$$HT$Մt̀C

C<w
tC<w


HcD$$	HL$1HtHQH5;H9b-HD$HHPHrH;pvHDuHPHD$HrHpL$$1L$$<HD$Ht0HpHcT$H9
|0
tH
H;p
HpHuH=^1HD$HL$(dH3%(
H8[]A\A]A^A_@19<[A1HtHL$$HT$ՄGDnC+	3	F
HD$$1D|$)IDH5H9\$$%HD$<	uE1EtfDH5AcE9u@HL$LcJ|7HGHQI9:@	hH
IH=HL$D$$HQHHQD$$2f1L1zHD$HHPHrH;pvHsHPHD$HrHpD$$@HcHD$1HtHH\$H9E1tH5 AKA9uHD$HHPHrH;pvHrHPHD$HrHcL$$HpH)H4H|HcHcD$$HT$	L$$HD$DyMc7L9xv3B<8@	@H5HD$IHuHct$$E1HLf.HPHHH)L9L)<	tBH5Hct$$HD$HIHuHHL9nLL)<	utE1H59AA9u@1L1xHD$:f.(E1DH5 AA9uHD$HHPHrH;pvHpHPHD$HrHcL$$HpH)H4H|HcHcD$$HT$D|$L$$HD$YHc7@H9Xv2<@	@H5+&HD$HHuHct$$1HF@HPHHH)H9H)ڀ<	tBH5Hct$$HD$HHHuHHH9LH)ڀ<	uD|$EtE1H5AKE9u@1L1vHD$9f.E&E1@H59 AE9u\$@	H
H=HL$LcD$$J|J41HtHQL)Hc;Ht$L$$HFDyMcHHFI9sZf.B<>@	)@
t!@
t@KH5toHt$IHtHFI9rE1t@H5B AA9uE1@H5!AA9uHt$HcL$$E1HF@HFHH)I9HL)<	tBH5HcL$$Ht$HIHuHHI9LL)<	utE1H5ACA9u@E1DH5Q AA9ufL11tHt$f.T$$$@D$H511`tHt$fDE1E@H5 A{E9ufDt+E1fH5y A;A9uHD$HtHPHrH;pwHp	L$$QHklHPHD$HrHp	L$$!DfD?fD\$E1H5AD9u~D$$HL$HcЀ|	H5D$$YfDH
YH=#HD$Ht	Hx0HD$13E1DH5	AA9u1HT$HHcL$$HH;J
	cH5D$$D$$HjHHHD$Hq
H5o
eHD$HHPHrH;pHp
HD$D$$H`HxHD$t1<~HD$HHc|$$HPH9HOHH)H4Hc9Ht$Hc\$$HFHHFH9w9fH5Ht$HvHH;^h<	<uL11pľHiHPHD$HrHt$Hc\$$HtEH9^D|$HH9^<	t7<t H5Ht$Hu1L11JpHt$E1EtH5 AsE9uD$$\$dE1H5qA3A9uF61L1oD$$\$E1H5% AA9uhH
1H=HοHHT$HcL$$Ht?HBHH)H9HH)H
<	uH=SoHH9LH
uH=?Ht$HSHHcHVluHf@a[D6txHf8@t[DmdHf0[fHc[fDcpHf@p[DHh[fDff.@H
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
gHA0Hu[H
EH5ǐH=
ff.fH
)SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
HA0Hu[H
H57H=ff.fH
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1!H
GHA0Hu[H
'H5H=2mff.fH
	SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1 H
HA0Hu[H
]2H5H=ʏff.fHy@t9vt*uPufDsAWH)1AVAUATUSHH_0HtVL{MtMIHLcE1f.IHM9t7H;1HtHWL9uHuI$H[]A\A]A^A_1SH_8dH%(HD$1H9>#ILVIHLI9t|I9twHPD9A@<f}<ptA<suyIQ0Ht4HzHt+H1HHH929J9|H H	DHH H	H|$dH3<%(u`H[fD<ctHLLvلtH$HXH H	IAHtHD1ɻthAWIAVAUILATIU1SH1HHIH9vHHLALHAA,$HAl$I9,1HH+E1-t+1HH~8:]H[]A\A]A^A_fDHH9r1HME1HH9vHHLHD$HL$IHHHL$A!HL$H9xD)E)E1A,$Et$a@HH9f1HE1HH9HHHL$AHL$H9DEE1A,$Et$Am8A,$AAl$8#HHLHD$HL$IH9r9#uHHHDE$I EED$p@HH91HE1HH9vHHLHD$SHL$AHHHL$DEHL$DEIEt$H91HL+tv-HH91HvE1HH9vHHLAHH_E)Et$fHHLHD$HL$I^HH91H	E1HH9vHHL`AHHEEt$`DEu8Et$8#HHLHD$KLD$IL9rA8#uLH=ILH AAD$fDAWIAVEAUIATUHSHH8DD$dH%(HD$(1HHL$ H HD$8DD$AH)E1ۍE~WE1Ld+H$\AH@ƀ\H?C@uHI9uIG0Ht{HPHrH;pwrHR|$HpHLDhxD@Dp!fHD$ |$DhxDpD@H|$(dH3<%(DH8[]A\A]A^A_fHDD$DL$L\$?]DD$DL$HPL\$IG0HrQ-t]#MICHpI;sv-LߺDD$DL$\DD$DL$IH@HpIsAMtSICHpI;sv-LߺDD$DL$\DD$DL$IH@HpIsA_kAUATUSHLOAz|IRHtKHztD1E1AHHBHH9fHA݀9#t#IRHuAH[]A\A]DHqHy#HDH<#uAH9uAtpIcHJ|IHtHpLNI1L7LH'LAH AHLAH	HEMcL5-EMc"D1IcHHJt
HtHzHHHH AH[H	]AA\ALA]#E1"H
oH53H=vAuff.AWAVAUATUSHHL={HD$IGHHxD$E1M@NDl$1MtIYL1HLII@II9A;(uA{ IkICufDHHx tLHAx*LxtLxHALL)H=+MHcHIOH9€ALMLH=HcHHNH9LALDMH=McIINH9MH=HcHHOLH9ILLINH=VH9HLLHNH=1H9€LLLLHcȸHHOH9PH=L2H=ƂLH=LH=LH=oLH=ԉLH=;L~H=L`H=LBLH=ځ$LH=IGL\$8HD$0AALAMLH=RHcHHNH9AALDMH=McIINH9zMH=HcHHOLH9BILLINH=H9HLLHNH=H9€L|LLLHcȸHHOH9LH=PLH=5|Lt$(L;t$0E1LLD1HILAM)H=HD$(ALAMHcHIOH9€ID$Ht&HPII9|$Mu$|$MuHH[]A\A]A^A_1ɋD$H Ht$LAAPH	HT$ HH[]A\A]A^A_L\$81IA(t7)u5tI9RuA;{t%II9r:f.I9r#|$t8D$HL$LAHt$HT$ AH H	+L%D$L|$Hl$ D$ff.fAUATUSHH=HGHHpHAH1۹EA:Hzv5t
AAHGHHpHH9
HHuĄAAIcDH9spNIcH4HHtHFHPA@H HAH	A	H=EEHGHdf.Au*H[]A\A]DEA"D1IcH4HHtHFHHA@H H[H	]AA\AA]kAuH
:|H5||H=}BfAWAVAUATUSH(LA{|ICE1H&Hx1AH-c|fDH<AE1HtLOI1L@1ҹfL8HHuHx1L
E11ɺHI5IAtWD$LLAH ALT$HH	AUH!LH	HT$HHD$1LLT$LT$MEICHt!HPHH9AufDAuH([]A\A]A^A_1AUH LLH	HT$H(A[A]A\A]A^A_H
]zH5zH=r{DH)xw3@HyHcHsCff.@HBtiv/~uQHBHHtHxtH@@u#HBHHtHxtH@fDHBHHtHxtH@HBHHtHxtH@f.AWAVAAUAATIUHSHL:MtIA
A
{A1H=HHHH+}LIHHW8HHMl_<ADʄH=y10X1H[]A\A]A^A_DAF<wAAHH[H@HHH9hH9tD$MtYIOHtPLL1DS8	DHH9uIGE1L=0xEfL1AD9uAA\|$!KH\HHHCHH=~Hp1~I$HHSHHHtH;pHHHP1I$HEHtH{HWH9r1@AFIŸ$ fAEAEA$tA^AE^E18HPHrH;pvHuLHPI$HrHpCL5ILH! t€DHAHDȉHL)I9I$Hvz@MIGHpI9wsLKII$H@HpIwAoI$HHPHrH;pvHKHPI$HrHpH=wH5"w 1Ef
:bDH91HtBH̋W8H+=HHH=v1T-h@LfDH=<v1TgD1fHSHrHH%gLH=v1L
H!%tDHJHDщ@LHL)U@5fDeHHIHI$HHHHS1HH=k{1I$HtHPHrHHH9p~D$A	.A#Xh If@AUPH{EJcHAxLH=t1E1LD$WLD$AHPHrH;pv#HLD$HLD$HPI$HrHpC(ILH! t€DHAHDȉHL)L9I$HmqAu:Ar1Aq(ApAoAm
AiL5sIN_IGHpI;wv-LLD$HLD$H
sII$H@HpIIwE,L9(M<$E.MuAeAazAQqAPhAM_AIVAEMAADL-sAiIMVIGHpI;wv-LLD$@GLD$H
rII$H@HpIIwE4L9t<M<$EuMuLǻ貾DML蝾LD$H5urH=er1ELD$LmZLD$H5?rf.AV1E1AUATUSH0H
dH%(HD$(1HD$ HAHHxL-0{L%qHl$ H\$
DHT$ ~HAHtHcH;Hw
AHtHz赽HD$ L1NL1OHH|$ 
HA膾H
HQHtHzqh1H\$(dH3%(u8H0[]A\A]A^Ð DHtˉ|$HzD$qHHdH%(HD$1H+HHH+5HP8HHt	HyHuuH=yp1NHD$HDu
1H|$H|$~HtHPHtHHt:HT$dH3%(uaHDx<AЉt-H=o1GN{f8
uHx1H=o1NNDHtT@HHtWHxtPS1HH;Xs(H<HtH褻HݼHHu[HxtH@[ff.AVHAUATUSӃux8HPHt	HRHu[]A\A]A^@HcH9rW@9P8-H=o1MHFL$HPHHtHruHc|:
~i1L-wq2H5褻HKH9ZHHHPJ"<@	@uL11I@u[H=[n1HM[
]A\A]A^FfDW@9P8[]1A\H=nA]A^M@H=m1L*H=m1LE1 A躹H@DuĺA9|f.@H=zm1nLlf@[H=Ym]1A\A]A^FL*NnAWAVAUAATIUSHH Hu7H
XHQHHHzuE1E1DDAA9uH
	HAHtHxD9|HDLcA߃~F}1ZfDpAxLcA1fDMcH
HQHȉE1f~1Ht,KHH;Js 9*AEHOHPD9~HtL9rv1DiH"Et|Dx8H[]A\A]A^A_f.D`Hc؉Ń~x1#*DHʸH@HtH9Xv1EuHh8H[]A\A]A^A_1{D94HmHP@Dy8b1A`H9HPLcA1AWIAVAUAATUSHdH%(H$1vHl$0HcH謶1H=jHHǷD$+HDu
H|$+11Dt$+IEHMt	ID$HA<
LD$,AH HD$AʼnD$CD$HD$,HD$6T$,E}MAH=(DLL\RDJHH=EHD$PDL$HL$(T$$q`AXZAuEt1H$dH3%(H[]A\A]A^A_HH=i1}FIl$
DH=2iHl$07G1ҾHL%iÃjfDL1GHÃt<H;Hx讴-@UHAWIAVAUATASHdH%(HE1LHcL{HEDsMATH=DI HEGLDž^AXZAXE~"HTH@HtA|$HcH;PRDMcdDB5DB<
8HcDJHLHH)1HL$H-=f.9t"9~	A9 HxI9tHA9u^HxI9u1H5fH=gXEHƅHD11H~HHtHHHʀ<
H='At$ILFY1HEdH3%(He[A\A]A^A_]-$
^@BTfDH=rfLuD1ҾLL5PfÃ@L1FDLÃtH6Hx(fHhfD1TLH=e1%ff.AWAVIAUATUSHdH%(H$1H\$ AHcHkAD$E~@E1D$HD$I D$HD$1DAHEGEHUH==HL$T$[AXZAuEH$dH3%(H[]A\A]A^A_fH=eH\$ B1ҾHPL-dAă"DL1~BHAătHDH=jd1dAT芰f.UHAWIAVAAUATSHdH%(HE1nLHcLHEDkMAVH=DI HEGLDžnZZY~ HȰHRHtxHcH;JOǺ1McDB-B<
HcDJ1HLHH)HL$H#3@9t9~A9|c1 HFL9tHA9u1^HFL9uH5aH=ac1<HEdH3%(He[A\A]A^A_]f.1-f.BTLfDH=bL}@1ҾLL-bÃr@L1N@LÃtF1LH=#b1?CAWAVAUATUSHH
HQHHzADoHc2oq1HH
HQA9|1HtHBH9sHAIcH;jHH+5YH1HH=aIAI(?1豱<FfH
9HQH)H;j<?l<p'<q<<QE
-袬f 薬u
E|$HD7f.HHH9ot31HA9H|HBHuHuko;j8B1H=`?HKHBAIcHt8H9hv2HH+5H1HH=u`I=1k<H
[]A\A]A^A_髫EBA DHE1IcHìHBsAIcsH1H=`1ͫH=h聫H=huH=hiH=_1蛫H=h1荫H=&i1HHH=_HH+5H1HI<1H=^*=HHBH=^1=
-蔪@ 膪u
AqH=V_蕪
-Q Fu
7H=
_[9i8t)H=^1=H
JHQH5*H=]1<H
HQn1茫ff.U
HAWAVAULcHATSHHdH%(HE1膪HHD`8LH)HLLHcLWD{E1LDH=sDRAŃEt$E~HNH@Ht
IcH;P1DMcfB+B=<
HcDJ1HMHH)HL$H$4A9tA9~A9|a1 H~I9tHA9u1^H~I9uH5=\1ʨHEdH3%(He[A\A]A^A_]1-f.OH=a\1L:1ҾL謷L-=\Ãf.L19LtÃta9AHHpHA|$1jfDL1H=ez8蠧HHu1HHtrH=\1芧1H=)\|HExw/PH
bHcH@H==\HDH@1Ht-HPօt#HLHHtHAH<
H=[1H=[1HB@tlrD@u5Z1H=\蜦HexEtoH=_CHLBt,t'HfDH=[HHBHHtHxtH=[HsH=[ԥfH=$[ĥHͦ>H=Z褥HH=Z脥HxH=\ZdHmXH=AZDHM8H=*Z$H-H=ZH
r H=>ZԤHݥNH=RZ贤H.H=@Z蔤HAWAVAUATUHSHhdH%(H$X1H(Lg1ILE111LHH:1LHI
IݣLLHL$H=UIǹH=([HH=YHH=\[H^H=[HH=[H2LH))AփA<7H_HcH|$H)D`8E~*HH@HtA|$HcH;Ps16Ht$ D1D$ &|$ H)
腢HtXH}tQH=HDwDH}LHHcHP1HtHBH9!#f.1H$XdH3%(%Hh[]A\A]A^A_D111E1111HH11HIʮ
I轡1LHL$H=E11If.苨1^@H=Z褡1GDH=_茡H=`耡1H5RW0H5NW10H=`NH5?W1{0H=$`/H50W1\0H==`H5W1=0H=N`H5W10H=g`ҠH5V1/H=x`賠H5V1/H=`蔠H5V1/H=`uH=ViH5V1/H=`1舠H5V1u/H=V)H=`1H5VJ/H5V17/H=`H=`ߟH5V1/H=`H=!a负H5jV1.H=Ja蕟H=na艟H5YV1.H=ajH=a^H5<V1.H=a?H=b3H=,b'H5V1T.H=5bH5V15.H=>bH=jbݞ1H5U
.H5U1-H=hb諞H=b蟞H5U1-H=b耞H=btH5U1-H=bU1H5U-H5U1o-H=b#H5}U1P-H=bH=jUH5lU1%-H=bٝH=c͝H5EU1,H=#c讝H=Oc袝H5U1,H=U胝H5 U1,H=IcdH5U1,H=RcEH=~c9H5T1f,H=cH5T1G,H=cH=cH5T1,H=cМ1H5c+H5iT1+H=d螜H=/d蒜H=DT膜H5MT1+H=<dgH=BT[1H5;T+H=Id<H=/T0H55T1]+H=%TH=JdH5*T12+H=dH5T1+H=dǛH5T1*H=d訛H5S1*H=e艛H=Be}H=neqH=SeH5S1*H={eF1fD1LLE11LHH1LHƧ1E11LHHH=RSHH=@SHH='SHH=
SHH=RHH=RHH=RHH5RHtH5RHәH@@@<1lfH=bRHRH=URHH=%EGDG<15D$D`D;d$McIH=AHGJ(H@H{-11PHCHpH;swEHWJ*HsHH=HGJ(HHH9hHuHߺ H=HH@HpHD$E11ɺLLDl$Dt$HD${1LHHHL)%EDLH=Q1tHL$E1E1H=2LHwHH™HpH1H5IH@HHFIEH~E1@JJ,HcHpHV1H5HPH.Ht7HQHPHyt(1
HH9QvH5HH.HuKDHtIL9foC<i<a\1I}t)I|HtH譖IDHI9]wI}葖1t|$HǗh8~(HH@Ht}HcH;Ps1}1ҾAHD$ @DȄu
J11H|$ ||$ HHHx1M9wI,fDHCHpH;svHߺHH@HpHsAIM9
HuĸfL1UK|$HX8~(HH@Ht{HcH;Ps1{rH5GH=N1wH@D$ @DȄu
	11H|$ ;|$ 
H=	H‰:1E1LLۡ1LHH苡HĕL)HH@HSLc1LHL`1Hy#v
DATHPH9[
HH9uDC<am<fu-H<D$HP1HtBD$C<a1H|$<iL1HH=Mp11tf.H9]H|HtHcHDHHu4HH$Hx1DHH9XH1HtHrH=L1}H6HuD$Dd$D$hHDh8EBHcL4H=HGJ0HX	H{G	E11OfDHCHpH;swEHWJ2HsLH=HGJ0H	IL9xHuHߺ`H=iHH@Hp1LLI)HI

HʋD$L))Յ

npHߒHH)HĩHHkPHHڒ1m1E1LL軞1LHHkHL$ LHH=d$HD$ H=bJPp1裑|$H[X8~(HLH@Ht{HcH;Ps1k{IY1H5CH=AJ"HD$ @DȄu
Ƒ11H|$ |$ N	HHtHHHʀ<
uHhH=H‰N51,\$Dd$(A9LDkDH=i?8D9u^Al$fúVmCA9u1WHh8(1|$HHJH\Hy^HHB0HJHx?1LD9a1HtQH=sH1賏
9HrHB0HHH9XH[R8HD@DHHD9}1HtQH=#H1RC<ns<p,<eH|$1x1H@nDd$Dl$EAmDE9|.H=J6{^9uA}vA1DHdD`8H|$ !H"D$\H/HPHrH;p"HfoD$ HpHHfoL$0JfoT$@R fo\$PZ0fod$`b@HHLlL-֎AM<	t
< u*fDIDA$D)D4)< t<	tE]1NHGHpH;wv hIEHmH8HGHpHwAHA9L-BI}Hu밃OHcDeA|
u
IcEDeH\$pLMcH͌B|$pIcoDpH|$ o HHHPHrH;pHfol$ HpHH*fot$0rfo|$@z fol$Pj0fot$`r@HHHH|H=fQ H=V=HF@<-C<ap<fu-H!D$HP1HtBD$C<a1H|$<iL1xn\$Dd$H=HGHtHxHE^DE1HWE~.HAL$HH;Js1HYHRAA9~HHcH;J1h|$HX8At*k~HH@Ht
HcH;P
A܉Ht$ 1D$ |$ Hua
mH<H}1H=HDG-fH9]nH|HtHHDHHu1H=cD.1H=.DH=THH@HtHx
11fDHيHpHPHrH;pvHHPHHrHpAIHD9d$S.1@HyHHPHrH;pvHUHPHJHrHpIHA9>D$~x1fMcD+d$REuA1$@CH=D1D9"HHP1HtHBxDL9uH=1HGHtp@H@@@<1!fDfD
H=AHH=@HDH@<PE1H}诇HHHPHrH;pHpH1cMcHH@HtH@I99A}^!AA9/HHxLH蝖HVzEBDB<1z8Džx"H)HcHJ1HtHQH9817HH=@1&H=H%1zH=?HH@E@<1FA9wEuH=HWHt
Hzto8D9DAA#H=]H=QH‰7*HH{HHHxE1H-?VfH9H=?1H|<uc
葅HHYIL9`KKDH=HHHHt	HQHuH9tH1讅@*.H=>1莅p{1zC<n\<pD$L-S>L%g>H\$pHl$ JHJHH9vLL1L1HE
HH߉D$qxH~HHu|$tHHH1H|pH
-AH5>H=>襄DH==1rTDt$H=1A^A~)HGHt HcH;PsA~1EH=LD&LcAl$E9}fDߺV9uHH@HtH@I9iƻHz8HJGB8HHHIH9vωz818H=M1zA|$AA9tPH
HPHȃHrBH
HPHHrD
AA|$11H=;1臂H=PH7 11A|$pD9H HPH=:HH@E@<1}HruH=;1H\$p1ҾH8u,H-z;@H1nHt߃H|pH|$ H>HHPHrH;pHfo|$ HpHH:foD$0BfoL$@J foT$PR0fo\$`Z@PHHPHHr#HفB8B8xO\$H=~*HWHt!CHcH;JsǺ1H=LM"HcDeA9~ߺVD9uHPH@HtH@H9vDhx~x1O}1@HHRHHcH;Bw{iH|$LT{iH|$L6H@@@<1{iH|$1{i롍{vvq{^ZAl$1HHH)HĩxHJHtBH5H1H#HH)HĩHH;B1H=71H\$ NHHD$ 討H-k7H1#H膎~H|$ HHGHpH;wHGHPHWHt$ H=71*~Ht$ H=~1|He1X{1AB8PHHPH`~Hr4H
P~Ht!Hl~H)HĩHcH;qBHHkPH1H
@~1O}HD$ HH"BH
9*H56H=G2}H
9H5y6H=6}AWAVAUATUSH(Ht$dH%(HD$1~1H}HcHJHD8	uHTBPv	tE1%1=IH@HPIWA	AatAi DE1DH=/1HD$D$H$fDH|HDu
|H<$L1IHXHxvA?HHCHpH;sHsL<ILE1 fHAHL)H9	tHL)H9wG1f}H)HL)H9w{uHHL)H9vHAH{@P!E1DH=.1{
fDH{@PE1DAH=41zH5({
{IGH|1Hp@IIGHIEIvDAATHI9GwLI}yH=44yuf.HߺHH@Hp>fDE1EE1E1(@IGHpI;ww AIwA	E9Mu׾LeIH@Hpƀ|$u2HH\$dH3%(u+H([]A\A]A^A_À|$tIxHD$1>yzfS11HHzdH%(HD$1Ht$D$!
HCxHy1HHHtQP8HD$dH3%(uH[xH7yHtHH=CyyHwyHtHH=CyyHyHtHH=`CyySHHt_HGHH\H9HBH9}H1HH9rMHHqHt'HxHtpHXH[묐HXHHHX[H
hCH5BH=CwH
ICH5BH=BwH=lBxxH
CH5iBH=Bdw@SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H=BH$$HD$HD$ HD$1D$0vH=wHHw
vwH͌UׯQHHH H1H͌UׯQHHH H1H͌UׯQH1HHH H1@Ht;H%#"HH@HHH1HHH H1H9uÐH%#"DLGMtwHHGHtHHHuvH͌UׯQHII L1I9sxLH!LIH9u3HH!ILH9tHuHfD1DHGJHH
tA%H5@H=@,uH
UA'H5@H=@
uff.fUSHHHLWHHwHKH9sqLFIH͌UׯQLMHHH H1L!H9HL!H4I<1HHuHEILUHH0H[]fHHT$LUHuHT$KH9hH
B@MH5?H=?tf.HEH0H[]H
@FH5?H=?sH
?NH5q?H=x?sATfUHSH0dH%(HD$(1H)$HC޾)D$HH<H$H}H\$HD$H}t91IHH9]v'H4HtHELHH)H}H9]wzrH}qrfo$foT$MUHD$(dH3%(u	H0[]A\rff.ff.ff.ff.ff.ff.UfSH8dH%(HD$(1H)$)D$DH^HHAHHuHHHAH9u HuHD$(dH3%(u&H8[]H
=H5=H==qqHP>HcHDH=>1qfH=>1rqfH==1bqfH==1RqfH==1BqfH==12qfH==1"qfH==p@H==1qfSHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHH=pHD$HD$ $D$0HD$q1H=<KpHD$dH3%(u	H[pff.fSHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHH=pHD$HD$ $D$0HD$pH=<1ko
nHD$dH3%(u	H[3oSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$11H$HHH=5oHD$HD$ $D$0HD$o1H=;nHD$dH3%(u	H[VnfDSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$17H$HHH=RnHD$HD$ $D$0HD$n1H=5:mHD$dH3%(u	H[smSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1WH$HHH=rmHD$HD$ $D$0HD$n1H=U9lHD$dH3%(u	H[lHZmGHGGHG HG(G<G@GDGEHGHHG0fAWAVAUIH58ATAUHLSH(dH%(HD$1'mLHk1A|.DDHH9uAtyMcCD5c<wiH8HcHAHt$DыLykH|$AT$HcHL)@ALH:L\H9wD}jHEE11THPHrH;pvHHPHEHrHpCL%LIjHL9vHEHuHUHHtHBH<H$E1E1E1AHj<t#A< utEtoHAAj<uMMEMJ4111HH9!ELAEfD<	uEt$A`<
tE1<
QMtlIEHpI;uwcIuE|Mt0IFHpI;vw'$IvAE1$AfLNIH@Hp뿐L.IH@Hp냐EEMt	I~hHAE1MiD$D$$fDHXiA<tcA
A
UA u
A%MIGHpI;wIwA	HEDEhA<uHvhL$$9ȋL$+9E@HUE<1HtBE8
HL$dH3%(H([]A\A]A^A_f$MIGHpI;wvIwA
HEHHPHrH;pvHHPHEHrHpAL<E1fDAAHg< tHHlhuD@u5<hDAŅtgE1*f.IGHpI;wwAIwA	E9~(Mu۾LIH@Hp@uD@u5gDAօtSE1&fDIGHpI;wwAIwA E9t(Mu۾LIH@Hp@ADHfA<<
<
5D$MIGHpI;wIwA
HEHHPHrH;pvHHPHEHrHp1L<кIH@HPIWE$ALDD$DD$IH@Hp@D$MfL^IH@HpmfDfDE@@9L$vE@fDD$MMIGHpI;w@IwA
HEHGHPHrH;pvHHPHEHrHp1L<кIH@HPIT$A
HEHHPHrH;pvH]HPHEHrHpE1L$A[L&IH@HpfDAAAwAlf.E@E<1LIH@HpD$Mt;IGHpI;ww2IwA
HEHt:HPHrH;pw1HpL<L(IH@Hp봾H	HPHEHr&cH
0gH5/H=/7c9LEE~X@HtI1A4AL@Dž@@u9LHI9uqc9ºDˆEDI}+bJEEATUHSH?HtHbHEHE10H9Xv'H<HtHaHEHHHuHE0HtCHx1
HH9XvrL$[J<HtHaHE0JHuϋEt't"H}HtHXaHE[]A\H}HHtH6aHEHHx#aHE0fAWAVAUIH5\.ATUHSHH?dH%(HD$1HtHL1hbILHPHrH;pvHHPHEHrHpALLH`HPH9vHEHuH1һA|.DHH9utsLcCD5c<wcH.HcHAHD赀L]`H<$SHcHL)ALH:LH9wD}_HUHHzE1JN,H;Hx01<@@	}EL	/`HUJ*HtJHH9Xv@<@
uE@uL
_HUJ*HuHE<LC_HD$dH3%(H[]A\A]A^A_L_HUdE1L Ao_EDu_A9|fL
C_L
6_HUDIL9rFDL
_HU_IWAAAAEP^AWAVIAUIATUSHu_8MIFHcD$L<I}HHG)H4HGH9rTHOHcHcHH\J<;H^LLHp^Ee8AD$AE<H[]A\A]A^A_HL$aHL$HIE1HyfA1E1MAWFAVIAUIATUSHHcAHMIFI}HcAL<HHGh)H4HGH9H_HcHJ<;HH]LLHw]Ee8DAE<H[]A\A]A^A_@Dg8Et_IcHMbI}1E1Ho1)HH9tHL$%HL$HIET@1AAWFAVAUIATUHSHvbHELcIN| I?HGHHGMtnMuJ40H9wr@HwLHL~[E<]8H[]A\A]A^A__8ufIHEJ| HGI4HE1AWFAVIHAUAATUSHIFIcHLd(I$I<$HL{HHwHGLH9r?HGHJ8HWHLZH{|ZAF<En8H[]A\A]A^A_@I$IFH|(En8EV뾐E1HuI}@L1jff.AUFIATUHSHvFHcL$HELH8HtHYHELHL(]8E<H[]A\A]Ë_8uH[]A\A]ff.AWFAVAAUMATIUSH(1)؃MtAm)McID$INL8I9Ht~HwAA)ȅ|LcLH9wHwHcIcHtD
HH_ZID$Hc1J|8MtIULYEt$8AD$<H([]A\A]A^A_DALcALօ8tHHGDw8E H([]A\A]A^A_@L$LT$DD$LL$LL$LT$L$DD$IID$J|8HwLff.@Fv0HOHcƃHHTHDLHH
LG<w8@w8uÍFv(HWHcHH2HT2LH2H1LG<G8Ëw8tF@FAVAUATUSHLcHCN,MuJ<0HHHHI9tkHHz9WHCJ<0J4(HHHPL)H}XHCHhC<H@I9Gk8[]A\A]A^f.Ht&HzVHCHtiHHHHHHHo8&HML1lDJ4(Z1PfH%Hff.@AWAVAUATUSH|$t$H\$HcD$HsLdMMt$Mt{HcD<t2@A@
@1E1A	E9tJHI9tAIcE<A42D8t^En@w7t3 A9tCE1ɸEuA9uHL$T$Q8[]A\A]A^A_fn@w̄tȃ A9uEADAG8D$
fAWEAVIAUAATUHSDHD$HHL$D$%EgDD$DLDHu!ED9wAHD[]A\A]A^A_ÐHT$De8AWIAVIAUAATL%<RUH-<RSL)Hg>THt1fDLLDAHH9uH[]A\A]A^A_ff.HHtcsetattr()tcsetattr ICANONread()tcsetattr ~ICANONEdimCoder (1902)Press 'h' for help.-Scratch-Opening '%s'

Opening '-Scratch-' BufferFile doesn't exist... Creating it.

You cannot close the '-Scratch-' buffer when other buffers are open.There are unsaved changes. Use 'E' or 'Q' to close without changes.There are unsaved changes in at least one of the open buffers. Use 'E' or 'Q' to close without changes.])])])])])])])])]]])]]s]!o(oHohooo!ooxph`x`xXshowLuaOutlineshowTextOutlineshowCOutlineshowMarkdownOutlinecreateLuaOutlinecreateTextOutlinecreateMarkdownOutline        ^X ^Dsrc/parsing.cifelseswitchwhiledocasefor&&||+^///*functioncurrentBuffer->fileType == FT_MARKDOWNcurrentBuffer->fileType == FT_CcurrentBuffer->fileType == FT_TEXTcurrentBuffer->fileType == FT_LUA
<%d: %.*s*|%d> 
<%d: %.*s|%d> 
<%d: new file*|%d> %shelp info Enter a line number: %c%4d %5d Enter the string to replace: Replace with?: No occurance of '%.*s' found
%5s %.*s- Enter the string to find: enter the string to find: %5s %.*s- 

<%d: %s|preview> 
Previewing '%s'
 * 'p' to show previous lines--^-^-^-^-^--
--v-v-v-v-v--
File information for '%.*s'
FileType: TextMarkdownC SourceC++ SourceC/C++ HeaderGophermapLua SourceNumber of Lines: %d
Line Endings: LF (UNIX)CR (Commodore, Early Mac)CRLF (DOS, Windows, CP/M)NEL (Unicode)LS and PS (Unicode)Indentation: %d, tabsOutline:help
Basic
 a (line/range) i (line/range) A (line) I (line) x (line/range) m (line/range) M (line/range) c					 Append to end of file). j (line/range)j$ to
Find and Replace
 f (line/range) (string) ff (string) fa (line/range) (string) ffa (string) F (line) (string) r (line) R (line) (string)
Print and Preview
 P (line) p (line/range) clear
Files and Buffers
 b b (buffer)					 number. bn bp s					Save the current buffer. o e E q Q info					 filetype, etc. d (range) (string)					 name. w (string)					 given name. g					List out all bookmarks.
Default Bookmarks
 #p(number) #f #s					 currently in. #cversion1902setline_endingcrlfdoscpmwindowsunixcrold_macindent_sizedefaultindent_spacestruefalseSet bookmark '%.*s' to %d:%d
*%3d: %.*s %d:%d%4d: %.*s %d:%dEnter a filename: Saving '%s'
Saving '%.*s'%4s ^- %5s That buffer doesn't exist.Enter a buffer number: *%3d: new file%4d: new file*%3d: %.*s%4d: %.*ssrc/editor.cstr[strLength] == '\0'Enter file to open: str[strLength - 1] == '\0'Opening a new file.FileType: %d
Unknown command
------<3*!|sjaXOF=uX(HȞ@nr|ڲGjOުԪ%(jtUW&xeditorState_openNewFileeditorState_openAnotherFileThat line number exceeds the bounds of the file.
 * 'q' or Ctrl-X to stop previewing * 'Q' to exit the whole program * Enter/'n' to show the next lines * 'j' start showing lines from given line number (TODO) * 'f' find first occurance of string in file and jump there (TODO)No occurance of '%.*s' was found in line %d
Use Ctrl-D to denote end of inputUse Ctrl-X to cancel the current command/operation.		Insert a line after the given line number or range.		Insert a line before the given line number or range.			Appends characters to the given line number.			Prepends characters to the given line number.		Delete the given line number or range.		Move the given line number or range up by one.		Move the given line number or range down by one.					Continue from the last line of the file (aka.		Set's current line to given line number. Use 					 set last line as current line.		Finds the first occurance of the string in the			given line range and prints the line it's on.			FInds the first occurance of the string in the					 file and prints the line it's on. Equivalent to 'f #f (string)'.		Finds all occurances of the string in the			given line range and prints the lines it's found on.			Finds all occurances of the string in the					 file and prints the lines it's found on. Equivalent to 'fa #f (string)'.	Finds the first occurance of the string in the					 given line number and prints the line showing					 where the occurance is located.			Replace a line with a new line.	Replace the first occurance of the given string in					 the given line number with characters.			Preview the file, optionally starting at the given					 line number. Enters preview mode.		Preview the given line or range of lines,					 including the line before and after.				Clear the screen. May also use CTRL-L.					List all currently open buffers.			Switch the current buffer to the given buffer					Switch the current buffer to the next buffer,					 wrapping around when it hits the end.					Switch the current buffer to the previous buffer,					 wrapping around when it hits the beginning.					Open a file in a new buffer.					Exit the current buffer. Only allowed when the					 current buffer contains no new changes.					Exit the current buffer (without save).					Quit, closing all buffers. Only allowed when none					 of the buffers contain new changes.					Quit, closing all buffers (without save).
File Info, Outlines, and Bookmarks
				Gives back information on the file, including					 number of lines, filename, number of characters,	Create a bookmark with the given line range and			Print out the line range of the bookmark with the
 Any command that accepts a line number or line range - denoted by
 '(range)' - can also accept a bookmark. Bookmarks are prefixed with
 '#'. Example: 'P #text'. EdimCoder provides some bookmarks by default:
			Represents a page of a file. Each page is 15 lines.					Represents the line range of the whole file.					Represents the line range of the bookmark that					 the current line overlaps with. Useful for					 seeing in which section of the file you are					Represents the current line.Unimplemented prompting for name. Please add a name after the line range.File doesn't exist... Creating it.
Press Ctrl-D on new line to denote End Of Input
buf_len(currentBuffer->lines) == 0xcalloc failedxrealloc failedxmalloc failedsrc/stretchybuffer.cnew_len <= new_capFATAL: buf_cap(buf) <= (SIZE_MAX - 1) / 2new_cap <= (SIZE_MAX - offsetof(BufHdr, buf)) / elem_sizebuf__growsrc/hashmap.cIS_POW2(map->cap)key2*map->len < map->capval == (void *)(i+1)map_testmap_put_uint64_from_uint64map_get_uint64_from_uint64ERROR: Wrong Color - Unix rbsrc/buffer.cwbbuffer->openedFilename[buf_len(buffer->openedFilename) - 1] == '\0'rrrrrrrrrrrrrBBBBBBBBBBBBBbuffer_openFile;Lh13(33`5h`678809 P98:p;<=0>p>$>8?L?`?t??0@@A`AA@BX C`R@SS8`TXTxUU`VWP[h]p_	Pfl	h	i 
 j4
jH
`s
t
u
@vxz}T 
\

p
@<` <` pP,p`tп 00TxHx\0@ pTzRx1/D$4.FJw?;*3$" \2&AHp
AH 3&AHp
AK44SD I
A5 DW45KBAF O
 AABC $(6AGp
AB$H$7Df
FT
L
Ep8D
G8c\.AIK09<D9D989(:($:< :P,:[,dx:AG
AHc
ALX;d;Lp;BED A(D0
(A ABBAS
(F ABBA4;ADD 
AAFD
CAAHD<@BBB B(A0D8Dp
8A0A(B BBBE8|KSg
FZ
FV
JQ
GZ
FQG LH[
ALH[
AMH[
A,pMH[
ALMMH`NBGE B(A0A8D@c
8A0A(B BBBA `NHAD 
AGHOBEB H(D0C8LP{
8A0A(B BBBGHRHBEE E(A0D8Gp
8A0A(B BBBCLhTBBA A(D0j
(A ABBF
(L DHKHddVBBB B(A0A8D
8A0A(B BBBAm
8A0A(B BBBEL \BBA A(D0 
(A ABBHx
(L DHHE`pL^BBB B(A0A8D`L
8A0A(B BBBA\
8G0G(B BBBE_A_H`vBGE E(D0D8FP
8C0A(B BBBF@HhOBGB A(A0D`
0A(A BBBBiN 
F jdT}
APAp k9BIB A(A0e
(A BBBE
(F BBBKV
(C DIBH
(H DBBEd@l]BBB E(D0A8M@N
8A0A(B BBBKf
8A0A(B BBBH\n,BEB E(A0A8GRWAn
8A0A(B BBBD,	pAC
BIK
HX8	svBBE B(A0C8G{KYAm
8A0A(B BBBC,	t=AC
BEO[
KH	vBBB B(A0A8D@
8F0A(B BBBE,
zAH
FMk
I @
|DA
Kx
HLd
'BBB B(A0D8G4
8A0A(B BBBF$zRx,%
H
BBB B(A0C8F`d
8A0A(B BBBA zRx`(%$t(pAH `
AAp)DN
A)DN
A)DN
A A_
H`
AAJ48HD\Pp\K MlOL
A4T=AAD0
AAC\
AAA0\BED IP
 AABA
(
<
P
d
x
,
AJDPr
AAA
p
 
AJ
AA AJ
AA ,pAJ
AA P,AJ
AA$tAJ
AAWH	BBB L(G0G8D`
8A0A(B BBBC,@BAD 
ABDH, 0BBB L(A0D8DP
8A0A(B BBBAHxBBE E(A0A8FP
8A0A(B BBBDH-BEE E(A0A8DP
8A0A(B BBBEHBEB E(A0D8F@T
8A0A(B BBBIH\BEH E(A0A8D@w
8A0A(B BBBEHrBHA D(F0D
(A ABBAK(A ABB`aBEE E(D0A8F`
8A0A(B BBBFy
8A0A(B BBBEX@l <<LAEBB A(C0
(A BBBKD\BDE B(A0A8
0A(B BBBCH4}BEE E(A0D8GHD
8D0A(B BBBBDTheFEE E(H0H8G@n8A0A(B BBB


o0
{			oooolo
6FVfv&6FVfv& GCC: (GNU) 8.2.1 20180831GCC: (GNU) 8.2.1 201811270l		
	 
0


0
`Iv&
QO6
W]C
`Y,\
[r
^v
 `=
f
@ 
0
,
:PWb
d
@w
H



<
D
6pO`
hP8h
2K	dmpW|



P
p3
PHA-B
PSN
Y
`b
 n
2~
a 0 
@

`<
9H
*<@O
0d
Л=
@X`
PTd(
K
P4
 

4
06CW
g
!@p
)y
&h
p

@)

Ax0C
 <Yk
P
P[
P
P21
 
p ,?
KJ
 ^m
v
p	
@8
e
0
pp
i
4H	
 0
/	.	
 @@	
[	
 k	
1	
P	
0	
@-		
@c	
p	(	
0S	
F

P

@

& 

 ,
A

0M

k'd

m


}



p




=
 7
4MC
T9M_
`i}(

D 
W
`b
@
H
pP

".
)6
0K
c
0rinit.ceditor.ccommandInputCallbackcheckLineNumbercommand_jumpcommand_replaceAllStringcommand_replaceStringcommand_findAllStringcommand_findStringcommand_findStringInLine.constprop.8multiLineEditor.constprop.7__PRETTY_FUNCTION__.3579__PRETTY_FUNCTION__.3597command_executeCommand.cold.9multiLineEditor.constprop.7.cold.10main.ccrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7287__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryparsing.cskipNumbers.part.1skipBookmark.part.4parseLineNumber.part.3__PRETTY_FUNCTION__.3706__PRETTY_FUNCTION__.3716__PRETTY_FUNCTION__.3726__PRETTY_FUNCTION__.3736__PRETTY_FUNCTION__.3605__PRETTY_FUNCTION__.3667__PRETTY_FUNCTION__.3683stretchybuffer.c__PRETTY_FUNCTION__.3298hashmap.c__PRETTY_FUNCTION__.3317__PRETTY_FUNCTION__.3334__PRETTY_FUNCTION__.3376colors.c__PRETTY_FUNCTION__.3326__FRAME_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_finiinputHistoryIndexshowLuaOutlinefree@@GLIBC_2.2.5putchar@@GLIBC_2.2.5getTermSizeresetColorhash_ptropenArgFileshowTextOutlinestrncpy@@GLIBC_2.2.5buffer_replaceInLinestrncmp@@GLIBC_2.2.5_ITM_deregisterTMCloneTablestdout@@GLIBC_2.2.5clrscrmap_getbuffer_moveLineDownadd_bookmarkbuffer_closeputs@@GLIBC_2.2.5stdin@@GLIBC_2.2.5getFileTypeExtensionmap_put_uint64_from_uint64hash_uint64buffersdefaultIndentSizeresetClipboard_edataopenScratchBufferfclose@@GLIBC_2.2.5get_bookmarkprintLogocolors_putsstrlen@@GLIBC_2.2.5__stack_chk_fail@@GLIBC_2.4parseLineRangerewind@@GLIBC_2.2.5parseLineNumbergetInputxrealloc__assert_fail@@GLIBC_2.2.5getch_nonblockinginputHistorymap_get_from_uint64ioctl@@GLIBC_2.2.5clipboardLineshash_mixxmallocfgetc@@GLIBC_2.2.5buffer_deleteLinedefaultUseSpacesfputc@@GLIBC_2.2.5createMarkdownOutlineread@@GLIBC_2.2.5__libc_start_main@@GLIBC_2.2.5printPromptskipLineNumberbuffer_insertAfterLinecalloc@@GLIBC_2.2.5showCOutline__data_startmap_put__gmon_start__buf__growstrtol@@GLIBC_2.2.5__dso_handlememcpy@@GLIBC_2.14hash_bytesmap_put_from_uint64_IO_stdin_usedmap_growbuffer_openFileskipWhitespace__libc_csu_initmap_get_uint64malloc@@GLIBC_2.2.5fflush@@GLIBC_2.2.5editorState_editorprintFileInfoparseBookmarkbuffer_saveFilefseek@@GLIBC_2.2.5buffer_moveLineUpmap_get_uint64_from_uint64parsing_getLineshowMarkdownOutlinemap_testprintLineNumberbuffer_insertBeforeLinerealloc@@GLIBC_2.2.5tryQuitbuffer_appendToLine__bss_startconsole_promptcreateLuaOutlinemaintryExitgetchskipSymbolsmemmove@@GLIBC_2.2.5skipNumberscommand_executeCommandskipWordtcgetattr@@GLIBC_2.2.5buffer_findStringtcsetattr@@GLIBC_2.2.5fopen@@GLIBC_2.2.5printErrorperror@@GLIBC_2.2.5skipBookmarkvfprintf@@GLIBC_2.2.5createCOutlinecurrentBufferparsing_getLine_dynamicshowOutlineprintLineexit@@GLIBC_2.2.5forceExitfwrite@@GLIBC_2.2.5__TMC_END__skipTextcreateTextOutline_ITM_registerTMCloneTablebuffer_initEmptyBufferprintTextmap_put_uint64recreateOutlinefatalcolors_printf__cxa_finalize@@GLIBC_2.2.5xcallocbuffer_prependToLinebuffer_findStringInLinebuffer_replaceLine.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.got.plt.data.bss.comment# 1$Do(N00V{^ollPko@z		B		  00թ
L


(0(X0(4`N	Hv"ELF>@C@8@@@@hh ? ?--@--DDPtdDDQtdRtd--/lib64/ld-linux-x86-64.so.2GNUGNU/FT*4FSKώ& &')gUaJ,6 49	n`|R uR%a "}01Z@1libc.so.6fflushexitfopenstrncmpperrorstrncpyputs__stack_chk_failputcharreallocstdin__assert_failrewindstrtolfgetccallocstrlentcsetattrfseekreadstdoutfputcmemcpyfclosemallocioctlfwritetcgetattr__cxa_finalizememmove__libc_start_mainvfprintffreeGLIBC_2.14GLIBC_2.4GLIBC_2.2.5_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableii
 ui	*-- 1 1////#/$01&@1'0 0(00080@0H0P0	X0
`0h0p0
x00000000000000000 1!1"1%HHHtH5%@%h%h%h%h%h%h%h%hp%h`%h	P%h
@%h0%h %zh
%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@%
h0%h %h%h%hH%H%@fDUHTSHdH%(HD$1HcH=HHHH=H<@C@HHtHY5MH\HHtLH;pH%trvu1fu@HuHiHHHHqHpHȉu<@HH;pv@{H=1I^HHPTLvH
H=HH=H
H9tHHt	H=H5H)HHH?HHtHHtfD=u3UH=bHt
H=~Pc]f.ff.@gSfH`H=@dH%(HD$X1H\$D$)D$)D$ )D$0HD$@D$HA1Hwxs11Hڃd$fD$&h1Ht$Hxj1HھL$
6x:HL$XdH3%(D$u^H`[H=M$|H=Yf.H=:fH=_f.SfH`H=dH%(HD$X1H\$D$)D$)D$ )D$0HD$@D$H1HGxs111Hڃd$fD$&;1Ht$rHxm1HھL$
	x=HL$XdH3%(D$uaH`[f.H=|H=)f.H=
fH=\jf.H=1bfHTdH%(HD$1HjD$H H$H	HL$dH3%(uHff.fHH=H=HATU-SHLcH`dH%(HD$X1H耒D$<D$<HPHrH;pvH赆HPH$HrHp@,I9t+HH$HuDHD$8Ht|HPHrH;pwsHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHHDHHD$XdH3%(u1H`[]A\fPHޅHPHKHrlDSHH`dH%(HD$X1H@HHHPHrH;pHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHsHH|H="Hst*H=1WOHD$XdH3%(uMH`[ÐH=H}@<ԃfPH辄HPH+Hr,eDHH=5H<tHH9tH=1HqHvH=J1HW1ifH°HtHPHHHPHH9tl跙HHtHPHHHH=HwPH)HiHHHHFHBHHBHiH@KH
HAHHHAHHTH$fHHH°HtHPHHHPH=HH9tzHHtHPHHHH=HwPH)HiHHHHtHBHHBHtHfD1fkH
<HAHHHAHHTHDfHHtLHpHvBt&HH1DH9t#HHPuH=̴1MDH1]f.1?-HHH9rHH9t0<	vHÐH@HHH9w*HFʃ߃Av
QЀ	v_uHH9ufHff.HH9sH&tfHsHH9v vIHDDσ߃A@v-tAy@	vA-tt5Ay@?w;Is%DEtH9vEuHH9wHfA{AvD1ff.f1ff.fH9svfDHff.H9s+<'t<P߀?w$HHs<.t<$uHH@{<v@HE11ɺDUHHSH1H{HII9HAL)HtW1-|1H@ILJI9tL9v
Ar@	vޅ~
@EHcH[]r@
wH=p@Hc4H1[]HIs1H9vASIgHEHt1HxHE1HtHHHcM8w@H9r1ff.H9w?#uHff.AUAATIUSHH=)u{H= t	t
tgtwE~mfDADH=ƒ
!A9HuHcIčEA$H[]A\A]
uA$H[]A\A]øfUHSHH=puH=Y4Ã t	t
uVhHPHrH;pvH}HPHEHrHpH=ƒ
tHEHu@HEHt@H[]DH1[][AWAVAUATUHSH8H|$Ht$L$dH%(HD$(1D$$D$HtVHFD$H8	1D
HH9^v3<@	H	@	H5Ht$D$$HuL-ID1<fHt1HL$$HT$Մt̀C

C<w
tC<w


HcD$$	HL$1HtHQH5;H9b-HD$HHPHrH;pvH{HPHD$HrHpL$$1L$$<HD$Ht0HpHcT$H9
|0
tH
H;p
HpHuH=^1HD$HL$(dH3%(
H8[]A\A]A^A_@19<[A1HtHL$$HT$ՄGDnC+	3	F
HD$$1D|$)IDH5H9\$$%HD$<	uE1EtfDH5AcE9u@HL$LcJ|7HGHQI9:@	hH
IH=HL$D$$HQHHQD$$2f1L1HD$HHPHrH;pvHyHPHD$HrHpD$$@HcHD$1HtHH\$H9E1tH5 AKA9uHD$HHPHrH;pvHxHPHD$HrHcL$$HpH)H4H|HcHcD$$HT$	L$$HD$DyMc7L9xv3B<8@	@H5
HD$IHuHct$$E1HLf.HPHHH)L9L)<	tBH5
Hct$$HD$HIHuHHL9nLL)<	utE1H59
AA9u@1L1HD$:f.(E1DH5	 AA9uHD$HHPHrH;pvHRwHPHD$HrHcL$$HpH)H4H|HcHcD$$HT$D|$L$$HD$YHc7@H9Xv2<@	@H5+	&HD$HHuHct$$1HF@HPHHH)H9H)ڀ<	tBH5Hct$$HD$HHHuHHH9LH)ڀ<	uD|$EtE1H5AKE9u@1L1T}HD$9f.E&E1@H59 AE9u\$@	H
H=HL$LcD$$J|J41HtHQL)Hc;Ht$L$$HFDyMcHHFI9sZf.B<>@	)@
t!@
t@KH5toHt$IHtHFI9rE1t@H5B AA9uE1@H5!AA9uHt$HcL$$E1HF@HFHH)I9HL)<	tBH5HcL$$Ht$HIHuHHI9LL)<	utE1H5ACA9u@E1DH5Q AA9ufL11{Ht$f.T$$$@D$H511zHt$fDE1E@H5 A{E9ufDt+E1fH5y A;A9uHD$HtHPHrH;pwHp	L$$QHrHPHD$HrHp	L$$!DfD?fD\$E1H5AD9u~D$$HL$HcЀ|	H5D$$YfDH
YH=#HD$Ht	Hx0HD$13E1DH5	AA9u1HT$HHcL$$HH;J
	cH5D$$D$$H8qHHHD$Hq
H5o
eHD$HHPHrH;pHp
HD$D$$H`HxHD$t1<~HD$HHc|$$HPH9HOHH)H4Hc9Ht$Hc\$$HFHHFH9w9fH5Ht$HvHH;^h<	<uL11GwľHoHPHD$HrHt$Hc\$$HtEH9^D|$HH9^<	t7<t H5Ht$Hu1L11vHt$E1EtH5 AsE9uD$$\$dE1H5qA3A9uF61L15vD$$\$E1H5% AA9uhH
1H=HοHHT$HcL$$Ht?HBHH)H9HH)H
<	uH=SoHH9LH
uH=?Ht$HSHHcHVluHf@a[D6txHf8@t[DmdHf0[fHc[fDcpHf@p[DHh[fDff.@H
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
gHA0Hu[H
EH5ǠH=
ff.fH
)SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
HA0Hu[H
H57H=ff.fH
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1!H
GHA0Hu[H
'H5H=2mff.fH
	SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1 H
HA0Hu[H
]2H5H=ʟff.fHy@t9vt*uPufDsAWH)1AVAUATUSHH_0HtVL{MtMIHLcE1f.IHM9t7H;1HtHWL9uHuI$H[]A\A]A^A_1SH_8dH%(HD$1H9>#ILVIHLI9t|I9twHPD9A@<f}<ptA<suyIQ0Ht4HzHt+H1HHH929J9|H H	DHH H	H|$dH3<%(u`H[fD<ctHLLvلtH$HXH H	IAHtHD1ɻthAWIAVAUILATIU1SH1HHIH9vHHLALHAA,$HAl$I9,1HH+E1-t+1HH~8:]H[]A\A]A^A_fDHH9r1HME1HH9vHHLHD$HL$IHHHL$A!HL$H9xD)E)E1A,$Et$a@HH9f1HE1HH9HHHL$AHL$H9DEE1A,$Et$Am8A,$AAl$8#HHLHD$HL$IH9r9#uHHHDE$I EED$p@HH91HE1HH9vHHLHD$SHL$AHHHL$DEHL$DEIEt$H91HL+tv-HH91HvE1HH9vHHLAHH_E)Et$fHHLHD$HL$I^HH91H	E1HH9vHHL`AHHEEt$`DEu8Et$8#HHLHD$KLD$IL9rA8#uLH=ILH AAD$fDAWIAVEAUIATUHSHH8DD$dH%(HD$(1HHL$ H HD$8DD$AH)E1ۍE~WE1Ld+H$\AH@ƀ\H?C@uHI9uIG0Ht{HPHrH;pwrHR|$HpHLDhxD@Dp!fHD$ |$DhxDpD@H|$(dH3<%(DH8[]A\A]A^A_fHDD$DL$L\$cDD$DL$HPL\$IG0HrQ-t]#MICHpI;sv-LߺDD$DL$RcDD$DL$IH@HpIsAMtSICHpI;sv-LߺDD$DL$cDD$DL$IH@HpIsA_kAUATUSHLOAz|IRHtKHztD1E1AHHBHH9fHA݀9#t#IRHuAH[]A\A]DHqHy#HDH<#uAH9uAtpIcHJ|IHtHpLNI1L7LH'LAH AHLAH	HEMcL5-EMc"D1IcHHJt
HtHzHHHH AH[H	]AA\ALA]#E1"H
oH53H=vAuff.AWAVAUATUSHHL={HD$IGHHxD$E1M@NDl$1MtIYL1HLII@II9A;(uA{ IkICufDHHx tLHAx*LxtLxHALL)H=+MHcHIOH9€ALMLH=HcHHNH9LALDMH=McIINH9MH=HcHHOLH9ILLINH=VH9HLLHNH=1H9€LLLLHcȸHHOH9PH=L2H=ƒLH=LH=LH=oLH=mLH=;L~H=L`H=LBLH=ڑ$LH=IGL\$8HD$0AALAMLH=RHcHHNH9AALDMH=McIINH9zMH=HcHHOLH9BILLINH=H9HLLHNH=H9€L|LLLHcȸHHOH9LH=PLH=5|Lt$(L;t$0E1LLD1HILAM)H=HD$(ALAMHcHIOH9€ID$Ht&HPII9|$Mu$|$MuHH[]A\A]A^A_1ɋD$H Ht$LAAPH	HT$ HH[]A\A]A^A_L\$81IA(t7)u5tI9RuA;{t%II9r:f.I9r#|$t8D$HL$LAHt$HT$ AH H	+L%D$L|$Hl$ D$ff.fAUATUSHH=HGHHpHAH1۹EA:Hzv5t
AAHGHHpHH9
HHuĄAAIcDH9spNIcH4HHtHFHPA@H HAH	A	H=EEHGHdf.Au*H[]A\A]DEA"D1IcH4HHtHFHHA@H H[H	]AA\AA]kAuH
:H5|H=BfAWAVAUATUSH(LA{|ICE1H&Hx1AH-cfDH<AE1HtLOI1L@1ҹfL8HHuHx1L
E11ɺHI5IAtWD$LLAH ALT$HH	AUH!LH	HT$HHD$1LLT$LT$MEICHt!HPHH9AufDAuH([]A\A]A^A_1AUH LLH	HT$H(A[A]A\A]A^A_H
]H5H=rDH)xw3@HHcHsCff.@HBtiv/~uQHBHHtHxtH@@u#HBHHtHxtH@fDHBHHtHxtH@HBHHtHxtH@f.AWAVAAUAATIUHSHL:MtIA
A
{A1H=HHHH+}LIHHW8HHMl_<ADʄH=1^1H[]A\A]A^A_DAF<wAAHH[H@HHH9hH9tD$MtYIOHtPLL1DS8	DHH9uIGE1L=0EfL1AD9uAA\|$!KH\HHHCHH=Hp1~I$HHSHHHtH;pHHHP1I$HEHtH{HWH9r1@AFIŸ$ fAEAEA$tA^AE^E18HPHrH;pvHRHPI$HrHpCL5ILH! t€DHAHDȉHL)I9I$Hvz@MIGHpI9wsLDRII$H@HpIwAoI$HHPHrH;pvHRHPI$HrHpH=H5" 1Ef
:bDH91HtBH̋W8H+=HHH=1F[-h@LfDH=<1
[gD1fHSHrHH%gLH=1L
H!%tDHJHDщ@LHL)U@5fDeHHbPHI$HHHHS1HH=1I$HtHPHrHHH9p~D$A	.A#Xh If@AUPH8EJcHAxLH=Ƅ1E1LD$WLD$AHPHrH;pv#HLD$`OLD$HPI$HrHpC(ILH! t€DHAHDȉHL)L9I$HmqAu:Ar1Aq(ApAoAm
AiL5ЃIN_IGHpI;wv-LLD$pNLD$H
II$H@HpIIwE,L9(M<$E.MuAeAazAQqAPhAM_AIVAEMAADL-AiIMVIGHpI;wv-LLD$MLD$H
II$H@HpIIwE4L9t<M<$EuMuLǻ貾DML蝾LD$H5uH=e1ELD$LmZLD$H5?f.AV1E1AUATUSH0H
dH%(HD$(1HD$ HAHHxL-ЌL%Hl$ H\$
DHT$ ~HAHtHcH;Hw
AHtHz赽HD$ L1RUL1(VHH|$ 
HA膾H
HQHtHzqh1H\$(dH3%(u8H0[]A\A]A^Ð DHtˉ|$HzD$qHHdH%(HD$1H+HHH+5HP8HHt	HyHuuH=y17UHD$HDu
1H|$H|$~HtHPHtHHt:HT$dH3%(uaHDx<AЉt-H=1T{f8
uHx1H=1TNDHtT@HHtWHxtPS1HH;Xs(H<HtH褻HHHu[HxtH@[ff.AVHAUATUSӃux8HPHt	HRHu[]A\A]A^@HcH9rW@9P8-H=1mTHFL$HPHHtHruHc|:
~i1L-2H5褻HKH9ZHHHPJ"<@	@uL11UP@u[H=[~1S[
]A\A]A^FfDW@9P8[]1A\H=~A]A^sS@H=}1YS*H=}1=SE1 A躹H@DuA9|f.@H=z}1Rlf@[H=Y}]1A\A]A^R*NnAWAVAUAATIUSHH Hu7H
XHQHHHzuE1E1DDAA9uH
	HAHtHxD9|HDLcA߃~F}1ZfDpAxLcA1fDMcH
HQHȉE1f~1Ht,KHH;Js 9*AEHOHPD9~HtL9rv1DiH"Et|Dx8H[]A\A]A^A_f.D`Hc؉Ń~x1#*DHH@HtH9Xv1EuHh8H[]A\A]A^A_1{D94HmHP@Dy8b1A`H9HPLcA1AWIAVAUAATUSHdH%(H$1vHl$0HcH謶1H=zOHD$+HDu
H|$+11Dt$+IEHMt	ID$HA<
LD$,AH HD$AʼnD$CD$HD$,HD$6T$,E}MAH=(DLbRDJHH=EHD$PDL$HL$(T$$fAXZAuEt1H$dH3%(H[]A\A]A^A_HH=y1LIl$
DH=2yHl$0M1ҾHL%yÃjfDL1vMHÃt<H;Hx讴-@AWAVIAUAATUSHdH%(H$1^Ld$HcL|HL$EHM]I EFLD$H=AUveAXZAE~!H[H@HtA}HcH;PaRDoHcD<
<
|$;OMcE11IGD9~wH_HPHrH;pRHp-|$ID9HHrJ4&B4>@	c@
w$HrRDD9|9HHPHrH;pHpI |$D9fD1HtHPHH5u1H=wMKHD$HDu
11H|$|$HHtHXHڀ<
uHhT$H=AuIL*@_H$dH3%(H[]A\A]A^A_fEHcЀ|
DHDHHPHrH;pw~Hp^o@E1$HPHrH;pw5HpA HRDuA9*Hu¾H8@HPHrfDH@HPHrhfH?HPHr3H?HPHrH=uLd$I1ҾLHtŃfDH1^ILŃtTH\Hx螰Nf1LH=t111ɰfAWAVIAUATUSHdH%(H$1H\$ AHcH+AD$E~@E1D$HD$I D$HD$1DASHEGEHUH=HL$T$`AXZAuEH$dH3%(H[]A\A]A^A_fH=sH\$ G1ҾHL-sAă"DL1GHܾAătHDH=*s1FTJf.AVIAUATUSHdH%(H$1H\$AHcH譮HL$@HMEeI EFHD$H=DU_HcXZ~ HH@Ht}HcH;P1IcD<
&<
|$AL=H11A$?D9~kHHPHrH;pHp-|$HB/9~vHHrH4.4@	@
wIrM9|9H5HPHrH;p(HpH |$B/91HtHPHH5oH=q1腭H$dH3%(H[]A\A]A^fDHHPHrH;pw~Hp^@E1$HPHrH;pw5HpA HRDuA9Hu¾H;HPHrfDH:HPHrhfH:HPHrH:HPHr+AIcŀ|
EEH=)pH\$GD1ҾHxL%	pAŃDL1DHDAŃt1+HDH=o1B111蘫AWAVAUATUSHH
[HQHHzADoHc2oq1HWH
HQA9|1HtHBH9sHAIcH;jHH+5H1HH=oIAIB1<FfH
HQH)H;j<?l<p'<q<<QE
-f u
E|$HϩD7f.HHH9ot31HA9HHBHuHuko;j8B1H=cmBHHBAIcHt8H9hv2HH+5SH1HH=mIA1軭<H
[]A\A]A^A_EBA DHE1IcHHBsAIcsH1H=am1H=wѨH=wŨH=w蹨H=Am1H=w1ݨH=x1ϨHH=lHH+5_H1HI@1H=l*{AHTHBH=k1XA
-@ ֧u
AH=l
-衧 薧u
臧H=]l諧9i8t)H=dk1@H
HQH5*H=/k1@H
lHQn1ܨff.HHE1HHtrH=k1Z1H=kLHxw/PH
=tHcH@H=
lܦHDH@1Ht-HPօt#HLHHtHAH<
H=k1ʦH=k1輦HB@tlrD@u5*1H=klH5xEtGH="pH@vAHH=hkHH=k̥f.H=k败H;H=j蜥HFH=j脥HH=jdHmH=<jDHMhH=!j$H-HH=
jH
(H=iHr0H=j贤H^H=2j蔤H>H= jtH}AWAVAUATUHSHhdH%(H$X1H(Lg1ILE111LHH1LHIʰ
I轣LLHL$H=UIǹH=OlHH=iHH=lH6H=kHH=mH
LH))ՉуA<7HpHcH|$:&H
X8At*k~HH@Ht
HcH;P+A܉Ht$ 1D$ k,|$ H
cHtVH}tOH=HDKH}*HsHcHP1HtHBH9-*k1H$XdH3%(t+Hh[]A\A]A^A_D111ͮE1111HH11HI誮
I蝡1LHL$H=E1t1If.k1^@H=k脡1GDH=9qlH=Uq`1H52g6H5.g16H=[q.H=g"H5g16H=`qH=fH5g16H=mqؠH5f1u6H=~q蹠H5f1V6H=q蚠H=f莠H5f1+6H=qoH5f16H=qPH=fDH5f15H=q%1H5f5H=qH5f15H=qH5zf15H=qȟH=_f輟H5mf1Y5H=q蝟H=Rf葟1H5Yf.5H5`f15H=q_H=rSH5Nf14H=1r4H=]r(H=0fH5<f14H=jrH=rH=+fH5-f14H=rƞH=r躞H=r讞H5f1K4H=r菞H=s胞H=<swH5e14H=EsXH5e13H=Ns9H=zs-H5e13H=sH=sH5e13H=sH=sםH5e1t3H=s踝H=s謝H=
t蠝H=It蔝1H5[e13H5`e13H=_tbH5Qe12H=ptCH=>e7H5Je12H=utH5.e12H=tH= eH51e12H=tΜH=dœ1H5e_2H5e1L2H=}t萜H=t脜H5d1!2H=teH=tYH5d11H=t:H5d11H=t1H5d1H5d11H=tH5d11H=tʛH=d辛H5d1[1H=u蟛H=0u蓛H5Yd101H=AutH=euhH=2d\H55d10H=%d=H56d10H=KuH=dH5'd10H=XuH=uH5c10H=uȚH5c1e0H=u詚H=u蝚H5c1:0H=u~1H5v0H5c10H=	vLH=5v@H=Yv4H5[c1/H=ZvH=Pc	H5Nc1/H=gvH=;cޙH5Cc1{/H=3c这H=hv賙H=,w觙H5+c1D/H=5w舙H5 c1%/H=FwiH=
c]H5c1.H=Kw>H5b1.H=dwH=wH=wH=bH5b1.H=wܘH5b1y.H=w轘H=w豘H=2x襘H=nx虘H=x荘H=x聘H="yuH=^yiH=y]H=yQH5/b1-H=y2H=+z&H=_zH=zH=zH={H5a1-H={חH=8{˗H5a1h-H=A{謗H=a蠗H=Y{蔗H5a11-H=j{uH={iH={]H={Q1f.fD1LLE11LHH1LHΣ1E11LHHH=aHH=`HH=`HH=`HH=`HH=`HH=y`HH5``HtH5K`HەH@@@<1f.H=_HRH=_HH=EGD7G<1.$5D$D`D;d$
McIH=AHGJ(HH{11PHCHpH;swEHWJ*HsHH=HGJ(HHH9hHuHߺ#H=HH@HpHD$E11ɺLLDl$Dt$HD${1LHHHL)%EDLH=^1tHL$E1E1H=2LHwHH•HpH1Y"H5IH@HHFIEH~E1@JJ,HcHpHV1!H5HPH.Ht7HQHPHyt(1
HH9QvH5HH.HuKDHtIL9foC<i<a1I}t)I|HtH譒IDHI9]wI}葒1|$Hdzh8~(HH@Ht}HcH;Ps1}1ҾAHD$ @DȄu
J11H|$ ||$ HHHx1M9wIfDHCHpH;svHߺe HH@HpHsAIM9HuĸHt$ 
LzHHt$ Lch8HcII)IA_Hl$pHcHKDsE1HDH=gD?AAă[AmE~)HCH@HtHcH;PsA}1a1SIcDp<
<
DAJ,DkE11LFf.D9HHPHrH;p{Hp-IWM9IHHJH)B9	w
w$HDE9|
H%HPHrH;pHp^댸|$HX8~(HH@Ht{HcH;Ps1#{rH5=RH=Z1HD$ @DȄu
~11H|$ 谠|$ H=~H‰;1"C<a<fu-HQD$HP1HtBD$C<a1H|$<iL%1D$Dd$D$hqHDh8EM
HcL4fH=ɯHGJ0H
H{
E11OfDHCHpH;swEHWJ2HsLH=vHGJ0HE
IL9x7
HuHߺH=9HH@Hp1E1LL1LHHǚHL$ LHH=HD$ H=VXPp1C<n<p1LLiLHHkH9D$H\$pHl$ L-ZXL%oXJ@HJHH9vKL1$L1%H轜
HHAxHHHuAtHHH1HHHB0HHx1OfDD9a1HtQH=;W1
iHHB0HMHH9X?H[R8HD@DHHD9}1HtQH=V1肌H9]
H|HtHHDHHuC<nJ<p<eH|$1t1H@E1LL˜1LHHrHL)HHH:Lc1LHL`1Hy"M@ATHPH93HH9uDC<au<fu-H$D$HP1HtBD$C<a1H|$<iL1|$
HΫX8~(HH@Ht{HcH;Ps1{I1H5LH=LU"HpD$ @DȄu
911H|$ k|$ H	HHtHHHʀ<
uHhH=H‰15,1\$Dd$
D9DkD@H=٪8D9u^Al$fúVCD9u1Hh81+|$H^HJHHyDd$Dl$EAmDE9|.H=	7{^-9uA}vA1DHD`8cHcՍ]A|
uHcӉٍ]Hl$pLHcۉL$HM|pHcL$	DpH|$ ^"H/Hh
HPHrH;p[
Hfol$ HpHH*fot$0rfo|$@z fol$Pj0fot$`r@HHHH|H=@"H=l輇HŨ@<oDd$\$EH=HGHtHx	1HG@~,H[SHH;Ps1HDH@9~HHcH;P1U|$/
HD`8E~*HH@HtA|$HcH;Ps1Ht$ D1D$ W|$ Hug
SHBH}7H=xHD.H9]H|HtHHDHHuHHHx1DHH9XH1HtHrH=Q1
HƦHuHŦH=iQp11gH|$ l$HpD$\L$HHPHrH;pHfoD$ HpHHfoL$0JfoT$@R fo\$PZ0fod$`b@HHLdL% AL<	t< u"HD)< t<	t~{1RfHGHpH;wv(L$$L$I$HH8HGHpHw+H9~,L%I<$Hu1H=0P1%H=OOH=iCHLH@HtHx
11f.H	HHPHrH;pvHUHPHڤHrHpIHA9D$~x1McD+d$EuA1$@H=D2D9HqHP1HtHBxDL9uH=D1HGHtp1fHHHPHrH;pvHeHPHHrHpAIHD9d$fDHɣ@@@<1q9SHHPHrH;pHp dfDdfD
H=GLHH=LH4H@<PE1E1$HPHrH;pw5HpA HעRDuA9Hu¾HHPHrH}EHMcHH@HtH@I9 A}^HAHHPHrH;pHpH1HuHPHr9HHx薀1HtHPHH5>CH=E11pHHPHr
LH̏HzEBD0B<1'z8Džx"HXHcHJ1HtHQH91HHPHrkHH=J16H=H%1H=<JHHˠ@E@<1vDD9uH=HGHt
Hxto89؉ŃH=qH=eH‰)HH{~HcÀ|p
AE5,{1QH=C1Hl$p91ҾHjL%BÃ]L1H4Ãt-|p5H
LH5IH=I~fDDt$H=lA^A~)HGHt HcH;PsA~1H=9LD^'LcAl$E9}ߺVL9uHH@HtH@I9{8 H=jb1}~Hz8HJGB8HHHIH9vωz81=|$ܾADA9JHHPH-Hr菾]D耾AA|$1EYLcHD$ HpHt$ A>2&APHljL$L$HPHqHr1H=;G1|H=kH7s!11{9H>H@HH'H)HĩxHHtBHH=HFHHҜ@E@<1}Hr:H=G1Hl$p1ҾHu,HF@H1Ht߃H|pH|$ MHHUHPHrH;pHHfo|$ HpHH:foD$0BfoL$@J foT$PR0fo\$`Z@PH4	HPHHrHHhHx]1L%EMH9H=E1zHT|<u_
+zH<HHH9hH\H=?HHHHt	HQHuH9tL1Hz듿*yH=E1,ztHB8B8xA~x1}1HH@HpS\$H=~*HWHt!CHcH;JsǺ1詽H=bL!LcAl$9@ߺVl9uH1Ht$HH)HĩHcH;P;HHHHߙ1{iH|$Lr{iH|$LTH=C1xH@@@<1*v蟼o{iH|$軾1{iW{vY{^BAl$c1DHH=\B11{1AH=VB1H\$ HHD$ ҇H--BH1H谇~H|$ HHGHpH;wHGHPHWHt$ H=A1TwHt$ H=#1Hj1]B8	PH6HPHHr1:v111HD$ HHH
D4H5AH=AvH
DcH5AH=[vAWAVAUATUSH(Ht$dH%(HD$1~1HHcHJHD8	uHTBPv	tE1%1=IH@HPIWA	AatAi DE1DH=P91HD$D$H$fDHyHDu
JH<$L1|IHXHxvA?HHCHpH;sHsL<ILE1 fHAHL)H9	tHL)H9wG1f}H)HL)H9w{uHHL)H9vHAH@P!E1DH=81{
fDHI@PE1DAH=?1?tH5
tIGHu1Hp@IIGHIEIvDAATHI9GwL4I}KsH=]?suf.HߺHH@Hp>fDE1EE1E1(@IGHpI;ww AIwA	E9Mu׾LeIH@Hpƀ|$u2HH\$dH3%(u+H([]A\A]A^A_À|$tIorHD$1rmtfS11HHdH%(HD$1Ht$D$!
HC#rH\1HHHtQP8HD$dH3%(uH[PrHrHtHH=WqssHsHtHH=WAsWsHrHtHH=pWs'sSHHt_HGHH\H9HBH9}H1HH9rMHHqHt'H^rHtpHXH[묐HXHHHX[H
xWH5VH=%WHqH
YWH5VH=V)qH=|V-rCrH
$WH5yVH=Vp@SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H=VH$$HD$HD$ HD$1D$0-pH=HH[q
oWqH͌UׯQHHH H1H͌UׯQHHH H1H͌UׯQH1HHH H1@Ht;H%#"HH@HHH1HHH H1H9uÐH%#"DLGMtwHHGHtHHHuvH͌UׯQHII L1I9sxLH!LIH9u3HH!ILH9tHuHfD1DHGJHH
U%H5TH=TnH
eU'H5TH=Tnff.fUSHHHLWHHwHKH9sqLFIH͌UׯQLMHHH H1L!H9HL!H4I<1HHuHEILUHH0H[]fHHT$LUHuHT$KH9hH
RTMH5SH=Smf.HEH0H[]H
TFH5SH=SrmH
SNH5SH=SSmATfUHSH0dH%(HD$(1H)$HC޾)D$HH<H$H}H\$HD$H}t91IHH9]v'H4HtHELHH)H}H9]w
lH}lfo$foT$MUHD$(dH3%(u	H0[]A\@lff.ff.ff.ff.ff.ff.UfSH8dH%(HD$(1H)$)D$DH^HHAHHuHHHAH9u HuHD$(dH3%(u&H8[]H
RH5QH=Qmk8kH`RHcHDH="R1kfH=R1kfH=Q1jfH=Q1jfH=Q1jfH=Q1jfH=Q1jfH=Qdj@H=Q1jfSHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHH=HD$HD$ $D$0HD$)k1H=PiHD$dH3%(u	H[iff.fSHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HHH=HD$HD$ $D$0HD$IjH=P1h
hHD$dH3%(u	H[hSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$11H$HHH=ňHD$HD$ $D$0HD$bi1H=(OhHD$dH3%(u	H[gfDSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$17H$HHH=HD$HD$ $D$0HD$h1H=EN1gHD$dH3%(u	H[gSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1WH$HHH=HD$HD$ $D$0HD$g1H=eMQfHD$dH3%(u	H[#fHGHGGHG HG(G<G@GDGEHGHHG0fAWAVAUIH5MATAUHLSH(dH%(HD$1fLHle1A|.DDHH9uAtyMcCD5c<wiHMHcHAHt$DaL	eH|$AT$HcHL)@ALH:L\H9wD}ndHEE11THPHrH;pvHHPHEHrHpCL%LIxdHL9vHEHuHUHHtHBH<H$E1E1E1AHhd<t#A< utEtoHAAEd<uMMEMJ4111HH9!ELAEfD<	uEt$A`<
tE1<
QMtlIEHpI;uwcIuE|Mt0IFHpI;vw'$IvAE1$AfLNIH@Hp뿐L.IH@Hp냐EEMt	I~^bHAE1bD$D$$fDHbA<tcA
A
UA u
A%MIGHpI;wIwA	HEDEbA<uHbL$$9ȋL$+9E@HUE<1HtBE8蚙HL$dH3%(H([]A\A]A^A_f$MIGHpI;wvIwA
HEHHPHrH;pvHHPHEHrHpAL<E1fDAAHa< tHHauD@u5́DAŅtgE1*f.IGHpI;wwAIwA	E9~(Mu۾LIH@Hp@uD@u5XDAօtSE1&fDIGHpI;wwAIwA E9t(Mu۾LIH@Hp@ADHp`A<<
<
5D$MIGHpI;wIwA
HEHHPHrH;pvHHPHEHrHp1L<кIH@HPIWE$ALDD$DD$IH@Hp@D$MfL^IH@HpmfDfDE@@9L$vE@fDD$MMIGHpI;w@IwA
HEHGHPHrH;pvHHPHEHrHp1L<кIH@HPIT$A
HEHHPHrH;pvH]HPHEHrHpE1L$A[L&IH@HpfDAAAwAlf.E@E<1LIH@HpD$Mt;IGHpI;ww2IwA
HEHt:HPHrH;pw1HpL<L(IH@Hp봾H	HPHEHr\H
DgH5DH=D\9LEE~X@HtI1A4AL@Dž@@u9LHI9u}9ºDˆEDI}[JEEATUHSH?HtH[HEHE10H9Xv'H<HtHh[HEHHHuHE0HtCHx1
HH9XvrL$[J<HtH[HE0JHuϋEt't"H}HtHZHE[]A\H}HHtHZHEHHxZHE0fAWAVAUIH5lBATUHSHH?dH%(HD$1HtHL1[ILHPHrH;pvHHPHEHrHpALLHpZHPH9vHEHuH1һA|.DHH9utsLcCD5c<wcH*BHcHAHDEzLYH<$SHcHL)ALH:LH9wD}VYHUHHzE1JN,H;Hx01<@@	}EL	YHUJ*HtJHH9Xv@<@
uE@uL
xYHUJ*HuHE<LXHD$dH3%(H[]A\A]A^A_L(YHUdE1L AXEDuPyA9|fL
XL
XHUDIL9rFDL
XHUUYIWAAAAEWAWAVIAUIATUSHu_8MIFHcD$L<I}HHG)H4HGH9rTHOHcHcHH\J<;H^XLLHXEe8AD$AE<H[]A\A]A^A_HL$aHL$HIE1HyfA1E1MAWFAVIAUIATUSHHcAHMIFI}HcAL<HHGh)H4HGH9H_HcHJ<;HHeWLLHWEe8DAE<H[]A\A]A^A_@Dg8Et_IcHMbI}1E1Ho1)HH9tHL$%HL$HIET@1AAWFAVAUIATUHSHvbHELcIN| I?HGHHGMtnMuJ40H9wr@HwLHLUE<]8H[]A\A]A^A__8ufIHEJ| HGI4HE1AWFAVIHAUAATUSHIFIcHLd(I$I<$HL{HHwHGLH9r?HGHJ8HWHL5TH{TAF<En8H[]A\A]A^A_@I$IFH|(En8EV뾐E1HuI}@L1jff.AUFIATUHSHvFHcL$HELH8HtHSSHELHL(]8E<H[]A\A]Ë_8uH[]A\A]ff.AWFAVAAUMATIUSH(1)؃MtAm)McID$INL8I9Ht~HwAA)ȅ|LcLH9wHwHcIcHtD
HHSID$Hc1J|8MtIULSEt$8AD$<H([]A\A]A^A_DALcALօ8tHHGDw8E H([]A\A]A^A_@L$LT$DD$LL$LL$LT$L$DD$IID$J|8HwLff.@Fv0HOHcƃHHTHDLHH
LG<w8@w8uÍFv(HWHcHH2HT2LH2H1LG<G8Ëw8tF@FAVAUATUSHLcHCN,MuJ<0HHHHI9tkHHzPHCJ<0J4(HHHPL)H
RHCHhC<H@I9Gk8[]A\A]A^f.Ht&HzbPHCHtiHHHHHHHo8&HML1lDJ4(Z1PfH%Hff.@AWAVAUATUSH|$t$H\$HcD$HsLdMMt$Mt{HcD<t2@A@
@1E1A	E9tJHI9tAIcE<A42D8t^En@w7t3 A9tCE1ɸEuA9uHL$T$Q8[]A\A]A^A_fn@w̄tȃ A9uEADAG8D$
fAWEAVIAUAATUHSDHD$HHL$D$%EgDD$DLDHu!ED9wAHD[]A\A]A^A_ÐHT$De8AWIAVIAUAATL%kUH-kSL)HgMHt1fDLLDAHH9uH[]A\A]A^A_ff.HHtcsetattr()tcsetattr ICANONread()tcsetattr ~ICANONEdimCoder (1902)Press 'h' for help.-Scratch-Opening '%s'

Opening '-Scratch-' BufferFile doesn't exist... Creating it.

You cannot close the '-Scratch-' buffer when other buffers are open.There are unsaved changes. Use 'E' or 'Q' to close without changes.There are unsaved changes in at least one of the open buffers. Use 'E' or 'Q' to close without changes.M)M)M)M)M)M)M)M)MMM)MMsM!_(_H_h___!__xvpvhv`vxv`vxvXvshowLuaOutlineshowTextOutlineshowCOutlineshowMarkdownOutlinecreateLuaOutlinecreateTextOutlinecreateMarkdownOutline        ^X ^Dsrc/parsing.cifelseswitchwhiledocasefor&&||+^///*functioncurrentBuffer->fileType == FT_MARKDOWNcurrentBuffer->fileType == FT_CcurrentBuffer->fileType == FT_TEXTcurrentBuffer->fileType == FT_LUA
<%d: %.*s*|%d> 
<%d: %.*s|%d> 
<%d: new file*|%d> %shelp info Enter a line number: %c%4d %5d Enter the string to replace: Replace with?: No occurance of '%.*s' found
%5s %.*s- Enter the string to find: enter the string to find: %5s %.*s- 

<%d: %s|preview> 
Previewing '%s'
 * 'p' to show previous lines--^-^-^-^-^--
--v-v-v-v-v--
File information for '%.*s'
FileType: TextMarkdownC SourceC++ SourceC/C++ HeaderGophermapLua SourceNumber of Lines: %d
Line Endings: LF (UNIX)CR (Commodore, Early Mac)CRLF (DOS, Windows, CP/M)NEL (Unicode)LS and PS (Unicode)Indentation: %d, tabsOutline:help
Basic
 a (line/range)				range. i (line/range) A (line) I (line) x (line/range)				to the clipboard). m (line/range) M (line/range)				one. j (line/range)				j$ je (range) jn				Equivalent to 'j +1'. jp				Equivalent to 'j -1'.
Find and Replace
 f (line/range) (string) ff (string)				to 'f #f (string)'. fa (line/range) (string)				found on. ffa (string) F (line) (string) r (line) R (line/range) (string) Rf (string) Ra (line/range) (string) Rfa (line/range) (string)
Copy and Paste
 c (line/range) C (string)				a newline included. k vi (line/range)				given line number/range. va (line/range)
Print and Preview
 P (line) p (line/range) clear version
Files and Buffers
 b b (buffer)				number. bn bp				beginning. s				Save the current buffer. o				if it doesn't exist. e E q Q info d (range) (string)				name. w (string)				the given name. g				List out all bookmarks.
Default Bookmarks
 #p(number)				lines. #f #s				currently in. #c
Relative Lines

File Settings
 indent_size indent_spaces				Default: false. line_ending1902setcrlfdoscpmwindowsunixcrold_macdefaulttruefalseSet bookmark '%.*s' to %d:%d
*%3d: %.*s %d:%d%4d: %.*s %d:%dEnter a filename: Saving '%s'
Saving '%.*s'%4s ^- %5s That buffer doesn't exist.
Enter a buffer number: *%3d: new file%4d: new file*%3d: %.*s%4d: %.*ssrc/editor.cstr[strLength] == '\0'Enter file to open: str[strLength - 1] == '\0'Opening a new file.FileType: %d
Unknown command
------tuuuuuuuuuuuuuuuuuuuuuuuuuuuuutuuutuuutuuuxtuuotftuuuuuuuuuuuuuuu]tuuuTtuussuuusussssuusuurhȍ(HЋΟ(q(Ҡܠ((ǧ(((((7@(ܬ((((((((((((ޤ>4m(|`rxΦ(|editorState_openNewFileeditorState_openAnotherFileThat line number exceeds the bounds of the file.
 * 'q' or Ctrl-X to stop previewing * 'Q' to exit the whole program * Enter/'n' to show the next lines * 'j' start showing lines from given line number (TODO) * 'f' find first occurance of string in file and jump there (TODO)Use Ctrl-D to denote end of inputUse Ctrl-X to cancel the current command/operation.			Insert a line after the given line number or			Insert a line before the given line number or			Appends characters to the given line number.			Prepends characters to the given line number.			Delete the given line number or range (copies			Move the given line number or range up by one.			Move the given line number or range down by			Set's current line to given line number. Use to set last line as current line.			Set's current line to end of given line range.				Set's the current line to the next line.				Set's the current line to the previous line.	Finds the first occurance of the string in the				given line range and prints the line it's on.			Finds the first occurance of the string in the				file and prints the line it's on. Equivalent	Finds all occurances of the string in the				given line range and prints the lines it's			Finds all occurances of the string in the				file and prints the lines it's found on.				Equivalent to 'fa #f (string)'.		Finds the first occurance of the string in the				given line number and prints the line showing				where the occurance is located.			Replace a line with a new line.	Replace the first occurance of the given string				in the given line range with characters.			Replace the first occurange of the given string				in the file with characters.	Replaces all occurances of the given string				within the given line range with characters.				within the file with characters.
 Add 'i' at the end of all of these commands for the insensitive versions ('fi', 'ffi', 'fai', 'ffai', 'Ri', 'Rfi', 'Rai', 'Rfai').			Copy the line(s) to the internal clipboard.			Put the given string into the clipboard with				Print what's currently in the clipboard.		Paste the lines in the clipboard before the		Paste the lines in the clipboard after the			Preview the file, optionally starting at the				given line number. Enters preview mode.			Preview the given line or range of lines,				including the line before and after.				Clear the screen. May also use CTRL-L.			The current version of EdimCoder.				List all currently open buffers.			Switch the current buffer to the given buffer				Switch the current buffer to the next buffer,				wrapping around when it hits the end.				Switch the current buffer to the previous				buffer, wrapping around when it hits the				Open a file in a new buffer. Creates the file				Exit the current buffer. Only allowed when the				current buffer contains no new changes.				Exit the current buffer (without save).				Quit, closing all buffers. Only allowed when				none of the buffers contain new changes.				Quit, closing all buffers (without save).
File Info, Outlines, and Bookmarks
				Gives back information on the file, including				number of lines, filename, number of				characters, filetype, etc.		Create a bookmark with the given line range and			Print out the line range of the bookmark with
 Any command that accepts a line number or line range - denoted by
 '(range)' - can also accept a bookmark. Bookmarks are prefixed with
 '#'. Example: 'P #text'. You can also use bookmarks as the start or end of a line range: 'p #text:#text3'. EdimCoder provides some bookmarks by default:
			Represents a page of a file. Each page is 15				Represents the line range of the whole file.				Represents the line range of the bookmark that				the current line overlaps with. Useful for				seeing in which section of the file you are				Represents the current line. Adding '+' or '-' with a number afterward will be relative to the number/bookmark given before, or if omitted, the current line. 'p +5' will print the line 5 lines after the current line. 'p 3+5' will print the line 5 lines after line 3. 'p #test + 2' will print the bookmark range #test shifted up 2 lines. 'p #test:#test+3' will print the range starting at the start of the #test bookmark and ending 3 lines after the start of the same bookmark. A shorthand for this is called Relative Range Ends: 'p 5+:3' will print from line 5 to 3 lines after that - the end of the range is relative to the start. 'p #test+:3' is equivalent to 'p #test:#test+3'. There are two file settings that can be changed and affect the display and saving of a file. The two include indentation size and whether spaces are used for indentation or not. Use the 'set' command to set a value for these. The syntax of the set command is 'set property_name value'. The properties available are given below, along with their valid values:
			Size of indentation, default: 4				Accepts any number, or 'default'.			Whether spaces are used instead of tabs.				Accepts 'true', 'false', or 'default'.			The line ending type used by the file.				Default: current platform.				Accepts 'crlf', 'lf', or 'cr'. Also accepts				'dos', 'windows', 'cpm', 'old_mac', and 'unix'.Unimplemented prompting for name. Please add a name after the line range.No occurance of '%.*s' was found in line %d
File doesn't exist... Creating it.
Press Ctrl-D on new line to denote End Of Input
buf_len(currentBuffer->lines) == 0xcalloc failedxrealloc failedxmalloc failedsrc/stretchybuffer.cnew_len <= new_capFATAL: buf_cap(buf) <= (SIZE_MAX - 1) / 2new_cap <= (SIZE_MAX - offsetof(BufHdr, buf)) / elem_sizebuf__growsrc/hashmap.cIS_POW2(map->cap)key2*map->len < map->capval == (void *)(i+1)map_testmap_put_uint64_from_uint64map_get_uint64_from_uint64ERROR: Wrong Color - UnixЭrbsrc/buffer.cwbbuffer->openedFilename[buf_len(buffer->openedFilename) - 1] == '\0'bbbbbbbbbbbbbz2222222ۿ222222buffer_openFile;Dg x0H:P`@P0  h@!`"@###@$0$D%X %l0%P%%&&''P(78P909Pp:p;P;;0=@` CDKd	M	PO
O,
`P@
X
0Z
P[
[^``bLf`h
l`
0p
s
0\P$@\Ч`@L`pp(< Pth0| ``,tpzRxx/D$4FJw?;*3$" \8&AHp
AH D&AHp
AKPLSD I
A DW4KBAF O
 AABC $AGp
AB$HDf
FT
L
EpD
Ghc\`AIK0<D84(<P[,d AG
AHc
AL  L BED A(D0
(A ABBAS
(F ABBA4h!ADD 
AAFD
CAAHD"@BBB B(A0D8Dp
8A0A(B BBBE81Sg
FZ
FV
JQ
GZ
FQG1H[
A2H[
A2H[
A,2H[
ALh3MH`3BGE B(A0A8D@c
8A0A(B BBBA 3HAD 
AGH5BEB H(D0C8LP{
8A0A(B BBBGHh8HBEE E(A0D8Gp
8A0A(B BBBCLhl:BBA A(D0j
(A ABBF
(L DHKHd;BBB B(A0A8D
8A0A(B BBBAm
8A0A(B BBBEL dBBBA A(D0 
(A ABBHx
(L DHHE`pCBBB B(A0A8D`L
8A0A(B BBBA\
8G0G(B BBBE0EAlEHFvBGE E(D0D8FP
8C0A(B BBBF@HLNOBGB A(A0D`
0A(A BBBBXON 
F \PdT}
APApP9BIB A(A0e
(A BBBE
(F BBBKV
(C DIBH
(H DBBEd@tR]BBB E(D0A8M@N
8A0A(B BBBKf
8A0A(B BBBH\lT,BEB E(A0A8GRWAn
8A0A(B BBBD\	<VGBBE E(A0A8GzdIA
8A0A(B BBBCXh	,ZvBBE B(A0C8G{KYAm
8A0A(B BBBCT	P[BEB A(C0G|eIAj
0A(A BBBGH
^BBB B(A0A8D@
8F0A(B BBBE h
|bD?
M@
HL
8e.BBB B(A0D8G4
8A0A(B BBBF$zRx,

H̒BBB B(A0C8F`d
8A0A(B BBBA zRx`(f
$pAH `
AA@)DN
AT)DN
Ah)DN
A |A_
H`
A<XAJ\p ,K hMlOL
A4$=AAD0
AAC\
AAA0
,BED IP
 AABA<
ؚP
Ԛd
Кx
̚
Ț
Ě,
AJDPr
AAA
@
̛ țAJ
AA 0AJ
AA T@AJ
AA xAJ
AA$AJ
AApWH	BBB L(G0G8D`
8A0A(B BBBC,$BAD 
ABDHT0BBB L(A0D8DP
8A0A(B BBBAHԬBBE E(A0A8FP
8A0A(B BBBDHx-BEE E(A0A8DP
8A0A(B BBBEH8\BEB E(A0D8F@T
8A0A(B BBBIHЮBEH E(A0A8D@w
8A0A(B BBBEHrBHA D(F0D
(A ABBAK(A ABB`aBEE E(D0A8F`
8A0A(B BBBFy
8A0A(B BBBEİ@<<AEBB A(C0
(A BBBKD,BDE B(A0A8
0A(B BBBCH0}BEE E(A0D8GHD
8D0A(B BBBBD|8eFEE E(H0H8G@n8A0A(B BBB`
x--o0
{0			oooolo-6FVfv&6FVfv& 1GCC: (GNU) 8.2.1 20180831GCC: (GNU) 8.2.1 201811270l		
	 
0xH---/0101
`Iv&
QO6
W]C
`Y,\
[Gr
_v
`a
0
0

:+2=
?
@R
hH1w-
-
<
D
p*`
CP\8u

`&P	?H2ao---0
pP1
p3
PHA
PS)
4
Р=
 I
2Yn
 a 01 1
@
`
о<
9H
@1*
0?
@=Z
fX1n`1
PTd(1
K
P4
 x


062
B
!@K
)To
&h1
p1

)
Ax1
 <4Fe
q
P[

P21
p 
 1
K%
9H
Q
	a
@8p
e

p
0i
4H{1
0
/		
@	
`6	
 F	
1Z	
c	
s	
-		
@c	
	(1	
0S	
F	
P	
@	
&	
 


0(

l.?

H
_

}q









=
1

 
4M
T9(:
`DX(1d
m
D 
W
e

H
+
p
 "z	
P)
&
`>
rinit.ceditor.ccommandInputCallbackcheckLineNumbercommand_jumpcommand_replaceAllStringcommand_replaceStringcommand_findAllStringcommand_findStringmultiLineEditor.constprop.7__PRETTY_FUNCTION__.3572__PRETTY_FUNCTION__.3590command_executeCommand.cold.9multiLineEditor.constprop.7.cold.10main.ccrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7287__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryparsing.cskipNumbers.part.1skipBookmark.part.4parseLineNumber.part.3__PRETTY_FUNCTION__.3706__PRETTY_FUNCTION__.3716__PRETTY_FUNCTION__.3726__PRETTY_FUNCTION__.3736__PRETTY_FUNCTION__.3605__PRETTY_FUNCTION__.3667__PRETTY_FUNCTION__.3683stretchybuffer.c__PRETTY_FUNCTION__.3298hashmap.c__PRETTY_FUNCTION__.3317__PRETTY_FUNCTION__.3334__PRETTY_FUNCTION__.3376colors.c__PRETTY_FUNCTION__.3326__FRAME_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_finiinputHistoryIndexshowLuaOutlinefree@@GLIBC_2.2.5putchar@@GLIBC_2.2.5getTermSizeresetColorhash_ptropenArgFileshowTextOutlinestrncpy@@GLIBC_2.2.5buffer_replaceInLinestrncmp@@GLIBC_2.2.5_ITM_deregisterTMCloneTablestdout@@GLIBC_2.2.5clrscrmap_getbuffer_moveLineDownadd_bookmarkbuffer_closeputs@@GLIBC_2.2.5stdin@@GLIBC_2.2.5getFileTypeExtensionmap_put_uint64_from_uint64hash_uint64buffersdefaultIndentSizeresetClipboard_edataopenScratchBufferfclose@@GLIBC_2.2.5get_bookmarkprintLogocolors_putsstrlen@@GLIBC_2.2.5__stack_chk_fail@@GLIBC_2.4parseLineRangerewind@@GLIBC_2.2.5parseLineNumbergetInputxrealloc__assert_fail@@GLIBC_2.2.5getch_nonblockinginputHistorymap_get_from_uint64ioctl@@GLIBC_2.2.5clipboardLineshash_mixxmallocfgetc@@GLIBC_2.2.5buffer_deleteLinedefaultUseSpacesfputc@@GLIBC_2.2.5createMarkdownOutlineread@@GLIBC_2.2.5__libc_start_main@@GLIBC_2.2.5printPromptskipLineNumberbuffer_insertAfterLinecalloc@@GLIBC_2.2.5showCOutline__data_startmap_put__gmon_start__buf__growstrtol@@GLIBC_2.2.5__dso_handlememcpy@@GLIBC_2.14hash_bytesmap_put_from_uint64_IO_stdin_usedmap_growbuffer_openFileskipWhitespace__libc_csu_initmap_get_uint64malloc@@GLIBC_2.2.5fflush@@GLIBC_2.2.5editorState_editorprintFileInfoparseBookmarkbuffer_saveFilefseek@@GLIBC_2.2.5buffer_moveLineUpmap_get_uint64_from_uint64parsing_getLineshowMarkdownOutlinemap_testprintLineNumberbuffer_insertBeforeLinerealloc@@GLIBC_2.2.5tryQuitbuffer_appendToLine__bss_startconsole_promptcreateLuaOutlinemaintryExitgetchskipSymbolsmemmove@@GLIBC_2.2.5skipNumberscommand_executeCommandskipWordtcgetattr@@GLIBC_2.2.5buffer_findStringtcsetattr@@GLIBC_2.2.5fopen@@GLIBC_2.2.5printErrorperror@@GLIBC_2.2.5skipBookmarkvfprintf@@GLIBC_2.2.5createCOutlinecurrentBufferparsing_getLine_dynamicshowOutlineprintLineexit@@GLIBC_2.2.5forceExitfwrite@@GLIBC_2.2.5__TMC_END__skipTextcreateTextOutline_ITM_registerTMCloneTablebuffer_initEmptyBufferprintTextmap_put_uint64recreateOutlinefatalcolors_printf__cxa_finalize@@GLIBC_2.2.5xcallocbuffer_prependToLinebuffer_findStringInLinebuffer_replaceLine.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.got.plt.data.bss.comment# 1$Do(N00V{^ollPko@z		B		  00Exx
)DHH---/(0 1!01(!X0(!4`!M	06QBELF>@@:@8@#"@@@@@hh@@  @@@@@@DDAA xAA@@DDPtd@@TTQtdRtdAA/usr/lib64/ld-linux-x86-64.so.2GNU GNU|ki&l*\ˣ<$ $%)gUa9, 4x]Okq( dA%7 l !AI0!Alibc.so.6fflushexitfopenstrncmpperrorstrncpyputsputcharreallocstdin__assert_failrewindstrtolfgetccallocstrlentcsetattrfseekreadstdoutfputcmemcpyfclosemallocioctlfwritetcgetattrmemmove__libc_start_mainvfprintffreeGLIBC_2.14GLIBC_2.2.5_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableui	AAAA" !A$0!A% A  A( A0 A8 A@ AH AP A	X A
` Ah Ap A
x A A A A A A A A A A A A A A A A A !A!!A#HHHtH5%@%h%h%h%h%h%h%h%hp%h`%h	P%h
@%h0%h %zh
%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@%
h0%h %h%hH%H%@fDU1HTSHHT$oE@HHHW@4H\@@HHtHX5]HlHHtLH;pH5trvu1fu@HuH虇
H
HHHqHpHȉ
u<@HH;pv@{@7
f1I^HHPTI@H@H@@DH=)
H"
H9tHHt	H=H5H)HHH?HHtHHtfD=uUH~]Dff.@f.@HXH=ufD$)D$)D$ )D$0HD$@D$H1Ht$x_11d$HT$fD$&xv1Ht$HxP1HT$L$
zxD$HX@@~@(@nD$HX@!@V@@F{HXH=fD$)D$)D$ )D$0HD$@D$H1Ht$x_111d$HT$fD$&xy1Ht$HxS1HT$L$
x!D$HX@@(@~D$HX@!@f@@Vx:@1@HT1HT$&D$
H HD$HH	ff.fHE@W@H@ATAt@U-Sl@HPH0D$<D$<HPHrH;pvH赃HPH$HrHp@,I9t+HH$HuDH	D$8HtlHPHrH;pwcHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHHDH	HP[]A\fPHHPH;	Hr|f.SHHPHH	HHPHrH;pHfo$HpHHfoL$JfoT$ R fo\$0Z0fod$@b@HHsHH|H=Hstu@1NHP[@H@<&HP[þPHHPH;Hr<f.HH=EH<tHH9t@1H鳉Hv@1H陉f1yfH°HtHPHHHPHH9tl臕HHtHPHHHH=HwPH)HiHHHHVHBHHBHiH@H
,HAHHHAHHTH4fHHH°HtHPHHHPH=HH9tz赔HHtHPHHHH=HwPH)HiHHHHHBHHBHtHfD1	f;H
LHAHHHAHHTHTfH!HtLHpHvBt&HH1DH9t#HHPuX@1鏇H1mf.1?-HHH9rHH9t0<	vHÐH@HHH9w*HFʃ߃Av
QЀ	v_uHH9ufHff.HH9sH&tfHsHH9v vIHDDσ߃A@v-tAy@	vA-tt5Ay@?w;Is%DEtH9vEuHH9wHfA{AvD1ff.f1ff.fH9svfDHff.H9s+<'t<P߀?w$HHs<.t<$uHH@{<v@HE11ɺDUHHSH1H{HII9t{HAL)HtS1-tt1H@ILJI9tL9v
Ar@	vޅ~
@EHcH[]r@
w@$@@1[]HIs1H9vASIoHEHt1HxHE1HtHHHcM8H9r1ff.H9w?#uHff.AUAATIUSHH=Iu{H=9 t	t
tgtwE~mfDADH=ƒ
!A9HuHcIčEA$H[]A\A]
uA$H[]A\A]øfUHSHH=uH=yTÃ t	t
uVhHPHrH;pvHzHPHEHrHpH=ƒ
tHEHu@HEHt@H[]DH1[][AWAVAUATAUHSH8H|$Ht$D$,D$HtWHFD$H	1DHH9^v3<@	(	@H572Ht$D$,HuI@1<NHt1HL$,HT$Մt̀+

C<w
tC<w


HcD$,	HL$1HtHQH5sH9ZeHD$HgHPHrH;pvHyHPHD$HrHpL$,1L$,<HD$Ht0HpLct$L9
|0
tH
H;p
HpHu@1FHD$H8[]A\A]A^A_f1<[A1HtHL$,HT$Մ_DnC;	3
F
H2D$,1E+cH5)H9\$,=HD$<	uE1EtfDH5AE9u@HL$LcJ|7HWHQI9J@	h@H
eHL$D$,HQHHQD$,L@1Z@1}HD$HHPHrH;pvHvHPHD$HrHpD$,f.HcHD$1HtHHAH9E1t(fH5 AA9uHD$HHPHrH;pvH]vHPHD$HrHcL$,HpH)H4H|HcHcD$,HT$	L$,HD$DyMc7L9xv3B<8@	@H5HD$IHuHct$,E1HLf.HPHHH)L9L)<	tBH5Hct$,HD$HIHuHHL9vLL)<	utE1H5yA;A9u@1Z@1{HD$8(E1DH5) AA9uHD$HHPHrH;pvHtHPHD$HrHcL$,HpEH)H4H|Hc$HcD$,HT$L$,HD$YHc9fDH9Xv2<@	@H5kfHD$HHuHct$,1HF@HPHHH)H9
H)ڀ<	tBH5!Hct$,HD$HHHuHHH9LH)ڀ<	uEEtE1f.H5AE9u@1Z@1zHD$7E&E1@H5y A;E9uA@	@H
<HL$LcD$,J|J41HtHQL)Hc~Ht$L$,HFDyMcHHFI9sMDB<>@	!@
t!@
t@CH5Ht$IHt	HFI9rE1t@H5 ATA9uE1@H5qA3A9uHt$HcL$,E1HF@HFHH)I9HL)<	tBH5!HcL$,Ht$HIHuHHI9LL)<	utE1H5AA9u@E1DH5 AcA9ufZ@11wHt$T$,<@D$ Z@11wHt$E1E@H5	 AE9ufDt+E1fH5 AA9uHD$HtHPHrH;pwHp	L$,iHKpHPHD$HrHp	L$,9DfDOfDA܅E1fH5AA9u|D$,HL$HcЀ|	H5D$,WfD@H
uHD$Ht	HxHD$H81[]A\A]A^A_f0E1DH5IAA9u1HT$HHcL$,HH;J
	kH5D$,D$,HnHHHD$Hq
H5
HD$HHPHrH;pHp
HD$D$,HhHxlHD$|1<~'HD$HHc|$,HPH9HOHH)H4HcyHt$Hc\$,HFHHFH9w9fH5Ht$HHH;^q<	<uþZ@11t¾HQmHPHD$HrHt$Hc\$,HtCH9^EHH9^<	t9<t H5/'Ht$Hu1Z@11xsHt$E1EtfH5 AE9uD$,A܅KE1H5AkA9uF1Z@1rD$,A܅E1H5\ AA9u_H
=1ۿ@HοHHT$HcL$,Ht=HBHH)H9HH)H
<	u@HH9Lɾ@H
|Ht$f?SH$0@f.csHf@s[DvvuHf@e[DVAtxHfD@t[6AmdHfD[Hc[fDAcpHfD@p[Hh[fDluHf8@a[DjsHf0[fHhtml[H
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1#H
7HA0Hu[ù`@r@H@cH
	SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1#H
HA0Hu[ùP@~@p@H
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
7HA0Hu[ù@@@@cH
	SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1"H
HA0Hu[ù0@@@H
SyuVHA0HtKHxtD1fDHH9Xv0H[HЀxtx1!H
7HA0Hu[ù @@@cH	xw;@$Ő@f[SKAWH)1AVAUATUSHH_0HtVL{MtMIHLcE1f.IHM9t7H;1HtHWL9uHHuI$H[]A\A]A^A_1SH_8H9>#ILVIHLaI9t|I9twHPD9A@<f~q<ptE<sumIQ0Ht8HzHt/H1HHH929J9|H H	H[ÐHHH H	[fD<ctHL$LLلtHD$HXH H	IAHtHD1ɻ|uDAWIAVAUILATIU1SH1HHIH9vHHLLHAqA,$HAl$I9,1HH?+E1-t+1HH8:]H[]A\A]A^A_fDHH9r1HE1HH9vHHLHD$?HL$IHHHL$AHL$H9xD)E)E1A,$Et$a@HH9f1HqE1HH9HHHL$A\HL$H9DEE1A,$Et$Am8A,$AAl$8#HHLHD$HL$IH9r9#uHHHDE$I EED$p@HH91HE1HH9vHHLHD$HL$AHHHL$DxEHL$DEIEt$H91HL>+tv-HH91HE1HH9vHHLmAHHE)Et$fHHLHD$=HL$I^HH91HE1HH9vHHLAHHEEt$`DEu8Et$8#HHLHD$kLD$IL9rA8#uLHILH AAD$fDAWHIAVH EAUIATUHSHH8HL$(DD$HD$hDD$AH)E1ۍE~WE1Ld+H$\AH@ƀ\H?C@uHI9uIG0HtkHPHrH;pwbHR|$HpHLDhxD@Dp!fHD$(|$DhxDpD@H8D[]A\A]A^A_fDHDD$DL$L\$`DD$DL$HPL\$IG0Hra-t]3MICHpI;sv-LߺDD$DL$B`DD$DL$IH@HpIsAMtSICHpI;sv-LߺDD$DL$_DD$DL$IH@HpIsA_kff.fAUATUSHLAz|IRHtKHztD1E1AHHBHH9`HA݀9#t#IRHuAH[]A\A]DHqHy#HDH<#uAH9uAtpIcHJ|IHtHpLNI1LLHLAH AHLAH	HEMcL-EMc"D1IcHHJt
HtHzHHHH AH[H	]AA\ALA]CE1"@@H@Au@AWAVAUATUSHXL=[HD$IGHHx|D$E1M@NDl$1MtIYL1HLII@IL9A;(uA{ IkICufDHHx tLHAx*LxtLxHALL)A@L׃MHcHIOH9€^LMп@HcHHNH9(L@ADMMcIINH9@MHcHHOLH9ILA!@LINLH9HL$@HNH9€hL)@LHcȸHHOH93-@L0@L.@L1@L3@L@L;@Lo8@LS5@L7L7@L:@IGL\$@HD$8H\$HxAL@AMALHcHHNH9AALDM@McIINH9r@MHcHHOLH9<IHA!@LINLH9HLL$@HNH9€L)@LHcȸHHOH9L7@L:@Lt$(L;t$8E1LL:1HIA@LM)LHD$(ALAMHcHHOH9€ID$Ht&HPII9|$Mu$|$MuHX[]A\A]A^A_1ɋD$H Ht$LAAPH	HT$ HX[]A\A]A^A_L\$@H\$H1IA(t2)u0tL9MuA;{t IL9w5DL9w#|$tSHT$D$0AA|$Ht$H H	ЍWH H!LH	HT$ HHD$0hL%D$L|$Hl$ D$f.AUATUSHH=HGHHpHAH1۹EA:Hzv5t
AAHGHHpHH9
HHuĄAAIcDH9spNIcH4HHtHFHPA@H HAH	AIH=EEHGHdf.Au*H[]A\A]DEA"D1IcH4HHtHFHHA@H H[H	]AA\AA]Au뇹@@@8AWAVAUATUSHLA{kICE1HHx1ADH<؉E1HtLOI1L)1ҹf=@8HHuHx1LE11ɺHI#IAtT$HLAH ALT$HH	AT$H!LH	LHH$LLT$MMAICHt$HPHH9Au"fAuH[]A\A]A^A_1HAT$H L[H	]LA\AA]LA^AA_@@@ff.H)Btiv/~uQHBHHtHxtH@@u#HBHHtHxtH@.fDHBHHtHxtH@kHBHHtHxtH@ff.AWAVAUATUSHL[A{kICE1HHx1ADH<؉E1HtLOI1L1ҹf=@8HHuHx1LE11ɺHIIAtT$HLAH ALT$HH	AT$H!LH	LHH$LkLT$MMAICHt$HPHH9Au"fAuH[]A\A]A^A_1HAT$H L[H	]LA\AA]LA^AA_@3@@ff.Hxw;@$@f+[AWAVAAUAATIUHSHL:MtIA
A
{A1"H=HHHH+LIHHW8HHMl_<ADʄ@1Y1H[]A\A]A^A_AF<wAAHbDH[H@HHH9]H9tAMtZIOHtQLL1@S8	DHH9uIGE1Ef@1A D9uAAEHHHHCHڿ@Hp1I$HHSHHHtH9pHHHP1DI$HEHtH{HWH9r1@A9IŸ$ fAEAEA$tA^AE^E18HPHrH;pvHUNHPI$HrHpCL5ILH! t€DHAHDȉHL)I9I$Hvz@MIGHpI9wsLMII$H@HpIwAoI$HHPHrH;pvHtMHPI$HrHp7@C@ 1EfD
bDH1HtBaH̋W8H+=DHH"@1U-j@L~fD@1lUg1fHSHrHH%eL7@1L
H!%tDHJHDщ@LHL)UKfD5fDeHHKI$HHHt<HS@1H@1SI$HtHPHrHH9prHE1A	9A#h If@AU;EB$@xDLƿ7@1LD$E1LD$Kf.HPHrH;pv#HLD$JLD$HPI$HrHpC(ILH! t€DHAHDȉHL)L9I$Hmqu3r+q#pomiA:@?@\fDIGHpI;wv+LLD$ILD$?@II$H@HpIIwE,L9M<$E.Muea~QvPnMfI^EVANA@@E@AiVIGHpI;wv+LLD$@ILD$E@II$H@HpIIwE4L9t>M<$EuMuLǻ4MLLD$@@7@1rELD$L|LD$:@S11H H
HD$HAHtHxuw1H [f.HT$~HAHtHcH;Hw	HtHznHD$@1)PF@1PH|$H|$
Ht$(H
aHQHtHzkbKDH=|$HzD$H [fDHHHHHH+5HP8HHt	HyHu]"@1PHH|$D$
PDE1J@|$umHtHPHt4Ht)H@x<AЉt-@1O8
uHx
1H@1OfHuHff.HHtWHxtPS1HH;Xs(H<HtH蔻HHHu[HxtH@[ff.AUATUSHHux8HPHt	HRHuH[]A\A]HcH9rW@9P8ֿc@1?OH(L$HPHHtHruHc|:
t~i1+H5蔻HKH9lHHHPJ"<@	@uZ@11K뽐@u[c@1NH
[]A\A]FfDW@9P8Hֿc@1[]A\A]SN@\@1;Nf*\@1Nf.E1 A躹HHDEA9|f@\@1M|@H\@1[]A\A]M*Nff.@AWAVAAUIATUSHH Hu/H
HHQHHt|LbMuE1ADAA9uH
HAHtHxD9|HDLcA߃~F}1+JfDpAxLcA1fDMcH
HQHȉE1퐅~1Ht,KHH;Js 9*AEHOHPD9~HtL9bv1DH"EtzDx8H[]A\A]A^A_f.XLcŃ~x1D*3HH@HtL9`v1EuHh8H[]A\A]A^A_Ð1{D9DHuHP@Dy8rjfDE1WH1HPLcA1ff.AWIAVAUAATUSHYHl$ HcH迶1@#JH|$D$H
PDE11Dt$IEGHMt	ID$HA<
LD$AH H$AʼnD$CD$=T$E}MAH=0DLd]RDrHH=EHD$PDL$T$HL$,aAXZAuEtH[]A\A]A^A_fH޿@1?HDIl$&Dh@1Hl$ H1h@1HHÃtwfDHsHxefAWAVIAUAATUSH1Ld$HcLߴHE]MH=I LD$EFAUHL$i`AXZAKE~!HH@HtA}HcH;PRDHcD<
<
|$;McE11I>D9~sH7HPHrH;p*Hp-|$ID9~}HHrJ4&B4>@	G@
w$HrNDA99HHPHrH;pHpI |$D9f1HtHPH@1@FH|$D$H`
9PDE11G|$HHtHXHڀ<
uHhT$H=AuIL*CZH[]A\A]A^A_@EHcЀ|
DmDHHPHrH;pw~Hp^@E1$HPHrH;pw7HpA HzDT@EA9HHuH<HPHr@H<HPHrhH<HPHrWHn<HPHrh@1Ld$E1h@1EL
ŃtfDHHxF1L@1莱[11AWAVAUATAUHSHH\$ AHcHAED}EH D$E1D$@1DACHEGAHATH=T$HL$,^\AXZAuEt^H[]A\A]A^A_@@1H\$ C1@1CH¾AŃt8DHD@1Bff.AVIAUATUSHH\$AHcHH@EeMDI EFHD$H=UHL$i[HcXZ~ HH@Ht}HcH;Pw1IcD<
<
|$AL=sH11A$:9~gHHPHrH;pHp-|$HB/9~nHHrH4.4@	@
wIrE9tu9tnHHPHrH;pHpH |$B/91HtHPH@@1蹮H[]A\A]A^fHHPHrH;pw~Hp^&@E1$HPHrH;pw7HpA HrD@EA9HuHn8HPHr@HN8HPHrhH.8HPHrH8HPHrSAIcŀ|
EE@1H\$@1@1@H蒻AŃt%D1txHD@1?H[]A\A]A^11G@AWAVAUATUSHH
˽HQHHzADoHc2oW1HH
HQD91HtHBH9sHAIcH;jHH+5H1H@IAIj?1C<DH
HQH-H;j#<?p<p+<q<<QE
-zf. fu
E|$HOD7f.HHH9ot31HA9H<HBHuHugo;j8.1c@$?H
HBAIcHt6H9hv0HH+5ŻH1H@I&>1<H
[]A\A]A^A_E,A DHE1IcHHBuAIcuH1@1蓪@Y @OH@E&@1ip@1]@1QH@HH+5H1HII=1*\@=HںHBc@1=
-|@ nu
AYS@
-; .u
D@E9i8t'c@1==H
&HQHM*\@1=H
HQ1jf.HHչ1HHtrb@11@Hxw+P$`@f@膨HH@1Ht-HPօt#HLHHtHAH<
@1d@1XH!B@th/FRD5˸@E1
HӸxEtE@çH@v9HM@薧HD@~@@nHUD)@VHOTf.r@&Hf.@Hf.@H߷bf.@ƦHBf.@覦H"f.@膦Hf.@fH_f.@FH?f.@&Hf.@Hf.3@H߶f.g@ƥHf.u@覥Hf.AWAVAUATUHSHhH#Lg1ILE111LHH=1LHI
ILLHL$H=UIǿY@H@H@H
`@H@H
LH))ՉуA<7
$@%Hcҍ]A|
uHcӉٍ]Hl$pLHcۉL$H
|pHcL$_"DpH|$ 8HߴH%HPHrH;p%Hfol$ HpHH*fot$0rfo|$@z fol$Pj0fot$`r@HHHH|H=8	X@~Hw@<-fD1Hh[]A\A]A^A_@111E1111HH!11HIҮ
I1LHL$H=E11If1@֢1i@辢 @财1@3@13X@舢@~@13@c@Y@1h3@>@1M3@#@123(@@@1
3`@,@12@ȡ<@辡E@12@裡1U@2@舡\@12 @mh@1|2X@Rl@H@1W2@-@#1@22@1!2@@@11(@Ҡ`@Ƞ@辠@11@裠@虠@菠@11@t(@jX@`+@1o1@E@;@1>@1@1@H@1%1@@x@a@11@֟@̟n@10@豟8@觟@10@茟p@肟@x@n1@}0@1l0(@B@1Q0X@'@@1,0@@10@@ݞ@1/@ž@踞1*@/>@1/@茞H@肞H@1/x@g@]X@1l/@B_@1Q/@'1h@6/|@1%/0@@1
/X@@֝@1.@軝@豝@1.@薝(@茝@肝@1.@g@1v.X@L@B@1Q.@'@@1,.@@1.(@`@ݜ@1-@œ1@-@1-@薜 @茜P@肜@1-p@g@]@1l-@B&@8:@1G-=@@@	Y@1-@m@1,@ӛy@ɛ@1,8@讛@1,p@蓛@艛@@u@1,@Z@1i,0@?x@5@+@!H@@
@ @h@@@1+@ʚ0@p@趚@謚@袚H@蘚@1+p@}@s@1+@X@N@D@1S+ @)P@p@@1@fD1LL蓥E11LHH軥1LHn1E11LHH虥@H
@H@H@Hy@H]@H%@H	$@HØt'@H識MH@@@<16@@H,/@HH=fEGDG<11E1LL1LHHHL$pLHH=:HD$pY@Pp1nD$Dd$D$h~HDh8EHcL4f.HHBJ0HH{E11OfDHCHpH;swEHRJ2HsLH6HBJ0HuIL9xgHuH!HHH@HpHէHHpH1C!H5IH@HHFIEH~E1fDJJ,H+HpH1 H5KHPH.Ht7HQHPHyt(1
HH9QvH5H.HuKDHtIL9foC<i\<a1I}t)I|HtH腕IDHI9]wI}i1<HH*Hx1HH9X
H1HtHr@1臕H@Hu1D$D`D;d$McIHHBJ(H
H{
11PHCHpH;swEHRJ*HsHHƥHBJ(H
HH9h
HuHHHH@HpHD$E11ɺLLDl$Dt$HD$C1LHHHL)DEDLB@1NHL$E1E1H=LH衼C<a<fu-HD$HP1HtBD$C<a31H|$<iLy1<|$uHh8~(HH@Ht}HcH;Ps11ҍ}AD$pH|$pH?
PDE11&|$pHHHxƒ1M9wCHCHpH;svHߺUHH@HpHsAIM9dHuDd$\$EHHBHtHx 61HB~,HUSHH;Ps1H4H@9~HHcH;P1e|$HX8~(HԢH@Ht{HcH;Ps1{r@@1D$pH|$pH
XPDE11f|$pm
H=TH‰
81E1LL1LHHƜHL)HHHLc1L[HL`1Hy&
ATHPH9
HH9uDH@XH|HB0HHx1GD9_1HtQ`@1u
H4HB0HHH9XH[R8HD@DHHD9}1HtQq@1럋|$HѠX8At*k~HH@Ht
HcH;PA܉ߺHt$p1D$p|$pH
:HH}H=OHD3H}H2HcHP1HtHBH9{vesH9]b
H|HtH裎HDHHudC<n
<p<e-H|$1417-H@p1譎1|${HcD`8E~*HSH@HtA|$HcH;Ps1Ht$pD1D$pG|$pHug
ӍHH}H=HD0H9]2	H|HtHsHDHHu4
Ht$ LJ
H{Ht$ Lch8HcII)I[A_Hl$pHcH+DsE1HDH=7D7AăAmE~)HH@HtHcH;PsA}1Q1CIcDp<

<

DJ,DkE11LFf.D9Hd	HPHrH;pW	Hp-IWM9IH]HJH)B9	O
w$HcDE9|HHPHrH;pHp^댋|$FHX8~(HޜH@Ht{HcH;Ps1{I1@@D$pH|$pH
bPDE11p|$pwHHtHHHʀ<
uHhH=@H‰01\$Dd$D9DkDfH=3D9u^9Al$fúVCD9u1Hh8h1+|$'H~HJHHy{C<n
<p
1LLLHHH90D$XHZHKH9vU@1@1;H|$p7
Ht$ H|$pA耊xHHHuAtHHH1H)H|$pT$QHRL$Ƅ$HHPHrH;pHfoD$pHpHHfo$Jfo$R fo$Z0fo$b@HHLdL%AL<	t< u!HD)< t<	tj1ZfDHGHpH;wv(L$L$I$HH8HGHpHw+H9L%\I<$Hu몸C<a<<fu-H+D$HP1HtBD$C<as1H|$<iL1Dd$Dl$EAmDE9|0fH=b0{^9uA}vA1DHlD`81@1v@F@<H5H@HtHx
11HHHPHrH;pvHeHPHʗHrHpAIHD9d$N1@HH0HPHrH;pvHHPHjHrHpIHD9D$~x1McD+d$EuA1$@H=DD/D9HHP1HtHBxDL9u;H=Ԗ1HGHtp@H@@@<1A9sHHPHrH;pHp fDdfD@
H/@H2H@<PE1@E1$HPHrH;pw7HpA HϕzD@EA9AHuHHPHrH}KMcH|H@HtH@I9A}^H7H)HPHrH;pHpH1HHPHr9H}Hx蜃o1HtHPH@@11DHHPHrLH蠑HyzEBDB<1z89Džx"HLHcHJ1HtHQH91H
HPHrH@1,H=H"17@HHÓ@E@<1NDD9uHHBHt
Hxtj89؉ŃHiH=]H‰S'HH{HcÀ|p
AE]{1i@1Hl$pC1@1,H*Ãts|p@"@/@f.Dt$H=A^A~)HGHt HcH;PsA~1H=QLD%LcAl$E9}!fߺV|9uHH@HtH@I9IƷ?@1xz8'Hёz8HJGB8HHHIH9vωz81/PHljL$L$HPHJHrBLcHD$ HpHt$ '`|$AD9H
HPHHrADAA|$11{9HH@Rpu1@1H=XH7 1HH;H)HĩxHzHtBHc<@HH@E@<1sHreF@1Hl$p1F@1Ht݃H|pH|$ KHLHHPHrH;pHfo|$ HpHH:foD$0BfoL$@J foT$PR0fo\$`Z@hPHHPHώHrHHvHxk1KH9@1}H|(<u`
r}HsH*HH9XH,H=wHHHHt	HQHuH9t@1~}뒿*}딿@1d}uH(B8B8xg~x1[}1LHH@Hk\$~(HčH@Ht{HcH;Ps1H=LrLcAl$9jfߺV9uKH41Ht$HNH)HĩHcH;PHHHH1{iH|$L{iH|$LtHՌ@@@<1]
@1{v2{i떀{ioH|$1{^軿Al$1O1DH޿(@
1H{1n{1Aji@1Hl$pBHD$p@1+H~H|$pHHGHpH;wHGHPHWHt$p@1zHt$pH=xC1B8DPHHPHHr1111YHD$pHb@c"@@>z@4"@[@%zDAWAVAUATUSH(Ht$~1HHcHJHD8	uH'BPv	tE1%1IH@HPIVA	AatAi DED\@116
D$H
LH|$PDE1IHNHx\A>HHCHpH;sHsL4IvLE1HAHL)H9	tHL)H9rG1f}H)HL)H9w{uHHL)H9vɸHAH(@PE1D\@1
H@PE1DA~@1wH5Z
PxIFHLy1HpIIFHIGI~vAATHI9FwLIv@1wy@HߺHH@HpHfDE1EE1E1(@IFHpI;vw AIvA	E9Mu׾L-IH@Hpƀ|$u"H(H[]A\A]A^A_À|$tI~7vHD$1*xfDS11HHPHt$D$q
HCvH,1HHHtQP8H[DHvHtHÿ@SwiwfHvHtHÿ@#w9wfHvHtHÿ@v	wfSHHtWHGHH\H9HBH9w{H1HH9rQHHqHt+HBvHthHXH[fHXHHHX[ù@	@h@.u@	@@u@v1v@	@@@tSHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$1@D$HD$HD$ HD$1D$0.tH=HT$HZu
sVufDH͌UׯQHHH H1H͌UׯQHHH H1H͌UׯQH1HHH H1@Ht;H%#"HH@HHH1HHH H1H9uÐH%#"DHGHtwHLGMtIHIuvH͌UׯQHII L1L9srLH!LIH9u3HH!ILH9tHuHfDHGJHù@@%@@r@@'@@rfUSHHHtLWHHwHKH9suLFIH͌UׯQLMHHH H1L!H9t{HL!H4I<1HHuHEILUHH0H[]fDHHT$LUHuHT$KH9d @M@@qHEH0H[]ù @F@@q @N@@qff.@UfHSH(HHC޾)$)D$HH<H$/H}H\$HD$H}t;1fDHH9]v'H4HtHEHHHIH}H9]wJpH}Apfo$foT$MUH([];ff.ff.ff.ff.ff.ff.SfH )$)D$fH^HHHHuHHHH9uHuH [ù@@@o@w{$@fy@1o@@1o@[@1to@a@1do@g@1To@m@1Do@s@14o@@nfD@1o@SHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HT$HH=HD$HD$ D$D$0HD$o@1jnH[ÐSHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$QH$HT$HH=j~HD$HD$ D$D$0HD$o@1m
PmH[SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$1H$HT$HH=}HD$HD$ D$D$0HD$?n@1lH[f.SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HT$HH=|HD$HD$ D$D$0HD$|m@10lH[SHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HT$HH= |HD$HD$ D$D$0HD$l@1pkH[H|GHGGHG HG(G<G@GDGEHGHHG0fAWAVAUI@ATAUHLSH(kLHj1f.A|.DDHH9uAtyMcCD5c<wi$@@AHt$DcL[jH|$AT$HcHL)fDALH:L\H9wD}iHEE11THPHrH;pvHMHPHEHrHpCL%LIiHL9vHEHuHUHHtHBH<H$E1E1E1AHi<t#A< utEtoHAAi<uMMEMJ4111HH9ELAEfD<	uEt$A`<
tE1<
QMtlIEHpI;uwcIuE|Mt0IFHpI;vw'$IvAE1$AfLIH@Hp뿐LIH@Hp냐EEMt	I~gHAE1hD$D$$fDH(hA<tcA
A
EA u
AMIGHpI;wIwA	HEDEgA<uHVgL$$9ȋL$9E@HUE<1HtBE8JH([]A\A]A^A_fD$MIGHpI;wvIwA
HEHHPHrH;pvH HPHEHrHpAL<E1fDAAHf< tHHLguD@u5wDAŅthE1*f.IGHpI;wwAIwA	E9}(Mu۾LiIH@Hp@uDv@DDAօtRE1%DIGHpI;wwAIwA E9t(Mu۾LIH@Hp@ADHeA<<
<
5D$MIGHpI;wIwA
HEHHPHrH;pvHdHPHEHrHp1L<к?IH@HPIWE$ALDD$	DD$IH@Hp@D$MfLIH@HpmfDfDE@@9L$vE@fDD$MgIGHpI;wZIwA
HEHkHPHrH;pvH/HPHEHrHp1L<к
IH@HPIT$A
HEHHPHrH;pvHHPHEHrHpE1L$AkLIH@HpfDAAAAzAoAd@E@E<H(1[]A\A]A^A_þLIH@HpD$Mt;IGHpI;ww2IwA
HEHt:HPHrH;pw1HpL<L~IH@Hp봾H_HPHEHr9LEE~RfDHtI1A4AL@Dž@@u9LHI9uar9ºDˆEDI}+ajEEp@m@@aATUHSH?HtH`HEHE10H9Xv'H<HtH`HEHHHuHE0HtCHx1
HH9XvrL$[J<HtHh`HE0JHuϋEt't"H}HtH8`HE[]A\H}HHtH`HEHHx`HE0fAWIAVAUATI@USHH?HtHL1JaHLDHPHrH;pvHUHPIHrHpALH_HPH9vIHuH1һf.A<.DHH9utkLcCD,c<w[$@AHt$D]~LU_H|$SHcHL)fAH:LH9wEw^IWHHzE1@JN$H+Hx 1=@@	AEH	_IWJ"HtIHH9Xv?<@
uAG@uH
^IWJ"HuHAG<H:^H[]A\A]A^A_H^IWuE1H Ag^AODnEA9|H
;^H
.^IWDIL9jVDH
]IW^HfAAAAAG(ff.AWAVIAUIATUSHu_8MIFHcD$L<I}HHG)H4HGH9rTHOHcHcHH\J<;H]LLH`]Ee8AD$AE<H[]A\A]A^A_HL$HL$HIE1HyfA1E1MAWFAVIAUIATUSHHcAHMIFI}HcAL<HHGh)H4HGH9H_HcHJ<;HH\LLHg\Ee8DAE<H[]A\A]A^A_@Dg8Et_IcHMbI}1E1Ho1)HH9tHL$HL$HIET@1AAWFAVAUIATUHSHvbHELcIN| I?HGHHGMtnMuJ40H9wr@HwLHL~ZE<]8H[]A\A]A^A__8uIHEJ| HGI4HE1AWFAVIHAUAATUSHIFIcHLd(I$I<$HL{HHwHGLH9r?HGHJ8HWHLYH{|YAF<En8H[]A\A]A^A_@I$IFH|(En8EV뾐E1HuI}@L1jff.AUFIATUHSHvFHcL$HELH8HtHXHELHL(]8E<H[]A\A]Ë_8uH[]A\A]ff.AWFAVAAUMATIUSH(1)؃MtAm)McID$INL8I9Ht~HwAA)ȅ|LcLH9wHwHcIcHtD
HHOYID$Hc1J|8MtIULXEt$8AD$<H([]A\A]A^A_DALcALօ8tHHGDw8E H([]A\A]A^A_@L$LT$DD$LL$LL$LT$L$DD$IID$J|8HwLff.@Fv0HOHcƃHHTHDLHH
LG<w8@w8uÍFv(HWHcHH2HT2LH2H1LG<G8Ëw8tF@FAVAUATUSHLcHCN,MuJ<0HHHHI9tkHHz9VHCJ<0J4(HHHPL)HmWHCHhC<H@I9Gk8[]A\A]A^f.Ht&HzUHCHtiHHHHHHHo8&HML1lDJ4(Z1PfH%Hff.@AWAVAUATUSH|$t$H\$HcD$HsLdMMt$Mt{HcD<t2@A@
@1E1A	E9tJHI9tAIcE<A42D8t^En@w7t3 A9tCE1ɸEuA9uHL$T$Q8[]A\A]A^A_fn@w̄tȃ A9uEADAG8D$
fAWEAVIAUAATUHSDHD$HHL$D$%EgDD$DLDHu!ED9wAHD[]A\A]A^A_ÐHT$De8AWIAVIAUAATL%XaUH-XaSL)HCSHt1LLDAHH9uH[]A\A]A^A_HHtcsetattr()tcsetattr ICANONread()tcsetattr ~ICANONEdimCoder (1902b)Press 'h' for help.-Scratch-Opening '%s'

Opening '-Scratch-' BufferFile doesn't exist... Creating it.

You cannot close the '-Scratch-' buffer when other buffers are open.There are unsaved changes. Use 'E' or 'Q' to close without changes.There are unsaved changes in at least one of the open buffers. Use 'E' or 'Q' to close without changes.r@@@@@@@@@0@@@]@@/@/@0@00@H0@h0@/@0@0@/@0@/@3@3@3@3@3@3@3@3@3@I@I@I@I@I@I@I@I@I@showJSOutlineshowLuaOutlineshowTextOutlineshowCOutlineshowMarkdownOutlinecreateJSOutlinecreateLuaOutlinecreateTextOutlinecreateMarkdownOutline        ^X ^Dsrc/parsing.cifelseswitchwhiledocasefor&&||+^///*functioncurrentBuffer->fileType == FT_MARKDOWNcurrentBuffer->fileType == FT_CcurrentBuffer->fileType == FT_TEXTcurrentBuffer->fileType == FT_LUAcurrentBuffer->fileType == FT_JS
<%d: %.*s*|%d> 
<%d: %.*s|%d> 
<%d: new file*|%d> %shelp info Enter a line number: %c%4d %5d Enter the string to replace: Replace with?: No occurance of '%.*s' found
%5s %.*s- Enter the string to find: enter the string to find: %5s %.*s- 

<%d: %s|preview> 
Previewing '%s'
 * 'p' to show previous lines--^-^-^-^-^--
--v-v-v-v-v--
File information for '%.*s'
FileType: TextMarkdownC SourceC++ SourceC/C++ HeaderGophermapLua SourceJavaScript SourceVue.JS SourceHTML MarkupCSS SourceNumber of Lines: %d
Line Endings: LF (UNIX)CR (Commodore, Early Mac)CRLF (DOS, Windows, CP/M)NEL (Unicode)LS and PS (Unicode)Indentation: %d, tabsOutline:help
Basic
 a (line/range)				range. i (line/range) A (line) I (line) x (line/range)				to the clipboard). m (line/range) M (line/range)				one. j (line/range)				j$ je (range) jn				Equivalent to 'j +1'. jp				Equivalent to 'j -1'.
Find and Replace
 f (line/range) (string) ff (string)				to 'f #f (string)'. fa (line/range) (string)				found on. ffa (string) F (line) (string) r (line) R (line/range) (string) Rf (string) Ra (line/range) (string) Rfa (line/range) (string)
Copy and Paste
 c (line/range) C (string)				a newline included. k vi (line/range)				given line number/range. va (line/range)
Print and Preview
 P (line) p (line/range) clear version
Files and Buffers
 b b (buffer)				number. bn bp				beginning. s				Save the current buffer. o				if it doesn't exist. e E q Q info d (range) (string)				name. w (string)				the given name. g				List out all bookmarks.
Default Bookmarks
 #p(number)				lines. #f #s				currently in. #c
Relative Lines

File Settings
 indent_size indent_spaces				Default: false. line_ending1902bsetcrlfdoscpmwindowsunixcrold_macdefaulttruefalseSet bookmark '%.*s' to %d:%d
*%3d: %.*s %d:%d%4d: %.*s %d:%dEnter a filename: Saving '%s'
Saving '%.*s'%4s ^- %5s That buffer doesn't exist.
Enter a buffer number: *%3d: new file%4d: new file*%3d: %.*s%4d: %.*ssrc/editor.cstr[strLength] == '\0'Enter file to open: str[strLength - 1] == '\0'Opening a new file.FileType: %d
Unknown command
------zQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@rQ@Q@Q@Q@jQ@Q@Q@Q@bQ@Q@Q@Q@ZQ@Q@Q@RQ@JQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@BQ@Q@Q@Q@:Q@Q@Q@P@P@Q@Q@Q@P@Q@P@P@P@P@Q@Q@P@Q@Q@O@g@@i@`i@i@i@i@i@j@ j@g@@j@`j@|@
@o}@
@$@Ԃ@
@
@p@
@
@
@F@
@
@߅@Ӂ@.@
@݁@
@
@
@
@
@
@
@
@
@
@
@
@@@*{@{@0x@t|@@
@@@z@m@@@
l@}@p~@z~@2@@
@y@:x@x@editorState_openNewFileeditorState_openAnotherFileThat line number exceeds the bounds of the file.
 * 'q' or Ctrl-X to stop previewing * 'Q' to exit the whole program * Enter/'n' to show the next lines * 'j' start showing lines from given line number (TODO) * 'f' find first occurance of string in file and jump there (TODO)Use Ctrl-D to denote end of inputUse Ctrl-X to cancel the current command/operation.			Insert a line after the given line number or			Insert a line before the given line number or			Appends characters to the given line number.			Prepends characters to the given line number.			Delete the given line number or range (copies			Move the given line number or range up by one.			Move the given line number or range down by			Set's current line to given line number. Use to set last line as current line.			Set's current line to end of given line range.				Set's the current line to the next line.				Set's the current line to the previous line.	Finds the first occurance of the string in the				given line range and prints the line it's on.			Finds the first occurance of the string in the				file and prints the line it's on. Equivalent	Finds all occurances of the string in the				given line range and prints the lines it's			Finds all occurances of the string in the				file and prints the lines it's found on.				Equivalent to 'fa #f (string)'.		Finds the first occurance of the string in the				given line number and prints the line showing				where the occurance is located.			Replace a line with a new line.	Replace the first occurance of the given string				in the given line range with characters.			Replace the first occurange of the given string				in the file with characters.	Replaces all occurances of the given string				within the given line range with characters.				within the file with characters.
 Add 'i' at the end of all of these commands for the insensitive versions ('fi', 'ffi', 'fai', 'ffai', 'Ri', 'Rfi', 'Rai', 'Rfai').			Copy the line(s) to the internal clipboard.			Put the given string into the clipboard with				Print what's currently in the clipboard.		Paste the lines in the clipboard before the		Paste the lines in the clipboard after the			Preview the file, optionally starting at the				given line number. Enters preview mode.			Preview the given line or range of lines,				including the line before and after.				Clear the screen. May also use CTRL-L.			The current version of EdimCoder.				List all currently open buffers.			Switch the current buffer to the given buffer				Switch the current buffer to the next buffer,				wrapping around when it hits the end.				Switch the current buffer to the previous				buffer, wrapping around when it hits the				Open a file in a new buffer. Creates the file				Exit the current buffer. Only allowed when the				current buffer contains no new changes.				Exit the current buffer (without save).				Quit, closing all buffers. Only allowed when				none of the buffers contain new changes.				Quit, closing all buffers (without save).
File Info, Outlines, and Bookmarks
				Gives back information on the file, including				number of lines, filename, number of				characters, filetype, etc.		Create a bookmark with the given line range and			Print out the line range of the bookmark with
 Any command that accepts a line number or line range - denoted by
 '(range)' - can also accept a bookmark. Bookmarks are prefixed with
 '#'. Example: 'P #text'. You can also use bookmarks as the start or end of a line range: 'p #text:#text3'. EdimCoder provides some bookmarks by default:
			Represents a page of a file. Each page is 15				Represents the line range of the whole file.				Represents the line range of the bookmark that				the current line overlaps with. Useful for				seeing in which section of the file you are				Represents the current line. Adding '+' or '-' with a number afterward will be relative to the number/bookmark given before, or if omitted, the current line. 'p +5' will print the line 5 lines after the current line. 'p 3+5' will print the line 5 lines after line 3. 'p #test + 2' will print the bookmark range #test shifted up 2 lines. 'p #test:#test+3' will print the range starting at the start of the #test bookmark and ending 3 lines after the start of the same bookmark. A shorthand for this is called Relative Range Ends: 'p 5+:3' will print from line 5 to 3 lines after that - the end of the range is relative to the start. 'p #test+:3' is equivalent to 'p #test:#test+3'. There are two file settings that can be changed and affect the display and saving of a file. The two include indentation size and whether spaces are used for indentation or not. Use the 'set' command to set a value for these. The syntax of the set command is 'set property_name value'. The properties available are given below, along with their valid values:
			Size of indentation, default: 4				Accepts any number, or 'default'.			Whether spaces are used instead of tabs.				Accepts 'true', 'false', or 'default'.			The line ending type used by the file.				Default: current platform.				Accepts 'crlf', 'lf', or 'cr'. Also accepts				'dos', 'windows', 'cpm', 'old_mac', and 'unix'.Unimplemented prompting for name. Please add a name after the line range.No occurance of '%.*s' was found in line %d
File doesn't exist... Creating it.
Press Ctrl-D on new line to denote End Of Input
buf_len(currentBuffer->lines) == 0xcalloc failedxrealloc failedxmalloc failedsrc/stretchybuffer.cnew_len <= new_capFATAL: buf_cap(buf) <= (SIZE_MAX - 1) / 2new_cap <= (SIZE_MAX - offsetof(BufHdr, buf)) / elem_sizebuf__growsrc/hashmap.cIS_POW2(map->cap)key2*map->len < map->capval == (void *)(i+1)map_testmap_put_uint64_from_uint64map_get_uint64_from_uint64ERROR: Wrong Color - Unix @0@@@P@`@@@rbsrc/buffer.cwbbuffer->openedFilename[buf_len(buffer->openedFilename) - 1] == '\0'@r@r@r@r@@r@@r@@@r@r@r@r@r@r@z@r@@!@q@q@q@q@@q@q@q@@ @q@q@q@q@q@q@,@buffer_openFile;Ti"$0$$@&p '())$P)<p)T*+,-.0P.D.X.lp////0101P1(2x2B`ClC`DD`EE0F FlGKM0	O	PV	X8
Y
Z
0\\(dtefPgi\km 
q
r
vHz`} D@ p<`` @`Яб,Th|вp<`@ L|`0D pXpzRx"+zRx$FJw?;*3$" DP#D`
Ec
E h$D`
Hc
E$$3D k%DS0%&BGF Ip
 AABC(&AG`
AD^
AA$0&Dd
HR
N
EX'D
Gt(c\~AKK0(<)D@)8l)))$)8)[,L8*AGw
AH[
AL|++L +BED A(D0
(A ABBAS
(F ABBA4+ADD 
AAFD
CAAd,8,BBB B(D0D8Dp
8A0A(B BBBC:	
8C0A(B BBBJP:ILn
FZ
F\
DX
HQ
G\
DQ
GZ
FV
JTD;}H[
AL<}H[
A(<}H[
AH=}H[
Ahl=}H[
A=IH>BGE B(A0A8D@c
8A0A(B BBBA(L>+AD 
ABF
KGHP?BEB H(D0C8LP{
8A0A(B BBBGH`B#BHI E(A0D8Gp
8D0A(B BBBGLDBBA A(D0j
(A ABBF
(L DHKHdEBBB B(A0A8D
8A0A(B BBBAm
8A0A(B BBBELd`LBBA A(D0 
(A ABBHx
(L DHHE`MBBB B(A0A8DP<
8A0A(B BBBAF
8M0D(E HEHEO`,OBBB B(A0A8DP<
8A0A(B BBBAF
8M0D(E HEHEQIHPQPBGE E(D0D8FP
8C0A(B BBBH(TY
AH0k
AKA 8ZN 
Et
Da @[dT}
APApd`[!BBA A(F0m
(A ABBA
(F ABBKY
(J ABBH
(H ABBEd]UBBE E(A0A8M@>
8A0A(B BBBKd
8A0A(B BBBBX@	_BEB E(A0A8GRWAW
8A0A(B BBBC\	`BBE E(A0A8G^hNA
8A0A(B BBBEX	dBBB B(D0D8GZLYAR
8A0A(B BBBEhX
dLBEB A(C0G`iNAB
0A(A BBBJz
0A(A BBBAH
gBBB B(A0A8D@
8F0A(B BBBE tkFD/
Mv
JL4n+BBB B(A0D8G
8A0A(B BBBE$zRx,h
HԙjBBB B(A0C8F`)
8D0A(B BBBA zRx`(DKAH @Ad'DN
A'DN
A'DN
A ,A[
Dh
AAJ
$
8
K L
MlOL
A4p
!AAD0
AAGL
AAA$
AHI@AA
4
0
,( $4  H|AM0S
AAlx AJA |AJA AJA AJA$$PAJALWd`4	BBB J(G0G8D`
8F0A(B BBBGX
8C0A(B BBBA,\BAD 
ABDH<BEB B(I0A8DP
8A0A(B BBBDHDBBE E(A0A8FP
8A0A(B BBBDH-BEE E(A0A8DP
8A0A(B BBBEHBEB E(A0D8F@T
8A0A(B BBBIH(BEH E(A0A8D@w
8A0A(B BBBEHtrBHA D(F0D
(A ABBAK(A ABB`aBEE E(D0A8F`
8A0A(B BBBFy
8A0A(B BBBE$@8<<LHAEBB A(C0
(A BBBKDXBDE B(A0A8
0A(B BBBCL0}BEE E(A0D8GHD
8D0A(B BBBBD$`]BEE E(H0H8G@j8A0A(B BBBlx@`@@
@AAo@@8@
Q A(	@@	oh@oo@A6@F@V@f@v@@@@@@@@@@@&@6@F@V@f@v@@@@@@@@@@@GCC: (Solus) 8.2.0GCC: (Solus) 8.3.1 20190320,@+.<n@@<@@*@@K<`Y^':	@int3IEK[@^K%%4:;9I?$>&IU%U%Z0
../sysdeps/x86_64start.S	@>.B#>M$
 uv
th#
init.ca/
../sysdeps/x86_64crti.S	@Lu=/	@]/
../sysdeps/x86_64crtn.S	@'K	@+K../sysdeps/x86_64/start.S/home/build/YPKG/root/glibc/build/glibc-2.29/csuGNU AS 2.31.1init.cGNU C11 8.2.0 -mtune=generic -march=x86-64 -g2 -O3 -std=gnu11 -fgnu89-inline -fmerge-all-constants -frounding-math -fstack-protector-strong -fmath-errno -fno-stack-protector -ftls-model=initial-exec_IO_stdin_usedstatic-reloc.c../sysdeps/x86_64/crti.S../sysdeps/x86_64/crtn.S@@@@@@@@@@@@8@@@h@	@
(	@@ @
 @@@@@AAAA A!A !A 
J@P5
PR@
E
W@UR
`Y@k
@[@
 _@
@`@L
@j@@
 @

*@:AL
@N
 @a
`@w8!AA
@A
@<
@D	
@ `@9P@
R@@k0@ @@@@@@
+5@@N @g@		p@AAAAA@ A
@@!A(
`2@}7
I@II^
@3j
@u
@~
 @
1@}
@a  !A !A	
@
@
`@<,
9@#9
0@FX0!Ak
/@I
 @!
@H!AP!A
`T@d !A
@&
3@

@@
@@ 4
p5@CW
@g
p @p
@'y
@X!A
H@
0@`!A
@
@'

@A/h!A@S
@;@i{
@
0@[
P@
`1@}!AA
 @ 
@/!A<O
@KZ
@@n@}
P@
@	
 @8
@]
P@
@K
g@F
	
@4@+x!A	
@@
@++	>	
 @@P	
P@k	
@{	
0@}	
p@|	
@	
@@-		
 @c	
p@	 !A	
2@}

`S@

E@+

@@~0

 @8

@>

@J
_

@k

j@+

`@


@}



@


@
 
=@/p!A=
@U
`3@Ia
T@!k}
@@ !A
@
C@ 
@@W
c@
`@
@G@
@l
@"
@@0
`@'8
0@M
@e
0@rinit.cstatic-reloc.ceditor.ccommandInputCallbackcheckLineNumbercommand_jumpcommand_replaceAllStringcommand_replaceStringcommand_findAllStringcommand_findStringmultiLineEditor.constprop.7__PRETTY_FUNCTION__.3584__PRETTY_FUNCTION__.3602command_executeCommand.cold.9multiLineEditor.constprop.7.cold.10main.ccrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7307__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryparsing.cskipNumbers.part.1skipBookmark.part.4parseLineNumber.part.3__PRETTY_FUNCTION__.3747__PRETTY_FUNCTION__.3757__PRETTY_FUNCTION__.3767__PRETTY_FUNCTION__.3777__PRETTY_FUNCTION__.3787__PRETTY_FUNCTION__.3623__PRETTY_FUNCTION__.3685__PRETTY_FUNCTION__.3701__PRETTY_FUNCTION__.3724stretchybuffer.c__PRETTY_FUNCTION__.3310hashmap.c__PRETTY_FUNCTION__.3329__PRETTY_FUNCTION__.3346__PRETTY_FUNCTION__.3388colors.c__PRETTY_FUNCTION__.3340__FRAME_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_finiinputHistoryIndexshowLuaOutlinefree@@GLIBC_2.2.5putchar@@GLIBC_2.2.5getTermSizeresetColorhash_ptropenArgFileshowTextOutlinestrncpy@@GLIBC_2.2.5buffer_replaceInLinestrncmp@@GLIBC_2.2.5_ITM_deregisterTMCloneTablestdout@@GLIBC_2.2.5clrscrmap_getbuffer_moveLineDownadd_bookmarkbuffer_closeputs@@GLIBC_2.2.5stdin@@GLIBC_2.2.5getFileTypeExtensionmap_put_uint64_from_uint64hash_uint64buffersdefaultIndentSizeresetClipboard_edataopenScratchBufferfclose@@GLIBC_2.2.5get_bookmarkprintLogocolors_putsstrlen@@GLIBC_2.2.5parseLineRangerewind@@GLIBC_2.2.5parseLineNumbergetInputxrealloc__assert_fail@@GLIBC_2.2.5getch_nonblockinginputHistorycreateJSOutlinemap_get_from_uint64ioctl@@GLIBC_2.2.5clipboardLineshash_mixxmallocfgetc@@GLIBC_2.2.5buffer_deleteLinedefaultUseSpacesfputc@@GLIBC_2.2.5createMarkdownOutlineread@@GLIBC_2.2.5__libc_start_main@@GLIBC_2.2.5printPromptskipLineNumberbuffer_insertAfterLinecalloc@@GLIBC_2.2.5showCOutline__data_startmap_put__gmon_start__buf__growstrtol@@GLIBC_2.2.5__dso_handlememcpy@@GLIBC_2.14hash_bytesmap_put_from_uint64_IO_stdin_usedmap_growbuffer_openFileskipWhitespace__libc_csu_initmap_get_uint64malloc@@GLIBC_2.2.5fflush@@GLIBC_2.2.5editorState_editorprintFileInfoparseBookmarkbuffer_saveFilefseek@@GLIBC_2.2.5buffer_moveLineUpmap_get_uint64_from_uint64parsing_getLineshowMarkdownOutlinemap_testprintLineNumberbuffer_insertBeforeLinerealloc@@GLIBC_2.2.5tryQuitbuffer_appendToLine__bss_startshowJSOutlineconsole_promptcreateLuaOutlinemaintryExitgetchskipSymbolsmemmove@@GLIBC_2.2.5skipNumberscommand_executeCommandskipWordtcgetattr@@GLIBC_2.2.5buffer_findStringtcsetattr@@GLIBC_2.2.5fopen@@GLIBC_2.2.5printErrorperror@@GLIBC_2.2.5skipBookmarkvfprintf@@GLIBC_2.2.5createCOutlinecurrentBufferparsing_getLine_dynamicshowOutlineprintLineexit@@GLIBC_2.2.5forceExitfwrite@@GLIBC_2.2.5__TMC_END__skipTextcreateTextOutline_ITM_registerTMCloneTablebuffer_initEmptyBufferprintTextmap_put_uint64recreateOutlinefatalcolors_printfxcallocbuffer_prependToLinebuffer_findStringInLinebuffer_replaceLine.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.got.plt.data.bss.comment.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_ranges@ #@ 1@$Do@(N8@8V@Q^o@Lkoh@h0z@B(	@(	@ @  @ Ѫ@	@-@T@AAAA  A!A !A X0 /P m,?K80wC!V	8,x8Q

















1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

24
25
26


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124


125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167


168
169
170
171
172
173
174
175
176
177
178
179




180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254

255
256
257
258
259
260
261
262
263
    int width;
    int height;
    FT_UNKNOWN, FT_TEXT, FT_MARKDOWN, FT_C, FT_CPP, FT_C_HEADER, FT_GOPHERMAP,
    FT_LUA // TODO: Add Batch and Bash files
    Line *line;
    int lineNum;
    CR_LF, // DOS, Windows, CP/M
    LF, // UNIX
    CR, // Early Mac
    NEL, LS_PS // Unicode (New Line , Line Separator, and Paragraph Separator, respectively)
    LineEndings lineEndingType;
    unsigned char indentSize;
    bool useSpaces; // TODO
        LuaOutlineNode *lua_nodes;
    BT_UNKNOWN, BT_FUNCTION, BT_BLOCK, BT_COMMENT, BT_HEADING, BT_SECTION
    BookmarkType type;
    bool outline;
#ifndef LINEEDITOR_H
#define LINEEDITOR_H

#ifndef __APPLE__
#include <malloc.h>
#endif

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
#include <stdlib.h>
#include <stdarg.h>

#define true 1
#define false 0
#define bool char
#define forever for(;;)

#define internal static

#define version "1902"
#define version "1902b"

typedef struct TermSize {
	int width;
	int height;
	int width;
	int height;
} TermSize;

void clrscr();
TermSize getTermSize();

#ifdef _WIN32
#include <conio.h>
#define getch _getch
#define kbhit _kbhit
#else
#include <alloca.h>
#include <unistd.h>
#include <termios.h>
char getch();
char getch_nonblocking();
#endif

typedef enum State {
	KEEP, EXIT, FORCE_EXIT, QUIT, FORCE_QUIT
} State;

/* === editor.c === */
#define MAXLENGTH 900 /* 2000000 was too big on Windows */

char *console_prompt(void);
State command_executeCommand(char *current);
void editorState_editor(void);

void printText(int startLine);
void printLine(int line, char operation, int printNewLine);
void printFileInfo(void);

/* == Streatchy Buffers (by Sean Barratt) === */

#define MAX(x, y) ((x) >= (y) ? (x) : (y))
#define MIN(x, y) ((x) <= (y) ? (x) : (y))
#define CLAMP_MAX(x, max) MIN(x, max) // TODO: These are probably wrong (MIN is with CLAMP_MAX for some reason)
#define CLAMP_MIN(x, min) MAX(x, min)
#define IS_POW2(x) (((x) != 0) && ((x) & ((x)-1)) == 0)

void *xcalloc(size_t num_elems, size_t elem_size);
void *xrealloc(void *prt, size_t num_bytes);
void *xmalloc(size_t num_bytes);
void fatal(const char *fmt, ...);

typedef struct BufHdr {
	size_t len;
	size_t cap;
	char buf[0]; // [0] new in c99
} BufHdr;

#define buf__hdr(b) ((BufHdr *) ((char *) (b)  - offsetof(BufHdr, buf)))
#define buf__fits(b, n) (buf_len(b) + (n) <= buf_cap(b))
#define buf__fit(b, n) (buf__fits((b), (n)) ? 0 : ((b) = buf__grow((b), buf_len(b) + (n), sizeof(*(b)))))

#define buf_len(b) ((b) ? buf__hdr(b)->len : 0)
#define buf_cap(b) ((b) ? buf__hdr(b)->cap : 0)
#define buf_push(b, x) (buf__fit((b), 1), (b)[buf__hdr(b)->len++] = (x))
#define buf_end(b) ((b) + buf_len(b))

#define buf_add(b, n) (buf__fit((b), n), buf__hdr(b)->len += n, &(b)[buf__hdr(b)->len - n]) // TODO: Not sure if I should be returning the address or not
#define buf_pop(b) (buf__hdr(b)->len--, &(b)[buf__hdr(b)->len + 1]) // TODO: Check that array exists and length doesn't go below 0
#define buf_pop_all(b) (buf__hdr(b)->len = 0)

#define buf_free(b) ((b) ? (free(buf__hdr(b)), (b) = NULL) : 0)

void *buf__grow(const void *buf, size_t new_len, size_t elem_size);

/* === Hash Map === */

uint64_t hash_uint64(uint64_t x);
uint64_t hash_ptr(const void *prt);
uint64_t hash_mix(uint64_t x, uint64_t y);
uint64_t hash_bytes(const void *ptr, size_t len);

typedef struct Map {
	uint64_t *keys;
	uint64_t *vals;
	size_t len;
	size_t cap;
} Map;

uint64_t map_get_uint64_from_uint64(Map *map, uint64_t key);
void map_put_uint64_from_uint64(Map *map, uint64_t key, uint64_t val);
void map_grow(Map *map, size_t new_cap);
void *map_get(Map *map, const void *key);
void map_put(Map *map, const void *key, void *val);
void *map_get_from_uint64(Map *map, uint64_t key);
void map_put_from_uint64(Map *map, uint64_t key, void *val);
uint64_t map_get_uint64(Map *map, void *key);
void map_put_uint64(Map *map, void *key, uint64_t val);
void map_test(void);

/* === buffer.c - Text Editing Data Structures === */

typedef enum FileType {
	FT_UNKNOWN, FT_TEXT, FT_MARKDOWN, FT_C, FT_CPP, FT_C_HEADER, FT_GOPHERMAP,
	FT_LUA // TODO: Add Batch and Bash files
	FT_UNKNOWN, FT_TEXT, FT_MARKDOWN, FT_C, FT_CPP, FT_C_HEADER, FT_GOPHERMAP,
	FT_LUA, FT_JS, FT_CSS, FT_HTML, FT_VUE
} FileType; // TODO: Add Batch and Bash files

void getFileTypeExtension(FileType ft, char **ftExt);

typedef struct Line {
	char *chars;
} Line;

typedef enum OperationKind {
	Undo, InsertAfter, InsertBefore, AppendTo, PrependTo, ReplaceLine, ReplaceString, DeleteLine
} OperationKind;

typedef struct Operation {
	OperationKind kind;
	int *lines; // Line(s) that have been modified/added/deleted by the operation
	union {
		Line original; // The original line that was modified/deleted - TODO: Not very memory efficient
	};
} Operation;

// Levels:
//  0 for #
//  1 for ##
//  ...
typedef struct MarkdownOutlineNode {
	Line *line;
	int lineNum;
	int level;
} MarkdownOutlineNode;

typedef struct COutlineNode {
	Line *line;
	int lineNum;
} COutlineNode;

typedef struct TextOutlineNode {
	Line *line;
	int lineNum;
} TextOutlineNode;

typedef struct LuaOutlineNode {
	Line *line;
	int lineNum;
	Line *line;
	int lineNum;
} LuaOutlineNode;

typedef struct JSOutlineNode {
	Line *line;
	int lineNum;
} JSOutlineNode;

typedef struct Bookmark Bookmark;

typedef enum LineEndings {
	CR_LF, // DOS, Windows, CP/M
	LF, // UNIX
	CR, // Early Mac
	NEL, LS_PS // Unicode (New Line , Line Separator, and Paragraph Separator, respectively)
	CR_LF, // DOS, Windows, CP/M
	LF, // UNIX
	CR, // Early Mac
	NEL, LS_PS // Unicode (New Line , Line Separator, and Paragraph Separator, respectively)
} LineEndings;

typedef struct Buffer {
	char *openedFilename; // char Stretchy buffer for the currently opened filename
	FileType fileType;
	Line *lines;
	Operation lastOperation;
	Bookmark *bookmarks;
	// Used by default when no line passed into a command.
	// Commands that modify the file will change the currentLine to the last line it modified. Some commands, like 'c', don't modify the file based on the current line, but will change the current line to what it's modifying ('c' will change the current line to the last line in the file and start inserting from there).
	int currentLine;
	bool modified;
	LineEndings lineEndingType;
	unsigned char indentSize;
	bool useSpaces; // TODO
	union outline {
		void *nodes;
		MarkdownOutlineNode *markdown_nodes;
		COutlineNode *c_nodes;
		TextOutlineNode *text_nodes;
		LuaOutlineNode *lua_nodes;
	} outline;
} Buffer;

// Stretchy buffer of Buffers
Buffer *buffers;
Buffer *currentBuffer;
char **inputHistory;
unsigned int inputHistoryIndex;
Line *clipboardLines;
unsigned char defaultIndentSize;
bool defaultUseSpaces;

void buffer_initEmptyBuffer(Buffer *buffer);
int buffer_openFile(Buffer *buffer, char *filename);
void buffer_saveFile(Buffer *buffer, char *filename);
void buffer_close(Buffer *buffer);

int buffer_insertAfterLine(Buffer *buffer, int line, Line *lines);
int buffer_insertBeforeLine(Buffer *buffer, int line, Line *lines);
void buffer_appendToLine(Buffer *buffer, int line, char *chars);
void buffer_prependToLine(Buffer *buffer, int line, char *chars);
void buffer_replaceLine(Buffer *buffer, int line, char *chars);
// TODO: This will basically just delete the lines and then insert before the line number
// void buffer_replaceLines(Buffer *buffer, int lineStart, int lineEnd, Line *lines);
void buffer_replaceInLine(Buffer *buffer, int line, int startIndex, int endIndex, char *chars);
// TODO: Add the number to move up by
void buffer_moveLineUp(Buffer *buffer, int line);
// TODO: Add the number to move up by
void buffer_moveLineDown(Buffer *buffer, int line);
void buffer_deleteLine(Buffer *buffer, int line);

// TODO
// void buffer_deleteLines(Buffer *buffer, int lineStart, int lineEnd);
int buffer_findStringInLine(Buffer *buffer, int line, char *str, int strLength, bool insensitive);
int buffer_findString(Buffer *buffer, char *str, int strLength, int *colIndex, unsigned int startLine, unsigned int endLine, bool insensitive);


/* === parsing.c === */

typedef struct pString {
	char *start;
	char *end;
} pString;

typedef struct lineRange {
	int start;
	int end;
} lineRange;

typedef enum BookmarkType {
	BT_UNKNOWN, BT_FUNCTION, BT_BLOCK, BT_COMMENT, BT_HEADING, BT_SECTION
	BT_UNKNOWN, BT_FUNCTION, BT_BLOCK, BT_COMMENT, BT_HEADING, BT_SECTION
} BookmarkType;

typedef struct Bookmark {
	char *name; // Dynamic Array Buffer
	lineRange range;
	BookmarkType type;
	bool outline;
} Bookmark;