MZ@ !L!This program cannot be run in DOS mode. $PELZfY)e- \ p@P*܅. 0PX1`.textZ\`P`.datapb@`.rdata0@`@.bss `.edata0@0@.idataP@0.CRT4@0.tls @0.relocX12@0B/4 P@@B/1905 `6 @B/31%,%@B/45B&D%@B/57]'^B'@0B/700( '@B/81p@)(@B/92@*)@BÍ&'1f=@MZl(Zh(Zd(Z%Zth Zx(ZtJ$bW$E(Z(Z(ZoZfB=ԍBtm1Í&$Wf<@@PE@uQf t?f j]1Kv$UBdD1Ãyt,1f,`(ZD$ ZD$ ZD$ Z$ Z Z$ZD$ bV,fU1WVUS׃|0P)čD$@@@ @@@@̃5x(Zd1X=oZ9$׃(Zuޡ(Z1ۃ(ZM Z(ZZtD$D$$Ѓ 2E$`ZBoZ(Z$@QU x(Z> vUBt<$BpoZtD$B$toZ…t $B$`@<Í&U]Ð$ ZÐt&$ Zt. Zt%$" Z$N8 ZÍ&SH Z ZD$ D$D$hB$mB8D$D$$/4\$D$(D$$D$ D$D$D$xBD$ BD$BD$VB$3 ZH[ÐD$D$D$@D$ p@D$D$VB$3 Z ZD$$$BD$<9@B$BDT$<$T$g8u3D$<@D$dBD$$D$ 8D$<$9$gB)$ Z6 ZH[ÐS\$$$ [ÍvWVS\$ $v/$d/D$F$BD$m7$ljD$<$8t[^_É\$ [^_,/D$D$0@$d6Í'( Z$P&Bw$ء, Z$, Z1Ðt&( Z\$$%ÍVS\$$$w.$D$[.ƋD$ $%+t8ut$$D$ .[^ft$$D$.[^ÍWVS , ZtB$q, Z$t, Z 1[^_Ðt&, Z [^_-D$,$D$, ZED$0$1D$, Z$D$ $5, Z.-D$ $+$B('$D$D$D$ D$,)D$lj$)D$<$$D$D$ D$|$,t$ D$D$D$@D$B<$u3$}\$4$,\$4$D$Be,\$4$D$I,D$ $5, Z,D$ $*$B+$D$D$D$ D$+$\$4$,\$4$D$+\$4$D$>B+5, Z$HB%É$\$4$+\$D$4$u+\$D$4$q+\$D$B4$U+, Z"D$$( Z( ZD$$@( Z$( Z$D$:+( ZD$$D$*( ZD$B$D$*( ZD$$D$*, ZD$D$D$ , ZD$p@D$B$j1, ZD$D$D$ , ZD$p@D$B$51, ZD$D$D$ D$@D$B$1, ZD$D$D$ D$@D$B$0, ZD$ D$ vD$ȑB2vSD$(D$ܑB$0D$B$)É$'\$ [VS$0 Zt4$0 Z$t0 Z$[^10 Z$[^$B(D$É$(D$B$(0 ZD$0$D$0 Z$0 ZD$D$D$ 0 ZD$08BD$ B$/D$B$)($AD$B$+ơ0 ZD$4$D$ pBD$ +0 Zt$D$+B$(ƉD$0 Z$D$/B$'D$$D$D$ nt$D$8BtD$AB$l'D$$D$D$ ot$D$8B8D$KB$0'D$$D$D$ st$D$8BD$UB$&D$$D$D$ qt$D$8BD$_B$&D$$D$D$ ct$D$8BD$iB$|&D$$D$D$ xt$D$8BHD$rB$@&D$$D$D$ vt$D$8B D$}B$&D$$D$D$ t$D$8BD$B$%D$$D$D$ t$D$8B0 ZD$ MB\$D$ܑB$ -0 ZWVSÃ$!ۉ$0%É$D$#\$4$#D$ $D$$|$$F%$B/$$$D$#$B/$$$D$n#$B/$$$D$N#[^_Ðt&$|$G'WVS 4 Zt6$q4 Z$t4 Z [^_4 Z [^_$w4 ZD$0$ND$4 Z$%4 ZD$B$4 ZD$D$D$ 4 ZD$08BD$B$+4 ZD$ $!D$$#ƉD$4 Z$'"$ȒBD$ D$D$ D$4$#D$$#D$ É$!\$<$!(B$$D$D$D$ D$,#(B$Y$D$D$D$ D$"(B$$D$D$D$ D$"(B$$D$D$D$ D$o"(B$$D$D$D$ D$0"1ɺB$`$D$D$D$ D$!$BD$ D$D$ D$4$!D$$!D$ É$\$<$ B$1D$D$D$ D$$T! B$1D$D$D$ D$$! B$1HD$D$D$ D$$  B$1 D$D$D$ D$$  B$1D$D$D$ D$$d 1ɺB$1D$D$D$ D$$+ 4 ZhD$ VSD\$TC t$ 'D$,t$0D$D$Pt$$lu C D[^ËD$, t$\$ D$D$$D[^Í&'D$@ t D$!Ív'UWVS<\$T$B)$ B)t$D$D$D$D$ D$$(BD$D$$D$$$8B$|$ʼn$t$,$4$H$$ D$D$4$8u$tԉ\$P<[^_]f$0 t,$,(\$P<[^_]l$$dB&<$D$D$,D$,$',$'뇍UWVS,|$D7ʼn$t$D$*@D$D$ D$D$,$$tGv't$D$)@D$D$ D$D$$b$[u$&F$t$F$i$F t$Z$4$ ',[^_]ÍUWVSL\$ht$0l$`t$C$tK|$, t&t8D$|$ D$t$C$9l$,t$C$uL[^_]Í&UWVSƉӃ<$|$ qŋF|$$F\$l$ |$D$D$$D$t$ $D$D$D$)@D$B#<[^_]Ðt&T$D$ cvUWVSL|$dtD$`$> L[^_]ËD$h$ $$D$, t$É$` D$$h D$$P $D$lj$z|$$$BbD$ ʼn$D$ D$ѓBp"l$<$d$$ T$,D$ؓB$P$D$, T$,ʼn$D$D$D$|$D$ D$l$$D$8D$D$D$&@D$BD$ $D$8g!T$8u#&D$$#D$8t4$D$D$$7tkT$<$T$D$$&4$ljD$D$D$ D$l$ <$D$D$D$2@D$Bl$Bx$D$D$D$ D$,D$$(D$Ɖ$ t$$D$D$ D$  4$D$D$D$ D$ $B3$ 4$ljD$D$D$ D$} <$D$D$l$ D$2@D$Ba$0Bm$D$D$D$ D$! D$$ D$Ɖ$ $D$D$ D$t$ D$$aBST |$É$ \$4$ $D$D$ D$D$ $ |$ $D$D$D$4@D$pBV|$ $D$D$D$`4@D${B*$D$D$ D$D$ $ |$ $D$D$D$6@D$B|$ $D$D$D$5@D$BD$$B|$É$ \$4$ D$D$ D$D$$$D$D$|$ D$4@D$pB$D$D$|$ D$`4@D${B$D$D$ D$D$$=$ED$D$|$ D$6@D$B$D$D$|$ D$5@D$B$]$EA D$$D$ < ZS( Z$BD$D$É$$D$` Z$D$D$D$ D$0=@D$˕B\$0([&S|$$\$ t\$ [t&$D$` Z(\$ [vS\$$D$` Z$ $ [ÍVS$ Zt4$ Z$tq Z$[^ Z$[^$` Zp Zh Zx Z ZD$0$D$ Z$j ZD$ԕB$M ZD$D$D$ ZD$08BD$B$` ZD$$CD$$7D$$ Zt$$\$(D$$@ Z @ ZD$D$ D$4$D$ D$D$D$ D$p=@D$B$ Z ZD$D$$ ZD$@ Z$$BD$É$D$$gD$D$ D$\$4$D$D$D$ D$<@D$B$  ZD$@Ít&D$@0@@Ít&VS\$ Ct+$D$ D$D$C$It$D$-[^ D$D$$ 4$D$x t$$t$ [^N S\$ $  ZtD$ Z$ [fSD$,\$$D$D$($t\$ D$,D$$BD$([ t&'VSD$$D$D$ $/$8$[^fWVSD$,t$$D$D$($$8$|$(t$ D$,D$$B[^_2 fUW1VSrB|$H\$PD$HBD$T B|$(D$\'BD$d1BD$l9BD$tABD$|HBDŽ$TBDŽ$]BDŽ$cBDŽ$jBDŽ$pBDŽ$|BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$–BDŽ$ȖBDŽ$ҖBDŽ$ݖBDŽ$ BDŽ$BDŽ$B$DŽ$$BDŽ$, BDŽ$4BDŽ$8!BDŽ$D'BDŽ$L/BDŽ$T7BDŽ$\CBDŽ$dKBDŽ$lVBDŽ$taBDŽ$|kBDŽ$yBDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$BDŽ$×BDŽ$җBDŽ$ۗBDŽ$BDŽ$BDŽ$BDŽ$BDŽ$ BD$@:D$|$4$D$l$ D$|$4$t+uËkt:D$8|$4$D$`D$8D$l$ D$4$D$,북[^_]Ðt& Zt ZÐS8$ Z $B \$D$D$@@D$D$ @@D$$D$$ @@D$(D$,rT$$D$$T$\$$ Z6  Z8[Ít&UWVS| ZtB$ Z$t? Z|[^_]Ív' Z|[^_]$1t$0 Z$$hD$ Z$? ZD$*B$" ZD$D$D$ ZD$08BD$6B$5 ZD$ $D$$ ljD$(D$ Z$=$>B <$D$D$D$ D$D$$D$lj$D$,|$$|$XD$@D$@$D$@BD$DOBD$H\BD$LiBD$PD$TtBD$XBD$\BD$`BD$dBD$hD$lBmBL$l L$$D$D$D$D$t$L$ $tTL@ɉL$$t$$u,D$D$BD$D$ D$t$$몍$$vD$,t$$i4$ÉD$D$s\$4$D$D$ D$BG\$4$D$D$ D$A@4$ÉD$D$\$4$D$D$ D$B\$4$D$D$ D$A@4$D$ D$D$PA@4$D$$Bdl$(D$D$D$ D$,$ D$$D$$D$$T$$$T$*Ɖ$c4$T$$\$$$D$D$D$$D$$$D$D$ D$BD$D$$$D$D$ D$A@D$D$D$$|$4$D$D$$T$$$|$$$ƘBD$D$D$ D$,$D$$D$Ɖ$t$$D$ϘBÉ$$D$ӘB$D$טB$D$ۘB\$4$D$$@B$/$D$t$$W$B#D$D$D$ D$,$D$$D$Ɖ$$t$D$ BÉ$D$BD$BD$/B$D$;BD$JB$\$4$;D$D$ BD$D$QB$|$4$a ZVS\$ t$$$D$$t$tt;tD$$u[^Ét$$D$L@[^Ít&S( Zt3$3 Z$t Z([s Z([Ð$<D$\B$ ZD$0D$ Z$ ZD$,D$X$ ZD$D$D$ ZD$08BD$jB$D$$D$É$j$D$ Z\$$$rB$D$$wB$D$$zB$D$$|B$D$q$B$D$Y$Bu$D$AD$B$ Z\$$ ZD$X$\$&D$`Blj4$|$$CD$D$\$ D$@S@D$oB<$pBpBD$,1'KD$D$ }B\$ED$BD$D$,$$D$\$<$D$BE$DEut$<$D$B4$4$ Z 1ΐUWVS$$$$|$ |$D$4$|$$v$\$Hpl$ D$\$4$wD$$D$$\BBD‰\$ |$4$D$Č[^_]ÍWVSĀ$t$|$Ht$$O|$${|$t$$|$t$$D$ ÉD$$D$ D$$$ $q[^_Ív'WVS@\$P|$T$J$$D$4D$4D$8|$4$\$ D$8\$T$T$\$<$$D$4rD$4D$8|$4$\$ D$8\$D$D$$<$D$$jD$D$ D$BD$B$D$D$ D$BD$B$D$$<$D$D$,=$UT$,D$ʼn$#D$D$t$ D$V@D$B$D$D$$ Blj$D$<$D$,T$,D$$T$I<$,$D$D$D$ D$U@D$1B4$% Zt$$, ZUWVS$$$$|$ |$D$4$|$&$$\$Hl$ D$\$4$D$$D$$lHB@BD‰\$ |$4$D$Č[^_]ÍWVSĀ$t$|$Ht$$_|$$|$t$$|$t$$D$ #ÉD$$D$ D$$$$[^_Ív'VS\$ t$$$[D$$t$tt;tD$$(u[^Ét$$D$0]@r[^Ít&UWVS< ZtB$ Z$to Z<[^_]Ív' Z<[^_]$D$NB$ Z}D$PD$ Z$X ZD$,D$$s ZD$D$D$ ZD$08BD$cB$^$ljD$ Z$D$$+<$D$g$ D$D$ D$kBD$@B$qD$D$ D$kBD$HB$ID$$<$D$D$,$T$,D$ʼn$D$D$t$ D$\@D$uB$PD$D$$}Btlj$bD$<$D$,VT$,D$$T$<$*,$zD$D$D$ D$[@D$B4$ Zt$$ ZUWVS$$$@$>|$ |$D$4$|$$&$\$H l$ D$\$4$'D$$D$$ BBD‰\$ |$4$D$Č[^_]ÍWVSĀ$t$|$Ht$$|$$+|$t$$|$t$$D$ ÉD$$D$ D$$V$>$![^_Ív'VS\$ t$$$D$$t$/*tt;tD$$u[^Ét$$D$a@[^Ít&VSD$$D$$D$BƉ$nt$$D$D$$ND$BƉ$4t$$D$XD$œB$D$Ɖ$t$$D$[^Í&'UWVS< ZtB$ Z$t/ Z<[^_]Ív' Z<[^_]$D$ΜB$ Z=D$PD$ Z$ ZD$,D$$3 ZD$D$D$ ZD$08BD$֜B$$jljD$ Z$G"<$D$6$D$D$ D$ޜBD$B$@D$D$ D$ޜBD$B$cD$$m<$D$D$,$T$,D$ʼn$D$D$t$ D$`@D$B$D$D$$BClj$1D$<$D$,%T$,D$$T$<$,$ID$D$D$ D$0`@D$B4$ Zt$$< ZVSƃ$$D$É$$D$ $D$ \$4$D$D$ D$fD$É$$D$,$D$$$D$\$4$D$D$ D$$[^Ð&UWVSփ<$t$$t$$"BD$_D$9B$$$D$, D$,D$ D$ $eËD$,$D$F$D$;B$l$ $D$D$D$`g@D$HBt$$\$<$<[^_]fD$$BD$,JvSD$ \$$$$$\$$D$ [#vVS$ Zt4$ Z$t Z$[^! Z$[^$ ZD$0$D$ Z$ ZD$PB${ ZD$D$$ ZD$D$D$ ZD$08BD$XB$qD$$UD$$D$+ Z\$$zD$$D$Ɖ$D$ D$`BD$D$ nBD$D$yB$$t$BLB غBB(BغBغBغÝBغ̝BѝB۝BغBغBغBB BxغBlغB`غBTغ!BHغ-B<غ2B0;BDNBغYB غdBغoBغxBغBغBغBغBغBغBغBغŞBغϞB|غ۞BpBBXغBL ZUWVS<$B=D$ ZD$D$D$BD$D$D$$ B,$D$((D$$bD$Ɖ$H$D$D$ D$t$D$$BD$D$D$ D$4$gD$É$ED$$=D$D$ D$\$4$$/BD$D$D$D$ D$$Zš Z$c,$D$D$D$D$ D$l$$<$l$$8BD$D$D$D$ D$$D$,[ǡ Z$<$D$[D$D$D$ D$|$$T$,|$$_4$D$($ tD$(D$P<[^_]v',$HD$ Z$<$/D$ Z$뮍S( ZD$DBD$ D$D$$á qBD$B$D$$T$  qB([Ð&WVS Zt6$1 Z$t Z [^_o Z [^_$7 ZD$0$D$ Z$ ZD$B$ ZD$D$D$ ZD$08BD$B$ ZD$$$BƉD$ Z$D$$D$É$y\$4$D$$a$D$D$D$ D$+$BD$D$D$ D$m@D$ğB$|$4$D$D$ D$$]$D$D$D$ D$D$$$D$D$D$ D$_D$$[$̟BD$D$D$ D$k@D$ğB$\$4$D$D$ D$$D$D$ D$|$FD$É$$D$$4$D$D$ D$\$x$/BD$D$D$D$ D$$9D$D$D$D$ D$$ Z Z4$D$$8B D$D$D$D$ D$$OD$D$D$D$ D$$ Z ZWVS0dB|$D$t$ D$(D$,l$@ fD$ Z$l$\$ l$l$Hl$\$$l$/t$É$$$<$t$D$$0[^_Í&'S1ۃ8 ZD$Dt6T$,T$T$(T$ T$$T$P,T$@$D$-u8[D$(D$@\$D$$$8[á Z Zt$ ZÍt& ZÐt&WVS0 Z\$@t$D$ $D$=|$,t$($|$ t$D$$$ ZÉ$T$T$ \$$0$0[^_ÍS( ZT$\$4D$$\$E$(1[Í&'UWVS\\$p|$t$y$ƉD$LsD$HD$Dt$HD$D\$8YhB<$T$\$ \$pB\$@ <$T$\$D$@\$ D$8\$<$9~(u<$T$T$ \$b뤐&D$D D$HD$D9D$LH\[^_]Ít&'S ZD$$t/x(t[@\$@D$ $v[1ۃ[ÍWVS Zt6$ Z$t  Z [^_迿 Z [^_$臿 ZD$0$^D$ Z$5 ZD$B$ ZD$D$D$ D$ps@D$B$+ ZD$$D$$D$$ Z\$$'$D$BƉ$t$$D$D$ D$$D$lj$$D$D$ D$|$KD$dƉ$D$d茾t$<$x4$D$D$D$ D$t@D$B$ D$BƉ$t$$D$D$ D$$D$Ɖ$$D$D$ D$t$lD$dÉ$D$d譽\$4$D$D$D$ D$Pt@D$B$!D$D$D$ D$s@D$+B$D$D$D$ D$s@D$;B$D$D$D$ D$u@D$OB$$豾 !$D$@ ZUWVS,\$D$=$\$'\$D$$軿t=\$4$$蹿(\$4$c Zl$$b<$蚿,[^_]fVSD$$D$D$ $菿$e0$c1[^Ðt&WVS` Z\$t9$BD$4D$8D$4D$D$<2D$ Z$D$0D$$D$,$ƋD$0|$@D$4$|$D$0$设|$|$P4$|$bD$<|$4$D$ D$D$D$D$8D$D$D$4D$ |$4$b$D$D$0膽D$D$0$D$ D$2D$0$`[^_Í&D$xBD$̡B$ `[^_Í|$PD$4$|$&D$D$D$ D$y@D$ct&'UWVS\D$tt$||$@$]ËD$pD$B$/\$ʼn|$4$uD$D$dBƉ$t$$D$D$ D$ۺ$ƉD$D$D$ D$赽4$ÉD$z$$ƉD$跺4$D$$藺 ZKUWVSӃLt$d$L$$u$qNj$eD$ȢBD$<$aL$$tL$D$ӢB<$EFtZ$B0FL$,$L$,D$B<$D$(T$$L$T$$D$( D$`$\$ |BT$\$$!,$D$ۭ$D$ݾ$-T$<,$D$T$%t$$葾D$$$\$1D$`$\$ T$\$(D$`T$<T$$D$$$\$ D$(\$$譿$ ,$<$D$L[^_]Ë BD$T$ D$B<$vS$@á ZqBD$C$軼 ZHR)؉ Z[Ív'UWVS<\$T$ż$D$衼$蟼$蝼Pك  L$D$Xt$@$]ŋL$G;}t};MtMEtE$aHۃwotkS,uLtdt_D$($D$D$ D$ tD$ ]0D$(]8D$P$4<1[^_]fD$D$D$X$u<$;D$C $!E낍t&D$Xt$@$e듋D$D$D$X$MxD$D$D$X$BŋL$D$ŋD$D$D$X$+L$fD$ŋD$Xt$@$L$'S\$ $C$\$ [WVS׃ Zt$1ۅt|$$B/É\$4$豲$t$D$@$ Z[^_Ðt&WVSD$ \$$D$Bt$($ۉt8$0\$|$$#BɉA\$ [^_f‰[^_!D$ D$$$ Z1Í'UWVSÉց$$$\$辻F$D$F8$\$ T$\$8.F8\$ E$\$HD$8\$ F0$\$$\$ F0$\$$ F8\$ F0$\$׺FD$8tTua؉00=ǀ%@. v'؉$[^_]ÍT$XD$D$\$8T$ $ѸBT$(\$@D$8T$ T$T$T$$ǺD$X$T$$D$8T$\$\$ \$诺D$8,$T$$T$T$\$ \$苺l$$B$\$$D$8T$D$@\$T$ \$ $ͺ,$-00D$`D$D$ FD$$D$hD$D$ FD$$ŷB$D$h\$8L$`\$@荹$T$T$ T$\$L;$۹D$L$T$ \$ϹD$8$\$ D$@\$$߸D$8$\$ D$@\$藹D$+B$迸$ǀBD$pD$ݔ$D$ FD$$ݜ$޶$辸$T$ \$8B\$@L$p\$D$8$T$T$ \$HD$8$D$$\$ D$MB$\$$D$8T$D$@D$p\$T$ \$-$ͷD$p$D$@\$ D$8\$}$D$0B$D$肷D$8$\$ ݄$ B\$߷D$0B$gD$8$T$ \$$諷@{D$xD$D$ FD$$膵$f|B$\$4B$\$T$T$ T$\$8$萷D$x$ B\$$D$8T$B\$T$ \$$薶$$D$D$ FD$$δB$܌$ݜ$蚶B$\$萶D$$`B$\$F$ƶ݄$$\$$T$B\$T$ \$3$ӵ$3)$D$ D$ FD$$ $B$\$ T$\$8GB$\$ D$8\$յD$8$\$ |B\$軵B$\$ B\$蟵$_$_BT$\$@D$8T$B\$$臵D$8$T$\$T$ \$wD$84$T$\$T$ \$Yt$$ʹ4$%D$@\$D$8T$B\$$$\$$D$8T$T$T$ \$4$\$$D$8T$T$\$ ݄$\$δD$84$T$$T$T$\$ ݄$\$觴D$84$T$$T$T$\$ \$腴t$$Ѵ4$YD$8$T$T$ \$ٳ$豳$UWVS\D$(l$tD$$\$8t$ |$4D$D$p$ՠD$x$D$3'T$ L$0<$~t$D$$u֋D$x|$4@$D$T$ L$0<$;t$D$$跸u֋D$x|$$$D$襸D$ <$1ɉD$D$pst$D$$ouЋD$x|$@$D$\ fD$ L$D$D$$$D$p"t$|$$"u΃\[^_]ÍUWVS< ZtB$ Z$t蟟 Z<[^_]Ív'3 Z<[^_]$PqBD$=B$ Z訜 ZD$D$$賜 ZD$D$D$ ZD$08BD$HB$螴!ÉD$ Z$ΫD$$辜D$3$$蒶D$ PBD$D$$̶D$ PBD$D$$覶Ft$D$ @D$PB$'t$ D$D$D$@D$dB$ót$ D$BD$D$@D$jB$蒳$oB螦D$lj$D$$@|$$謪 ZljD$(脯<$D$9BD$D$ 迤D$,D$E$=ËD$$D$D$D$@@D$rB$D$ |$D$B$ D$ \$$d$ԲqBt4>EtD$D$pBE$衮gft$,D$D$@qB4$ܣD$(D$ MBt$D${B$tD$ $P ZS(\$0$\$D$D$D$BD$ D$ťB$ ([Í& Z$ ZfSD$ \$($ \$ D$$[Kt&'UWVS< ZtB$ Z$t诛 Z<[^_]Ív'C Z<[^_]ËD$P$ښD$̥BD$BD$ D$D$$ڢD$B$ Zݢ Z$Ȣ$ƚÉ$輚\$$D$D$D$BD$ D$ťB踧D$D$@,$萧$+B̥D$$>D$dÉ$$D$$D$D$$wlj$腝D$<$D$,1D$<$D$,D$D$4B$襝|$$\$4$D$D$ D$t$,$y4$艗 ZD$D$D$0@D$B4$D$ H ZD$D$D$ D$@D$B$ ZD$0D$2D$8D$:D$.T$ L$4L$6L$<D$$t9Mt9M@[^_ UWVSljˁ$XT$hD$<$T$\<$<T$pD$<$T$H<$ T$xD$<$T$<$T$dD$<$D$D$BT$T$`D$BT$ T$h$$<$l$$D$8D$lL$<L$j)T$n)9t$`Mt$`9\$dM\$d\$@D$@t$@D$@D$$Ņ=|$d1D$dJBD$h\BD$l|$dD$LiBD$n$.o$nn4$nMVS$!Zt4$Z!Z$ta[!Z$[^Y!Z$[^$XD$$D$!ZX!ZD$B$`X!ZD$D$D$ !ZD$08BD$B$spfÉD$!Z$gD$@$ZD$D$D$ D$@D$B$p$dD$D$\$ D$ @D$B$o4$D$Uet$D$MB$odD$D$D$ B\$D$B$oD$D$\$ D$P@D$B$bo4$D$D$\$ D$ @D$B6o4$D$dt$D$MB$*o$dD$D$\$ D$@D$B$n4$D$D$\$ D$@D$Bn4$D$ dt$D$MB$n$|cD$D$\$ D$@D$B$,!ZQn4$D$ct$D$MB$En$bD$D$\$ D$@D$̭B$(!ZmD$4$bct$D$MB$m!ZL!ZH!Z`!Zt,X!ZD$4$`!ZJ\$$Wp1[^_É$Jtv'[t\D$$B$w]t=`!Zt,\!Z`!ZD$4$JJ\$$V<$n^p1[^_Ë`!Zt`!ZX!Z뷐UWVS׉Ã,D$D$D$)BD$ 3BD$8BD$$JƋD$@D$$B4$D$y\t$l$|$$D$D$ %J,[^_]Ðt&WVSÃ`|$($D$D$CBID$|$$J't`[^_Ð&D$D$ D$BD$$JD$D$D$ D$B|$$hID$ D$(B|$$dI$ع B`[^_Ð&D$ D$DB|$$$IعcB$OD$ D$nB|$$H$BD$ D$B|$$HD$ D$B8&UWVS$HtAlj t&[t'D$$B$Zt,$G"<$[[^_]fVS$'t1ہ[^Ít&@\$(@\$0$t$H$$HGt$\$$G4$XG$NG9uD$D|$>D$0D$$D$D$@D$D$> fD$<$l$<\$ l$>$D$(l$<\$l$>GFD$Dt$D$ D$@D$$$F$x(@\$(@\$0vVSTD$d@= t=tT1[^ËD$`\$$.FƉ$G\$D$4$FD$` T1[^ÐWVS T!Zt6$BT!Z$tBT!Z [^_W@T!Z [^_ËD$0$WBD$BÉ$eS$D$B\!ZPS$X!Z?D$B$T!Z?D$0$AD$T!Z$}?T!ZD$D$$?T!ZD$D$D$ T!ZD$08BD$B$kWT!ZD$$NNDD$É$WDD$$oDD$$GDD$D$D$ D$@D$B$VD$D$D$ D$@D$ʲB$VD$D$D$ D$@D$ֲB$V$DD$$iFD$$D$?FT!Zt$$M\$4$M&4$6>T!Zl!Z$h@h!Zl!Z$Vd!Zh!Z$Ud!ZÍt&VS4D$(\$@D$D$D$D$D$ $D$ D$DD$_AD$,D$D$D$$D$D$$D$ D$HD$'AL$ tCD$$\$(tD$,\$(D$$VƉ$WT$,$W4[^ËT$$tƋ\$(щ'UWVS\$WG(ZD$D$$WƐ&4$W8.tD$(ZD$$WD$$NW$D$D$ D$D$D$<WÍD$@<$D$FL$4$fJD$$=D$$=D$$=D$$=)BD$ƉD$$3Bt$D$D$ D$A$AAD$ƉD$$AD$ D$D$B4$ID$D$\$ D$pAD$B4$`ID$D$ D$Bt$$|Ap!Z\$$s@p!ZWVSD$$t$ $@ljt+f93t4$5D$$.1[u׉|$ [^_8K&x!ZuT|!Zt'D$$SD|!Z$H|!Zt!Zt$Ht!ZÐt&$Ix!Z똍WVS0t!Z*t$,|$0D$ D$$t$|$D$,BDx8D$|!Zt$ |$${C0[^_ËD$,@D$BD$!ZD$ D$D$$t9ËD$,$fJD$D$D$ D$88BD$7B$>Gt!Z$QG$t!Z7/x!Z10[^_ÐD$,@D$@BD$O&t!Zt$D$D$,$CD$,@D$@BD$ D$D$D$!Z$8ËD$,$qID$D$D$ D$88BD$7B$IF$Y.t!Z$TFt!Z|!Z$=F|!Zx!Z1v'D$0D$$YBD$0D$ Bt!Z{|!ZtD$$nA|!Z$ELA$@D$D$D$` AD$rB$T$ |!ZdE$@D$D$D$ AD$BD$ |!Z$,Edt!Z$:E|!Zt$t!ZD$,$@D$,@D$@BD$ D$D$D$!Z$6ËD$,$GD$D$D$ D$88BD$7B$yD$,Bt&|!Z${D|!ZD$0@D$oBD$ D$D$D$!Z$ 6ËD$0$FD$D$D$ D$88BD$7B$C$+x!Z1t&VSt$44$?7É$C\$4$6\$ [^Ct&'VSD$ t$$$?D$É$1?\$$t$ [^6&WVS !Zt6$,!Z$tp-!Z [^_+!Z [^_$*!ZD$0$,D$!Z$*!ZD$B$h*!ZD$D$D$ !ZD$08BD$B${B!ZD$D$D$ D$ AD$B$FB!ZD$$)9D$$;D$$9!Z\$$B9$5D$BƉ$4t$D$D$ D$$:$6D$Ɖ$64$D$J*4$D$)t$D$D$ D$$F:D$$B44$D$~8$B4D$ȴBƉ$4t$D$D$ D$$9$6D$Ɖ$54$D$)4$D$(t$D$D$ D$$9$B34$D$7$3D$BƉ$D3t$D$D$ D$$(9$L5D$Ɖ$254$D$(4$D$2(t$D$D$ D$$8$ B;D$$B34$D$6$2D$DBƉ$x2t$D$D$ D$$\8$4D$Ɖ$f44$D$'4$D$f't$D$D$ D$$7$v24$ljD$86|$D$A$9D$eB$x!Zc@$B+D$ƉD$D$ D$$7D$D$\$ D$AD$B4$e>!Z2VS$t$4D$0$'D$BD$ D$D$$ 0t$É$D$B0\$ $D$D$D$88BD$ԵB=\$0$[^%v'$[^6'UWVS,!ZtB$@'!Z$t'!Z,[^_]Ív's%!Z,[^_]D$$B6$$%!ZD$@$&D$!Z$$!ZD$ݵB$$!ZD$D$D$ !ZD$08BD$B$<!ZD$$3D$$5ƉD$!Z$3/4$ljD$D$D$ D$Q5<$D$/$B]/D$ʼn$#/,$D$.<$k/l$$D$D$ D$4$'B(|$D$D$ /BD$7B$m<l$$3.4$ljD$D$D$ D$~4<$D$.$@B.D$ʼn$P.,$D$.<$.l$$D$D$ D$4$zB(|$D$D$ /BD$7B$;l$$.2$BR>D$D$$.D$$-!Z<$D$D$D$AD$ԵBD$ :|$4$D$D$ D$K3<$D$-$BW-D$ʼn$-,$D$,<$e-l$$D$D$ D$2$öB&|$D$D$ /BD$7B$g:l$$0,4$ljD$D$D$ D$x2<$D$,$̶B,D$ʼn$J,,$D$,<$,l$$D$D$ D$2$B&|$D$D$ /BD$7B$9l$$(0#,4$ljD$D$D$ D$1<$D$+$ B+D$ʼn$w+,$D$?+<$+l$$D$D$ D$;1$DB?%|$D$D$ /BD$7B$8l$$U/$JB!-4$D$D$D$ D$0D$$0D$Ɖ$.t$<$.$TB*D$D$D$ D$4$i0$D$D$ D$\$4$=0!Z!t&'S(D$4D$xB$81҅D$0$ D$BD$ D$D$$(D$É$$D$D$D$ D$AD$ B$6([Ít&S(!Zt3$ !Z$t !Z([[!Z([Ð$!ZD$0$D$!Z$!ZD$B$!ZD$ $,!ZD$D$D$ !ZD$08BD$B$5$$B(D$É$](D$D$D$ D$AD$B$]5!Z\$$,$\!ZÍ&'D$T$@R@ +B Í&S\$ $4!Z!ZtD$!Z$4CA[ÍS\$ C$7C$7C$w7C,$l7!Z\$ @[v'D$!Z‰PS\$ $4!Z!ZtD$!Z$3CA$D$B!Z$D$D$ BD$ o!Z$D$D$BD$ K!Z$D$D$&BD$ '!Z$D$D$2BD$ !Z$D$D$CB D$ !Z$D$D$WB D$ !Z$D$D$iBD$ !Z$D$D$zBD$ s!Z$D$D$B$D$ O!Z$D$D$B(D$ +!Z$D$D$B0D$ !Z$D$D$B,D$ !Z$D$D$ƺB4D$ $D$AD$ԺB$D$@AD$B$D$ AD$BCtA[ÍvWVS\$ t$${$D$G $!Zt$$\$ @t[^_'WVSX@D$C$S$@D$C$?$@D$C$+$P$@ T$$_4D$B$U4ljD$C$#<$34$D$ B,4ljD$C $#<$34$3@0D$C,$@0$BD$ 2ƉD$C,$#4$q3P41D$C0$@4$/BD$1ƉD$C0$@#4$(3H,1D$C$$]P,tT$C($}(pBB t"!ZD$C$V#[^_Í&D$D$NBC$5#[^_Í&'D$PB0&'D$PB4&'VSXC$D$C$lt D$]BC4$'[^Í&D$XBC4$u'[^Í&D$늍v'D$w&S\$ C$.!Z\$ @['!Zt!ZÐ,$!Z0tT$dB1D$D$AD$8D$ AD$DD$$P-$!ZD$a0!Z,á!Zt!ZÐS($!Z@0tn$oB0 \$D$D$`AD$D$ AD$$e-D$8É$-\$$!Z!Z/!Z([Ít&UWVSD$> fD$$Xu|D$PD$TD$PD$C$Yl[^_]ÐO7$L$(L$$l$ t$$L$L$(L$&D$$_vD$\D$D$XD$ D$TD$D$PD$C$TD$(|$>D$>D$(l$(D$( fD$D$8D$X'l$<\$8l$>D$8ڍS\$ D$C$C$B!ZC\$ @h[WVSĀ$D$|$H$GD$($D$$T$(L$4$D$h‰T$PT$,T$TT$0)L$\)‰T$X$ 3 D$L,$D$dD$`pD$,|$$<$ƉD$n\$4$D$D$\$ D$;AD$B4$ CD$ht$$$/D$,|$$C$\$CtS$T$t$C$\$ D$D$D$|$C$#e&'S\$ D$C$C$"!ZC\$ @h[S8\$TD$D\$CD$L\$tg$qt[D$ D$C$D$r(D$(v.D$r(D$,v C8[fv'؃81[ÍvWVSĀ$D$|$H$D$($D$g$?T$(L$4$D$h‰T$PT$,T$TT$0)L$\)‰T$X $ 3 D$L|$D$dD$`D$,|$$$ƉD$\$4$bD$D$\$ D$PAD$B4$fCD$ht$$$D$,|$$C$\$CtS$T$ft$C$_\$ D$D$D$TAD$BC$\$ D$D$D$KAD$BC$C$N[^_Í&D$8D$C$D$@D$XD$DD$\ &D$ T$L$tRt L$T$D$ BD$|BD$VS$\$4t$0$;^t$[^É$D$D$Ft߉4$utӉt$0$[^t&'S\$ Ct!D$BD$$[ËCD$D$$$D$$\$$D$$C[ÐD$D$D$D$Ít&'!Zt!ZÐS($!Z0tW$=BD$D$0KAD$D$ @UAD$\$$U$!ZD$!Z([Ít&'WVS\$ $>!Z!ZtD$!Z$(CdQAChPAǃ0OAǃOACl`OAǃKAD$D$$pKA$JBD$|$t$$ǃ0TAǃSAǃSAǃPKA[^_Ít&D$$Ít&UWVSB$|$$!$GB5t$ D$D$D$AD$>B$|$$۳$^Bt$ D$D$D$AD$>B$|$$蕳$荩 [^_ÍUWVS,|$@t$D<$QÉ$X\$4$D$sBXÉ$6|$ $D$D$D$`AD$>B\$4$1f$D$*<$b$zBÉ$ʨ|$$β\$Dt$@,[^_]颲v'VS$"ZtR$"t&"Z$"Z$贪"Z$[^Ð"Z$K"Z$[^Ð&$ "ZD$0$D$"Z$躧"ZD$B$蝧"ZD$$蘧"ZD$D$D$ "ZD$AD$B$蛿D$$臸ÉD$"Z$輶$D$\$pD$BƉ$.t$$D$D$ D$D$ $$ƉD$D$D$ D$ط4$D$е苮4$D$D$D$ D$蝷耰D$$"ZK"ZD$$>"Z4$D$D$ D$D$E$B蹶D$D$Ɖ\$ D$@AD$B$"Zt$D$$4$$B^D$D$D$ D$AD$B$輽"ZD$t$$苯4$賥D$BD$$;D$(B$#D$D$D$ D$@AD$B$CD$D$D$ D$AD$>B$$D$$\$"Z:D$ D$D$B$D$D$D$ D$pAD$B$袼"ZD$D$BD$[t&'D$D$BD$;t&'D$D$BD$t&'D$D$BD$t&'D$ $D$BD$ D$ $9Í'VSD$ t$$$˱D$*BÉD$ D$ $۸)Bt$ D؉\$$[^]'D$ D$;vUWVS,"ZtB$"Z$t蟥"Z,[^_]Ív'3"Z,[^_]$D$=B$"Z譢D$@D$"Z$舢"ZD$$蓢"ZD$D$$"ZD$D$D$ "ZD$08BD$RB$yD$$eƉD$"Z$蚱4$D$:D$ $'D$ʼn$բ,$D$D$ D$\$贩\$lj$趩<$D$莩l$<$ |$4$D$D$ D$莲"Z|$ D$D$D$`AD$ZB$m$jBy4$D$D$D$ D$-$B1|$D$D$ BD$B$賹l$4$D$D$ D$ױD$ $ӱ4$ljD$D$D$ D$蝱<$D$蕯$B詫D$ʼn$G,$D$l$<$D$D$ D$;$)BW<$ʼnD$D$D$ D$ D$D$l$ D$AD$B$D$D$l$ D$AD$B$D$ $議4$ljD$D$D$ D$wD$<$o$B胪D$Ɖ$!4$D$t$D$D$ D$<$$)B1D$ƉD$D$ D$<$D$D$t$ D$AD$B$ǶD$D$t$ D$AD$B$蛶D$D$t$ D$`AD$B$oD$D$t$ D$@AD$B$C"ZUWVSӃ,T$$BL$qʼn$觮,$ݸ\$4$衮|$$蓝L$$D$ D$BL$$۝4$۵,[^_]Ít&'D$BB]'D$BB='D$1ɺB D$BB 'D$1ɺBD$1ɺBD$1ɺ!BSH"ZtSV$螴"Zt^$荞"Z$t,"ZH[Ív'Ü"ZH[Ð"Z豨D$3B$詨$:BD$<É$D$80AD$4RBD$0PAD$,jBD$(pAD$$BD$ AD$BD$AD$BD$AD$ BD$AD$BD$$虬D$B$聬"ZD$P$蠝D$"Z$w"ZD$D$D$ "ZD$08BD$B$肳$蚳"ZUWVSl"ZD$8BD$<BD$@BD$D,BD$HBBD$LLBD$PSBD$TZBD$XaBD$\tB$谜"Z$tO"Zl[^_]Ív'"Zl[^_]$誚D$$"Zm"ZD$^D$$ؚD$$豦"Z\$$"ZD$hB$"ZD$D$D$ "ZD$08BD$vB$D$$ƉD$,4$D$D$D$ D$ D$lj$$|$Bɠ$-4$D$D$D$ D$i4$D$1D$ D$|$Cj'D$$~B贤D$$z\$l$<$W\$ D$D$Bl$<$'\8tt$뵋D$,D$"Z$ "ZSD$ \$$$謝\$ D$$[vVS\$ ҧƋtv'D$4$蹧u4$D$˧[^ÍvUWVSՃeD$P$T$$T$T$T$ \$$eD$P4$D$$D$(?T$T$\$ \$dt$$rd4$dD$H$D$XT$ݜ$D$`\$T$ ݜ$D$@\$d$ eD$pT$\$XD$PT$D$8\$$tdD$P$D$$D$(?T$T$T$ \$NdD$P4$T$$T$T$\$ \$,dt$$c4$dD$8$D$XT$ݜ$D$`\$\$ D$@\$c$_dD$PT$D$@\$\$݄$$\$XcD$PƉ$T$$T$T$T$ \$cD$P4$D$$D$(?T$T$\$ \$hct$$b4$É$]St$\$$%S[^ UWVS@#Z\$C$\<#Zu䡔$Z|$P|$$gKu Ĭ[^_]á$Z$CKT$@$D$D$D$T$T$<|$T$ O?$D$,QD$$Q$D$HBUSGt$`D$LSOPGQD$(D$HD$$BUSGT$@D$L$DD$(t$1ۉL$D$T$ T$<$D$DPT$SQD$Dtlv1FC&tECD$$P;uڋ@#ZC\$$:u&;\$DrD$$D$$9t D$$6D$($P|$,<$oP<$WRĬ[^_]Ít&UW1VS#Z\$Z$HD$,$Z$,G$KCD$(S%D$OC4$S$Z9$);t;NBt"t;(D$<$XQX<$PJ4$D$R$j>rD$RC4$R$Z9r4$D$\$@YRD$ơ$Z$C$Z\$$H$KCRËD$(t$ D$XC$D$ RD$,$D$CD$QD$$Z$C$D$QD$($\S4$TS\[^_]É<$t=uX$)I4$D$QD$OC4$}Q]&D$LC4$`Q;'D$LC4$@Q떡$Z$GT$<\$$D$D$T$ ;D$<$N$)N$KCPËD$(t$ D$XC$D$P|$D$C$P$#Z$ R$ZD$C$#Z$Y>'  UWVSD$D$ D$D$@$2AD$Hq$D$LLD$$-MD$ D$PBD$PA$@AQ$ljD$8PTLFD@tlfd$CD$\OD$D$\<$$D$PR$D$hBUSGl$pD$lSOPGLD$@D$hD$BD$0BD$1C<$&BD$<$AD$AC<$AD$C<$ #ZAD$HC<$$ZAD$ C<$$ZAD$QC<$AD$VC<$$ZzAD$bC<$$ZeAD$qC<$$ZPAD$C<$$Z;AD$C<$$Z&AD$@C<$$ZA$Zv'Ct$<$@4$D$D$C#ZI<$ƉD$@4$<#ZJu #ZD$D$D$ #ZD$08BD$C$G<$G #ZlWVSD$$t$(|$,t.$ZT$ tv'[|$$օu[^_Ðt&D$ D$$/Ðt&S(\$0$F$Z$ZtD$$Z$FCBC BC BǃPBǃ0BǃBǃ BCl BǃBǃBǃBǃ0BD$D$ D$CD$C$CFD$D$D$D$ D$CD$C$C$Z9F$D$$ZD$$ZF([Í&UWVS,-$ZT$@|$DՋ]t3;>uv'39>t[u,[^_]É<$T$g/<$D$-\$E$GE$ H4$aHL$T$u%$ZmT$@D$D,[^_]E&$T$.T$tlj$4.T$빍&'WVS$Zt$ |$$t!|$4$D$;[u1[^_ÍUWVSL$ZD$`|$dÉ|$$-uf[3$A.tD$(D$D$$c.GT$()ЉT$D$D$N$Z|$D$l$, fD$G l$\$0l$)D$D$N$ZG|$D$T$l$< T$8fD$D$0l$\$4l$D$$+[0L[^_]Í'WVS 5$Z|$0<$-$>+N^ FV 11 |6jL$\$l$5 Cr2\$[ C\$ C$E[CD$ ؍v'r4\$[ C\$ C$D[ D$ v'ًvCCSC CS/\$[ C\$ C$JD[CD$H\$[ C\$ C$Dv[ D$j '؉<$+ [^_Ív'WVS0\$DD$@T$Ht$Lu $ZDT$@D$D0[^_A$;ANj$-A|$$D$ F\$D$CD$wD$ CD$ CD$D$$C0[^_Í& $ZDT$@D$D0[^_@t&'UWVSL$Zt$`T$,[tv+E$t*tmp*tMt;tVD$,$e@uFD$: CD$ C$MBt&D$89M[D$<9MۉuL[^_]ËD$,u#D$<,$D$D$8D$*빉'D$D$É$>\$$$Z$Z@$Z([Ít&UWVS-$Z\$0|$4F݅tt;t6D$$Z>u&D$] CD$ C$B@[^_]f(tt;t.D$<$>uD$: CD$ C$?$(S@8PXD$D$ ?${GD$z??^D$D$ ?${GD$z??\$<$^ %&t$E$@E$ZE\$0D$4[^_]=&'D$$=Ít&$ZT$DfUWVS,$Zt$@|$D4$=C9s#v'4$D$4C9w9rM$Z$D$>D$D$M0ʼn$$l$4$3;{0-$ZuD$$0ʼnD$|>D$u Bfmt9D$x CE$=uE$=D$D$$G>muNjl$E,$D$$Z$>,$D$ >$ZD$D$PB$c>-$Zt$@,[^_]<$ZT$DÍv'VS1Ƀ5$Z\$ D$$ދV9tbu9FF T$$_$F$Z\$ D$$[^;D$ D$D$ B$%FÃ[^Ðt&WVS0\$Dt$@D$H|$Lu$|:t$@D$D0[^_$|:Ƌ$n:t$$D$ G\$D$CD$_D$ CD$ CD$D$$<0[^_Ð&$:t$@D$D0[^_t&S\$ D$$$D$$Z\$ @[$B6ÐVS$D$D$YD$YD$D$ D$4$:D$t7j.[.d.t$ D$\$$Y;1$[^Ít&'D$ $51Ít&'UWVSƉӃLD$,D$8D$D$D$D$D$\9r79+CDGu\$,$&D$@D$`$D$d$D$h$D$l$D$p$D$t$D$x$D$|$$$$$$$$$$$$$,$=)9sxD$YD$ HYD$D$|Y$'ff<ZD$@w Z@\$ @\$@\$@L$D$ZD$ oZ@$1<ÐÐD$Ít&'D$ÐSoZD$D$\$$$Z@D$ ,D$ \$D$oZ@$ WVS05(Z=(Z1ۍW 9wzO9 9u$v5(ZމF G FD$D$D$(ZD$oZ tmD$(Pt6@t.D$ (ZD$@D$D$\$ $oZt(Z0[^_1JloZ$0 ZD$(ZDD$G$ZD$v\$$Zf|(ZtÍUWVSL|(Z8@3 (Z)čD$(Z0Z-0Z _0Z4Z=8Z<Z70ZC 0ZsIS{@@@E uET$$ Z]e[^_]û0Z0Zs됍&s;@@0Z@r١(Z1ۅ 믃;(Z}<[(Z4tލMD$L$@$oZ EȉD$ (ZD$E؉D$Ẻ$oZ덉'0Z31K!@ f@HЋE)ЉẺEf@ 0Zׁ>H)ЉẺiËŋE)ljẺN>뮋 (ZAD$A@$ZD$D$$X ZUS]=wK==D$$ t-$ c'=t)==tW(Zt=]]t&D$$P t$и]v'D$$ uD$$ ~=jD$$ tXI$|fD$$ a&D$$ A&D$$` !UWVS$(Z\oZ(Z-oZ=loZt(v$Ճׅu tC4$Ћ[u$(ZoZ[^_]Ív(ZuÍSD$ $ tBD$ $(ZD$$C\oZ(Z(Z$(ZCoZ1[ø'S(Z\$ u1[Ð&$(Z\oZ(Zt9u N9t(‹Bu$(ZoZ1[Ð&HJ$ $(ZoZыB(Zڍt&SD$$ru (Z[Ð(Z(Zuޡ(ZtX$ ۉu(Z(Z$(ZXoZ랉'(Zt(Z[Ív$(ZoZYt&c@<8PEt1ffx ÍvD$f8MZt1f΍&'VST$ \$R<rBDt1ɐP 9wP9r (9u1[^ÍvUWVS|$0<$11҃w f=@MZt [^_]Ð@Ft<@@@h\t1 (9t&D$|$$uރډ[^_]f1[^_]Ít&1f=@MZtVS@tJ<@\$ @@@rDt"1ɍP 9rP9r(9u1ɉ[^Ð[^É'1f=@MZtÐ@Ft<@@Ðt&V1f=@MZSL$ t [^Ð&@t<@@@ZDt1f@' tt(9u1[^fƉ[^É'1f=@MZtø@@EЉÉ'1f=@MZtfVS@dtJ<@\$ @@@rDt 1ɍP 9rP9r(9u1[^f@$[^t&WV1f=@MZS\$t [^_Í@t<@@@tyQTtJ 9rJ9r(9u1[^_@u t&HuP tׅp [@^_ÐQP=L$ r -=w) XYÐffUW1VS,\$DD$L|$@t$Hۉ‰\$ |$҉t$|$ L$߅\$t$u9vW։1 9vD$t؃ڃ,[^_]׃T$ur99؋T$ɍv'u 11뒍vك[t&\$T$ \$ 4'L$ )ӉT$T$L$ ׋T$|$L$T$ډщL$ ljD$t$d$9ӉƉru9s +D$T$щƋD$|$)L$ v')t$D$|$ T$$,$l$Ð,D$0r/$\$kD$ Zv% Z,Ðt&\$$8D$ Zv% Z,ÃLD$Pf%Ef=tjf=t<$\$8D$8L\$0 Z!D$ ZT$$\$(\$D$0\$D$(LÉ'\$(kD$(!D$ ZT$$\$\$D$(n,D$0$1\$D$,Ðl$uuÐffffLD$Pf%Ef=tjf=t<$\$8D$8L\$0 Z!D$ ZT$$\$(\$D$0\$D$(LÉ'\$([D$(!D$ ZT$$\$\$D$(n,D$0$1\$D$,Ðl$uuÐD$|$ T$$,$l$Ð%8pZ%4pZ%0pZ%,pZ%(pZ%$pZ% pZ%pZ%pZ%pZ%pZ% pZ%pZ%pZ%pZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZ%oZff(ZÍv'D$(ZÐ$BÐ$BÐUS qD$$pY]tD$D$pY$YD$($YD$ÉD$ $D$B$D$D$YD$D$ D$D$Y$D$YD$YD$D$ D$D$YYK$D$D$YD$D$ D$D$fY$D$D$YD$D$ D$D$]Y$D$D$D$ D$pBD$Y$D$D$D$ D$.BD$Y$D$D$D$ D$2BD$ Y$D$D$D$ D$BD$YE $D$ED$1]ÐU]whBjB hB B @B@@B0@BBBBB̚BؚBߚBBBBBBB&B*B.B6B>BIBTB]BfBBmBuB}BBBBBB B/B8BZBcBwBBBBBBܤBBBBB)B/B6B>BEBMBTBZB_BdBiBpBBBB+B9BGBUBZBeBqB}BBBBBBBBBļB̼BԼBܼBBBBBB BBB!B'B.B5BBFBNBVB^BoBzBBBBBBBBBBBB#B5BEBUBbBlBvBBBBBBBBBBBBBBBBB'B2B=BDBLBTB\BdBnByBBBBBBBBBBBBBBBB"B1B@BOB]BlB{BBBBBBBBBBBBBBBBB BBB$B+B3B;BCBKBOBTBYB^BcBmBxBBBBBBBBBBBBBBB BB B*B4B>BGBQB[BeBoBvB~BBBBBBBBBBBBBBB BBB*B5B?BDBJBPBVB\BhBuBBBBBBBBBBBBBBBBB BBB"B*B2B:BBBLBWBbBmBxBBBBBBBBBBBBBBBBBBB|BBBBBBBBBBB)B/B6B=BABGB#C B+CB4C@B:CB@CBDC`BICBNCBUCB_CBgCBpCByCCCCCCCCCCC"C/C9CLCpCzCCCCCCCCCC&C3CDCQCbCkCxCCCCCCCCC CYY B+Y B1YBlY}YY@YYY@YBYYY@YYY"@ YY(Yp0@8YBYLY`6@XYaYoY=@zYYYE@YYYg@YYY@n@YYYu@Y B YYY`@(Y0Y9Y$ACYRYbY@@sY|YY@YYY@Y BYYY AYYY0AYYY`AYZ Z@ AZZZ 5A'Z3Z@Z9ANZB`ZgZsZP@|ZBZZZPdAZBZZZ0gAZZZpAZZZpuAZ@BZZZAZ!Z'ZA/Z9ZJZИAVZ`ZlZAxZZZХAZZZ@AZZZAZZZpAZ`BZ BZZZA#Z.ZHZp@UZB_ZlZyZЅAZZZAZZZBZZZ|AZZZXA ZZ(Z\A3Z?ZLZ@AZZkZzZ IAZZZ@VAZZZ@ZZZ0AZ"Z,Z`@8Z?ZFZ/AOZTZYZA`ZiZxZ AZZZAZZZ@ZZZ@ZZZ@*Z7ZDZPASZaZvZpAZZZ`}@ZZZ@@ZZZ(AZ ZZ A"Z0Z>Z@M@NZYZdZP@qZZZS@ZZZ`X@ZZZ]@ZZZb@)Z?ZMZAjBgBgBN@Dlibgcj-16.dll_Jv_RegisterClasses./gtk3-demo-application.exegtk3-demo-applicationorg.gtk.Demo2%squit(sava{sv})Activateorg.gtk.Actions/org/gtk/Demo2Sample assistant (%d of %d)You must fill out this entry to continue:changedPage 1This is optional data, you may continue even if you do not check thisPage 2This is a confirmation page, press 'Apply' to apply changesConfirmationApplying changescancelcloseapplyprepare?Help not available builderaboutdialog1/builder/demo.uiwindow1destroytoolbar1primary-toolbarwinnew_itemactivateopen_itemsave_itemquit_itemcopy_itemcut_itempaste_itemhelp_itemabout_itemquitabouthelpOKCancelHelpButton BoxesdestroyHorizontal Button BoxesSpreadEdgeStartEndCenterExpandVertical Button Boxes_OK_CancelOpen DisplayPlease enter the name of the new display Can't open display: %s please try another one closedPlease select the toplevel to move to the new screenmargincrosshairbutton-release-eventDisplay_Open...clicked_ClosetextNamechangedChangeCloseChange Displayresponsedestroydisplay-openedImage storage type %d not handled_Copyactivate_PasteClipboarddestroy"Copy" will copy the text in the entry to the clipboardclicked"Paste" will paste the text from the clipboard to the entryImages can be transferred via the clipboard, toodialog-warningdrag-begindrag-data-getdrag-data-receivedbutton-press-eventprocess-stopChanging colorresponseColor Chooserdestroydraw_Change the above colorclickedsensitiveA - BAlbanyAnnapolisAtlantaAugustaAustinBaton RougeBismarckBoiseBostonC - DCarson CityCharlestonCheyenneColumbiaColumbusConcordDenverDes MoinesDoverE - JFrankfortHarrisburgHartfordHelenaHonoluluIndianapolisJacksonJefferson CityJuneauK - OLansingLincolnLittle RockMadisonMontgomeryMontpelierNashvilleOklahoma CityOlympiaP - SPhoenixPierreProvidenceRaleighRichmondSacramentoSalemSalt Lake CitySanta FeSpringfieldSt. PaulT - ZTallahasseeTopekaTrentonMaskEntrydialog-warningCombo BoxesdestroyItems with iconsprocess-stopdocument-newedit-cleardocument-openWarningStopNewClearOpenseparatoricon-nametextWhere are we ?EditableOneTwo2½Three^([0-9]*|One|Two|2½|Three)$String IDsNot visibleneverVisible when activewhen-activeAlways visiblealwaysactive-idCSS AccordiondestroyThisIsACSSAccordion:-)/css_accordion/css_accordion.csswarningerrorCSS Basicsdestroyunderlinechanged/css_basics/css_basics.cssparsing-error/css_blendmodes/css_blendmodes.css/css_blendmodes/blendmodes.uiwindowdestroyscrolledwindowrow-activatedxalignlabelnormalactivateColorcolorColor (burn)color-burnColor (dodge)color-dodgeDarkendarkenDifferencedifferenceExclusionexclusionHard Lighthard-lightHuehueLightenlightenLuminosityluminosityMultiplymultiplyNormalOverlayoverlaySaturatesaturateScreenscreenSoft Lightsoft-lightwarningerrorMultiple Backgroundsdestroycanvasdrawbricks-buttonunderlinechanged/css_multiplebgs/css_multiplebgs.cssparsing-errorwarningerrorAnimated Backgroundsdestroyunderlinechanged/css_pixbufs/gtk.cssparsing-errorwarningerrorgo-nextgo-previousHello WorldShadowsdestroyunderlinechanged/css_shadows/gtk.cssparsing-errorimage-missing/cursors/%s_cursor.png-image-buttonclickedCursorsdestroymargin-bottommargin-endmargin-startGeneraldefaultnoneLink & Statuscontext-menuhelppointerprogresswaitSelectioncellcrosshairtextvertical-textDrag & Dropaliascopymoveno-dropnot-allowedgrabgrabbingResize & Scrollingall-scrollcol-resizerow-resizen-resizee-resizes-resizew-resizene-resizenw-resizese-resizesw-resizeew-resizens-resizenesw-resizenwse-resizeZoomzoom-inzoom-out_OK_CancelInteractive Dialogdialog-question_Entry 1E_ntry 2This message box has been popped up the following number of times:%dDialogs and Message BoxesdestroyDialogs_Message Dialogclicked_Interactive DialogDrawing AreadestroyCheckerboard patterndrawScribble areaconfigure-eventmotion-notify-eventbutton-press-event@@@ŊL? Aarticles != NULLDescription herecolumnEditable CellsdestroyShopping list (you can edit the cells!)editablehas-entrytext-columnmodeleditedediting-startedtextNumberProductvalueYummyAdd itemclickedRemove itembottles of cokepackages of noodlespackages of chocolate chip cookiescan vanilla ice creameggsadd_itemsadd_itemEntry BufferdestroyEntries share a buffer. Typing in one is reflected in the other.GNOMEtotaltotallyEntry CompletiondestroyCompletion demo, try writing total or gnome for example.UnknownSource: %s Sequence: %d Tool: %s, Serial: %lx%saction-result%s %.2fTiltDistance☢Event Axesdestroygtk-demo-event-dataeventdrawdactivatepad-controllerPenEraserBrushPencilAirbrushMouseLens cursorBBBBBBB♨☼☄⚡💫◑⚛9BܣBBBBBBBNuclear strikepad.nukeRelease siberian methane reservespad.heatRelease solar flarepad.fryDe-stabilize Oort cloudpad.fallIgnite WR-104pad.burstLart whoever asks about this buttonpad.lartEarth axial tiltpad.tiltExtent of weak nuclear forcepad.dissolveblackorchidfuchsiaindigothistlesiennaazureplumlimenavymaroonburlywood AB-DT!@@?-DT! @-DT! HHBpfillexpandSomething went wrong%sHere are some more details but not the full story.Details:Finally, the full story with all details. And all the inside information, including error codes, etc etc. Pages of information, you might have to scroll down to read it all, or even resize the window - it works ! A second paragraph will contain even more innuendo, just to make you scroll down or resize the window. Do it already !notify::expandedresponsefiltermodel.ccolumn%dtext/filtermodel/filtermodel.uiwindow1destroyliststore1treeviewcolumn1cellrenderertext1editedtreeviewcolumn2cellrenderertext2treeviewcolumn3cellrenderertext3treeviewcolumn4cellrenderertext4treeviewcolumn5cellrenderertext5treeviewcolumn6cellrendererpixbuf1visibletreeview2treeviewcolumn7cellrenderertext6treeviewcolumn8cellrenderertext7treeview3filter_modify_funcstatsicons - %.1f fps/fishbowl/fishbowl.uiwindowbowlinfo_labelchanges_allowdestroy$tIJactive#.:Unknown type name `%s'foreigndrawing.cUnknown pseudo-class :%smin-heightmin-widthcheckbuttoncheckradiobuttonradiocombobox:focusbox.horizontal.linkedentry.combo:focusbutton.combobox.horizontalarrowlabel.viewselectionscrollbar.horizontal.bottomcontentstroughsliderNot selectedSelectedprogressbar.horizontalprogress.leftscale.horizontalhighlight.topnotebook.frameheader.toptabstab:checkedtab:hoverstackmenumenuitem:hoverarrow.right:dir(ltr)menuitemarrow:dir(rtl)menuitem:disabledcheck:checkedseparator:disabledradio:checkedframebordermenubarspinbutton.horizontal:focusentry:focusbutton.up:focus:activebutton.down:focuslist-add-symboliclist-remove-symbolicForeign drawingdestroydrawappend_elementhoverselecteddisabledindeterminatefocusbackdropdir(ltr)dir(rtl)linkvisitedcheckeddrop(active)BBBBBB ìB@̬BլBެBBBB-DT!?A A?Gesturesdestroydrawswipen-pointswidgetbeginpressedendangle-changedscale-changed A@?HC-DT!@HBvertexfragmentCompile failure in %s shader: %saxis >= 0 && axis < N_AXISglarea.c/glarea/glarea-gles.fs.glsl/glarea/glarea-gles.vs.glsl/glarea/glarea-gl.fs.glsl/glarea/glarea-gl.vs.glslLinking failure: %smvpOpenGL AreadestroyrealizeunrealizerenderX axisvalue-changedQuitclickedZ axisY axison_axis_value_change???Zd?Zd?9RFߑ?@ACdestroyWelcome to Facebook - Log in, sign up or learn moremail-send-receive-symboliclinkedpan-start-symbolicpan-end-symbolicpageunderlineblueforegroundSome text to show that simple hyper text can easily be realized with tags.A tag is an attribute that can be applied to some range of text. For example, a tag might be called "bold" and make the text inside the tag bold. However, the tag concept is more general than that; tags don't have to affect appearance. They can instead affect the behavior of mouse and key presses, "lock" a range of text so the user can't edit it, or countless other things. Go backweighthypertext: machine-readable text that is not sequential but is organized so that related items of information are connected. pointertextHypertextdestroykey-press-eventevent-aftermotion-notify-event/Icon View Basicsdestroy/iconview/gnome-fs-regular.png_Upgo-up_Homego-homeclickeditem-activatedfile_pixbuficonview.c/iconview/gnome-fs-directory.pngfolder_pixbufload_pixbufspixbufRedEditing and Drag-and-DropdestroyGreenBlueYelloweditableeditedtextCFailure reading image file 'alphatest.png': %sresponseFailed to load image: %s/images/alphatest.png%sarea-preparedarea-updatedImagesdestroyImage loaded from a filegtk3-demoAnimation loaded from a file/images/floppybuddy.gifSymbolic themed iconbattery-caution-charging-symbolicProgressive image loading[gtk+] progressive_timeout_InsensitivetoggledYou clicked a button on an info barYour response has id %dresponseInfo BarsdestroyThis is an info bar with message type GTK_MESSAGE_INFOMessagevisibleactiveThis is an info bar with message type GTK_MESSAGE_WARNINGWarning_OKThis is an info bar with message type GTK_MESSAGE_QUESTIONQuestionThis is an info bar with message type GTK_MESSAGE_ERRORErrorThis is an info bar with message type GTK_MESSAGE_OTHEROtherInfo barsAn example of different info barskeynavThe term keynav is a shorthand for keyboard navigation and refers to the process of using a program (exclusively) via keyboard input.responseLinksdestroySome text may be marked up as hyperlinks, which can be clicked or activated via keynav and they work fine with other markup, like when searching on Google.activate-link/listbox/listbox.uicontent_labelsource_namesource_nickshort_time_labeldetailed_time_labelextra_buttons_boxdetails_revealeravatar_imageresent_boxresent_by_buttonn_reshares_labeln_favorites_labelexpand_buttonexpand_clickedreshare_clickedfavorite_clicked%e %b %y%X - %e %b %Y%d Favorites%d Reshares@GTKtoolkitgtk3-demoHideExpandGtkMessageGtkMessageRow/listbox/apple-red.pngList BoxdestroyMessages from Gtk+ and friendsrow-activated/listbox/messages.txt |Flow BoxdestroydrawAliceBlueAntiqueWhiteAntiqueWhite1AntiqueWhite2AntiqueWhite3AntiqueWhite4aquaaquamarineaquamarine1aquamarine2aquamarine3aquamarine4azureazure1azure2azure3azure4beigebisquebisque1bisque2bisque3bisque4blackBlanchedAlmondblueblue1blue2blue3blue4BlueVioletbrownbrown1brown2brown3brown4burlywoodburlywood1burlywood2burlywood3burlywood4CadetBlueCadetBlue1CadetBlue2CadetBlue3CadetBlue4chartreusechartreuse1chartreuse2chartreuse3chartreuse4chocolatechocolate1chocolate2chocolate3chocolate4coralcoral1coral2coral3coral4CornflowerBluecornsilkcornsilk1cornsilk2cornsilk3cornsilk4crimsoncyancyan1cyan2cyan3cyan4DarkBlueDarkCyanDarkGoldenrodDarkGoldenrod1DarkGoldenrod2DarkGoldenrod3DarkGoldenrod4DarkGrayDarkGreenDarkGreyDarkKhakiDarkMagentaDarkOliveGreenDarkOliveGreen1DarkOliveGreen2DarkOliveGreen3DarkOliveGreen4DarkOrangeDarkOrange1DarkOrange2DarkOrange3DarkOrange4DarkOrchidDarkOrchid1DarkOrchid2DarkOrchid3DarkOrchid4DarkRedDarkSalmonDarkSeaGreenDarkSeaGreen1DarkSeaGreen2DarkSeaGreen3DarkSeaGreen4DarkSlateBlueDarkSlateGrayDarkSlateGray1DarkSlateGray2DarkSlateGray3DarkSlateGray4DarkSlateGreyDarkTurquoiseDarkVioletDeepPinkDeepPink1DeepPink2DeepPink3DeepPink4DeepSkyBlueDeepSkyBlue1DeepSkyBlue2DeepSkyBlue3DeepSkyBlue4DimGrayDimGreyDodgerBlueDodgerBlue1DodgerBlue2DodgerBlue3DodgerBlue4firebrickfirebrick1firebrick2firebrick3firebrick4FloralWhiteForestGreenfuchsiagainsboroGhostWhitegoldgold1gold2gold3gold4goldenrodgoldenrod1goldenrod2goldenrod3goldenrod4graygray0gray1gray10gray100gray11gray12gray13gray14gray15gray16gray17gray18gray19gray2gray20gray21gray22gray23gray24gray25gray26gray27gray28gray29gray3gray30gray31gray32gray33gray34gray35gray36gray37gray38gray39gray4gray40gray41gray42gray43gray44gray45gray46gray47gray48gray49gray5gray50gray51gray52gray53gray54gray55gray56gray57gray58gray59gray6gray60gray61gray62gray63gray64gray65gray66gray67gray68gray69gray7gray70gray71gray72gray73gray74gray75gray76gray77gray78gray79gray8gray80gray81gray82gray83gray84gray85gray86gray87gray88gray89gray9gray90gray91gray92gray93gray94gray95gray96gray97gray98gray99greengreen1green2green3green4GreenYellowgreygrey0grey1grey10grey100grey11grey12grey13grey14grey15grey16grey17grey18grey19grey2grey20grey21grey22grey23grey24grey25grey26grey27grey28grey29grey3grey30grey31grey32grey33grey34grey35grey36grey37grey38grey39grey4grey40grey41grey42grey43grey44grey45grey46grey47grey48grey49grey5grey50grey51grey52grey53grey54grey55grey56grey57grey58grey59grey6grey60grey61grey62grey63grey64grey65grey66grey67grey68grey69grey7grey70grey71grey72grey73grey74grey75grey76grey77grey78grey79grey8grey80grey81grey82grey83grey84grey85grey86grey87grey88grey89grey9grey90grey91grey92grey93grey94grey95grey96grey97grey98grey99honeydewhoneydew1honeydew2honeydew3honeydew4HotPinkHotPink1HotPink2HotPink3HotPink4IndianRedIndianRed1IndianRed2IndianRed3IndianRed4indigoivoryivory1ivory2ivory3ivory4khakikhaki1khaki2khaki3khaki4lavenderLavenderBlushLavenderBlush1LavenderBlush2LavenderBlush3LavenderBlush4LawnGreenLemonChiffonLemonChiffon1LemonChiffon2LemonChiffon3LemonChiffon4LightBlueLightBlue1LightBlue2LightBlue3LightBlue4LightCoralLightCyanLightCyan1LightCyan2LightCyan3LightCyan4LightGoldenrodLightGoldenrod1LightGoldenrod2LightGoldenrod3LightGoldenrod4LightGoldenrodYellowLightGrayLightGreenLightGreyLightPinkLightPink1LightPink2LightPink3LightPink4LightSalmonLightSalmon1LightSalmon2LightSalmon3LightSalmon4LightSeaGreenLightSkyBlueLightSkyBlue1LightSkyBlue2LightSkyBlue3LightSkyBlue4LightSlateBlueLightSlateGrayLightSlateGreyLightSteelBlueLightSteelBlue1LightSteelBlue2LightSteelBlue3LightSteelBlue4LightYellowLightYellow1LightYellow2LightYellow3LightYellow4limeLimeGreenlinenmagentamagenta1magenta2magenta3magenta4maroonmaroon1maroon2maroon3maroon4MediumAquamarineMediumBlueMediumOrchidMediumOrchid1MediumOrchid2MediumOrchid3MediumOrchid4MediumPurpleMediumPurple1MediumPurple2MediumPurple3MediumPurple4MediumSeaGreenMediumSlateBlueMediumSpringGreenMediumTurquoiseMediumVioletRedMidnightBlueMintCreamMistyRoseMistyRose1MistyRose2MistyRose3MistyRose4moccasinNavajoWhiteNavajoWhite1NavajoWhite2NavajoWhite3NavajoWhite4navyNavyBlueOldLaceoliveOliveDrabOliveDrab1OliveDrab2OliveDrab3OliveDrab4orangeorange1orange2orange3orange4OrangeRedOrangeRed1OrangeRed2OrangeRed3OrangeRed4orchidorchid1orchid2orchid3orchid4PaleGoldenrodPaleGreenPaleGreen1PaleGreen2PaleGreen3PaleGreen4PaleTurquoisePaleTurquoise1PaleTurquoise2PaleTurquoise3PaleTurquoise4PaleVioletRedPaleVioletRed1PaleVioletRed2PaleVioletRed3PaleVioletRed4PapayaWhipPeachPuffPeachPuff1PeachPuff2PeachPuff3PeachPuff4perupinkpink1pink2pink3pink4plumplum1plum2plum3plum4PowderBluepurplepurple1purple2purple3purple4redred1red2red3red4RosyBrownRosyBrown1RosyBrown2RosyBrown3RosyBrown4RoyalBlueRoyalBlue1RoyalBlue2RoyalBlue3RoyalBlue4SaddleBrownsalmonsalmon1salmon2salmon3salmon4SandyBrownSeaGreenSeaGreen1SeaGreen2SeaGreen3SeaGreen4seashellseashell1seashell2seashell3seashell4siennasienna1sienna2sienna3sienna4silverSkyBlueSkyBlue1SkyBlue2SkyBlue3SkyBlue4SlateBlueSlateBlue1SlateBlue2SlateBlue3SlateBlue4SlateGraySlateGray1SlateGray2SlateGray3SlateGray4SlateGreysnowsnow1snow2snow3snow4SpringGreenSpringGreen1SpringGreen2SpringGreen3SpringGreen4SteelBlueSteelBlue1SteelBlue2SteelBlue3SteelBlue4tantan1tan2tan3tan4tealthistlethistle1thistle2thistle3thistle4tomatotomato1tomato2tomato3tomato4turquoiseturquoise1turquoise2turquoise3turquoise4violetVioletRedVioletRed1VioletRed2VioletRed3VioletRed4wheatwheat1wheat2wheat3wheat4whiteWhiteSmokeyellowyellow1yellow2yellow3yellow4YellowGreenNormalscrollable notebooks and hidden tabsbattery-caution-charging-symbolicList StoredestroyThis is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though).toggledactiveFixed?textBug numberSeverityDescriptionpulseSpinningsensitiveicon-nameSymbolic icondelete-eventCriticalgdk_window_clear_area (gdkwindow-win32.c) is not thread-safeMajorXft support does not clean up correctlyGtkFileSelection needs a refresh method. Can't click button after setting in sensitiveGtkLabel - Not all changes propagate correctlyRework width/height computations for TreeViewgtk_dialog_set_response_sensitive () doesn't workGetters for all settersGtkcalender sizeSelectable label needs right-click copy menuAdd shift clicking to GtkTextViewEnhancementnetscape-like collapsable toolbarsFirst bug :=)B B(BBB&BBBB B$B# BTB BB BB BB] BB BB B@BbBpB BBsourceformatteddestroySourcetoggledMarkup/markup/markup.txtitem %2d - %dpack-directionMenusdestroytest line2foobarFlipclickedCloseactive/modelbutton/modelbutton.uitool_clickedwindow1destroywincolors'red'chocolatetruevanillafalsesprinklespick-embedded-childto-embedderfrom-embeddercallback != NULLGtkRotatedBin cannot have more than one childGtkRotatedBindamage-eventGTK_IS_ROTATED_BIN (bin)Rotated ButtondestroyA Buttonvalue-changedgtk_rotated_bin_set_anglegtk_rotated_bin_forall?{Gz?-DT!?pick-embedded-childto-embedderfrom-embeddercallback != NULLGtkMirrorBin cannot have more than one childGtkMirrorBindamage-eventEffectsdestroygo-previousApplygtk_mirror_bin_forall333333? {Gz?>?@?Interactive Overlay%dclickedNumbersYour Lucky Numberdestroypixels-above-linesDecorative OverlayDear diary...top-margindestroy/overlay2/decor1.png/overlay2/decor2.pngvalue-changedMarginBshrinkresize_Resizetoggled_ShrinkdestroyPaned Widgets_Hi thereRightLeftHorizontalBottomTopVerticalPickersdestroyColor:Font:File:Pick a FileFolder:Pick a FolderMail:x-scheme-handler/mailto/pixbufs/apple-red.pngPixbufsdestroy/pixbufs/background.jpgFailed to load an image: %sresponsedraw/pixbufs/gnome-applets.png/pixbufs/gnome-calendar.png/pixbufs/gnome-foot.png/pixbufs/gnome-gmush.png/pixbufs/gnome-gimp.png/pixbufs/gnome-gsame.png/pixbufs/gnu-keys.pngB B$B@BXBqBBB>7J?-DT!@>@@CB-DT! @popover-icon-posdestroyButtonThis popover does not grab inputtoggled/popover/popover.uiwindowedit-findedit-clearicon-presssize-allocateday-selectedsans 14%d/%dmonospace /sources/printing.cbegin-printdraw-pageend-printgtk-demooutput-basename%sresponsebX<@??@DflB@A !@@Abuilderrevealer%dnotify::child-revealed/revealer/revealer.uiwindowdestroy♥Serif 18Rotated TextdestroyviewdrawI ♥ GTK+:????Cv/?4B/scale/scale.uiwindow1destroySearch by file name Click here to change the search typefile nameSearch by description Click here to change the search typedescriptionSearch by name Click here to change the search typenameSearch by _nameactivateSearch by _descriptionSearch by _file nameC_learSearch bySearch EntrydestroySearch entry demoFindclickedCancelicon-presspopulate-allpopulate-popupstop-searchprevious-matchnext-matchsearch-changedchanged: %ssearch changed: %sDelayed Search Entrydestroykey-press-eventStart Typing to searchSearchsearch-mode-enabledactiveResult:changedSignal:/shortcuts/%s.uiview-namedisplayshortcuts-boxeswizardstopwatchshortcuts-clocksshortcuts-geditshortcuts-builder/icons/shortcuts/shortcuts.uiboxes_shortcuts_displayboxes_shortcuts_wizardboxes_shortcutsclocks_shortcuts_stopwatchclocks_shortcutsgedit_shortcutsbuilder_shortcutswindow1destroyWelcome to GTK+GtkStackSidebar WidgetAutomatic navigationConsistent appearanceScrollingPage 6Page 7Page 8Page 9Stack Sidebardestroyhelp-abouttitleSize Groupsdestroysize-groupColor Options_Foreground_BackgroundLine Options_Dashing_Line ends_Enable groupingtoggledSquareRoundDouble ArrowSolidDashedDottedRedGreenBlue%gJanuary%02.0f:%02.0f:0x000x%.2X/spinbutton/spinbutton.uimonth_spin_outputmonth_spin_inputtime_spin_outputtime_spin_inputhex_spin_outputhex_spin_inputwindowSpin Buttonsdestroybasic_adjustmentbasic_labellabelvaluehex_adjustmenthex_labeltime_adjustmenttime_labelmonth_adjustmentmonth_labelFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecembercBBBBBBBBBBBBh㈵>pB?_CloseSpinnerresponsedestroyPlayclickedStop/stack/stack.uiwindow1destroyTabsdestroyone two three four five six seven eight ninePango power! Pango power! Pango power!sans bold 34Text MaskdestroydrawAA?333333??333333?ffffff???Click MeclickedOption 1Option 2Option 3/textview/floppybuddy.giftextview.cThis buffer is shared by a set of nested text views. Nested view: Don't do this in real applications, please. destroyMultiple Viewssizeweightheadingstyleitalicboldbigscalexx-smallx-largemonospacefamilyblueforegroundblue_foregroundredbackgroundred_backgroundpixels_above_linesbig_gap_before_linepixels_below_linesbig_gap_after_linepixels_inside_wrapdouble_spaced_lineeditablenot_editablewrap_modeword_wrapchar_wrapno_wrapjustificationcenterright_justifyright_marginleft_marginwide_marginsstrikethroughunderlinedouble_underlinerisesuperscriptsubscriptindentdirectionrtl_quotegtk3-demoThe text widget can display text with all kinds of nifty attributes. It also supports multiple views of the same buffer; this demo is showing the same buffer in two places. Font styles. For example, you can have , , or monospace (typewriter) text. It's best not to hardcode specific text sizes; you can use relative sizes as with CSS, such as or to ensure that your program properly adapts if the user changes the default font size. Colors. Colors such as a blue foregrounda red background or even a blue foreground on red background (select that to read it) can be used. Underline, strikethrough, and rise. Strikethroughdouble underline, and are all supported. Images. The buffer can have images in it: for example. Spacing. You can adjust the amount of space before each line. This line has a whole lot of space before it. You can also adjust the amount of space after each line; this line has a whole lot of space after it. You can also adjust the amount of space between wrapped lines; this line has extra space between each wrapped line in the same paragraph. To show off wrapping, some filler text: the quick brown fox jumped over the lazy dog. Blah blah blah blah blah blah blah blah blah. Also note that those lines have extra-wide margins. Editability. This line is 'locked down' and can't be edited by the user - just try it! You can't delete this line. Wrapping. This line (and most of the others in this buffer) is word-wrapped, using the proper Unicode algorithm. Word wrap should work in all scripts and languages that GTK+ supports. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah This line has character-based wrapping, and can wrap between any two character glyphs. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah This line has all wrapping turned off, so it makes the horizontal scrollbar appear. Justification. This line has center justification. This line has right justification. This line has big wide margins. Text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text. Internationalization. You can put all sorts of Unicode text in the buffer. German (Deutsch Süd) Grüß Gott Greek (Ελληνικά) Γειά σας Hebrew שלום Japanese (日本語) The widget properly handles bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, grapheme boundaries, and so on using the Pango internationalization framework. Here's a word-wrapped quote in a right-to-left language: وقد بدأ ثلاث من أكثر المؤسسات تقدما في شبكة اكسيون برامجها كمنظمات لا تسعى للربح، ثم تحولت في السنوات الخمس الماضية إلى مؤسسات مالية منظمة، وباتت جزءا من النظام المالي في بلدانها، ولكنها تتخصص في خدمة قطاع المشروعات الصغيرة. وأحد أكثر هذه المؤسسات نجاحا هو »بانكوسول« في بوليفيا. You can put widgets in the buffer: Here's a button: and a menu: and a scale: and an animation: finally a text entry: . This demo doesn't demonstrate all the GtkTextBuffer features; it leaves out, for example: invisible/hidden text, tab stops, application-drawn areas on the sides of the widget for displaying breakpoints and such...pixbufattach_widgetsinsert_textB*h/?Hգp= ?endscrolldestroy Scroll to bottom scroll to bottom scroll to bottom scroll to bottom %dScroll to end scroll to end scroll to end scroll to end %dAutomatic ScrollingStyle Classesdestroy/theming_style_classes/theming.uigridNULL == drop_itemtoolpalette.cnew-rowfillexpandhomogeneousTool PalettedestroyHorizontalVerticaltextTextBothBoth: HorizontalIconsDefaultRadio ItemAnimationsGot context '%s'emblem-desktop-symbolicGot id '%s'#%dAdvanced Featureshomogeneous=FALSEhomogeneous=FALSE, expand=TRUEhomogeneous=FALSE, expand=TRUE, fill=FALSEhomogeneous=FALSE, expand=TRUE, new-row=TRUEgo-upShow on vertical palettes onlygo-nextShow on horizontal palettes onlyedit-deleteDo not show at allview-fullscreenExpanded this itemhelp-browserA regular itemchangeddrag-data-receivedsignal::drag-data-receivedsignal::drawPassive DnD Modesignal::drag-dropsignal::drag-leavesignal::drag-motionInteractive DnD Modepassive_canvas_drag_data_receivedinteractive_canvas_drag_data_received?333333?destroyTransparency* { border-width: 0px %dpx %dpx 0px; }draw@columnTree StoredestroyJonathan's Holiday Card Planning SheetxaligntextHolidaytoggledactivatablevisibleactiveAlexHavocTimOwenDaverealizeJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberPearl Harbor Remembrance DayChristmasKwanzaaMarine Corps DayVeterans' DayThanksgivingNational Children's DayBosses' DaySweetest DayMother-in-Law's DayNavy DayColumbus DayHalloweenGrandparents' DayCitizenship Day or Constitution DayLabor DayAir Force DayCoast Guard DayFriendship DayParents' DayIndependence DayJune Fathers' DayJuneteenth (Liberation of Slaves)Flag DayNurses' DayNational Day of PrayerMothers' DayArmed Forces DayMemorial DayApril Fools' DayArmy DayEarth DayAdministrative Professionals' DayNational Tree Planting DaySt Patrick's DayPresidents' DayGroundhog DayValentine's DayNew Years DayPresidential InaugurationMartin Luther King Jr. dayentrykern, 1 0%slabelCommonDefaultMathArabic%s - %s/font_features/font-features.uiupdate_displayfont_changedscript_changedresetswitch_to_entryswitch_to_labelentry_key_presswindowsettingsfontscript_langnumcasedefaultnumspacedefaultfractiondefaultstack_presdestroyRomanianSkolt SamiNorthern SamiKildin SamiMoldavianTurkishAzerbaijaniCrimean TatarSerbianGermanC ARAC MORC SKSC MSNC MSKC LOMC KRTC EZAC TRCC BRSC UEDInheritedUnknownArmenianBengaliCyrillicDevanagariGeorgianGreekGujaratiGurmukhiHangulHanHebrewHiraganaKannadaKatakanaLaoLatinMalayalamOriyaTamilTeluguThaiTibetanBopomofoCyyyZxChniZCzzzZCbarACnmrACgneBClryCCaveDCroeGCkerGCrjuGCuruGCgnaHCinaHCrbeHCariHCadnKCanaKCooaLCntaLCmylMCayrOClmaTCuleT#CiahT(CtbiT0CopoBligadlighligcligsmcpc2scpcapc2pcuniccpspcaselnumonumpnumtnumfracafrczeronaltsinfswshcswhloclcalthistsalttitlrandsubssupsinitmedifinaisolss01ss02ss03ss04ss05FCCC"C'C,C1C6C;C@CECJCOCTCYC^CcChCmCrCwC|CCCCCCCCCCCCCCCCCCC?Whether children are moving aroundanimatingNumber of widgetsCountcountpropertygtkfishbowl.c%s:%d: invalid %s id %u for "%s" of type '%s' in '%s'GTK_IS_WIDGET (widget)GtkFishbowlGTK_IS_FISHBOWL (fishbowl)symbolicgtk_widget_measuregtk_fishbowl_add$tI?{Gz?GVariantl( ""#%%%&(*,.0223333345588889:;<<>@ABDEFFFHHHJJLNOOPQTUUXXYY\\\\]]]^`bcfggggghhhhiijklmnoostwy{|}}~L"l vx;+XǣV;+vX+O8OvO\C8\v]zds$azdvdgj_'@gjvjoovoDŽy߼DŽ LԄ؄O:؄ vsX$ v}R(} v`Sx vXXvpGrGvX}v| v03 vjyjvx.L.LDH#sH vX', v( va54a5vp5;s;L;;LK;v0;@[[x@v@pwҾipwvw||2X|| L||:|L|}+ʳ}v}؄(؄ v7v0(r6(v@)p) v8ڸvЬ=V'= vHȶx|ȶL̶Զw?Զ v2v v-vlRulRvRW$W vWXYKHXYvhY.Z1.Z L4H> v>bqOub vb@ vȕcMDc vpw wv8匼LI[ vaҼ LVvH v  +N  v qrv',؍', v8,!:!: v0:Gn`GvGJ JvJK2KvKT]sTvTZ9VZvZ@̖@ vP;,r vЗ Z3  L 'seYh v0Q;Q vRȁ Lbuv gKpg vp6, vp3Xtpv)I ,vX.?Xv`D|1DvX-KN- v.; ;v<AD=AvAH|,D6HvHSCEC=SvSc^FZc^ vp^a8a vaGA vJUi vIv0Xn qLF$vm2m2v277 v 7HHvHdNxd vdW^ v('Ӫ}'v0/v1@<1 v@pY wp L|Lͨv26' v& E & v& & rN& v& + RIxP>vPv&ex&v8e& vd7vd7vx7 =O{׼ =L=$=+$=v8=ZIYZI vhI1Y=1Y v@YԵL56vo) vrv<⇼LoLGڔ vd zCEd  vx KBKvKlWCk̼lW LxWWuWvWZzCEZ v[c 9rc vde eLee+eve$ua$ v0"Rc"RL,RPRۑPRv`R;ip; LHLL vX$L$L,UE vW vR)t Rvh{Mg vbrick.pngPNG  IHDRT*sBIT|d pHYs tEXtSoftwarewww.inkscape.org<0IDATxiՕ ' FW|byH[PE3"r,ؚĢ3d'`f2#Jw <)";h&Г|TUWT,3i ]Dv~ m稾f@S(z\[H(ңS>ADfn]-umυp.Pf$V &AmvR,?x6(S E"mGh}_o*HV7EɊDږPCyߖQ=ৎX ?@V$ք JPUΩ{Q^:YHd4:B6t-S/%[UgtEz=qGO(&{/z"`/U}`H#1t "ȤĽ4+<侔U07.SUܼ"ߨcF"*"o=쿁CӼDdEܣUΆEa16P("r0ބۀSU:HA 7{U C UuyFDn⼹X7RHY |ZU{ Eԙ޾Dd]Ȕeo0#_h]"f"";R'$8vXguETuzuow!i6"2;P6ög!ɽӀ]XT`Hc LzsU'pb `cTuNcԍD"Ep)0~MTc$iw{vjผcp-|Xwt; ;H:gQEU]H]"NFUW `.VS{DqTNćUDd!+ !!"p?bnrQՅ-S$ 6Ş}!Kh2vxYt\P? 5J F/|v^1=Y'':oI`k=>E^zW=mfW%sd^+( _| :XI.1Ȣ/6hgzw e.n/C= k0Vx #yU. }9c  QsaJ=u]fU둷q9, s8$ywѷB㺯yo'W$p hrU!'] ~."Uf#( x ۯ}N[:\:Գ%88@^Hm'_S[f $Y99只?kGoK 9WU} ;/8IKLCN" нx`^\2ri>$^pmBwϹ7O.-:PcK AG]+v$zpT#iw{?VNU0%ʲ| SNιmnjC }(g@۫lv"!=Z{ EC YW6@DV"1 svʢc虆."|wT,w̧7 S׋>d7l#Clҍq\/Ddz9 =w8V%Nk_9Qm.!fZdgjWLd*k}f. lؿƉ(k>GUzdѱ=ЏhyAUoneeMC-1ر,&'#\>(;!o*S߮Ⱥz`{{$=wM:]s1R$7' f1 rDdPGD_d҅%ݸ:@_zY,I0!N"D ` #ozhv PU44 ׯTˀMhMG`z+j.SŸ z\fȫҦ`:~/EaX`zaz;S{gpT25h =HU}Iv nC?tﲛ_BhdB6vl*IhoWG֦߆?̴;̺H7n=zKɚko l,\>Ta +GU'V$.{.Psl6}"]h[:ПvRճ<O#Oȯ2Tu&,甏OzN i3~ӶVx Q;r-)jRhhtxXv\L¨vmuC#"#.dV_O 1;UuigLFj+_[dNEQeSMLz]#OUsti~ lM$UGU_j[bMQٷIxb|S܇P~,f>/+R>ӫf|Kȡ wRiz6U#"}.(p\EuM7hNNQVk"r3g?*"%azH^f=aQfgShDOiWѹ *`pvC8qO?" i,&qo39ܒ09>}SXlu<&&Ӎzll]u(']e:\L*PDlk<]ЦZg[%26{y2MWأt w%p83Gç;OMN]IG{ |mZ Us`ݶGdPY>.d;{^:7Q&$kTc"\iuHDƊɵM*p0j}(|LT4?St׮"q`I0Fy{P7iAJ MH˳&m285ocwLJX^ -h^#o4ى}&s}\ӣwrF]FdIi6O+ x_X>CuҀoq^x[!BsWf3yz"c}X?|Yvm qY ̩VJf(I8i(!Dd+l륈SkzA!Zp'pqM&dm=L|ݟοT-RlRN9@$]2kN sy ϝdy%bgTk"r%(xTUtx ئ`U5U$WMC'eQ# T6.ˈ$S>V~$xjFc!M\xKHG5G|\80xó#)lu=&[$ґ UuiH"ZF&g} 5#:A=zO%? >ኘv.t^YvN$)b<)/"$1gBzG"{"T;oXݰEafμhȪ@)C>{;UR{ZH$@ 84G"+)ݣ9-8&_;˔ѻQ07Vd(2>y$q*3tD7fr pNT6t%XdKZ`4٪:D"K zR霝\8&pZH$AC 3Ӱe^bݠ-t M15()l;D,/E.x$O a; ڴ7B T9H$،-.B>IENDB`(uuay)gnome-fs-directory.png$GdkP$00Kz^˼tvf$}}x)*$$||zyyzyyxwwvvu;<2_üusqqpppoonmmlly{gt|nZ\Uj}i{~hy|fx{ez}gz}fx{ey{fx{dx{ewycuycor]oq]lnZoqartctvdvwgvwgvwevwevwgy{kxyixyhvwey{j{|l{|k|~m~p}~mq|~mx\^Otwaps^or^nq\mo[nq]mo[mo[mp\mp[lo[knZZ[JikWfiVegUcfSceSdgTceSceScfSceSbeSRUD%&vvnbdR_bP^`O]`N]_N^`O]`N]_N]_N]_N]_NAB6gj]wxn_aO]_N[^M[]LZ]L[^MZ\LZ]LY[JY\K?A4BB;ʷɴɳdzï®®tMNEɳƳƳŰ}q34-~Ƴůï®|}pűİï®yzmκ͹̸̷˷ʶɵȳDzƲűݯ®wxkκ͹̷̶˶ʵɴȳDzŲıð¯vxk͸̷ʶ˵ʵȴDzƱŰİï®uvi˶ʵɴɴȳDzƱŰİï®rshɴȳdzDzƱŰįï®pqfȲDZƱŰįí¬mobŰİĮí¬lnajl_ik_hj^hj]hj]  ~}~hj]  ~}}|hj] ~}{{z{fh\ !}|zyyy{egZ&(~~|{yxxxyzceY+)~}}|zywwwxy{bdX/!)~}}|zyxwwwyz{bdW/ &~}||{zyxxyyz||bdX* {}m{}mx{kyzjxzjvxjvvhsuhsufqsfqsepqcoqcoqclnalm`kl_jk^ij]hj]hi]hi]fh[fg\dfZegZdfZdfYdfZdfYceYceYceXceXbdXbdXceY()$% qy  $('++,.+,..,--0/0/21/102//12/100-)"      (uuay)gnome-gimp.pngR PNG  IHDR00WgAMA1_ IDATxYk]u>{9w޶gllc#ǯ_Qܹu7up,+ k, !]?w @u ܴry=>ّ/$~IDhxm~Gȱ=fR.w'{ˡC"_"#acv*KDv ܂VK6Wztl0[; . 9<ckGn΍lR;y介~ &/xԙ ~w:$\":An(EFW~#AcR)ĭ4\OKs{&R@*=tӪW|B$BDp-xgp7zK~RH ѢrW\OBy񟟞Ǔ4++ݟ~xWQ,Z`olRZ2-v hJC g@ 0`O\!8 3v3X 0zE_s]^fvy\o<ЦMz^0o-[~ c8ȤDIdR!,j9ic_[6#)fݼaÆm޼!!Dqbb?=ȶKF|/b``{ޏ5kǐJǖ-[ƪP*VR1Z[Jz3WpdTMdldS*wx===m۶GǽfIo&q<?ժxWh~~vi^{m?8رcꫯBJVR R*( h֒Ʊ='20I.gN;HCyQyBvr''=Z vڅF3'`Fm<3={e&$A;IIJ({f0$GV (mb 0V:@rhrrB,_ѣGP,šs@>q߃a֭\SOhnRf}uՙ0l#٩T*-uM08O*ܝ=== fFehZ(J(9ϝ93'0n~i(RJT 8{}Π^  &VfX &fgseג3|߇Ð(Bp hPڇo}+ex~ԅSHJkZm IښU@BfÜ_Lkqaya!mU'mhـ=`6`f,? Vl$j ApY)rԇs1ro}c}ɞi4˲waE{{zz0 Q.GbCZITPy>=erJkLL]TIq3|fnqTux+ֺZT (ðJa I\CYV AAlIHc뚶p2z y5@4<5}nב˦pM?qx^R{dyZIΜG&SHrk@+ĄnNF sqnb}3VZZkRv;[P!`if[`f9;;{xHISiFJ* CiTJ0;W<.^Z@d-(B/Stz@n/5̘jg<9덎]` ۼqL |,H6ՆBT,T*7BO="Sgr0}SK0H3zjSU^uWu~NLW̧0iORIENDB`(uuay)entry_buffer.cj/* Entry/Entry Buffer * * GtkEntryBuffer provides the text content in a GtkEntry. * Applications can provide their own buffer implementation, * e.g. to provide secure handling for passwords in memory. */ #include #include GtkWidget * do_entry_buffer (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryBuffer *buffer; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Entry Buffer"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create a buffer */ buffer = gtk_entry_buffer_new (NULL, 0); /* Create our first entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); g_object_unref (buffer); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)col_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATX]hSg'I&ڤ`NsSu(TGjSAhŀLbލ])l`))27ވ_AإR/*ӭK䜴9.AL?sq>}ִ[V?~aO7);YXXg29f>22EӴB%+177Dѩׯ SixxMuLED$zj`_vuFFGG.^(e\E\"߿WUup,tݍ۷oxl,h$ۭiMMMGVNs,T1oرcGZiXԸ5BI244lhhjood)6Jeee,}1[,K $kcV&7MӒgB*xgZ:::^'0ꚛ@ 0-Kwww߷o_LɡClSSSN~~>%%%?~6X^$qmP 4ʢ'ϝ;K " UTT؞>}J<t^$!055il62ݫݸqӧbVM~~$IB$I撛Rϧ;&In1a_[n-99/_hzz:8::/..@:$IzȬp8Dww\KKW@L-hoo699nGii)gUs4nwzNB Օ0 9Nojjj>vSg@iUUU,r.g%5)) EQbe$hS!92==re4>vf.SUU>/rEQbG]ϟOI3 lFjkk0E_<bۉ'.B۰ؘQ(ViZDu k@˘/BH[(~4"{!<p$Ɗ֥^fHq 6222(J`pppxJ#`GG\&F*RgYUKGm%5?dfYzIENDB`(uuay)sw_resize_cursor.pngYPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P36IDATXKW?'o_έ:[Ӛ!k(+;(\ŕf`7cj0e ^ mQftu4v,y_s.ufپp<}^_uiCn`Cmll@06+wqq-0~B܄wݦD"Ѻq<dnn'N>|xtuuۊ`bjjꨮ볆aH]_s@9` B~Ehrr򋮮wRj~~;Q ضLD"úGZul:\v3 LTj  *@* ^ohbbbn !R‚qq(Ţak===V{df2t,//z*uuup8n?X۷n{ ɼfpiߺRyvB)iyښ K. *N:hii.l9{9ȈFO>lwLi#͛7|3::uUUU%p S$>kRʢ"fjyys{w={p:Vkt.%ZA!Ry$0; 7eq)F'ZA> AGGB}/RYYu- \rH) ˥.\sK555a$WA-###DEIW&O:rqK $v@x<ֶJr @i` xo%s ОJIENDB`(uuay)search_entry2.c/* Entry/Delayed Search Entry * * GtkSearchEntry sets up GtkEntries ready for search. Search entries * have their "changed" signal delayed and should be used * when the searched operation is slow such as loads of entries * to search, or online searches. */ #include static void search_changed_cb (GtkSearchEntry *entry, GtkLabel *result_label) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (entry)); g_message ("search changed: %s", text); gtk_label_set_text (result_label, text ? text : ""); } static void changed_cb (GtkEditable *editable) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (editable)); g_message ("changed: %s", text); } static gboolean window_key_press_event_cb (GtkWidget *widget, GdkEvent *event, GtkSearchBar *bar) { return gtk_search_bar_handle_event (bar, event); } static void search_changed (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "search-changed"); } static void next_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "next-match"); } static void previous_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "previous-match"); } static void stop_search (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "stop-search"); } GtkWidget * do_search_entry2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *container; GtkWidget *searchbar; GtkWidget *button; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Delayed Search Entry"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 200, -1); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); entry = gtk_search_entry_new (); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (container), entry, FALSE, FALSE, 0); searchbar = gtk_search_bar_new (); gtk_search_bar_connect_entry (GTK_SEARCH_BAR (searchbar), GTK_ENTRY (entry)); gtk_search_bar_set_show_close_button (GTK_SEARCH_BAR (searchbar), FALSE); gtk_container_add (GTK_CONTAINER (searchbar), container); gtk_box_pack_start (GTK_BOX (vbox), searchbar, FALSE, FALSE, 0); /* Hook the search bar to key presses */ g_signal_connect (window, "key-press-event", G_CALLBACK (window_key_press_event_cb), searchbar); /* Help */ label = gtk_label_new ("Start Typing to search"); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); /* Toggle button */ button = gtk_toggle_button_new_with_label ("Search"); g_object_bind_property (button, "active", searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); /* Result */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Result:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed_cb), label); g_signal_connect (entry, "changed", G_CALLBACK (changed_cb), label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Signal:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed), label); g_signal_connect (entry, "next-match", G_CALLBACK (next_match), label); g_signal_connect (entry, "previous-match", G_CALLBACK (previous_match), label); g_signal_connect (entry, "stop-search", G_CALLBACK (stop_search), label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)spinbutton/6transparent.c/* Overlay/Transparency * * Use transparent background on GdkWindows to create a shadow effect on a GtkOverlay widget. */ #include #define SHADOW_OFFSET_X 7 #define SHADOW_OFFSET_Y 7 #define SHADOW_RADIUS 5 static void draw_shadow_box (cairo_t *cr, GdkRectangle rect, double radius, double transparency) { cairo_pattern_t *pattern; double x0, x1, x2, x3; double y0, y1, y2, y3; x0 = rect.x; x1 = rect.x + radius; x2 = rect.x + rect.width - radius; x3 = rect.x + rect.width; y0 = rect.y; y1 = rect.y + radius; y2 = rect.y + rect.height - radius; y3 = rect.y + rect.height; /* Fill non-border part */ cairo_set_source_rgba (cr, 0, 0, 0, transparency); cairo_rectangle (cr, x1, y1, x2 - x1, y2 - y1); cairo_fill (cr); /* Upper border */ pattern = cairo_pattern_create_linear (0, y0, 0, y1); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y0, x2 - x1, y1 - y0); cairo_fill (cr); /* Bottom border */ pattern = cairo_pattern_create_linear (0, y2, 0, y3); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y2, x2 - x1, y3 - y2); cairo_fill (cr); /* Left border */ pattern = cairo_pattern_create_linear (x0, 0, x1, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y1, x1 - x0, y2 - y1); cairo_fill (cr); /* Right border */ pattern = cairo_pattern_create_linear (x2, 0, x3, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y1, x3 - x2, y2 - y1); cairo_fill (cr); /* NW corner */ pattern = cairo_pattern_create_radial (x1, y1, 0, x1, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y0, x1 - x0, y1 - y0); cairo_fill (cr); /* NE corner */ pattern = cairo_pattern_create_radial (x2, y1, 0, x2, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y0, x3 - x2, y1 - y0); cairo_fill (cr); /* SW corner */ pattern = cairo_pattern_create_radial (x1, y2, 0, x1, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y2, x1 - x0, y3 - y2); cairo_fill (cr); /* SE corner */ pattern = cairo_pattern_create_radial (x2, y2, 0, x2, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y2, x3 - x2, y3 - y2); cairo_fill (cr); } static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { GdkRectangle rect; gtk_widget_get_allocation (widget, &rect); rect.x += SHADOW_OFFSET_X; rect.y += SHADOW_OFFSET_Y; rect.width -= SHADOW_OFFSET_X; rect.height -= SHADOW_OFFSET_Y; draw_shadow_box (cr, rect, SHADOW_RADIUS, 0.4); return FALSE; } GtkWidget * do_transparent (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkWidget *overlay; GtkWidget *entry; GtkCssProvider *provider; gchar *css; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Transparency"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (window), overlay); entry = gtk_entry_new (); provider = gtk_css_provider_new (); css = g_strdup_printf ("* { border-width: 0px %dpx %dpx 0px; }", SHADOW_OFFSET_X, SHADOW_OFFSET_Y); gtk_css_provider_load_from_data (provider, css, -1, NULL); g_free (css); gtk_style_context_add_provider (gtk_widget_get_style_context (entry), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_signal_connect (entry, "draw", G_CALLBACK (draw_callback), NULL); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)appmenu.ui
Aboutapp.about
_Quitapp.quit<Primary>q
(uuay)gnu-keys.png PNG  IHDR00WgAMA aIDATxkt]e゙[rr-M&i4IoŦC;DgPQTTguleP^Ҧ-msk~9Im}y|)̗:~yy}.qK\2C^Fd"弋Kt᪵UrL+ͷRu-YVV^zU+W (=ݽo `L-(`Fy9&NaYV왳vmۏ:/L/zefB01o2jy_8Pϱup H)B0qm_[ ȿV;@V(\{^fr(6 IG{x3cKս( *H$|)T4h?]ȂeneY9kjx4Jbd+W^y%լhB L  [|aIl2F~~+&OG @Uө|A< _ 8nSOn$I1UfV^~<`wn~ t4'8͞-ZXYyށT{߽ۿ_qǎR\RȬJ Il[8y%e^UQ5Mc_EVvϕxK"yn /﮻iK,554k>+cY=\mOw0 xmO~/P Be``}r!ʊ)- 3blя[i%hF*$LcuTcP⒊;>u{)j0%yyB` p㉸퇿]WWWwBǁQ`rJn'7†jB4E4Lo߫4kp$/w]MP5b$q|tb嗱kҲr=elt_="GeG7tM0M'߽;~rt]G"IA4¡0hhlzFF 3:$ccc$IFc8z9zG BB&Mرc<.馛)/+W||f9pEQP <.ӿxb&8ҊoRinm&77Jj-_Ƽy9s4gΝ"JY8R"}qʦa&j`A4Mlذk\k  ԾZolDUUt]_}}RL7^L@G>2EUPu.+ZJBz{zof$6JEE% ;.' ˪g΂HC "Yz@0H__/CA=ơCعs'K,acض͑#u}ctL%Oxɼ@QQQov(G&]]]]Pe1HSPX+0LښhhlॗvHũcH.iiiq,*QUΞսGbYAx|;w$;7p(*斪yϝxd0 x _bf/H_y_|'<9Bcǎ8y3˙;gPs &pl}G3RK v5V>3tZ͆O~7^/f(=>.\wI àa&M/}TM#;+#?EQQ*̟;˗zΎNod*Iii2~n}.**gdh+HOjo.a 7\rY"&6>55<.<ץ-?žp7QZVi o=B:==Xu,KpUܱAR{`?wE 'OP6ן"#QtM! 12CʛKco}wc) R0u #%'4 U?>D"Yy_?? ,kf:ōm[+k&pmTTT,]=[(x3SE_8R88I*"@+_FW\=|v4 ,\W M -郵ugsrm7d mݽ횪BP@(hB;u…5?=x'uyjS_kOYpݡ:+>6M>۾d;O5;{}#6//oY''UTTT3L'lK}ACRJ%A kBg[ԌT4hzo>JhBkVjUSÙL DUU;?vTaYvȡc=gN7=='yiT]m-mV 3KhqCowL&0 NCDz.L\Τ/y۽e˗rsM5.b$ Dcx}k+V.Ng{cC#4y/x'QV]ʫYZZꍌ Y{Q~WRnaswkwD"&w?K\{;$誂IENDB`(uuay)list_store.c*/* Tree View/List Store * * The GtkListStore is used to store data in list form, to be used * later on by a GtkTreeView to display it. This demo builds a * simple GtkListStore and displays it. * */ #include static GtkWidget *window = NULL; static GtkTreeModel *model = NULL; static guint timeout = 0; typedef struct { const gboolean fixed; const guint number; const gchar *severity; const gchar *description; } Bug; enum { COLUMN_FIXED, COLUMN_NUMBER, COLUMN_SEVERITY, COLUMN_DESCRIPTION, COLUMN_PULSE, COLUMN_ICON, COLUMN_ACTIVE, COLUMN_SENSITIVE, NUM_COLUMNS }; static Bug data[] = { { FALSE, 60482, "Normal", "scrollable notebooks and hidden tabs" }, { FALSE, 60620, "Critical", "gdk_window_clear_area (gdkwindow-win32.c) is not thread-safe" }, { FALSE, 50214, "Major", "Xft support does not clean up correctly" }, { TRUE, 52877, "Major", "GtkFileSelection needs a refresh method. " }, { FALSE, 56070, "Normal", "Can't click button after setting in sensitive" }, { TRUE, 56355, "Normal", "GtkLabel - Not all changes propagate correctly" }, { FALSE, 50055, "Normal", "Rework width/height computations for TreeView" }, { FALSE, 58278, "Normal", "gtk_dialog_set_response_sensitive () doesn't work" }, { FALSE, 55767, "Normal", "Getters for all setters" }, { FALSE, 56925, "Normal", "Gtkcalender size" }, { FALSE, 56221, "Normal", "Selectable label needs right-click copy menu" }, { TRUE, 50939, "Normal", "Add shift clicking to GtkTextView" }, { FALSE, 6112, "Enhancement","netscape-like collapsable toolbars" }, { FALSE, 1, "Normal", "First bug :=)" }, }; static gboolean spinner_timeout (gpointer data) { GtkTreeIter iter; guint pulse; if (model == NULL) return G_SOURCE_REMOVE; gtk_tree_model_get_iter_first (model, &iter); gtk_tree_model_get (model, &iter, COLUMN_PULSE, &pulse, -1); if (pulse == G_MAXUINT) pulse = 0; else pulse++; gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_PULSE, pulse, COLUMN_ACTIVE, TRUE, -1); return G_SOURCE_CONTINUE; } static GtkTreeModel * create_model (void) { gint i = 0; GtkListStore *store; GtkTreeIter iter; /* create list store */ store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the list store */ for (i = 0; i < G_N_ELEMENTS (data); i++) { gchar *icon_name; gboolean sensitive; if (i == 1 || i == 3) icon_name = "battery-caution-charging-symbolic"; else icon_name = NULL; if (i == 3) sensitive = FALSE; else sensitive = TRUE; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COLUMN_FIXED, data[i].fixed, COLUMN_NUMBER, data[i].number, COLUMN_SEVERITY, data[i].severity, COLUMN_DESCRIPTION, data[i].description, COLUMN_PULSE, 0, COLUMN_ICON, icon_name, COLUMN_ACTIVE, FALSE, COLUMN_SENSITIVE, sensitive, -1); } return GTK_TREE_MODEL (store); } static void fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, COLUMN_FIXED, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FIXED, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for fixed toggles */ renderer = gtk_cell_renderer_toggle_new (); g_signal_connect (renderer, "toggled", G_CALLBACK (fixed_toggled), model); column = gtk_tree_view_column_new_with_attributes ("Fixed?", renderer, "active", COLUMN_FIXED, NULL); /* set this column to a fixed sizing (of 50 pixels) */ gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_append_column (treeview, column); /* column for bug numbers */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Bug number", renderer, "text", COLUMN_NUMBER, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_NUMBER); gtk_tree_view_append_column (treeview, column); /* column for severities */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Severity", renderer, "text", COLUMN_SEVERITY, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_SEVERITY); gtk_tree_view_append_column (treeview, column); /* column for description */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Description", renderer, "text", COLUMN_DESCRIPTION, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_DESCRIPTION); gtk_tree_view_append_column (treeview, column); /* column for spinner */ renderer = gtk_cell_renderer_spinner_new (); column = gtk_tree_view_column_new_with_attributes ("Spinning", renderer, "pulse", COLUMN_PULSE, "active", COLUMN_ACTIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_PULSE); gtk_tree_view_append_column (treeview, column); /* column for symbolic icon */ renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes ("Symbolic icon", renderer, "icon-name", COLUMN_ICON, "sensitive", COLUMN_SENSITIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_ICON); gtk_tree_view_append_column (treeview, column); } static gboolean window_closed (GtkWidget *widget, GdkEvent *event, gpointer user_data) { model = NULL; window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } return FALSE; } GtkWidget * do_list_store (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox; GtkWidget *label; GtkWidget *sw; GtkWidget *treeview; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "List Store"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though)."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create tree model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), COLUMN_DESCRIPTION); g_object_unref (model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* add columns to the tree view */ add_columns (GTK_TREE_VIEW (treeview)); /* finish & show */ gtk_window_set_default_size (GTK_WINDOW (window), 280, 250); g_signal_connect (window, "delete-event", G_CALLBACK (window_closed), NULL); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); if (timeout == 0) { /* FIXME this should use the animation-duration instead */ timeout = g_timeout_add (80, spinner_timeout, NULL); } } else { gtk_widget_destroy (window); window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } } return window; } (uuay)ew_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATX]hSg'I&ڤ`NsSu(TGjSAhŀLbލ])l`))27ވ_AإR/*ӭK䜴9.AL?sq>}ִ[V?~aO7);YXXg29f>22EӴB%+177Dѩׯ SixxMuLED$zj`_vuFFGG.^(e\E\"߿WUup,tݍ۷oxl,h$ۭiMMMGVNs,T1oرcGZiXԸ5BI244lhhjood)6Jeee,}1[,K $kcV&7MӒgB*xgZ:::^'0ꚛ@ 0-Kwww߷o_LɡClSSSN~~>%%%?~6X^$qmP 4ʢ'ϝ;K " UTT؞>}J<t^$!055il62ݫݸqӧbVM~~$IB$I撛Rϧ;&In1a_[n-99/_hzz:8::/..@:$IzȬp8Dww\KKW@L-hoo699nGii)gUs4nwzNB Օ0 9Nojjj>vSg@iUUU,r.g%5)) EQbe$hS!92==re4>vf.SUU>/rEQbG]ϟOI3 lFjkk0E_<bۉ'.B۰ؘQ(ViZDu k@˘/BH[(~4"{!<p$Ɗ֥^fHq 6222(J`pppxJ#`GG\&F*RgYUKGm%5?dfYzIENDB`(uuay)copy_cursor.png-PNG  IHDR szzsBIT|d pHYsnn^tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3 IDATXOhW?ov͘1&Ka\.bi.Cr"xۃЃPAK=饅EO-XZjR*` AR7Үۮozl5ٶ?7^gE>c/a>ða-..~z!Pe""NLLU&a݌h|֭/o.!O:$I={H>{JX]vΝ;ٳrtǜAjE (d``@_N>-lV٬?~\DD0@ucSSSё#G$"qG֢|>/tZl۶W;&I$.]zXwN`?zOW+[)al\K_Ӣ]߁ eP=w5;;ɓ'+9[i5ǣ6A1P,CkM&ZuNY%{a` RM6aY@Y1ՎT*eYoiyʶmQ|h48?+q>,a.[Һ7PR9@5 ܹ<{.IT38hRrwB,/^l(E.cxxzNXZBDj5ZzAk`YV#ׯ_BXy 6A1IoR$I]kImižJ'gffԩST*) Cp]mugh6E'~V_oQ , 4IENDB`(uuay)floppybuddy.gif`GIF89aPF  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~ぁ=v{! NETSCAPE2.0! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. ! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This space for rent...! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set;(uuay)css_multiplebgs.c/* Theming/Multiple Backgrounds * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context = gtk_widget_get_style_context (widget); gtk_render_background (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); gtk_render_frame (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); return FALSE; } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_multiplebgs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Multiple Backgrounds"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_overlay_new (); gtk_widget_add_events (container, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_drawing_area_new (); gtk_widget_set_name (child, "canvas"); g_signal_connect (child, "draw", G_CALLBACK (drawing_area_draw), NULL); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new (); gtk_widget_add_events (child, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_overlay_add_overlay (GTK_OVERLAY (container), child); gtk_widget_set_name (child, "bricks-button"); gtk_widget_set_halign (child, GTK_ALIGN_CENTER); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); gtk_widget_set_size_request (child, 250, 84); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_overlay_add_overlay (GTK_OVERLAY (container), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_multiplebgs/css_multiplebgs.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)cssview.css/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } (uuay)scale.c/* Scale * * GtkScale is a way to select a value from a range. * Scales can have marks to help pick special values, * and they can also restrict the values that can be * chosen. */ #include GtkWidget * do_scale (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/scale/scale.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)theming_style_classes/reset.cssp/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } (uuay)cssview.css/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } (uuay)printing.c/* Printing/Printing * * GtkPrintOperation offers a simple API to support printing * in a cross-platform way. * */ #include #include /* In points */ #define HEADER_HEIGHT (10*72/25.4) #define HEADER_GAP (3*72/25.4) typedef struct { gchar *resourcename; gdouble font_size; gint lines_per_page; gchar **lines; gint num_lines; gint num_pages; } PrintData; static void begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; GBytes *bytes; int i; double height; height = gtk_print_context_get_height (context) - HEADER_HEIGHT - HEADER_GAP; data->lines_per_page = floor (height / data->font_size); bytes = g_resources_lookup_data (data->resourcename, 0, NULL); data->lines = g_strsplit (g_bytes_get_data (bytes, NULL), "\n", 0); g_bytes_unref (bytes); i = 0; while (data->lines[i] != NULL) i++; data->num_lines = i; data->num_pages = (data->num_lines - 1) / data->lines_per_page + 1; gtk_print_operation_set_n_pages (operation, data->num_pages); } static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { PrintData *data = (PrintData *)user_data; cairo_t *cr; PangoLayout *layout; gint text_width, text_height; gdouble width; gint line, i; PangoFontDescription *desc; gchar *page_str; cr = gtk_print_context_get_cairo_context (context); width = gtk_print_context_get_width (context); cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 1); cairo_stroke (cr); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, data->resourcename, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); if (text_width > width) { pango_layout_set_width (layout, width); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_START); pango_layout_get_pixel_size (layout, &text_width, &text_height); } cairo_move_to (cr, (width - text_width) / 2, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); page_str = g_strdup_printf ("%d/%d", page_nr + 1, data->num_pages); pango_layout_set_text (layout, page_str, -1); g_free (page_str); pango_layout_set_width (layout, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, width - text_width - 4, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); g_object_unref (layout); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("monospace"); pango_font_description_set_size (desc, data->font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 0, HEADER_HEIGHT + HEADER_GAP); line = page_nr * data->lines_per_page; for (i = 0; i < data->lines_per_page && line < data->num_lines; i++) { pango_layout_set_text (layout, data->lines[line], -1); pango_cairo_show_layout (cr, layout); cairo_rel_move_to (cr, 0, data->font_size); line++; } g_object_unref (layout); } static void end_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; g_free (data->resourcename); g_strfreev (data->lines); g_free (data); } GtkWidget * do_printing (GtkWidget *do_widget) { GtkPrintOperation *operation; GtkPrintSettings *settings; PrintData *data; GError *error = NULL; operation = gtk_print_operation_new (); data = g_new0 (PrintData, 1); data->resourcename = g_strdup ("/sources/printing.c"); data->font_size = 12.0; g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page", G_CALLBACK (draw_page), data); g_signal_connect (G_OBJECT (operation), "end-print", G_CALLBACK (end_print), data); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); settings = gtk_print_settings_new (); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_BASENAME, "gtk-demo"); gtk_print_operation_set_print_settings (operation, settings); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (do_widget), &error); g_object_unref (operation); g_object_unref (settings); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } return NULL; } (uuay)hand_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3eIDATXOLW?oEaOBa7p[)ă)M&,aVWWЋye=,~tOض {6@8fppy]Y5gΜ4֖e ӧO333ѣGU> t]/h^oFq@0t fggG!@uxk,rs1eSSdCCCa`YS]]Mss3ϟ?w &X]]-Z8"Ǐ'pU8q۶4MN< @H)m]\ⶕR L&*j%ɤ+++U_A{%J ,IGG`p[[[鑓 ~Xtwwt/ XLnކaBQkϞ=9rX,6nf:}׍igD"ʾťb@b@PKsI`q/rg\|Vls@׽H([[xIENDB`(uuay)images/|w_resize_cursor.pngKPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3(IDATXOH#w?37f b bi^LIB K=F*zaX { $m=؊U5&LLj֌k~G{y;_n%jkkk;@40cޱy #=s8񱱱'@0#LyP(d{^lII& %1ଫkraaAz@s`s?ohhD ghv zzzB,EIrL$:::RSSǀ;>==zttu]!D4 c,v7cq[d | K@H0Q/Bjܷ h\9S1; 7m-b,`W:ҋP IENDB`(uuay)images.c6/* Images * * GtkImage is used to display an image; the image can be in a number of formats. * Typically, you load an image into a GdkPixbuf, then display the pixbuf. * * This demo code shows some of the more obscure cases, in the simple * case a call to gtk_image_new_from_file() is all you need. * * If you want to put image data in your program as a C variable, * use the make-inline-pixbuf program that comes with GTK+. * This way you won't need to depend on loading external files, your * application binary can be self-contained. */ #include #include #include #include static GtkWidget *window = NULL; static GdkPixbufLoader *pixbuf_loader = NULL; static guint load_timeout = 0; static GInputStream * image_stream = NULL; static void progressive_prepared_callback (GdkPixbufLoader *loader, gpointer data) { GdkPixbuf *pixbuf; GtkWidget *image; image = GTK_WIDGET (data); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); /* Avoid displaying random memory contents, since the pixbuf * isn't filled in yet. */ gdk_pixbuf_fill (pixbuf, 0xaaaaaaff); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); } static void progressive_updated_callback (GdkPixbufLoader *loader, gint x, gint y, gint width, gint height, gpointer data) { GtkWidget *image; GdkPixbuf *pixbuf; image = GTK_WIDGET (data); /* We know the pixbuf inside the GtkImage has changed, but the image * itself doesn't know this; so give it a hint by setting the pixbuf * again. Queuing a redraw used to be sufficient, but nowadays GtkImage * uses GtkIconHelper which caches the pixbuf state and will just redraw * from the cache. */ pixbuf = gtk_image_get_pixbuf (GTK_IMAGE (image)); g_object_ref (pixbuf); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); g_object_unref (pixbuf); } static gint progressive_timeout (gpointer data) { GtkWidget *image; image = GTK_WIDGET (data); /* This shows off fully-paranoid error handling, so looks scary. * You could factor out the error handling code into a nice separate * function to make things nicer. */ if (image_stream) { gssize bytes_read; guchar buf[256]; GError *error = NULL; bytes_read = g_input_stream_read (image_stream, buf, 256, NULL, &error); if (bytes_read < 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure reading image file 'alphatest.png': %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (!gdk_pixbuf_loader_write (pixbuf_loader, buf, bytes_read, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (bytes_read == 0) { /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!g_input_stream_close (image_stream, NULL, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (image_stream); image_stream = NULL; g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (image_stream); image_stream = NULL; /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!gdk_pixbuf_loader_close (pixbuf_loader, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } } else { GError *error = NULL; image_stream = g_resources_open_stream ("/images/alphatest.png", 0, &error); if (image_stream == NULL) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); } pixbuf_loader = gdk_pixbuf_loader_new (); g_signal_connect (pixbuf_loader, "area-prepared", G_CALLBACK (progressive_prepared_callback), image); g_signal_connect (pixbuf_loader, "area-updated", G_CALLBACK (progressive_updated_callback), image); } /* leave timeout installed */ return TRUE; } static void start_progressive_loading (GtkWidget *image) { /* This is obviously totally contrived (we slow down loading * on purpose to show how incremental loading works). * The real purpose of incremental loading is the case where * you are reading data from a slow source such as the network. * The timeout simply simulates a slow data source by inserting * pauses in the reading process. */ load_timeout = gdk_threads_add_timeout (150, progressive_timeout, image); g_source_set_name_by_id (load_timeout, "[gtk+] progressive_timeout"); } static void cleanup_callback (GObject *object, gpointer data) { if (load_timeout) { g_source_remove (load_timeout); load_timeout = 0; } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } if (image_stream) { g_object_unref (image_stream); image_stream = NULL; } } static void toggle_sensitivity_callback (GtkWidget *togglebutton, gpointer user_data) { GtkContainer *container = user_data; GList *list; GList *tmp; list = gtk_container_get_children (container); tmp = list; while (tmp != NULL) { /* don't disable our toggle */ if (GTK_WIDGET (tmp->data) != togglebutton) gtk_widget_set_sensitive (GTK_WIDGET (tmp->data), !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton))); tmp = tmp->next; } g_list_free (list); } GtkWidget * do_images (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *image; GtkWidget *label; GtkWidget *button; GIcon *gicon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Images"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "destroy", G_CALLBACK (cleanup_callback), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Image loaded from a file"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("gtk3-demo", GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Animation */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Animation loaded from a file"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_resource ("/images/floppybuddy.gif"); gtk_container_add (GTK_CONTAINER (frame), image); /* Symbolic icon */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Symbolic themed icon"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-charging-symbolic"); image = gtk_image_new_from_gicon (gicon, GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Progressive */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Progressive image loading"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); /* Create an empty image for now; the progressive loader * will create the pixbuf and fill it in. */ image = gtk_image_new_from_pixbuf (NULL); gtk_container_add (GTK_CONTAINER (frame), image); start_progressive_loading (image); /* Sensitivity control */ button = gtk_toggle_button_new_with_mnemonic ("_Insensitive"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "toggled", G_CALLBACK (toggle_sensitivity_callback), vbox); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)default_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXMHlequC/w5HF)hmZ\*ETJ7 4R[J$Ph(iLjWf=<-fZ׺sTExx7/? Wu]777w +"廆~m8""0@yyI wh1V*u]g~~ӉbI\ZZf=^)DX*TUUk]]]ui&TUebb:Ez6 a\.HNN~-u!2>>Nkk+V5wooofPUaHKKH5 ah\100@gg'鎍F \n璘ڗ@ !6appWVVNtww3<077' 1PpttEQ$55UZZZDUU 8~m?橩%C<::X4$̔cY^^^#n`~~G N666$11QPAJbwwwy-7Q.ٙlooK %tװ5_( 纚O</np8>%aMGI=t^=%OzQf^ `GIENDB`(uuay)shortcuts/ltAsources/-k'?N/8x;b(n#> ]qcBXz92e%mHL3DQUdall_scroll_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXolSUƟ2EMhU0mJ;`JA  n61F ӘFFdUʒm ۵(}P. Or{}~y} ХRH$> '(J=1х >@#"nnnF&" B=( ٝ%">x `D_X $zEQ8p633_t{gBO&; ڬg"/~;SG khFv~x߾}SksLD|BORG"LDvxx2ɨ$%%%ٳհ'Nt:ff $Ib۟x<. ǎilM7o;UxDb?޽{;Nv `j}ѣW^M6ڵvO%Od#x L&f?$h7 ֲ{{{/(766P9Nz6""niia:DħOnP;wd!yޟC܉܄`(Ng( ;;vh:R<i޼y_%-XLח޺uK?zӉl6!bi۶mp֭[iÆ ѥKNl2$1!!nB^:)//VDuuu~ʕ6UUŚ5kܷZ8sL'7BPG~ V+' Bo3.'-ZNeO:v}3`4`͛7StuuL&Cu\JN&`` #ٚU`,nڴ7nΞ=KUUU.pd2so\d2Gb|5Yf muA`0TSS(}oܲ*YtZ_>7XlMB6 XvlL&kܹMȆX(Fv߯zNEoooD_/^ static GtkWidget *assistant = NULL; static GtkWidget *progress_bar = NULL; static gboolean apply_changes_gradually (gpointer data) { gdouble fraction; /* Work, work, work... */ fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (progress_bar)); fraction += 0.05; if (fraction < 1.0) { gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction); return G_SOURCE_CONTINUE; } else { /* Close automatically once changes are fully applied. */ gtk_widget_destroy (assistant); assistant = NULL; return G_SOURCE_REMOVE; } } static void on_assistant_apply (GtkWidget *widget, gpointer data) { /* Start a timer to simulate changes taking a few seconds to apply. */ g_timeout_add (100, apply_changes_gradually, NULL); } static void on_assistant_close_cancel (GtkWidget *widget, gpointer data) { GtkWidget **assistant = (GtkWidget **) data; gtk_widget_destroy (*assistant); *assistant = NULL; } static void on_assistant_prepare (GtkWidget *widget, GtkWidget *page, gpointer data) { gint current_page, n_pages; gchar *title; current_page = gtk_assistant_get_current_page (GTK_ASSISTANT (widget)); n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT (widget)); title = g_strdup_printf ("Sample assistant (%d of %d)", current_page + 1, n_pages); gtk_window_set_title (GTK_WINDOW (widget), title); g_free (title); /* The fourth page (counting from zero) is the progress page. The * user clicked Apply to get here so we tell the assistant to commit, * which means the changes up to this point are permanent and cannot * be cancelled or revisited. */ if (current_page == 3) gtk_assistant_commit (GTK_ASSISTANT (widget)); } static void on_entry_changed (GtkWidget *widget, gpointer data) { GtkAssistant *assistant = GTK_ASSISTANT (data); GtkWidget *current_page; gint page_number; const gchar *text; page_number = gtk_assistant_get_current_page (assistant); current_page = gtk_assistant_get_nth_page (assistant, page_number); text = gtk_entry_get_text (GTK_ENTRY (widget)); if (text && *text) gtk_assistant_set_page_complete (assistant, current_page, TRUE); else gtk_assistant_set_page_complete (assistant, current_page, FALSE); } static void create_page1 (GtkWidget *assistant) { GtkWidget *box, *label, *entry; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); label = gtk_label_new ("You must fill out this entry to continue:"); gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_widget_set_valign (entry, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (on_entry_changed), assistant); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 1"); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), box, GTK_ASSISTANT_PAGE_INTRO); } static void create_page2 (GtkWidget *assistant) { GtkWidget *box, *checkbutton; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); checkbutton = gtk_check_button_new_with_label ("This is optional data, you may continue " "even if you do not check this"); gtk_box_pack_start (GTK_BOX (box), checkbutton, FALSE, FALSE, 0); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), box, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 2"); } static void create_page3 (GtkWidget *assistant) { GtkWidget *label; label = gtk_label_new ("This is a confirmation page, press 'Apply' to apply changes"); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, "Confirmation"); } static void create_page4 (GtkWidget *assistant) { progress_bar = gtk_progress_bar_new (); gtk_widget_set_halign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_set_valign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_show (progress_bar); gtk_assistant_append_page (GTK_ASSISTANT (assistant), progress_bar); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), progress_bar, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), progress_bar, "Applying changes"); /* This prevents the assistant window from being * closed while we're "busy" applying changes. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), progress_bar, FALSE); } GtkWidget* do_assistant (GtkWidget *do_widget) { if (!assistant) { assistant = gtk_assistant_new (); gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300); gtk_window_set_screen (GTK_WINDOW (assistant), gtk_widget_get_screen (do_widget)); create_page1 (assistant); create_page2 (assistant); create_page3 (assistant); create_page4 (assistant); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (on_assistant_apply), NULL); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (on_assistant_prepare), NULL); } if (!gtk_widget_get_visible (assistant)) gtk_widget_show (assistant); else { gtk_widget_destroy (assistant); assistant = NULL; } return assistant; } (uuay)not_allowed_cursor.pngPNG  IHDR szzsBIT|d pHYsnn^tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXkLT<1+Hk>((ךƔ6)QL5SVMLrkMMQZ. Sf0gPT@~idL9{  g"Inkk^嵂 īTQEӧ(;EQ^ZOp@hii[VA˗Bww7<f3V+V\5LnkkMBB_(AL l67Fn8q\UUEQ@OA .\<6|8**0OID됐(**n7#_EQ شiKbΜ9[ǂ@loob\;yxp9a?U+EK.Źs稣i >S͛wc jbÆ ĪU:֭[PRRwlG p8f͢SbHR#zYk}}>|eeeQDDfZ#fۛt: :KJJbcJAAHpLVXoo,{ܹCCCٳLFd2Qdd$EGGիsN@~MfdXd2QXXqJNN?-((v]`0^ٳgSyy9RDDEFFRLL xBill §˜kݽ{3 DӾ}s?޽{=U 򨺺F @;w.18cgddpMs:u-,ؾ}¡!ώ;Hѐ``:z(9^b?A X,d0(00m6<--EeeeDZv+z4 z ϟ>1ԇ@*GL2|ѢE488߿ vINRRRH$h4hɒ%9H5O {NCA)}JURRRƍfsXHHF$p8YWWk׮=| kX/c00Sj0^l>sb5ԹZz_@ߜF 3jɤP@O0)$OE__ N2IENDB`(uuay)crosshair_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXOkA܈JQPM=hԛǂGۯEh/{COB ~4BY}=&ƐMw\&wߙ}ߙgf~q 5M pIDBu_Qr]}V VVVRa@hEDdii\̬U5l6c{,d!}6p&xF'"*e^78uJ p(m ')1(DinZωyNSjRm i\dnn.4 ( juu5`H룔B)ew}PAd#2зNz9׀H^<n\ ㋳Q`]T䧵['ЉZ pc,Sq={[[[;RJT[>m@xjImBOqWgK'ow;ؠR7brpg,|k3±K@w g F3 p`\,:] %8Yl4#h6mNQןuXV?ZGI[ \"qT p\%OORyD\ :3tL#L?QDwTSIENDB`(uuay)reset.cssp/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } (uuay)glarea-gles.vs.glsl]attribute vec4 position; uniform mat4 mvp; void main() { gl_Position = mvp * position; } (uuay)headerbar.cp /* Header Bar * * GtkHeaderBar is a container that is suitable for implementing * window titlebars. One of its features is that it can position * a title (and optional subtitle) centered with regard to the * full width, regardless of variable-width content at the left * or right. * * It is commonly used with gtk_window_set_titlebar() */ #include GtkWidget * do_headerbar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *header; GtkWidget *button; GtkWidget *box; GtkWidget *image; GIcon *icon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE); gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Welcome to Facebook - Log in, sign up or learn more"); gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE); button = gtk_button_new (); icon = g_themed_icon_new ("mail-send-receive-symbolic"); image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON); g_object_unref (icon); gtk_container_add (GTK_CONTAINER (button), image); gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (box), "linked"); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-start-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-end-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box); gtk_window_set_titlebar (GTK_WINDOW (window), header); gtk_container_add (GTK_CONTAINER (window), gtk_text_view_new ()); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)ui/ isizegroup.c/* Size Groups * * GtkSizeGroup provides a mechanism for grouping a number of * widgets together so they all request the same amount of space. * This is typically useful when you want a column of widgets to * have the same size, but you can't use a GtkTable widget. * * Note that size groups only affect the amount of space requested, * not the size that the widgets finally receive. If you want the * widgets in a GtkSizeGroup to actually be the same size, you need * to pack them in such a way that they get the size they request * and not more. For example, if you are packing your widgets * into a table, you would not include the GTK_FILL flag. */ #include #include /* Convenience function to create a combo box holding a number of strings */ GtkWidget * create_combo_box (const char **strings) { GtkWidget *combo_box; const char **str; combo_box = gtk_combo_box_text_new (); for (str = strings; *str; str++) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str); gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); return combo_box; } static void add_row (GtkGrid *table, int row, GtkSizeGroup *size_group, const char *label_text, const char **options) { GtkWidget *combo_box; GtkWidget *label; label = gtk_label_new_with_mnemonic (label_text); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); gtk_widget_set_hexpand (label, TRUE); gtk_grid_attach (table, label, 0, row, 1, 1); combo_box = create_combo_box (options); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); gtk_widget_set_halign (combo_box, GTK_ALIGN_END); gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE); gtk_size_group_add_widget (size_group, combo_box); gtk_grid_attach (table, combo_box, 1, row, 1, 1); } static void toggle_grouping (GtkToggleButton *check_button, GtkSizeGroup *size_group) { GtkSizeGroupMode new_mode; /* GTK_SIZE_GROUP_NONE is not generally useful, but is useful * here to show the effect of GTK_SIZE_GROUP_HORIZONTAL by * contrast. */ if (gtk_toggle_button_get_active (check_button)) new_mode = GTK_SIZE_GROUP_HORIZONTAL; else new_mode = GTK_SIZE_GROUP_NONE; gtk_size_group_set_mode (size_group, new_mode); } GtkWidget * do_sizegroup (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *table; GtkWidget *frame; GtkWidget *vbox; GtkWidget *check_button; GtkSizeGroup *size_group; static const char *color_options[] = { "Red", "Green", "Blue", NULL }; static const char *dash_options[] = { "Solid", "Dashed", "Dotted", NULL }; static const char *end_options[] = { "Square", "Round", "Double Arrow", NULL }; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Size Groups"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); g_object_set_data_full (G_OBJECT (window), "size-group", size_group, g_object_unref); /* Create one frame holding color options */ frame = gtk_frame_new ("Color Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Foreground", color_options); add_row (GTK_GRID (table), 1, size_group, "_Background", color_options); /* And another frame holding line style options */ frame = gtk_frame_new ("Line Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Dashing", dash_options); add_row (GTK_GRID (table), 1, size_group, "_Line ends", end_options); /* And a check button to turn grouping on and off */ check_button = gtk_check_button_new_with_mnemonic ("_Enable grouping"); gtk_box_pack_start (GTK_BOX (vbox), check_button, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_grouping), size_group); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)nwse_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXMH#g3F]i4"5-JI{#=A 񢈷@S.{P˲֞HॗPUcFbktԴH|d=?y1,І,=V0 7F雪BUWWcE6|F.\]P;;;l6iI0 'XQĻ%ikkk&AHuc~~[SKpݤ(y>} k>ULjX:9ڦdɗO K)!zdO.5. ՗ KV5ϙ$I?pddrqqTUUoUxHE|9>dYf$Ž^i""I Jd]]]yvvnwDOOɲDQ\w(1f6! eP"`$].ףgT@(LaQ$͟ Gct:s IUUfMLLD"KE^ =)4~prr577@ 躞` ?LRD566- "􅅅sss1?x䕕@ngbQ___a%l.u/r0KnԔ1Ɩ+@1Uty {|=NEak p?y~P~}}TbP(T5::Umm` #include #include /* The ChangeDisplayInfo structure corresponds to a toplevel window and * holds pointers to widgets inside the toplevel window along with other * information about the contents of the window. * This is a common organizational structure in real applications. */ typedef struct _ChangeDisplayInfo ChangeDisplayInfo; struct _ChangeDisplayInfo { GtkWidget *window; GtkSizeGroup *size_group; GtkTreeModel *display_model; GdkDisplay *current_display; }; /* These enumerations provide symbolic names for the columns * in the two GtkListStore models. */ enum { DISPLAY_COLUMN_NAME, DISPLAY_COLUMN_DISPLAY, DISPLAY_NUM_COLUMNS }; enum { SCREEN_COLUMN_NUMBER, SCREEN_COLUMN_SCREEN, SCREEN_NUM_COLUMNS }; /* Finds the toplevel window under the mouse pointer, if any. */ static GtkWidget * find_toplevel_at_pointer (GdkDisplay *display) { GdkWindow *pointer_window; GtkWidget *widget = NULL; pointer_window = gdk_device_get_window_at_position (gtk_get_current_event_device (), NULL, NULL); /* The user data field of a GdkWindow is used to store a pointer * to the widget that created it. */ if (pointer_window) { gpointer widget_ptr; gdk_window_get_user_data (pointer_window, &widget_ptr); widget = widget_ptr; } return widget ? gtk_widget_get_toplevel (widget) : NULL; } static gboolean button_release_event_cb (GtkWidget *widget, GdkEventButton *event, gboolean *clicked) { *clicked = TRUE; return TRUE; } /* Asks the user to click on a window, then waits for them click * the mouse. When the mouse is released, returns the toplevel * window under the pointer, or NULL, if there is none. */ static GtkWidget * query_for_toplevel (GdkScreen *screen, const char *prompt) { GdkDisplay *display = gdk_screen_get_display (screen); GtkWidget *popup, *label, *frame; GdkCursor *cursor; GtkWidget *toplevel = NULL; GdkDevice *device; popup = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_screen (GTK_WINDOW (popup), screen); gtk_window_set_modal (GTK_WINDOW (popup), TRUE); gtk_window_set_position (GTK_WINDOW (popup), GTK_WIN_POS_CENTER); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (popup), frame); label = gtk_label_new (prompt); g_object_set (label, "margin", 10, NULL); gtk_container_add (GTK_CONTAINER (frame), label); gtk_widget_show_all (popup); cursor = gdk_cursor_new_from_name (display, "crosshair"); device = gtk_get_current_event_device (); if (gdk_seat_grab (gdk_device_get_seat (device), gtk_widget_get_window (popup), GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, NULL, NULL, NULL) == GDK_GRAB_SUCCESS) { gboolean clicked = FALSE; g_signal_connect (popup, "button-release-event", G_CALLBACK (button_release_event_cb), &clicked); /* Process events until clicked is set by button_release_event_cb. * We pass in may_block=TRUE since we want to wait if there * are no events currently. */ while (!clicked) g_main_context_iteration (NULL, TRUE); toplevel = find_toplevel_at_pointer (gdk_screen_get_display (screen)); if (toplevel == popup) toplevel = NULL; } g_object_unref (cursor); gtk_widget_destroy (popup); gdk_flush (); /* Really release the grab */ return toplevel; } /* Prompts the user for a toplevel window to move, and then moves * that window to the currently selected display */ static void query_change_display (ChangeDisplayInfo *info) { GdkScreen *screen = gtk_widget_get_screen (info->window); GtkWidget *toplevel; toplevel = query_for_toplevel (screen, "Please select the toplevel\n" "to move to the new screen"); if (toplevel) gtk_window_set_screen (GTK_WINDOW (toplevel), gdk_display_get_default_screen (info->current_display)); else gdk_display_beep (gdk_screen_get_display (screen)); } /* Called when the user clicks on a button in our dialog or * closes the dialog through the window manager. Unless the * "Change" button was clicked, we destroy the dialog. */ static void response_cb (GtkDialog *dialog, gint response_id, ChangeDisplayInfo *info) { if (response_id == GTK_RESPONSE_OK) query_change_display (info); else gtk_widget_destroy (GTK_WIDGET (dialog)); } /* Called when the user clicks on "Open..." in the display * frame. Prompts for a new display, and then opens a connection * to that display. */ static void open_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *display_entry; GtkWidget *dialog_label; gchar *new_screen_name = NULL; GdkDisplay *result = NULL; dialog = gtk_dialog_new_with_buttons ("Open Display", GTK_WINDOW (info->window), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); display_entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (display_entry), TRUE); dialog_label = gtk_label_new ("Please enter the name of\nthe new display\n"); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_add (GTK_CONTAINER (content_area), dialog_label); gtk_container_add (GTK_CONTAINER (content_area), display_entry); gtk_widget_grab_focus (display_entry); gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (dialog))); while (!result) { gint response_id = gtk_dialog_run (GTK_DIALOG (dialog)); if (response_id != GTK_RESPONSE_OK) break; new_screen_name = gtk_editable_get_chars (GTK_EDITABLE (display_entry), 0, -1); if (strcmp (new_screen_name, "") != 0) { result = gdk_display_open (new_screen_name); if (!result) { gchar *error_msg = g_strdup_printf ("Can't open display:\n\t%s\nplease try another one\n", new_screen_name); gtk_label_set_text (GTK_LABEL (dialog_label), error_msg); g_free (error_msg); } g_free (new_screen_name); } } gtk_widget_destroy (dialog); } /* Called when the user clicks on the "Close" button in the * "Display" frame. Closes the selected display. */ static void close_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { if (info->current_display) gdk_display_close (info->current_display); } /* Called when the selected row in the display list changes. * Updates info->current_display, then refills the list of * screens. */ static void display_changed_cb (GtkTreeSelection *selection, ChangeDisplayInfo *info) { GtkTreeModel *model; GtkTreeIter iter; if (info->current_display) g_object_unref (info->current_display); if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, DISPLAY_COLUMN_DISPLAY, &info->current_display, -1); else info->current_display = NULL; } /* This function is used both for creating the "Display" and * "Screen" frames, since they have a similar structure. The * caller hooks up the right context for the value returned * in tree_view, and packs any relevant buttons into button_vbox. */ static void create_frame (ChangeDisplayInfo *info, const char *title, GtkWidget **frame, GtkWidget **tree_view, GtkWidget **button_vbox) { GtkTreeSelection *selection; GtkWidget *scrollwin; GtkWidget *hbox; *frame = gtk_frame_new (title); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_container_add (GTK_CONTAINER (*frame), hbox); scrollwin = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0); *tree_view = gtk_tree_view_new (); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (*tree_view), FALSE); gtk_container_add (GTK_CONTAINER (scrollwin), *tree_view); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (*tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); *button_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (hbox), *button_vbox, FALSE, FALSE, 0); if (!info->size_group) info->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (GTK_SIZE_GROUP (info->size_group), *button_vbox); } /* If we have a stack of buttons, it often looks better if their contents * are left-aligned, rather than centered. This function creates a button * and left-aligns it contents. */ GtkWidget * left_align_button_new (const char *label) { GtkWidget *button = gtk_button_new_with_mnemonic (label); GtkWidget *child = gtk_bin_get_child (GTK_BIN (button)); gtk_widget_set_halign (child, GTK_ALIGN_START); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); return button; } /* Creates the "Display" frame in the main window. */ GtkWidget * create_display_frame (ChangeDisplayInfo *info) { GtkWidget *frame; GtkWidget *tree_view; GtkWidget *button_vbox; GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkWidget *button; create_frame (info, "Display", &frame, &tree_view, &button_vbox); button = left_align_button_new ("_Open..."); g_signal_connect (button, "clicked", G_CALLBACK (open_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); button = left_align_button_new ("_Close"); g_signal_connect (button, "clicked", G_CALLBACK (close_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); info->display_model = (GtkTreeModel *)gtk_list_store_new (DISPLAY_NUM_COLUMNS, G_TYPE_STRING, GDK_TYPE_DISPLAY); gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), info->display_model); column = gtk_tree_view_column_new_with_attributes ("Name", gtk_cell_renderer_text_new (), "text", DISPLAY_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); g_signal_connect (selection, "changed", G_CALLBACK (display_changed_cb), info); return frame; } /* Called when one of the currently open displays is closed. * Remove it from our list of displays. */ static void display_closed_cb (GdkDisplay *display, gboolean is_error, ChangeDisplayInfo *info) { GtkTreeIter iter; gboolean valid; for (valid = gtk_tree_model_get_iter_first (info->display_model, &iter); valid; valid = gtk_tree_model_iter_next (info->display_model, &iter)) { GdkDisplay *tmp_display; gtk_tree_model_get (info->display_model, &iter, DISPLAY_COLUMN_DISPLAY, &tmp_display, -1); if (tmp_display == display) { gtk_list_store_remove (GTK_LIST_STORE (info->display_model), &iter); break; } } } /* Adds a new display to our list of displays, and connects * to the "closed" signal so that we can remove it from the * list of displays again. */ static void add_display (ChangeDisplayInfo *info, GdkDisplay *display) { const gchar *name = gdk_display_get_name (display); GtkTreeIter iter; gtk_list_store_append (GTK_LIST_STORE (info->display_model), &iter); gtk_list_store_set (GTK_LIST_STORE (info->display_model), &iter, DISPLAY_COLUMN_NAME, name, DISPLAY_COLUMN_DISPLAY, display, -1); g_signal_connect (display, "closed", G_CALLBACK (display_closed_cb), info); } /* Called when a new display is opened */ static void display_opened_cb (GdkDisplayManager *manager, GdkDisplay *display, ChangeDisplayInfo *info) { add_display (info, display); } /* Adds all currently open displays to our list of displays, * and set up a signal connection so that we'll be notified * when displays are opened in the future as well. */ static void initialize_displays (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) add_display (info, tmp_list->data); g_slist_free (tmp_list); g_signal_connect (manager, "display-opened", G_CALLBACK (display_opened_cb), info); } /* Cleans up when the toplevel is destroyed; we remove the * connections we use to track currently open displays, then * free the ChangeDisplayInfo structure. */ static void destroy_info (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; g_signal_handlers_disconnect_by_func (manager, display_opened_cb, info); for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) g_signal_handlers_disconnect_by_func (tmp_list->data, display_closed_cb, info); g_slist_free (tmp_list); g_object_unref (info->size_group); g_object_unref (info->display_model); if (info->current_display) g_object_unref (info->current_display); g_free (info); } static void destroy_cb (GObject *object, ChangeDisplayInfo **info) { destroy_info (*info); *info = NULL; } /* Main entry point. If the dialog for this demo doesn't yet exist, creates * it. Otherwise, destroys it. */ GtkWidget * do_changedisplay (GtkWidget *do_widget) { static ChangeDisplayInfo *info = NULL; if (!info) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *frame; info = g_new0 (ChangeDisplayInfo, 1); info->window = gtk_dialog_new_with_buttons ("Change Display", GTK_WINDOW (do_widget), 0, "Close", GTK_RESPONSE_CLOSE, "Change", GTK_RESPONSE_OK, NULL); gtk_window_set_default_size (GTK_WINDOW (info->window), 300, 400); g_signal_connect (info->window, "response", G_CALLBACK (response_cb), info); g_signal_connect (info->window, "destroy", G_CALLBACK (destroy_cb), &info); content_area = gtk_dialog_get_content_area (GTK_DIALOG (info->window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); frame = create_display_frame (info); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); initialize_displays (info); gtk_widget_show_all (info->window); return info->window; } else { gtk_widget_destroy (info->window); return NULL; } } (uuay)font_features.c</* Pango/Font Features * * This example demonstrates support for OpenType font features with * Pango attributes. The attributes can be used manually or via Pango * markup. * * It can also be used to explore available features in OpenType fonts * and their effect. */ #include #include #include #include #include static GtkWidget *label; static GtkWidget *settings; static GtkWidget *font; static GtkWidget *script_lang; static GtkWidget *resetbutton; static GtkWidget *numcasedefault; static GtkWidget *numspacedefault; static GtkWidget *fractiondefault; static GtkWidget *stack; static GtkWidget *entry; #define num_features 40 static GtkWidget *toggle[num_features]; static GtkWidget *icon[num_features]; static const char *feature_names[num_features] = { "kern", "liga", "dlig", "hlig", "clig", "smcp", "c2sc", "pcap", "c2pc", "unic", "cpsp", "case", "lnum", "onum", "pnum", "tnum", "frac", "afrc", "zero", "nalt", "sinf", "swsh", "cswh", "locl", "calt", "hist", "salt", "titl", "rand", "subs", "sups", "init", "medi", "fina", "isol", "ss01", "ss02", "ss03", "ss04", "ss05" }; static void update_display (void) { GString *s; char *font_desc; char *font_settings; const char *text; gboolean has_feature; int i; hb_tag_t lang_tag; GtkTreeModel *model; GtkTreeIter iter; const char *lang; text = gtk_entry_get_text (GTK_ENTRY (entry)); font_desc = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (font)); s = g_string_new (""); has_feature = FALSE; for (i = 0; i < num_features; i++) { if (!gtk_widget_is_sensitive (toggle[i])) continue; if (GTK_IS_RADIO_BUTTON (toggle[i])) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle[i]))) { if (has_feature) g_string_append (s, ", "); g_string_append (s, gtk_buildable_get_name (GTK_BUILDABLE (toggle[i]))); g_string_append (s, " 1"); has_feature = TRUE; } } else { if (has_feature) g_string_append (s, ", "); g_string_append (s, gtk_buildable_get_name (GTK_BUILDABLE (toggle[i]))); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle[i]))) g_string_append (s, " 1"); else g_string_append (s, " 0"); has_feature = TRUE; } } font_settings = g_string_free (s, FALSE); gtk_label_set_text (GTK_LABEL (settings), font_settings); if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (script_lang), &iter)) { model = gtk_combo_box_get_model (GTK_COMBO_BOX (script_lang)); gtk_tree_model_get (model, &iter, 3, &lang_tag, -1); lang = hb_language_to_string (hb_ot_tag_to_language (lang_tag)); } else lang = NULL; s = g_string_new (""); g_string_append_printf (s, "%s", text); gtk_label_set_markup (GTK_LABEL (label), s->str); g_string_free (s, TRUE); g_free (font_desc); g_free (font_settings); } static PangoFont * get_pango_font (void) { PangoFontDescription *desc; PangoContext *context; PangoFontMap *map; desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (font)); context = gtk_widget_get_pango_context (font); map = pango_context_get_font_map (context); return pango_font_map_load_font (map, context, desc); } static struct { const char *name; hb_script_t script; } script_names[] = { { "Common", HB_SCRIPT_COMMON }, { "Inherited", HB_SCRIPT_INHERITED }, { "Unknown", HB_SCRIPT_UNKNOWN }, { "Arabic", HB_SCRIPT_ARABIC }, { "Armenian", HB_SCRIPT_ARMENIAN }, { "Bengali", HB_SCRIPT_BENGALI }, { "Cyrillic", HB_SCRIPT_CYRILLIC }, { "Devanagari", HB_SCRIPT_DEVANAGARI }, { "Georgian", HB_SCRIPT_GEORGIAN }, { "Greek", HB_SCRIPT_GREEK }, { "Gujarati", HB_SCRIPT_GUJARATI }, { "Gurmukhi", HB_SCRIPT_GURMUKHI }, { "Hangul", HB_SCRIPT_HANGUL }, { "Han", HB_SCRIPT_HAN }, { "Hebrew", HB_SCRIPT_HEBREW }, { "Hiragana", HB_SCRIPT_HIRAGANA }, { "Kannada", HB_SCRIPT_KANNADA }, { "Katakana", HB_SCRIPT_KATAKANA }, { "Lao", HB_SCRIPT_LAO }, { "Latin", HB_SCRIPT_LATIN }, { "Malayalam", HB_SCRIPT_MALAYALAM }, { "Oriya", HB_SCRIPT_ORIYA }, { "Tamil", HB_SCRIPT_TAMIL }, { "Telugu", HB_SCRIPT_TELUGU }, { "Thai", HB_SCRIPT_THAI }, { "Tibetan", HB_SCRIPT_TIBETAN }, { "Bopomofo", HB_SCRIPT_BOPOMOFO } /* FIXME: complete */ }; static struct { const char *name; hb_tag_t tag; } language_names[] = { { "Arabic", HB_TAG ('A','R','A',' ') }, { "Romanian", HB_TAG ('R','O','M',' ') }, { "Skolt Sami", HB_TAG ('S','K','S',' ') }, { "Northern Sami", HB_TAG ('N','S','M',' ') }, { "Kildin Sami", HB_TAG ('K','S','M',' ') }, { "Moldavian", HB_TAG ('M','O','L',' ') }, { "Turkish", HB_TAG ('T','R','K',' ') }, { "Azerbaijani", HB_TAG ('A','Z','E',' ') }, { "Crimean Tatar", HB_TAG ('C','R','T',' ') }, { "Serbian", HB_TAG ('S','R','B',' ') }, { "German", HB_TAG ('D','E','U',' ') } /* FIXME: complete */ }; typedef struct { hb_tag_t script_tag; hb_tag_t lang_tag; unsigned int script_index; unsigned int lang_index; } TagPair; static guint tag_pair_hash (gconstpointer data) { const TagPair *pair = data; return pair->script_tag + pair->lang_tag; } static gboolean tag_pair_equal (gconstpointer a, gconstpointer b) { const TagPair *pair_a = a; const TagPair *pair_b = b; return pair_a->script_tag == pair_b->script_tag && pair_a->lang_tag == pair_b->lang_tag; } static void update_script_combo (void) { GtkListStore *store; hb_font_t *hb_font; gint i, j, k, l; FT_Face ft_face; PangoFont *pango_font; GHashTable *tags; GHashTableIter iter; TagPair *pair; store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); pango_font = get_pango_font (); ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)), hb_font = hb_ft_font_create (ft_face, NULL); tags = g_hash_table_new_full (tag_pair_hash, tag_pair_equal, g_free, NULL); pair = g_new (TagPair, 1); pair->script_tag = HB_OT_TAG_DEFAULT_SCRIPT; pair->lang_tag = HB_OT_TAG_DEFAULT_LANGUAGE; g_hash_table_insert (tags, pair, g_strdup ("Default")); if (hb_font) { hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS }; hb_face_t *hb_face; hb_face = hb_font_get_face (hb_font); for (i= 0; i < 2; i++) { hb_tag_t scripts[80]; unsigned int script_count = G_N_ELEMENTS (scripts); hb_ot_layout_table_get_script_tags (hb_face, tables[i], 0, &script_count, scripts); for (j = 0; j < script_count; j++) { hb_tag_t languages[80]; unsigned int language_count = G_N_ELEMENTS (languages); pair = g_new (TagPair, 1); pair->script_tag = scripts[j]; pair->lang_tag = HB_OT_TAG_DEFAULT_LANGUAGE; pair->script_index = j; pair->lang_index = HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX; g_hash_table_add (tags, pair); hb_ot_layout_script_get_language_tags (hb_face, tables[i], j, 0, &language_count, languages); for (k = 0; k < language_count; k++) { pair = g_new (TagPair, 1); pair->script_tag = scripts[j]; pair->lang_tag = languages[k]; pair->script_index = j; pair->lang_index = k; g_hash_table_add (tags, pair); } } } hb_face_destroy (hb_face); } pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font)); g_object_unref (pango_font); g_hash_table_iter_init (&iter, tags); while (g_hash_table_iter_next (&iter, (gpointer *)&pair, NULL)) { const char *scriptname; char scriptbuf[5]; const char *langname; char langbuf[5]; char *name; if (pair->script_tag == HB_OT_TAG_DEFAULT_SCRIPT) scriptname = "Default"; else if (pair->script_tag == HB_TAG ('m','a','t','h')) scriptname = "Math"; else { hb_script_t script; hb_tag_to_string (pair->script_tag, scriptbuf); scriptbuf[4] = 0; scriptname = scriptbuf; script = hb_script_from_iso15924_tag (pair->script_tag); for (k = 0; k < G_N_ELEMENTS (script_names); k++) { if (script == script_names[k].script) { scriptname = script_names[k].name; break; } } } if (pair->lang_tag == HB_OT_TAG_DEFAULT_LANGUAGE) langname = "Default"; else { hb_tag_to_string (pair->lang_tag, langbuf); langbuf[4] = 0; langname = langbuf; for (l = 0; l < G_N_ELEMENTS (language_names); l++) { if (pair->lang_tag == language_names[l].tag) { langname = language_names[l].name; break; } } } name = g_strdup_printf ("%s - %s", scriptname, langname); gtk_list_store_insert_with_values (store, NULL, -1, 0, name, 1, pair->script_index, 2, pair->lang_index, 3, pair->lang_tag, -1); g_free (name); } g_hash_table_destroy (tags); gtk_combo_box_set_model (GTK_COMBO_BOX (script_lang), GTK_TREE_MODEL (store)); gtk_combo_box_set_active (GTK_COMBO_BOX (script_lang), 0); } static void update_features (void) { gint i, j, k; GtkTreeModel *model; GtkTreeIter iter; guint script_index, lang_index; PangoFont *pango_font; FT_Face ft_face; hb_font_t *hb_font; for (i = 0; i < num_features; i++) gtk_widget_set_opacity (icon[i], 0); /* set feature presence checks from the font features */ if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (script_lang), &iter)) return; model = gtk_combo_box_get_model (GTK_COMBO_BOX (script_lang)); gtk_tree_model_get (model, &iter, 1, &script_index, 2, &lang_index, -1); pango_font = get_pango_font (); ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)), hb_font = hb_ft_font_create (ft_face, NULL); if (hb_font) { hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS }; hb_face_t *hb_face; hb_face = hb_font_get_face (hb_font); for (i = 0; i < 2; i++) { hb_tag_t features[80]; unsigned int count = G_N_ELEMENTS(features); hb_ot_layout_language_get_feature_tags (hb_face, tables[i], script_index, lang_index, 0, &count, features); for (j = 0; j < count; j++) { for (k = 0; k < num_features; k++) { if (hb_tag_from_string (feature_names[k], -1) == features[j]) gtk_widget_set_opacity (icon[k], 0.5); } } } hb_face_destroy (hb_face); } pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font)); g_object_unref (pango_font); } static void font_changed (void) { update_script_combo (); } static void script_changed (void) { update_features (); update_display (); } static void reset_features (void) { int i; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (numcasedefault), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (numspacedefault), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fractiondefault), TRUE); for (i = 0; i < num_features; i++) { if (!GTK_IS_RADIO_BUTTON (toggle[i])) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle[i]), FALSE); gtk_widget_set_sensitive (toggle[i], FALSE); } } } static char *text; static void switch_to_entry (void) { text = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); gtk_stack_set_visible_child_name (GTK_STACK (stack), "entry"); } static void switch_to_label (void) { g_free (text); text = NULL; gtk_stack_set_visible_child_name (GTK_STACK (stack), "label"); update_display (); } static gboolean entry_key_press (GtkEntry *entry, GdkEventKey *event) { if (event->keyval == GDK_KEY_Escape) { gtk_entry_set_text (GTK_ENTRY (entry), text); switch_to_label (); return GDK_EVENT_STOP; } return GDK_EVENT_PROPAGATE; } GtkWidget * do_font_features (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; int i; builder = gtk_builder_new_from_resource ("/font_features/font-features.ui"); gtk_builder_add_callback_symbol (builder, "update_display", update_display); gtk_builder_add_callback_symbol (builder, "font_changed", font_changed); gtk_builder_add_callback_symbol (builder, "script_changed", script_changed); gtk_builder_add_callback_symbol (builder, "reset", reset_features); gtk_builder_add_callback_symbol (builder, "switch_to_entry", switch_to_entry); gtk_builder_add_callback_symbol (builder, "switch_to_label", switch_to_label); gtk_builder_add_callback_symbol (builder, "entry_key_press", G_CALLBACK (entry_key_press)); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); label = GTK_WIDGET (gtk_builder_get_object (builder, "label")); settings = GTK_WIDGET (gtk_builder_get_object (builder, "settings")); resetbutton = GTK_WIDGET (gtk_builder_get_object (builder, "reset")); font = GTK_WIDGET (gtk_builder_get_object (builder, "font")); script_lang = GTK_WIDGET (gtk_builder_get_object (builder, "script_lang")); numcasedefault = GTK_WIDGET (gtk_builder_get_object (builder, "numcasedefault")); numspacedefault = GTK_WIDGET (gtk_builder_get_object (builder, "numspacedefault")); fractiondefault = GTK_WIDGET (gtk_builder_get_object (builder, "fractiondefault")); stack = GTK_WIDGET (gtk_builder_get_object (builder, "stack")); entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry")); for (i = 0; i < num_features; i++) { char *iname; toggle[i] = GTK_WIDGET (gtk_builder_get_object (builder, feature_names[i])); iname = g_strconcat (feature_names[i], "_pres", NULL); icon[i] = GTK_WIDGET (gtk_builder_get_object (builder, iname)); g_free (iname); } font_changed (); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_window_present (GTK_WINDOW (window)); else gtk_widget_destroy (window); return window; } (uuay)se_resize_cursor.png:PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXMHcWsIZUt*K[ K-"JA7JJRn"HCB t.-D̦PVQ'?5$79ؑNԔ.=9]> e)OkKVR~Cahz+<[+(r"5Jɒ$I%ey&ax|  uPFQ! }l`~x<RMMMt:y<O>A>Y9jpT*@DD>uf9PWWwD~h4^$Itvv ;;;ʉ x&bJl63õ(>mR^x~xxrMpӳ2c.ffffٔ ~ @u:ݗgf`@ ^XXͶV}.E]؍́܉p"jvzzzm\}~ZhnniW!|>; oL&lmm ["3l82tj>P $08 ˘#=2tןa,ΝIENDB`(uuay)reset.cssp/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } (uuay)none_cursor.pngPNG  IHDR szzbKGD pHYs  tIME 6PAiTXtCommentCreated with GIMPd.eIDATX nH@ WIENDB`(uuay)css_shadows/[Yapplication_demo.c /* Application Class * * Demonstrates a simple application. * * This example uses GtkApplication, GtkApplicationWindow, GtkBuilder * as well as GMenu and GResource. Due to the way GtkApplication is structured, * it is run as a separate process. */ #include "config.h" #include static gboolean name_seen; static GtkWidget *placeholder; static void on_name_appeared (GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer user_data) { name_seen = TRUE; } static void on_name_vanished (GDBusConnection *connection, const gchar *name, gpointer user_data) { if (!name_seen) return; if (placeholder) { gtk_widget_destroy (placeholder); g_object_unref (placeholder); placeholder = NULL; } } #ifdef G_OS_WIN32 #define APP_EXTENSION ".exe" #else #define APP_EXTENSION #endif GtkWidget * do_application_demo (GtkWidget *toplevel) { static guint watch = 0; if (watch == 0) watch = g_bus_watch_name (G_BUS_TYPE_SESSION, "org.gtk.Demo2", 0, on_name_appeared, on_name_vanished, NULL, NULL); if (placeholder == NULL) { const gchar *command; GError *error = NULL; if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE)) command = "./gtk3-demo-application" APP_EXTENSION; else command = "gtk3-demo-application"; if (!g_spawn_command_line_async (command, &error)) { g_warning ("%s", error->message); g_error_free (error); } placeholder = gtk_label_new (""); g_object_ref_sink (placeholder); } else { g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL), "org.gtk.Demo2", "/org/gtk/Demo2", "org.gtk.Actions", "Activate", g_variant_new ("(sava{sv})", "quit", NULL, NULL), NULL, 0, G_MAXINT, NULL, NULL); } return placeholder; } (uuay)context_menu_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATX_LSw-P耥lYئb"np9Sj`ܓ,!AaYCP$Ku={h/v*ڱMs{{"-t:LOOVUUHl p8I""n^EG)>",@ssA{ WI۶mkݻw˗ <#,֭[%33S% >隆#-kYa(eU/^lMNN^ ,%W^ږ9bNR\r]vi%===_/@{SERtuugr1/ 2Xy߯U\|Oxh[(8s ---YK.}< bOʳg~ <fߌyI?NYYYuggg-xdرcaÆ"ui3 j$&&b۹~:CCCڦM>;zdee@1(`&%99Y|O81 7~ `Da1׋HmmJnn^ XNlLb %;v0͛7W @\$m<`:tH 0N\)sNIKK)~x>>df`rr{bb4ەRao޼Y̍{7u]WՒ!˖-;wmmmm@KEDn :SN0Adrd߾}?~x߽{aHII0 D$ HvZ*>4 ]〔ywp$;wC- ?J šP^ PJ)ƍOW׺:BP zށP(t۷o`R$!hulRMM;%%%[|>tssccc{> >`xE*f~7PB_Z H$jJ395 @ERe<T%4IENDB`(uuay)css_pixbufs.c/* Theming/Animated Backgrounds * * This demo is done in honour of the Pixbufs demo further down. * It is done exclusively with CSS as the background of the window. */ #include static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_pixbufs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Animated Backgrounds"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_pixbufs/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)alias_cursor.pnggPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3DIDATXMhTW/3of?Ih0MH"1"A.JKn,RwD B@]YEXli!bDI!bX8/S̼qjc?}{9 /8lvĶ9۶m۞d2 ˲\XX?rH0±bI5FQVn߾M0}H$rEȋ[\}Z5l6],s;&q  sN)4UVVSN<ƍ'5l'NK㈥ؾԆܡ_zM6Ms4xWPQQAqq1XEUUa099I  NP( $ 0 Ð0|>***%c">JKKdaVXE4ɓ'ڵ7ohlldttt5|+ ,ko;wp'Od۶[tl6[NWt`&mmm\tixQD5o +Ç߈b?'J677uƍ?O]u 6mRCCT>_ g8}l]f΋p8-0{zz6?4y!̙RU+"@+@{o۶mm[gϞUKKbrc+ljMP($@J&9&"x>rTp8{K@*J8H{=7.x6{u]9sFӹsNsz琸pFFF% ]rE,U fgffjjjk׮H$8~8dxE͛u]088b?OsZ7{n!W!/y`{O~.dF7IENDB`(uuay)gnome-gsame.pngPNG  IHDR00WgAMA1_^IDATxYdWy[{U3ӳ3a0+f1F !HI7x,g~Swoߟk03֫6Y,bMWr?[?;j1񪴜S|zoY|쳷S;s%>sj\3Җ\+A {?+%y2 P/=S .>٘cƘ2j;_ 'VF;k wN;njYo9-dG-ӿw?ӟ=B()9 4&0L.~$%KL(K~| _ѹ|h#B4xۍKx`Fi猆F?Ikm!qcQ%7 BY`x)uJRc|'g8w:{S@6s:.&R0 =y;zRJß[޲t_}&[i؋.YoKU!Ejg;*sf[)y@E ^G٠L^B6v@$9J@YJ@cp@hs;}jP `8V\Ib+~fժR9֘0r#?chEb5USб2wdЙBDEF(ՠ-4ƶu ra"nR͜>Y1U @2q{78asC^,yr\ģ'\kW!WbJCvFdIJjDS2B #l\S8IMJV@]e߳83lu2mu6ZYÿvW녙th6jLLX{wNgy=;wd#lm'Y,}T[ 6NsD:bj^tG)ǟ{Mo󙝇{.[Fxt+(M AElZET'12nF/"QlҜ02J+%Am D)C~l"oKm! dn[yǹOyԣ%!)RjV)5jK)kRJ8L]" i昭nil M3"݄"OZVc6F.[#7UPxSDq[kSkmbst!D@<ߪv:;f4ZG(9Α) /Í#$'eZbkAx>.v^ @^޶ֶMkmZ+1Ba1BITn+$:vgjT3p$(c'h3Mr&&4 HPiz6%t N;jZkT!Xp55afvVhCE4Mb"Ռ7N:!hk3\ Jr$PF;* 6|k1L5!D0?9uY>@1nRIiĒ:6/ʉ Ɉ2ֶhQ8r\g*h^1b!D`E`3U @=v޴V0M "I $ 2.f[ `uu{W[Bkg^ ,hkB$Z;֎$W|?Ԭ7pGjz}أO<,mFWu̥O]{l#3-R=И^ZI+~`6t kur>dZ֒8Ɋ3T̬\3*_;w.6?:p`f9zDgnĮKk)ԆfBXJ Zztx{n޿w5g1IT+dy&,#I0 |$[7 n[H^ѷΏN8%>Zq^sw~) !zvb(pd:H(4IyFRE IZQ=.TZpZ%^+x:򖛿!If)I>3\Gh)cTZ)cGQz@զ2rGKkkHuNIApn˅^R7a@ݡ.QuԽ];vuZ!T}jQNRT+UfXC 0&' B?LKRnsu^\yJ yv~1qFCbðpq1 !B@K)m!)W.|;}?QS 4,JV~ okwN33^zb8)q]Yx2a%b !TVTRqr)egi9#o$4Ea,Q<ׄQ\|+eƽ®z@$GIL/c&J~TN\^VmR1h!e/4OQ ]$q]_x^Dh1'{&o f@&`%4j.)!DF 4n)4ιJڻ0n^@eB'qa_|9?R5-oL Jkgѣ␰4`aaA}l6fxӾVn_LLy^8 +)," }MR]gU/mCCҀ/ \KylA[_/M-uǽv%Jy#҄Dv @tpPKQq?66*y |tKRRUVen~bՊ5.emmqAI}y`=Nm+_ϾNiJg3ޤW e)q+|%Ķ;^s1aIENDB`(uuay)rotated_text.c!/* Pango/Rotated Text * * This demo shows how to use PangoCairo to draw rotated and transformed * text. The right pane shows a rotated GtkLabel widget. * * In both cases, a custom PangoCairo shape renderer is installed to draw * a red heard using cairo drawing operations instead of the Unicode heart * character. */ #include #include #define HEART "♥" const char text[] = "I ♥ GTK+"; static void fancy_shape_renderer (cairo_t *cr, PangoAttrShape *attr, gboolean do_path, gpointer data) { double x, y; cairo_get_current_point (cr, &x, &y); cairo_translate (cr, x, y); cairo_scale (cr, (double) attr->ink_rect.width / PANGO_SCALE, (double) attr->ink_rect.height / PANGO_SCALE); switch (GPOINTER_TO_UINT (attr->data)) { case 0x2665: /* U+2665 BLACK HEART SUIT */ { cairo_move_to (cr, .5, .0); cairo_line_to (cr, .9, -.4); cairo_curve_to (cr, 1.1, -.8, .5, -.9, .5, -.5); cairo_curve_to (cr, .5, -.9, -.1, -.8, .1, -.4); cairo_close_path (cr); } break; } if (!do_path) { cairo_set_source_rgb (cr, 1., 0., 0.); cairo_fill (cr); } } PangoAttrList * create_fancy_attr_list_for_layout (PangoLayout *layout) { PangoAttrList *attrs; PangoFontMetrics *metrics; int ascent; PangoRectangle ink_rect, logical_rect; const char *p; /* Get font metrics and prepare fancy shape size */ metrics = pango_context_get_metrics (pango_layout_get_context (layout), pango_layout_get_font_description (layout), NULL); ascent = pango_font_metrics_get_ascent (metrics); logical_rect.x = 0; logical_rect.width = ascent; logical_rect.y = -ascent; logical_rect.height = ascent; ink_rect = logical_rect; pango_font_metrics_unref (metrics); /* Set fancy shape attributes for all hearts */ attrs = pango_attr_list_new (); for (p = text; (p = strstr (p, HEART)); p += strlen (HEART)) { PangoAttribute *attr; attr = pango_attr_shape_new_with_data (&ink_rect, &logical_rect, GUINT_TO_POINTER (g_utf8_get_char (p)), NULL, NULL); attr->start_index = p - text; attr->end_index = attr->start_index + strlen (HEART); pango_attr_list_insert (attrs, attr); } return attrs; } static gboolean rotated_text_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { #define RADIUS 150 #define N_WORDS 5 #define FONT "Serif 18" PangoContext *context; PangoLayout *layout; PangoFontDescription *desc; cairo_pattern_t *pattern; PangoAttrList *attrs; double device_radius; int width, height; int i; /* Create a cairo context and set up a transformation matrix so that the user * space coordinates for the centered square where we draw are [-RADIUS, RADIUS], * [-RADIUS, RADIUS]. * We first center, then change the scale. */ width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); device_radius = MIN (width, height) / 2.; cairo_translate (cr, device_radius + (width - 2 * device_radius) / 2, device_radius + (height - 2 * device_radius) / 2); cairo_scale (cr, device_radius / RADIUS, device_radius / RADIUS); /* Create and a subtle gradient source and use it. */ pattern = cairo_pattern_create_linear (-RADIUS, -RADIUS, RADIUS, RADIUS); cairo_pattern_add_color_stop_rgb (pattern, 0., .5, .0, .0); cairo_pattern_add_color_stop_rgb (pattern, 1., .0, .0, .5); cairo_set_source (cr, pattern); /* Create a PangoContext and set up our shape renderer */ context = gtk_widget_create_pango_context (widget); pango_cairo_context_set_shape_renderer (context, fancy_shape_renderer, NULL, NULL); /* Create a PangoLayout, set the text, font, and attributes */ layout = pango_layout_new (context); pango_layout_set_text (layout, text, -1); desc = pango_font_description_from_string (FONT); pango_layout_set_font_description (layout, desc); attrs = create_fancy_attr_list_for_layout (layout); pango_layout_set_attributes (layout, attrs); pango_attr_list_unref (attrs); /* Draw the layout N_WORDS times in a circle */ for (i = 0; i < N_WORDS; i++) { int width, height; /* Inform Pango to re-layout the text with the new transformation matrix */ pango_cairo_update_layout (cr, layout); pango_layout_get_pixel_size (layout, &width, &height); cairo_move_to (cr, - width / 2, - RADIUS * .9); pango_cairo_show_layout (cr, layout); /* Rotate for the next turn */ cairo_rotate (cr, G_PI*2 / N_WORDS); } /* free the objects we created */ pango_font_description_free (desc); g_object_unref (layout); g_object_unref (context); cairo_pattern_destroy (pattern); return FALSE; } GtkWidget * do_rotated_text (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *box; GtkWidget *drawing_area; GtkWidget *label; PangoLayout *layout; PangoAttrList *attrs; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Text"); gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous (GTK_BOX (box), TRUE); gtk_container_add (GTK_CONTAINER (window), box); /* Add a drawing area */ drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (box), drawing_area); gtk_style_context_add_class (gtk_widget_get_style_context (drawing_area), GTK_STYLE_CLASS_VIEW); g_signal_connect (drawing_area, "draw", G_CALLBACK (rotated_text_draw), NULL); /* And a label */ label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_label_set_angle (GTK_LABEL (label), 45); /* Set up fancy stuff on the label */ layout = gtk_label_get_layout (GTK_LABEL (label)); pango_cairo_context_set_shape_renderer (pango_layout_get_context (layout), fancy_shape_renderer, NULL, NULL); attrs = create_fancy_attr_list_for_layout (layout); gtk_label_set_attributes (GTK_LABEL (label), attrs); pango_attr_list_unref (attrs); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)tabs.c/* Text View/Tabs * * GtkTextView can position text at fixed positions, using tabs. */ #include #include GtkWidget * do_tabs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; PangoTabArray *tabs; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Tabs"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20); tabs = pango_tab_array_new (3, TRUE); pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, 0); pango_tab_array_set_tab (tabs, 1, PANGO_TAB_LEFT, 150); pango_tab_array_set_tab (tabs, 2, PANGO_TAB_LEFT, 300); gtk_text_view_set_tabs (GTK_TEXT_VIEW (view), tabs); pango_tab_array_free (tabs); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_set_text (buffer, "one\ttwo\tthree\nfour\tfive\tsix\nseven\teight\tnine", -1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)glarea-gl.vs.glslx#version 330 layout(location = 0) in vec4 position; uniform mat4 mvp; void main() { gl_Position = mvp * position; } (uuay)zoom_in_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXWklSi0e".Q A.цZ !U(~PZD[!hl#!hBDT!@[ *6 Gmq=sqRtt5gf|9 x$ɠj/#H(F{4Kp8ܚ9.Ɗ0Yg(WTVVEQׅ^qpp0}tftRJKKAN'0˥XVt t:Zv-+hTQewmnBinnV)%tӦM{)-q ;wnp|>6o޼3gP0=}tw~%I2LsUPPSЃqtJKK\3H(77$IbO%Ir%755񑑑 3@v;vrY^yf#4>% ;w>!"Z`bQ[[o୉$@hNv9'pB""jjjZ`0*$IPYY EQ +ےuɯE UVVݻ`0ȋw-q3<看P^^`0%N?JE]|cp솆9s~1  'ɀZ4 RvDjTWWa0 F#KjuT %Iz}EZo~kͯ7g'6 @EM[ד@͞=;it\Ezau8^f $vm&9ɓ$yyyB__ !}\v :cYg `M\i|chUeV(**Bnn>yk5 IݻwE"H5!@vvv*(ڵkԩS)5ݻw===LRZd q9zkbb!D1-ZDHRb7np@J 0.[wHm޼9߿(q_Vݻ79۶m/> &gf9d֭D,˽Dٱ6˲(-[$畖R0v`-bd|PѣGC?f!l̙tҥh81ƘBDMMMѢ7Q]]ˠ S,,++yvYyyN322jjj***&,AzbmH -* vtt< 4mڴ fggf6_7 *V{f}zÁ@ZX,d2(//hÆ tE Hkk!Aޜcǎ}t:݊$Ȳ=z_gV^mOԩS)AB#˄gddL)..֛f(x|QY XnݺE ǎ;CCCL4"btĮ& 3̵Z?y󦪺ZP(/j?7˶0H#|JArkz>D^u:޾}sL*N$"b!J3cc+@ |%%%d^L%QB#uww+W\pΕ7^~o&ƿ*O8|@HH0 1U^ vXRe9I2IENDB`(uuay)spinbutton.uiE -10000 10000 0.5 100 255 1 16 1410 30 60 1 12 1 1 5 Spin Button 1 20 10 10 1 _Numeric 1 basic_spin 1 0 0 1 start 5 basic_adjustment 1 2 1 1 0 1 10 1 2 0 1 _Hexadecimal 1 hex_spin 1 0 1 1 start 4 hex_adjustment 1 1 1 1 10 1 2 1 1 _Time 1 time_spin 1 0 2 1 start 5 time_adjustment 1 1 2 1 10 1 2 2 1 _Month 1 month_spin 1 0 3 1 start 9 month_adjustment 1 if-valid 1 3 1 10 1 2 3 (uuay)gnome-calendar.png PNG  IHDR00WgAMA1_ zIDATx]lWwvvwNvc7֤}B"TDAVT臢ҨQ Ayh)BB R>ѠTb'󹉿];wwfa7N*Du5;wN;Nnn0;x}?&Ex @twRJ"T!@QW @ a H_(yJ6'C""a$ BuZ BiM* *=ܪD;ϏweBB E*es8N2H)A6/O^ZJ)[?J%#/hl34*aH(ω|>*c76 $2'\O6.8y}B1aᅊmsu'X aHB|rןP(J(^)RԑRDJNDΗ^ac_kG-VVW6l |#bhm!ne~ye9FhfA^G#7)rp$^<|] QJ"py2 KV^o $ʈ C;Qؐ{Iȥnc2}8ڭ;rk LdGui 8ƃ@ "Z!&7ֽ@^xO,k*)-l ]o[fMCz8@oܸ K;7ę v(d6LJxh-`Oˌ]5MdU`PHw@1c; 9D5#M@.}@7vg):?yyF+C ? lSKl =˓R)/fYZ)JgDeYZXbbGF@o84ށX5e!J:OS)N)w3ccdYv 180H+Mm֢@QNtR|'C^_Cgzt%eTkÐZ25;5эIXخh&BrĻt[jEZjc'ak*ͮa1yKTu]T%onl(r  ~ضrC4d'Ƅ:o!:zGcXd&zI} !ҩh+-G7 I4[=`ŵ $Mce_ܿ'F{1>7wccۀ^k1.Z\10ŁNVdf9v)c|t=< 3ccL̔1E94y0nzz=Du:3 static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * create_toolbar (void) { GtkWidget *toolbar; GtkToolItem *item; toolbar = gtk_toolbar_new (); gtk_widget_set_valign (toolbar, GTK_ALIGN_CENTER); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, "Hello World"); gtk_tool_item_set_is_important (item, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); return toolbar; } GtkWidget * do_css_shadows (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Shadows"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); child = create_toolbar (); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_shadows/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)revealer.c(/* Revealer * * GtkRevealer is a container that animates showing and hiding * of its sole child with nice transitions. */ #include static gint count = 0; static guint timeout = 0; static void change_direction (GtkRevealer *revealer) { if (gtk_widget_get_mapped (GTK_WIDGET (revealer))) { gboolean revealed; revealed = gtk_revealer_get_child_revealed (revealer); gtk_revealer_set_reveal_child (revealer, !revealed); } } static gboolean reveal_one (gpointer data) { GtkWidget *window = data; GtkBuilder *builder; gchar *name; GtkRevealer *revealer; builder = GTK_BUILDER (g_object_get_data (G_OBJECT (window), "builder")); name = g_strdup_printf ("revealer%d", count); revealer = (GtkRevealer *)gtk_builder_get_object (builder, name); gtk_revealer_set_reveal_child (revealer, TRUE); g_signal_connect (revealer, "notify::child-revealed", G_CALLBACK (change_direction), NULL); count++; if (count >= 9) { timeout = 0; return FALSE; } else return TRUE; } static GtkWidget *window = NULL; static void on_destroy (gpointer data) { window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } } GtkWidget * do_revealer (GtkWidget *do_widget) { if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/revealer/revealer.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (on_destroy), NULL); g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) { count = 0; timeout = g_timeout_add (690, reveal_one, window); gtk_widget_show_all (window); } else { gtk_widget_destroy (window); } return window; } (uuay)wait_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATX]hTgN2dL#f&I5!1PRV|5 ׇZ>XE[!Ɗ>[/՗R I/\}h|x3ddCfb4K/]8{k (> 1`x|(7A""iBD)keYz||ojηWsd2I?Y 4 㐪 Çx7oټy3;wbۄxՏ`OUUew׮]cbbq@QGǎ(ʒd2[ X+A @OirEz{{1MVx<F@UUCww7֫W>۸qW#"Wv.VYnݺ%?X,&iD"!GjN1M^/SϟkQW8w!sA._aձo>n7LE,vz(,,'O444rUUUW5),KEQu]xqGˎ_m&ׯ@ >$HiiKoooΚq PxWI}nX*P}}}ui4MH$"& ٺu #include static GtkWidget *window = NULL; static GtkWidget *entry1 = NULL; static GtkWidget *entry2 = NULL; static void message_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *dialog; static gint i = 1; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "This message box has been popped up the following\n" "number of times:"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%d", i); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); i++; } static void interactive_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *hbox; GtkWidget *image; GtkWidget *table; GtkWidget *local_entry1; GtkWidget *local_entry2; GtkWidget *label; gint response; dialog = gtk_dialog_new_with_buttons ("Interactive Dialog", GTK_WINDOW (window), GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, _("_OK"), GTK_RESPONSE_OK, "_Cancel", GTK_RESPONSE_CANCEL, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("dialog-question", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); local_entry1 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry1), gtk_entry_get_text (GTK_ENTRY (entry1))); gtk_grid_attach (GTK_GRID (table), local_entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); local_entry2 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry2), gtk_entry_get_text (GTK_ENTRY (entry2))); gtk_grid_attach (GTK_GRID (table), local_entry2, 1, 1, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry2); gtk_widget_show_all (hbox); response = gtk_dialog_run (GTK_DIALOG (dialog)); if (response == GTK_RESPONSE_OK) { gtk_entry_set_text (GTK_ENTRY (entry1), gtk_entry_get_text (GTK_ENTRY (local_entry1))); gtk_entry_set_text (GTK_ENTRY (entry2), gtk_entry_get_text (GTK_ENTRY (local_entry2))); } gtk_widget_destroy (dialog); } GtkWidget * do_dialog (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *hbox; GtkWidget *button; GtkWidget *table; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Dialogs and Message Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); frame = gtk_frame_new ("Dialogs"); gtk_container_add (GTK_CONTAINER (window), frame); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Standard message dialog */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_mnemonic ("_Message Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (message_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 0); /* Interactive dialog*/ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); button = gtk_button_new_with_mnemonic ("_Interactive Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (interactive_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); entry1 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); entry2 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry2, 1, 1, 1, 1); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-gimp.pngR PNG  IHDR00WgAMA1_ IDATxYk]u>{9w޶gllc#ǯ_Qܹu7up,+ k, !]?w @u ܴry=>ّ/$~IDhxm~Gȱ=fR.w'{ˡC"_"#acv*KDv ܂VK6Wztl0[; . 9<ckGn΍lR;y介~ &/xԙ ~w:$\":An(EFW~#AcR)ĭ4\OKs{&R@*=tӪW|B$BDp-xgp7zK~RH ѢrW\OBy񟟞Ǔ4++ݟ~xWQ,Z`olRZ2-v hJC g@ 0`O\!8 3v3X 0zE_s]^fvy\o<ЦMz^0o-[~ c8ȤDIdR!,j9ic_[6#)fݼaÆm޼!!Dqbb?=ȶKF|/b``{ޏ5kǐJǖ-[ƪP*VR1Z[Jz3WpdTMdldS*wx===m۶GǽfIo&q<?ժxWh~~vi^{m?8رcꫯBJVR R*( h֒Ʊ='20I.gN;HCyQyBvr''=Z vڅF3'`Fm<3={e&$A;IIJ({f0$GV (mb 0V:@rhrrB,_ѣGP,šs@>q߃a֭\SOhnRf}uՙ0l#٩T*-uM08O*ܝ=== fFehZ(J(9ϝ93'0n~i(RJT 8{}Π^  &VfX &fgseג3|߇Ð(Bp hPڇo}+ex~ԅSHJkZm IښU@BfÜ_Lkqaya!mU'mhـ=`6`f,? Vl$j ApY)rԇs1ro}c}ɞi4˲waE{{zz0 Q.GbCZITPy>=erJkLL]TIq3|fnqTux+ֺZT (ðJa I\CYV AAlIHc뚶p2z y5@4<5}nב˦pM?qx^R{dyZIΜG&SHrk@+ĄnNF sqnb}3VZZkRv;[P!`if[`f9;;{xHISiFJ* CiTJ0;W<.^Z@d-(B/Stz@n/5̘jg<9덎]` ۼqL |,H6ՆBT,T*7BO="Sgr0}SK0H3zjSU^uWu~NLW̧0iORIENDB`(uuay)gnome-gmush.png PNG  IHDR00WgAMA1_ cIDATx[$YNU{{qlbK"1R2QL B ͑xKH<8h`@/+lǻk{޹LwOwuu9UU }|O/}O ĭh(.]X}[W; <_^qƜȄX02#Lcŕ+kzk\Gw}?Ǔp2&N1iFuvIuvr;\{ |鯭4ӉQXd֐KRg5֊VCFϾ'CLXpzWGɬa0걺&=Y*_K+ǎ羓c̘I(c9\{k-)vGC$h 88K__xWWgW't-" .XLvb+Ng0Ƣ2Eeh8kqIz]T2Gd6%"@nY>| `oFX^=vxƚek-ΝEj @f22kU|as <5d$Z-~@RcF޴,:ۼ|GzrTfIZ!|: 8p 91a@Jߗx+6][=Ӧj>pOn_" bc3?ϛukO!DQkuffZlnl> RiΟybҌԦh2 Gl.hxW^wMDŽ " C(Bk &;;=]u4 ֮T*:œqfKssdWw>?v۝}tZ$nR*?x {!koƯ-?ܳ{rHNSGvIRa8  ~#&qL$R0ers7h$NXťuV$J&WrX._M9<|ߗ~K)58ILb,Zn#ʼni$ J}y`1j s*qȷomR)v{sp/oH?[~qX!RJj*RqOiA)d2A)E$ycZs 9GZ%X\gqao.κ<=stؗŷD>Rz{D)>t|cDQDE$IB) jlr!.-h68r mh6:O|=|?k8VۯGkY$ Ks$Ii2 DQD(A0;3#8~|޲Gfnрtww|LN\B<[?~+? q;h6xO|| \),T*cPJ!GUG @NI!:>rC t]qB̀f3'G'~~OwָcJBeH)B0L}BCkspFYufm_]^!tuG/4GK9RT*8Bnׅ!ֲHE0Dx<RzD⯟},BxX~+~u2c}U/dxkR1뽑V@D¿)i>ed!0 ihQJM H)WIFfIoZGn&js\*x-'FkHd$v>iRΎ1fZE'2zkܠ9Ph-'PX,0Okb–IL&&;|7W 9rUˣ_ρmw#$I SZk8- $sV2[/H)d$J81Sŗ <.diZOZ_rљ#Ϝ9R 9HӔ4M}cJGQV[l4K`MI&|^B»x #include #include static GtkWidget *window = NULL; #define FOLDER_NAME "/iconview/gnome-fs-directory.png" #define FILE_NAME "/iconview/gnome-fs-regular.png" enum { COL_PATH, COL_DISPLAY_NAME, COL_PIXBUF, COL_IS_DIRECTORY, NUM_COLS }; static GdkPixbuf *file_pixbuf, *folder_pixbuf; gchar *parent; GtkToolItem *up_button; /* Loads the images for the demo and returns whether the operation succeeded */ static void load_pixbufs (void) { if (file_pixbuf) return; /* already loaded earlier */ file_pixbuf = gdk_pixbuf_new_from_resource (FILE_NAME, NULL); /* resources must load successfully */ g_assert (file_pixbuf); folder_pixbuf = gdk_pixbuf_new_from_resource (FOLDER_NAME, NULL); g_assert (folder_pixbuf); } static void fill_store (GtkListStore *store) { GDir *dir; const gchar *name; GtkTreeIter iter; /* First clear the store */ gtk_list_store_clear (store); /* Now go through the directory and extract all the file * information */ dir = g_dir_open (parent, 0, NULL); if (!dir) return; name = g_dir_read_name (dir); while (name != NULL) { gchar *path, *display_name; gboolean is_dir; /* We ignore hidden files that start with a '.' */ if (name[0] != '.') { path = g_build_filename (parent, name, NULL); is_dir = g_file_test (path, G_FILE_TEST_IS_DIR); display_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_PATH, path, COL_DISPLAY_NAME, display_name, COL_IS_DIRECTORY, is_dir, COL_PIXBUF, is_dir ? folder_pixbuf : file_pixbuf, -1); g_free (path); g_free (display_name); } name = g_dir_read_name (dir); } g_dir_close (dir); } static gint sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { gboolean is_dir_a, is_dir_b; gchar *name_a, *name_b; int ret; /* We need this function because we want to sort * folders before files. */ gtk_tree_model_get (model, a, COL_IS_DIRECTORY, &is_dir_a, COL_DISPLAY_NAME, &name_a, -1); gtk_tree_model_get (model, b, COL_IS_DIRECTORY, &is_dir_b, COL_DISPLAY_NAME, &name_b, -1); if (!is_dir_a && is_dir_b) ret = 1; else if (is_dir_a && !is_dir_b) ret = -1; else { ret = g_utf8_collate (name_a, name_b); } g_free (name_a); g_free (name_b); return ret; } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN); /* Set sort column and function */ gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (store), sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); return store; } static void item_activated (GtkIconView *icon_view, GtkTreePath *tree_path, gpointer user_data) { GtkListStore *store; gchar *path; GtkTreeIter iter; gboolean is_dir; store = GTK_LIST_STORE (user_data); gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, tree_path); gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, COL_PATH, &path, COL_IS_DIRECTORY, &is_dir, -1); if (!is_dir) { g_free (path); return; } /* Replace parent with path and re-fill the model*/ g_free (parent); parent = path; fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void up_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; gchar *dir_name; store = GTK_LIST_STORE (user_data); dir_name = g_path_get_dirname (parent); g_free (parent); parent = dir_name; fill_store (store); /* Maybe de-sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), strcmp (parent, "/") != 0); } static void home_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; store = GTK_LIST_STORE (user_data); g_free (parent); parent = g_strdup (g_get_home_dir ()); fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void close_window(void) { gtk_widget_destroy (window); window = NULL; g_object_unref (file_pixbuf); file_pixbuf = NULL; g_object_unref (folder_pixbuf); folder_pixbuf = NULL; } GtkWidget * do_iconview (GtkWidget *do_widget) { if (!window) { GtkWidget *sw; GtkWidget *icon_view; GtkListStore *store; GtkWidget *vbox; GtkWidget *tool_bar; GtkToolItem *home_button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Icon View Basics"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); load_pixbufs (); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); tool_bar = gtk_toolbar_new (); gtk_box_pack_start (GTK_BOX (vbox), tool_bar, FALSE, FALSE, 0); up_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (up_button), _("_Up")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (up_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (up_button), "go-up"); gtk_tool_item_set_is_important (up_button, TRUE); gtk_widget_set_sensitive (GTK_WIDGET (up_button), FALSE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), up_button, -1); home_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (home_button), _("_Home")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (home_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (home_button), "go-home"); gtk_tool_item_set_is_important (home_button, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), home_button, -1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* Create the store and fill it with the contents of '/' */ parent = g_strdup ("/"); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_MULTIPLE); g_object_unref (store); /* Connect to the "clicked" signal of the "Up" tool button */ g_signal_connect (up_button, "clicked", G_CALLBACK (up_clicked), store); /* Connect to the "clicked" signal of the "Home" tool button */ g_signal_connect (home_button, "clicked", G_CALLBACK (home_clicked), store); /* We now set which model columns that correspond to the text * and pixbuf of each item */ gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), COL_DISPLAY_NAME); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), COL_PIXBUF); /* Connect to the "item-activated" signal */ g_signal_connect (icon_view, "item-activated", G_CALLBACK (item_activated), store); gtk_container_add (GTK_CONTAINER (sw), icon_view); gtk_widget_grab_focus (icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)combobox.c2/* Combo Boxes * * The GtkComboBox widget allows to select one option out of a list. * The GtkComboBoxEntry additionally allows the user to enter a value * that is not in the list of options. * * How the options are displayed is controlled by cell renderers. */ #include #include enum { ICON_NAME_COL, TEXT_COL }; static GtkTreeModel * create_icon_store (void) { const gchar *icon_names[6] = { "dialog-warning", "process-stop", "document-new", "edit-clear", NULL, "document-open" }; const gchar *labels[6] = { N_("Warning"), N_("Stop"), N_("New"), N_("Clear"), NULL, N_("Open") }; GtkTreeIter iter; GtkListStore *store; gint i; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); for (i = 0; i < G_N_ELEMENTS (icon_names); i++) { if (icon_names[i]) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, icon_names[i], TEXT_COL, _(labels[i]), -1); } else { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, NULL, TEXT_COL, "separator", -1); } } return GTK_TREE_MODEL (store); } /* A GtkCellLayoutDataFunc that demonstrates how one can control * sensitivity of rows. This particular function does nothing * useful and just makes the second row insensitive. */ static void set_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint *indices; gboolean sensitive; path = gtk_tree_model_get_path (tree_model, iter); indices = gtk_tree_path_get_indices (path); sensitive = indices[0] != 1; gtk_tree_path_free (path); g_object_set (cell, "sensitive", sensitive, NULL); } /* A GtkTreeViewRowSeparatorFunc that demonstrates how rows can be * rendered as separators. This particular function does nothing * useful and just turns the fourth row into a separator. */ static gboolean is_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gboolean result; path = gtk_tree_model_get_path (model, iter); result = gtk_tree_path_get_indices (path)[0] == 4; gtk_tree_path_free (path); return result; } static GtkTreeModel * create_capital_store (void) { struct { gchar *group; gchar *capital; } capitals[] = { { "A - B", NULL }, { NULL, "Albany" }, { NULL, "Annapolis" }, { NULL, "Atlanta" }, { NULL, "Augusta" }, { NULL, "Austin" }, { NULL, "Baton Rouge" }, { NULL, "Bismarck" }, { NULL, "Boise" }, { NULL, "Boston" }, { "C - D", NULL }, { NULL, "Carson City" }, { NULL, "Charleston" }, { NULL, "Cheyenne" }, { NULL, "Columbia" }, { NULL, "Columbus" }, { NULL, "Concord" }, { NULL, "Denver" }, { NULL, "Des Moines" }, { NULL, "Dover" }, { "E - J", NULL }, { NULL, "Frankfort" }, { NULL, "Harrisburg" }, { NULL, "Hartford" }, { NULL, "Helena" }, { NULL, "Honolulu" }, { NULL, "Indianapolis" }, { NULL, "Jackson" }, { NULL, "Jefferson City" }, { NULL, "Juneau" }, { "K - O" }, { NULL, "Lansing" }, { NULL, "Lincoln" }, { NULL, "Little Rock" }, { NULL, "Madison" }, { NULL, "Montgomery" }, { NULL, "Montpelier" }, { NULL, "Nashville" }, { NULL, "Oklahoma City" }, { NULL, "Olympia" }, { NULL, "P - S" }, { NULL, "Phoenix" }, { NULL, "Pierre" }, { NULL, "Providence" }, { NULL, "Raleigh" }, { NULL, "Richmond" }, { NULL, "Sacramento" }, { NULL, "Salem" }, { NULL, "Salt Lake City" }, { NULL, "Santa Fe" }, { NULL, "Springfield" }, { NULL, "St. Paul" }, { "T - Z", NULL }, { NULL, "Tallahassee" }, { NULL, "Topeka" }, { NULL, "Trenton" }, { NULL, NULL } }; GtkTreeIter iter, iter2; GtkTreeStore *store; gint i; store = gtk_tree_store_new (1, G_TYPE_STRING); for (i = 0; capitals[i].group || capitals[i].capital; i++) { if (capitals[i].group) { gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, capitals[i].group, -1); } else if (capitals[i].capital) { gtk_tree_store_append (store, &iter2, &iter); gtk_tree_store_set (store, &iter2, 0, capitals[i].capital, -1); } } return GTK_TREE_MODEL (store); } static void is_capital_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gboolean sensitive; sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); g_object_set (cell, "sensitive", sensitive, NULL); } static void fill_combo_entry (GtkWidget *combo) { gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "One"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Two"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "2\302\275"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Three"); } /* A simple validating entry */ #define TYPE_MASK_ENTRY (mask_entry_get_type ()) #define MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MASK_ENTRY, MaskEntry)) #define MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), TYPE_MASK_ENTRY, MaskEntryClass)) #define IS_MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MASK_ENTRY)) #define IS_MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TYPE_MASK_ENTRY)) #define MASK_ENTRY_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), TYPE_MASK_ENTRY, MaskEntryClass)) typedef struct _MaskEntry MaskEntry; struct _MaskEntry { GtkEntry entry; gchar *mask; }; typedef struct _MaskEntryClass MaskEntryClass; struct _MaskEntryClass { GtkEntryClass parent_class; }; static void mask_entry_editable_init (GtkEditableInterface *iface); G_DEFINE_TYPE_WITH_CODE (MaskEntry, mask_entry, GTK_TYPE_ENTRY, G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, mask_entry_editable_init)); static void mask_entry_set_background (MaskEntry *entry) { if (entry->mask) { if (!g_regex_match_simple (entry->mask, gtk_entry_get_text (GTK_ENTRY (entry)), 0, 0)) { PangoAttrList *attrs; attrs = pango_attr_list_new (); pango_attr_list_insert (attrs, pango_attr_foreground_new (65535, 32767, 32767)); gtk_entry_set_attributes (GTK_ENTRY (entry), attrs); pango_attr_list_unref (attrs); return; } } gtk_entry_set_attributes (GTK_ENTRY (entry), NULL); } static void mask_entry_changed (GtkEditable *editable) { mask_entry_set_background (MASK_ENTRY (editable)); } static void mask_entry_init (MaskEntry *entry) { entry->mask = NULL; } static void mask_entry_class_init (MaskEntryClass *klass) { } static void mask_entry_editable_init (GtkEditableInterface *iface) { iface->changed = mask_entry_changed; } GtkWidget * do_combobox (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox, *frame, *box, *combo, *entry; GtkTreeModel *model; GtkCellRenderer *renderer; GtkTreePath *path; GtkTreeIter iter; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Combo Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_add (GTK_CONTAINER (window), vbox); /* A combobox demonstrating cell renderers, separators and * insensitive rows */ frame = gtk_frame_new ("Items with icons"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_icon_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "icon-name", ICON_NAME_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", TEXT_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo), is_separator, NULL, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); /* A combobox demonstrating trees. */ frame = gtk_frame_new ("Where are we ?"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_capital_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, is_capital_sensitive, NULL, NULL); path = gtk_tree_path_new_from_indices (0, 8, -1); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter); /* A GtkComboBoxEntry with validation */ frame = gtk_frame_new ("Editable"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new_with_entry (); fill_combo_entry (combo); gtk_container_add (GTK_CONTAINER (box), combo); entry = g_object_new (TYPE_MASK_ENTRY, NULL); MASK_ENTRY (entry)->mask = "^([0-9]*|One|Two|2\302\275|Three)$"; gtk_container_remove (GTK_CONTAINER (combo), gtk_bin_get_child (GTK_BIN (combo))); gtk_container_add (GTK_CONTAINER (combo), entry); /* A combobox with string IDs */ frame = gtk_frame_new ("String IDs"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "never", "Not visible"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "when-active", "Visible when active"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "always", "Always visible"); gtk_container_add (GTK_CONTAINER (box), combo); entry = gtk_entry_new (); g_object_bind_property (combo, "active-id", entry, "text", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (box), entry); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)application.c@ #include "config.h" #include typedef GtkApplication DemoApplication; typedef GtkApplicationClass DemoApplicationClass; G_DEFINE_TYPE (DemoApplication, demo_application, GTK_TYPE_APPLICATION) typedef struct { GtkApplicationWindow parent_instance; GtkWidget *message; GtkWidget *infobar; GtkWidget *status; GtkWidget *menutool; GMenuModel *toolmenu; GtkTextBuffer *buffer; int width; int height; gboolean maximized; gboolean fullscreen; } DemoApplicationWindow; typedef GtkApplicationWindowClass DemoApplicationWindowClass; G_DEFINE_TYPE (DemoApplicationWindow, demo_application_window, GTK_TYPE_APPLICATION_WINDOW) static void create_window (GApplication *app, const char *contents); static void show_action_dialog (GSimpleAction *action) { const gchar *name; GtkWidget *dialog; name = g_action_get_name (G_ACTION (action)); dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "You activated action: \"%s\"", name); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } static void show_action_infobar (GSimpleAction *action, GVariant *parameter, gpointer data) { DemoApplicationWindow *window = data; gchar *text; const gchar *name; const gchar *value; name = g_action_get_name (G_ACTION (action)); value = g_variant_get_string (parameter, NULL); text = g_strdup_printf ("You activated radio action: \"%s\".\n" "Current value: %s", name, value); gtk_label_set_text (GTK_LABEL (window->message), text); gtk_widget_show (window->infobar); g_free (text); } static void activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_dialog (action); } static void activate_new (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GApplication *app = user_data; create_window (app, NULL); } static void open_response_cb (GtkNativeDialog *dialog, gint response_id, gpointer user_data) { GtkFileChooserNative *native = user_data; GApplication *app = g_object_get_data (G_OBJECT (native), "app"); GtkWidget *message_dialog; GFile *file; char *contents; GError *error = NULL; if (response_id == GTK_RESPONSE_ACCEPT) { file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (native)); if (g_file_load_contents (file, NULL, &contents, NULL, NULL, &error)) { create_window (app, contents); g_free (contents); } else { message_dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error loading file: \"%s\"", error->message); g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (message_dialog); g_error_free (error); } } gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (native)); g_object_unref (native); } static void activate_open (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GApplication *app = user_data; GtkFileChooserNative *native; native = gtk_file_chooser_native_new ("Open File", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "_Open", "_Cancel"); g_object_set_data_full (G_OBJECT (native), "app", g_object_ref (app), g_object_unref); g_signal_connect (native, "response", G_CALLBACK (open_response_cb), native); gtk_native_dialog_show (GTK_NATIVE_DIALOG (native)); } static void activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *state; show_action_dialog (action); state = g_action_get_state (G_ACTION (action)); g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state))); g_variant_unref (state); } static void activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_infobar (action, parameter, user_data); g_action_change_state (G_ACTION (action), parameter); } static void activate_about (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; const gchar *authors[] = { "Peter Mattis", "Spencer Kimball", "Josh MacDonald", "and many more...", NULL }; const gchar *documentors[] = { "Owen Taylor", "Tony Gale", "Matthias Clasen ", "and many more...", NULL }; gtk_show_about_dialog (GTK_WINDOW (window), "program-name", "GTK+ Code Demos", "version", g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d", PACKAGE_VERSION, gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version ()), "copyright", "(C) 1997-2013 The GTK+ Team", "license-type", GTK_LICENSE_LGPL_2_1, "website", "http://www.gtk.org", "comments", "Program to demonstrate GTK+ functions.", "authors", authors, "documenters", documentors, "logo-icon-name", "gtk3-demo", "title", "About GTK+ Code Demos", NULL); } static void activate_quit (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkApplication *app = user_data; GtkWidget *win; GList *list, *next; list = gtk_application_get_windows (app); while (list) { win = list->data; next = list->next; gtk_widget_destroy (GTK_WIDGET (win)); list = next; } } static void update_statusbar (GtkTextBuffer *buffer, DemoApplicationWindow *window) { gchar *msg; gint row, col; gint count; GtkTextIter iter; /* clear any previous message, underflow is allowed */ gtk_statusbar_pop (GTK_STATUSBAR (window->status), 0); count = gtk_text_buffer_get_char_count (buffer); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); row = gtk_text_iter_get_line (&iter); col = gtk_text_iter_get_line_offset (&iter); msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", row, col, count); gtk_statusbar_push (GTK_STATUSBAR (window->status), 0, msg); g_free (msg); } static void mark_set_callback (GtkTextBuffer *buffer, const GtkTextIter *new_location, GtkTextMark *mark, DemoApplicationWindow *window) { update_statusbar (buffer, window); } static void change_theme_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkSettings *settings = gtk_settings_get_default (); g_object_set (G_OBJECT (settings), "gtk-application-prefer-dark-theme", g_variant_get_boolean (state), NULL); g_simple_action_set_state (action, state); } static void change_titlebar_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkWindow *window = user_data; gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), g_variant_get_boolean (state)); g_simple_action_set_state (action, state); } static void change_radio_state (GSimpleAction *action, GVariant *state, gpointer user_data) { g_simple_action_set_state (action, state); } static GActionEntry app_entries[] = { { "new", activate_new, NULL, NULL, NULL }, { "open", activate_open, NULL, NULL, NULL }, { "save", activate_action, NULL, NULL, NULL }, { "save-as", activate_action, NULL, NULL, NULL }, { "quit", activate_quit, NULL, NULL, NULL }, { "dark", activate_toggle, NULL, "false", change_theme_state } }; static GActionEntry win_entries[] = { { "titlebar", activate_toggle, NULL, "false", change_titlebar_state }, { "shape", activate_radio, "s", "'oval'", change_radio_state }, { "bold", activate_toggle, NULL, "false", NULL }, { "about", activate_about, NULL, NULL, NULL }, { "file1", activate_action, NULL, NULL, NULL }, { "logo", activate_action, NULL, NULL, NULL } }; static void clicked_cb (GtkWidget *widget, DemoApplicationWindow *window) { gtk_widget_hide (window->infobar); } static void startup (GApplication *app) { GtkBuilder *builder; GMenuModel *appmenu; GMenuModel *menubar; G_APPLICATION_CLASS (demo_application_parent_class)->startup (app); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/application_demo/menus.ui", NULL); appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu"); menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar"); gtk_application_set_app_menu (GTK_APPLICATION (app), appmenu); gtk_application_set_menubar (GTK_APPLICATION (app), menubar); g_object_unref (builder); } static void create_window (GApplication *app, const char *content) { DemoApplicationWindow *window; window = (DemoApplicationWindow *)g_object_new (demo_application_window_get_type (), "application", app, NULL); if (content) gtk_text_buffer_set_text (window->buffer, content, -1); gtk_window_present (GTK_WINDOW (window)); } static void activate (GApplication *app) { create_window (app, NULL); } static void demo_application_init (DemoApplication *app) { GSettings *settings; GAction *action; settings = g_settings_new ("org.gtk.Demo"); g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); action = g_settings_create_action (settings, "color"); g_action_map_add_action (G_ACTION_MAP (app), action); g_object_unref (settings); } static void demo_application_class_init (DemoApplicationClass *class) { GApplicationClass *app_class = G_APPLICATION_CLASS (class); app_class->startup = startup; app_class->activate = activate; } static void demo_application_window_store_state (DemoApplicationWindow *win) { GSettings *settings; settings = g_settings_new ("org.gtk.Demo"); g_settings_set (settings, "window-size", "(ii)", win->width, win->height); g_settings_set_boolean (settings, "maximized", win->maximized); g_settings_set_boolean (settings, "fullscreen", win->fullscreen); g_object_unref (settings); } static void demo_application_window_load_state (DemoApplicationWindow *win) { GSettings *settings; settings = g_settings_new ("org.gtk.Demo"); g_settings_get (settings, "window-size", "(ii)", &win->width, &win->height); win->maximized = g_settings_get_boolean (settings, "maximized"); win->fullscreen = g_settings_get_boolean (settings, "fullscreen"); g_object_unref (settings); } static void demo_application_window_init (DemoApplicationWindow *window) { GtkWidget *menu; window->width = -1; window->height = -1; window->maximized = FALSE; window->fullscreen = FALSE; gtk_widget_init_template (GTK_WIDGET (window)); menu = gtk_menu_new_from_model (window->toolmenu); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (window->menutool), menu); g_action_map_add_action_entries (G_ACTION_MAP (window), win_entries, G_N_ELEMENTS (win_entries), window); } static void demo_application_window_constructed (GObject *object) { DemoApplicationWindow *window = (DemoApplicationWindow *)object; demo_application_window_load_state (window); gtk_window_set_default_size (GTK_WINDOW (window), window->width, window->height); if (window->maximized) gtk_window_maximize (GTK_WINDOW (window)); if (window->fullscreen) gtk_window_fullscreen (GTK_WINDOW (window)); G_OBJECT_CLASS (demo_application_window_parent_class)->constructed (object); } static void demo_application_window_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; GTK_WIDGET_CLASS (demo_application_window_parent_class)->size_allocate (widget, allocation); if (!window->maximized && !window->fullscreen) gtk_window_get_size (GTK_WINDOW (window), &window->width, &window->height); } static gboolean demo_application_window_state_event (GtkWidget *widget, GdkEventWindowState *event) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; gboolean res = GDK_EVENT_PROPAGATE; if (GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event) res = GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event (widget, event); window->maximized = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0; window->fullscreen = (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0; return res; } static void demo_application_window_destroy (GtkWidget *widget) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; demo_application_window_store_state (window); GTK_WIDGET_CLASS (demo_application_window_parent_class)->destroy (widget); } static void demo_application_window_class_init (DemoApplicationWindowClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); object_class->constructed = demo_application_window_constructed; widget_class->size_allocate = demo_application_window_size_allocate; widget_class->window_state_event = demo_application_window_state_event; widget_class->destroy = demo_application_window_destroy; gtk_widget_class_set_template_from_resource (widget_class, "/application_demo/application.ui"); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, message); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, infobar); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, status); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, buffer); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, menutool); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, toolmenu); gtk_widget_class_bind_template_callback (widget_class, clicked_cb); gtk_widget_class_bind_template_callback (widget_class, update_statusbar); gtk_widget_class_bind_template_callback (widget_class, mark_set_callback); } int main (int argc, char *argv[]) { GtkApplication *app; app = GTK_APPLICATION (g_object_new (demo_application_get_type (), "application-id", "org.gtk.Demo2", "flags", G_APPLICATION_HANDLES_OPEN, NULL)); return g_application_run (G_APPLICATION (app), 0, NULL); } (uuay)shortcuts.ui Shortcuts 1 vertical 50 10 1 Builder 1 GEdit 1 Clocks - All 1 Clocks - Stopwatch 1 Boxes 1 Boxes - Wizard 1 Boxes - Display (uuay)panes.cN/* Paned Widgets * * The GtkPaned Widget divides its content area into two panes * with a divider in between that the user can adjust. A separate * child is placed into each pane. GtkPaned widgets can be split * horizontally or vertially. * * There are a number of options that can be set for each pane. * This test contains both a horizontal and a vertical GtkPaned * widget, and allows you to adjust the options for each side of * each widget. */ #include void toggle_resize (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, !resize, shrink); else gtk_paned_pack2 (paned, child, !resize, shrink); g_object_unref (child); } void toggle_shrink (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, resize, !shrink); else gtk_paned_pack2 (paned, child, resize, !shrink); g_object_unref (child); } GtkWidget * create_pane_options (GtkPaned *paned, const gchar *frame_label, const gchar *label1, const gchar *label2) { GtkWidget *child1, *child2; GtkWidget *frame; GtkWidget *table; GtkWidget *label; GtkWidget *check_button; child1 = gtk_paned_get_child1 (paned); child2 = gtk_paned_get_child2 (paned); frame = gtk_frame_new (frame_label); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); table = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (frame), table); label = gtk_label_new (label1); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 1, 1, 1); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child1); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child1); label = gtk_label_new (label2); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 1, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child2); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child2); return frame; } GtkWidget * do_panes (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *button; GtkWidget *vbox; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Paned Widgets"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_add1 (GTK_PANED (vpaned), hpaned); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 60); gtk_paned_add1 (GTK_PANED (hpaned), frame); button = gtk_button_new_with_mnemonic ("_Hi there"); gtk_container_add (GTK_CONTAINER(frame), button); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 80, 60); gtk_paned_add2 (GTK_PANED (hpaned), frame); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 80); gtk_paned_add2 (GTK_PANED (vpaned), frame); /* Now create toggle buttons to control sizing */ gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (hpaned), "Horizontal", "Left", "Right"), FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (vpaned), "Vertical", "Top", "Bottom"), FALSE, FALSE, 0); gtk_widget_show_all (vbox); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)markup/textmask.c /* Pango/Text Mask * * This demo shows how to use PangoCairo to draw text with more than * just a single color. */ #include #include static gboolean draw_text (GtkWidget *da, cairo_t *cr, gpointer data) { cairo_pattern_t *pattern; PangoLayout *layout; PangoFontDescription *desc; cairo_save (cr); layout = gtk_widget_create_pango_layout (da, "Pango power!\nPango power!\nPango power!"); desc = pango_font_description_from_string ("sans bold 34"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 30, 20); pango_cairo_layout_path (cr, layout); g_object_unref (layout); pattern = cairo_pattern_create_linear (0.0, 0.0, gtk_widget_get_allocated_width (da), gtk_widget_get_allocated_height (da)); cairo_pattern_add_color_stop_rgb (pattern, 0.0, 1.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.2, 1.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.3, 1.0, 1.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.4, 0.0, 1.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.6, 0.0, 1.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 0.7, 0.0, 0.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 0.8, 1.0, 0.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 1.0, 1.0, 0.0, 1.0); cairo_set_source (cr, pattern); cairo_fill_preserve (cr); cairo_pattern_destroy (pattern); cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_set_line_width (cr, 0.5); cairo_stroke (cr); cairo_restore (cr); return TRUE; } GtkWidget * do_textmask (GtkWidget *do_widget) { static GtkWidget *window = NULL; static GtkWidget *da; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 400, 200); gtk_window_set_title (GTK_WINDOW (window), "Text Mask"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); da = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), da); g_signal_connect (da, "draw", G_CALLBACK (draw_text), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)fishbowl/n_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXKcW?%ql!:,ZICV.Ee2.[EܸDBĮFO](iPM4?%{xLLR bp#ss=ʿ)zd*h4~:^ByC4-=s؋yt:4>zH4 ?@TX,r!xJix|h9_~l6l;jt]ۖbWs$rJ,KEQJޗTVVV$~*wFGGRBl[[ۃ{ ‚p\o("(Fd2xb3Du@255y7eqqQb}#tW pwM t]CPDzr_{6khmoo E.3؇nllH&gD"H$2`5 ߵGksFӘ5[ޛ HfV~$Dc̊UQf7D;[t&SIENDB`(uuay)s_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXAH#W3kbvŃK"R -`Ńk⡷Rz*V9-(j$!K#R`b'&jgf{=L"MBif&}y ץ;.ɘpC葖ESO󣣣;XLRJ`P=Qtڍb*h48iE_-p]l6e2T 0`#԰z!BFj܂z4TɕR⼷$]+nZ4.YI>)U%+I2a0|.|^GR3 H$i>O?;88{xFThii+H|CSSɅR lx<j~]!OFx~~|>)L,_lllLٶ-766a^Zufff" Qrt&5<MOO߳,UDO~c]Ƌs,'  ׆ཛ8׊}A{e巷/@\r)>ЇJ) ҄Y@hsss4Lʑ}hhx<scci8>g@4M !&ɯॠ*UP(L444|{岥iba\===a(z8;nYg{{{65\-6::R* R<+n۶)q^ċ'Ԃ\.[[[oaa|M٩ f%eX @xwpp5u7.۶m;?{*g4/ xit-x/^A"Do|O@&-5!:pkOfkaIENDB`(uuay)spinner.c /* Spinner * * GtkSpinner allows to show that background activity is on-going. * */ #include #include static GtkWidget *spinner_sensitive = NULL; static GtkWidget *spinner_unsensitive = NULL; static void on_play_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_start (GTK_SPINNER (spinner_sensitive)); gtk_spinner_start (GTK_SPINNER (spinner_unsensitive)); } static void on_stop_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_stop (GTK_SPINNER (spinner_sensitive)); gtk_spinner_stop (GTK_SPINNER (spinner_unsensitive)); } GtkWidget * do_spinner (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *button; GtkWidget *spinner; if (!window) { window = gtk_dialog_new_with_buttons ("Spinner", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); /* Sensitive */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_sensitive = spinner; /* Disabled */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_unsensitive = spinner; gtk_widget_set_sensitive (hbox, FALSE); button = gtk_button_new_with_label (_("Play")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_play_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); button = gtk_button_new_with_label (_("Stop")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_stop_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); /* Start by default to test for: * https://bugzilla.gnome.org/show_bug.cgi?id=598496 */ on_play_clicked (NULL, NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)application.ui File1 win.file1 (uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)popover.ui Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 9 Item 10 1 vertical 6 1 1 edit-find edit-clear 1 1 in 100 1 1 1 liststore1 0 0 2 0 1 (uuay)stack.c/* Stack * * GtkStack is a container that shows a single child at a time, * with nice transitions when the visible child changes. * * GtkStackSwitcher adds buttons to control which child is visible. */ #include GtkWidget * do_stack (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/stack/stack.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)glarea-gl.fs.glsl#version 330 out vec4 outputColor; void main() { float lerpVal = gl_FragCoord.y / 500.0f; outputColor = mix(vec4(1.0f, 0.85f, 0.35f, 1.0f), vec4(0.2f, 0.2f, 0.2f, 1.0f), lerpVal); } (uuay)css_accordion.c/* Theming/CSS Accordion * * A simple accordion demo written using CSS transitions and multiple backgrounds * */ #include static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_accordion (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "CSS Accordion"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 600, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_widget_set_valign (container, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_button_new_with_label ("This"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Is"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("A"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("CSS"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Accordion"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label (":-)"); gtk_container_add (GTK_CONTAINER (container), child); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); gtk_css_provider_load_from_resource (GTK_CSS_PROVIDER (provider), "/css_accordion/css_accordion.css"); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)css_accordion.css1@import url("resource://css_accordion/reset.css"); * { transition-property: color, background-color, border-color, background-image, padding, border-width; transition-duration: 1s; font: 20px Cantarell; } window { background: linear-gradient(153deg, #151515, #151515 5px, transparent 5px) 0 0, linear-gradient(333deg, #151515, #151515 5px, transparent 5px) 10px 5px, linear-gradient(153deg, #222, #222 5px, transparent 5px) 0 5px, linear-gradient(333deg, #222, #222 5px, transparent 5px) 10px 10px, linear-gradient(90deg, #1b1b1b, #1b1b1b 10px, transparent 10px), linear-gradient(#1d1d1d, #1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424); background-color: #131313; background-size: 20px 20px; } button { color: black; background-color: #bbb; border-style: solid; border-width: 2px 0 2px 2px; border-color: #333; padding: 12px 4px; } button:first-child { border-radius: 5px 0 0 5px; } button:last-child { border-radius: 0 5px 5px 0; border-width: 2px; } button:hover { padding: 12px 48px; background-color: #4870bc; } button *:hover { color: white; } button:hover:active, button:active { background-color: #993401; } (uuay)gnome-fs-regular.png'GdkP'04o###Kppp ! ! ! ! ! QQQGGGFFEFFFFFF]]\0llllllEEE@zzzFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFo?5@FGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGF?((uuay)textscroll.c`/* Text View/Automatic Scrolling * * This example demonstrates how to use the gravity of * GtkTextMarks to keep a text view scrolled to the bottom * while appending text. */ #include /* Scroll to the end of the buffer. */ static gboolean scroll_to_end (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get "end" mark. It's located at the end of buffer because * of right gravity */ mark = gtk_text_buffer_get_mark (buffer, "end"); gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark); /* and insert some text at its position, the iter will be * revalidated after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to end scroll to end scroll " "to end scroll to end %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Now scroll the end mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Emulate typewriter behavior, shift to the left if we * are far enough to the right. */ if (count > 150) count = 0; return G_SOURCE_CONTINUE; } /* Scroll to the bottom of the buffer. */ static gboolean scroll_to_bottom (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get end iterator */ gtk_text_buffer_get_end_iter (buffer, &iter); /* and insert some text at it, the iter will be revalidated * after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to bottom scroll to bottom scroll " "to bottom scroll to bottom %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Move the iterator to the beginning of line, so we don't scroll * in horizontal direction */ gtk_text_iter_set_line_offset (&iter, 0); /* and place the mark at iter. the mark will stay there after we * insert some text at the end because it has left gravity. */ mark = gtk_text_buffer_get_mark (buffer, "scroll"); gtk_text_buffer_move_mark (buffer, mark, &iter); /* Scroll the mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Shift text back if we got enough to the right. */ if (count > 40) count = 0; return G_SOURCE_CONTINUE; } static guint setup_scroll (GtkTextView *textview, gboolean to_end) { GtkTextBuffer *buffer; GtkTextIter iter; buffer = gtk_text_view_get_buffer (textview); gtk_text_buffer_get_end_iter (buffer, &iter); if (to_end) { /* If we want to scroll to the end, including horizontal scrolling, * then we just create a mark with right gravity at the end of the * buffer. It will stay at the end unless explicitly moved with * gtk_text_buffer_move_mark. */ gtk_text_buffer_create_mark (buffer, "end", &iter, FALSE); /* Add scrolling timeout. */ return g_timeout_add (50, (GSourceFunc) scroll_to_end, textview); } else { /* If we want to scroll to the bottom, but not scroll horizontally, * then an end mark won't do the job. Just create a mark so we can * use it with gtk_text_view_scroll_mark_onscreen, we'll position it * explicitly when needed. Use left gravity so the mark stays where * we put it after inserting new text. */ gtk_text_buffer_create_mark (buffer, "scroll", &iter, TRUE); /* Add scrolling timeout. */ return g_timeout_add (100, (GSourceFunc) scroll_to_bottom, textview); } } static void remove_timeout (GtkWidget *window, gpointer timeout) { g_source_remove (GPOINTER_TO_UINT (timeout)); } static void create_text_view (GtkWidget *hbox, gboolean to_end) { GtkWidget *swindow; GtkWidget *textview; guint timeout; swindow = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (hbox), swindow, TRUE, TRUE, 0); textview = gtk_text_view_new (); gtk_container_add (GTK_CONTAINER (swindow), textview); timeout = setup_scroll (GTK_TEXT_VIEW (textview), to_end); /* Remove the timeout in destroy handler, so we don't try to * scroll destroyed widget. */ g_signal_connect (textview, "destroy", G_CALLBACK (remove_timeout), GUINT_TO_POINTER (timeout)); } GtkWidget * do_textscroll (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *hbox; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Automatic Scrolling"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_container_add (GTK_CONTAINER (window), hbox); create_text_view (hbox, TRUE); create_text_view (hbox, FALSE); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)revealer.ui- 5 300 300 Revealer 1 center center 1 2000 crossfade 1 face-cool-symbolic 6 2 2 1 2000 slide-up 1 face-cool-symbolic 6 2 1 1 2000 slide-right 1 face-cool-symbolic 6 3 2 1 2000 1 face-cool-symbolic 6 2 3 1 2000 slide-left 1 face-cool-symbolic 6 1 2 1 2000 slide-up 1 face-cool-symbolic 6 2 0 1 2000 slide-right 1 face-cool-symbolic 6 4 2 1 2000 1 face-cool-symbolic 6 2 4 1 2000 slide-left 1 face-cool-symbolic 6 0 2 (uuay)filtermodel/font-features.ui 600 500 1 1 Font Features 1 1 1 Reset 1 view-refresh-symbolic 1 1 1 never 1 1 10 vertical 6 1 1 1 Sans 12 1 1 0 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Enabled 1 1 1 baseline 1 Kerning 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Common Ligatures 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Discretionary Ligatures 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Historical Ligatures 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Contextual Ligatures 1 1 1 baseline 1 Ligatures 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Small Caps 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Small Caps from Caps 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Petite Caps 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Caps to Petite Caps 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Unicase 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Capital Spacing 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Case-sensitive Forms 1 1 1 baseline 1 Letter Case 1 1 1 10 10 10 vertical 1 1 0 object-select-symbolic 1 Default 1 1 1 1 baseline 1 1 object-select-symbolic 1 Lining 1 1 1 1 baseline numcasedefault 1 1 object-select-symbolic 1 Old-Style 1 1 1 baseline 1 numcasedefault 1 Number Case 1 1 1 10 10 10 vertical 1 1 0 object-select-symbolic 1 Default 1 1 1 1 baseline 1 1 object-select-symbolic 1 Proportional 1 1 1 1 numspacedefault baseline 1 1 object-select-symbolic 1 Tabular 1 1 1 1 numspacedefault baseline 1 Number Spacing 1 1 1 10 10 10 vertical 1 1 0 object-select-symbolic 1 Off 1 1 1 1 baseline 1 1 object-select-symbolic 1 Normal 1 1 1 1 fractiondefault baseline 1 1 object-select-symbolic 1 Alternate 1 1 1 1 fractiondefault baseline 1 Fractions 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Slashed Zero 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Alternative Annotations 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Scientific Inferiors 1 1 1 baseline 1 Numeric Extras 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Swash Glyphs 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Contextual Swash 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Localized Forms 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Contextual Alternatives 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Historical Alternatives 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Stylistic Alternatives 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Titling Alternatives 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Randomize 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Subscript 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Superscript 1 1 1 baseline 1 Character Alternatives 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Initial Forms 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Medial Forms 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Final Forms 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Isolated Forms 1 1 1 baseline 1 Positional Alternatives 1 1 1 10 10 10 vertical 1 1 object-select-symbolic 1 1 1 1 baseline Set 1 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Set 2 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Set 3 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Set 4 1 1 1 baseline 1 1 object-select-symbolic 1 1 1 1 baseline Set 5 1 1 1 baseline 1 Alternative Stylistic Sets 1 vertical 1 20 20 20 20 1 1 1 0 0 start label 1 Grumpy wizards make toxic brew for the evil Queen and Jack. A quick movement of the enemy will jeopardize six gunboats. The job of waxing linoleum frequently peeves chintzy kids. My girl wove six dozen plaid jackets before she quit. Twelve ziggurats quickly jumped a finch box. Разъяренный чтец эгоистично бьёт пятью жердями шустрого фехтовальщика. Наш банк вчера же выплатил Ф.Я. Эйхгольду комиссию за ценные вещи. Эх, чужак, общий съём цен шляп (юфть) – вдрызг! В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός start 50 entry 1 20 20 20 0 end 50 50 1 1 (uuay)textview.cb/* Text View/Multiple Views * * The GtkTextView widget displays a GtkTextBuffer. One GtkTextBuffer * can be displayed by multiple GtkTextViews. This demo has two views * displaying a single buffer, and shows off the widget's text * formatting features. * */ #include #include /* for exit() */ static void easter_egg_callback (GtkWidget *button, gpointer data); static void create_tags (GtkTextBuffer *buffer) { /* Create a bunch of tags. Note that it's also possible to * create tags with gtk_text_tag_new() then add them to the * tag table for the buffer, gtk_text_buffer_create_tag() is * just a convenience function. Also note that you don't have * to give tags a name; pass NULL for the name to create an * anonymous tag. * * In any real app, another useful optimization would be to create * a GtkTextTagTable in advance, and reuse the same tag table for * all the buffers with the same tag set, instead of creating * new copies of the same tags for every buffer. * * Tags are assigned default priorities in order of addition to the * tag table. That is, tags created later that affect the same text * property affected by an earlier tag will override the earlier * tag. You can modify tag priorities with * gtk_text_tag_set_priority(). */ gtk_text_buffer_create_tag (buffer, "heading", "weight", PANGO_WEIGHT_BOLD, "size", 15 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_create_tag (buffer, "big", /* points times the PANGO_SCALE factor */ "size", 20 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "xx-small", "scale", PANGO_SCALE_XX_SMALL, NULL); gtk_text_buffer_create_tag (buffer, "x-large", "scale", PANGO_SCALE_X_LARGE, NULL); gtk_text_buffer_create_tag (buffer, "monospace", "family", "monospace", NULL); gtk_text_buffer_create_tag (buffer, "blue_foreground", "foreground", "blue", NULL); gtk_text_buffer_create_tag (buffer, "red_background", "background", "red", NULL); gtk_text_buffer_create_tag (buffer, "big_gap_before_line", "pixels_above_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "big_gap_after_line", "pixels_below_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "double_spaced_line", "pixels_inside_wrap", 10, NULL); gtk_text_buffer_create_tag (buffer, "not_editable", "editable", FALSE, NULL); gtk_text_buffer_create_tag (buffer, "word_wrap", "wrap_mode", GTK_WRAP_WORD, NULL); gtk_text_buffer_create_tag (buffer, "char_wrap", "wrap_mode", GTK_WRAP_CHAR, NULL); gtk_text_buffer_create_tag (buffer, "no_wrap", "wrap_mode", GTK_WRAP_NONE, NULL); gtk_text_buffer_create_tag (buffer, "center", "justification", GTK_JUSTIFY_CENTER, NULL); gtk_text_buffer_create_tag (buffer, "right_justify", "justification", GTK_JUSTIFY_RIGHT, NULL); gtk_text_buffer_create_tag (buffer, "wide_margins", "left_margin", 50, "right_margin", 50, NULL); gtk_text_buffer_create_tag (buffer, "strikethrough", "strikethrough", TRUE, NULL); gtk_text_buffer_create_tag (buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (buffer, "double_underline", "underline", PANGO_UNDERLINE_DOUBLE, NULL); gtk_text_buffer_create_tag (buffer, "superscript", "rise", 10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "subscript", "rise", -10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "rtl_quote", "wrap_mode", GTK_WRAP_WORD, "direction", GTK_TEXT_DIR_RTL, "indent", 30, "left_margin", 20, "right_margin", 20, NULL); } static void insert_text (GtkTextBuffer *buffer) { GtkTextIter iter; GtkTextIter start, end; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_default (); pixbuf = gtk_icon_theme_load_icon (icon_theme, "gtk3-demo", 32, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); g_assert (pixbuf); /* get start of buffer; each insertion will revalidate the * iterator to point to just after the inserted text. */ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); gtk_text_buffer_insert (buffer, &iter, "The text widget can display text with all kinds of nifty attributes. " "It also supports multiple views of the same buffer; this demo is " "showing the same buffer in two places.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Font styles. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "For example, you can have ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "italic", -1, "italic", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "bold", -1, "bold", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "monospace (typewriter)", -1, "monospace", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "big", -1, "big", NULL); gtk_text_buffer_insert (buffer, &iter, " text. ", -1); gtk_text_buffer_insert (buffer, &iter, "It's best not to hardcode specific text sizes; you can use relative " "sizes as with CSS, such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "xx-small", -1, "xx-small", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "x-large", -1, "x-large", NULL); gtk_text_buffer_insert (buffer, &iter, " to ensure that your program properly adapts if the user changes the " "default font size.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Colors. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "Colors such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground", -1, "blue_foreground", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a red background", -1, "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " or even ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground on red background", -1, "blue_foreground", "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Underline, strikethrough, and rise. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Strikethrough", -1, "strikethrough", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "underline", -1, "underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "double underline", -1, "double_underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "superscript", -1, "superscript", NULL); gtk_text_buffer_insert (buffer, &iter, ", and ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "subscript", -1, "subscript", NULL); gtk_text_buffer_insert (buffer, &iter, " are all supported.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Images. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "The buffer can have images in it: ", -1); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert (buffer, &iter, " for example.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Spacing. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can adjust the amount of space before each line.\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has a whole lot of space before it.\n", -1, "big_gap_before_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space after each line; " "this line has a whole lot of space after it.\n", -1, "big_gap_after_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space between wrapped lines; " "this line has extra space between each wrapped line in the same " "paragraph. To show off wrapping, some filler text: the quick " "brown fox jumped over the lazy dog. Blah blah blah blah blah " "blah blah blah blah.\n", -1, "double_spaced_line", "wide_margins", NULL); gtk_text_buffer_insert (buffer, &iter, "Also note that those lines have extra-wide margins.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Editability. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line is 'locked down' and can't be edited by the user - just " "try it! You can't delete this line.\n\n", -1, "not_editable", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Wrapping. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "This line (and most of the others in this buffer) is word-wrapped, " "using the proper Unicode algorithm. Word wrap should work in all " "scripts and languages that GTK+ supports. Let's make this a long " "paragraph to demonstrate: blah blah blah blah blah blah blah blah " "blah blah blah blah blah blah blah blah blah blah blah\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has character-based wrapping, and can wrap between any two " "character glyphs. Let's make this a long paragraph to demonstrate: " "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " "blah blah blah blah blah\n\n", -1, "char_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has all wrapping turned off, so it makes the horizontal " "scrollbar appear.\n\n\n", -1, "no_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Justification. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has center justification.\n", -1, "center", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has right justification.\n", -1, "right_justify", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has big wide margins. Text text text text text text text " "text text text text text text text text text text text text text text " "text text text text text text text text text text text text text text " "text.\n", -1, "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Internationalization. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put all sorts of Unicode text in the buffer.\n\nGerman " "(Deutsch S\303\274d) Gr\303\274\303\237 Gott\nGreek " "(\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254) " "\316\223\316\265\316\271\316\254 \317\203\316\261\317\202\nHebrew " "\327\251\327\234\327\225\327\235\nJapanese " "(\346\227\245\346\234\254\350\252\236)\n\nThe widget properly handles " "bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, " "grapheme boundaries, and so on using the Pango internationalization " "framework.\n", -1); gtk_text_buffer_insert (buffer, &iter, "Here's a word-wrapped quote in a right-to-left language:\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\331\210\331\202\330\257 \330\250\330\257\330\243 " "\330\253\331\204\330\247\330\253 \331\205\331\206 " "\330\243\331\203\330\253\330\261 \330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\330\252\331\202\330\257\331\205\330\247 \331\201\331\212 " "\330\264\330\250\331\203\330\251 \330\247\331\203\330\263\331\212\331\210\331\206 " "\330\250\330\261\330\247\331\205\330\254\331\207\330\247 " "\331\203\331\205\331\206\330\270\331\205\330\247\330\252 " "\331\204\330\247 \330\252\330\263\330\271\331\211 \331\204\331\204\330\261\330\250\330\255\330\214 " "\330\253\331\205 \330\252\330\255\331\210\331\204\330\252 " "\331\201\331\212 \330\247\331\204\330\263\331\206\331\210\330\247\330\252 " "\330\247\331\204\330\256\331\205\330\263 \330\247\331\204\331\205\330\247\330\266\331\212\330\251 " "\330\245\331\204\331\211 \331\205\330\244\330\263\330\263\330\247\330\252 " "\331\205\330\247\331\204\331\212\330\251 \331\205\331\206\330\270\331\205\330\251\330\214 " "\331\210\330\250\330\247\330\252\330\252 \330\254\330\262\330\241\330\247 " "\331\205\331\206 \330\247\331\204\331\206\330\270\330\247\331\205 " "\330\247\331\204\331\205\330\247\331\204\331\212 \331\201\331\212 " "\330\250\331\204\330\257\330\247\331\206\331\207\330\247\330\214 " "\331\210\331\204\331\203\331\206\331\207\330\247 \330\252\330\252\330\256\330\265\330\265 " "\331\201\331\212 \330\256\330\257\331\205\330\251 \331\202\330\267\330\247\330\271 " "\330\247\331\204\331\205\330\264\330\261\331\210\330\271\330\247\330\252 " "\330\247\331\204\330\265\330\272\331\212\330\261\330\251. \331\210\330\243\330\255\330\257 " "\330\243\331\203\330\253\330\261 \331\207\330\260\331\207 " "\330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\331\206\330\254\330\247\330\255\330\247 \331\207\331\210 " "\302\273\330\250\330\247\331\206\331\203\331\210\330\263\331\210\331\204\302\253 " "\331\201\331\212 \330\250\331\210\331\204\331\212\331\201\331\212\330\247.\n\n", -1, "rtl_quote", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put widgets in the buffer: Here's a button: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a menu: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a scale: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and an animation: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " finally a text entry: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, ".\n", -1); gtk_text_buffer_insert (buffer, &iter, "\n\nThis demo doesn't demonstrate all the GtkTextBuffer features; " "it leaves out, for example: invisible/hidden text, tab stops, " "application-drawn areas on the sides of the widget for displaying " "breakpoints and such...", -1); /* Apply word_wrap tag to whole buffer */ gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_apply_tag_by_name (buffer, "word_wrap", &start, &end); g_object_unref (pixbuf); } static gboolean find_anchor (GtkTextIter *iter) { while (gtk_text_iter_forward_char (iter)) { if (gtk_text_iter_get_child_anchor (iter)) return TRUE; } return FALSE; } static void attach_widgets (GtkTextView *text_view) { GtkTextIter iter; GtkTextBuffer *buffer; int i; buffer = gtk_text_view_get_buffer (text_view); gtk_text_buffer_get_start_iter (buffer, &iter); i = 0; while (find_anchor (&iter)) { GtkTextChildAnchor *anchor; GtkWidget *widget; anchor = gtk_text_iter_get_child_anchor (&iter); if (i == 0) { widget = gtk_button_new_with_label ("Click Me"); g_signal_connect (widget, "clicked", G_CALLBACK (easter_egg_callback), NULL); } else if (i == 1) { widget = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3"); } else if (i == 2) { widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, NULL); gtk_range_set_range (GTK_RANGE (widget), 0, 100); gtk_widget_set_size_request (widget, 70, -1); } else if (i == 3) { widget = gtk_image_new_from_resource ("/textview/floppybuddy.gif"); } else if (i == 4) { widget = gtk_entry_new (); } else { widget = NULL; /* avoids a compiler warning */ g_assert_not_reached (); } gtk_text_view_add_child_at_anchor (text_view, widget, anchor); gtk_widget_show_all (widget); ++i; } } GtkWidget * do_textview (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vpaned; GtkWidget *view1; GtkWidget *view2; GtkWidget *sw; GtkTextBuffer *buffer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Multiple Views"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); gtk_container_add (GTK_CONTAINER (window), vpaned); /* For convenience, we just use the autocreated buffer from * the first text view; you could also create the buffer * by itself with gtk_text_buffer_new(), then later create * a view widget. */ view1 = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view1)); view2 = gtk_text_view_new_with_buffer (buffer); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add1 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add2 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view2); create_tags (buffer); insert_text (buffer); attach_widgets (GTK_TEXT_VIEW (view1)); attach_widgets (GTK_TEXT_VIEW (view2)); gtk_widget_show_all (vpaned); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void recursive_attach_view (int depth, GtkTextView *view, GtkTextChildAnchor *anchor) { GtkWidget *child_view, *frame; if (depth > 4) return; child_view = gtk_text_view_new_with_buffer (gtk_text_view_get_buffer (view)); /* Frame is to add a black border around each child view */ frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame), child_view); gtk_text_view_add_child_at_anchor (view, frame, anchor); recursive_attach_view (depth + 1, GTK_TEXT_VIEW (child_view), anchor); } static void easter_egg_callback (GtkWidget *button, gpointer data) { static GtkWidget *window = NULL; gpointer window_ptr; GtkTextBuffer *buffer; GtkWidget *view; GtkTextIter iter; GtkTextChildAnchor *anchor; GtkWidget *sw; if (window) { gtk_window_present (GTK_WINDOW (window)); return; } buffer = gtk_text_buffer_new (NULL); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "This buffer is shared by a set of nested text views.\n Nested view:\n", -1); anchor = gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "\nDon't do this in real applications, please.\n", -1); view = gtk_text_view_new_with_buffer (buffer); recursive_attach_view (0, GTK_TEXT_VIEW (view), anchor); g_object_unref (buffer); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); window_ptr = &window; g_object_add_weak_pointer (G_OBJECT (window), window_ptr); gtk_window_set_default_size (GTK_WINDOW (window), 300, 400); gtk_widget_show_all (window); } (uuay)iconview/Pvertical_text_cursor.png7PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATX퓱KaDIIJjIXE&LCZHQL;?88EE*&%1`mMruжOrt>A@@@@@m/zRJu: & w]CJ)nhߝq/..R|)˙0=X[[[FoŢVRư״eY-;;;lmmD^5+:+=2 %@olp8-ťSeb&0놀}qEuuu%k@2|h4d^N"Rt6RʩK\euuUClBx<>deL@)Q 8*ǧt]96I.{~ p~~b0Z0au{ T*kRj|1$WVVee۶~| hn>"@h 4?I ,3IENDB`(uuay)pickers.cg /* Pickers * * These widgets are mainly intended for use in preference dialogs. * They allow to select colors, fonts, files, directories and applications. */ #include GtkWidget * do_pickers (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *table, *label, *picker; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pickers"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 3); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (window), table); gtk_container_set_border_width (GTK_CONTAINER (table), 10); label = gtk_label_new ("Color:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_color_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 0, 1, 1); label = gtk_label_new ("Font:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_font_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 1, 1, 1); label = gtk_label_new ("File:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_file_chooser_button_new ("Pick a File", GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (picker), FALSE); gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1); label = gtk_label_new ("Folder:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); picker = gtk_file_chooser_button_new ("Pick a Folder", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1); label = gtk_label_new ("Mail:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto"); gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE); gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 4, 1, 1); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)reset.cssp/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } (uuay)gnome-applets.png PNG  IHDR00WgAMA abKGD pHYs``zxEtIME ( IDATxYuګg㐢9ҖdkMіI@ӒF 'P q^b=F I6<Yk I @L٢hQ#҈Ԉξw5}(e<) ={#qs$L.KgK v\&H a-'r#pUVW cs1,'og])6˽~ @c[ : (&POsp3_:z|dxp4Ȓ4':NZeMo}ߘ]XY3B|y@.ρ|sy޽_$,H( <ϱ]vX[>G/nN(9&P*/=ra0**,!!IRB_쯹 +baGRR/dS*?{ķ+}5,)nj]R7 4%Mb$%NRUS/.Cȥw}TT*S)K覉a訪,ɿ$4!c8!c8ŕ;%l3j>?w\R*)U*eR4Q5EQd.$邕}(8ˆLKzk}}^o| Ǟ{_꺎ii J ib)2 ,S)Ұt+N9voinʲhF ,Q*WɃYӻ໱/ ,QT$uMes;B6x@Ldp edY)2cPUwH2xId Y\'N*$2YzRra/ۥ'}x"K3,#R,,f4%C|&+!4#R$EcyI(Wpz`Rӿ*2 {AަXS#it2EDa@xv| €(KӘ$Iӄ4MIqyxq7/ӱ]TMR.?݌mj8ꮰQݕw\s|}K" C(&j54z^z;Flj☡a\Ͽ/xAډHdOA@{xظݱpm ױ|;>( g}}3gޣ^gV\,rIݮ= +]iE!Bs=_feNt=/~SJ uD*] U(Cǧ/ֱ]xg"e]iJr|qXZ\4?ȓ?JLN& >]CܵGf׮a'2,bychl!{>A!I8V==X6M�{8*f9 xWJ%Iqˬ?ÿ4X= I,ϒ)aF1AA1iS2M8V#lľW_}N`nvCCyȲ Ο'==? ʪ!q#2%äJozw}yusl^[[[a RNZ1l{ &'%BR 45$&Ŭq% $ } ZZ\4c>{`˲fFFF5A (lvnzSo}͖mwszr;BAk*"$ i"+2*aP_K˫/ߚ8juj'F!%{T;%IUUZa*W):r0體 RVjhɩ19nZoO>.^n(HpZFFmfQ{l CM쯡j*#JwKt72y?\v♶ ' m멅# V,ˆg C3TEsuM!YQU)#m+_܈?%! @C^>kR(uc3e՞]lA_x)n/o+uhZQ`Q,<liOU cg7yA|527]B9p @xq bo?ڧE~p{ ցtc Ř5.a[A}/ ef b\GYD@6$-<E/E,E=<VD8q//.!<+dM`PV<}Cvwb}HB&*za+9B{z4zQ$Pr8C7ze^)|oթ {y շX~o$QajmӢ "EBbxvPZs|EkS؎%_X{.^52* @NwBhJiO{]XdZ8'Z O YG2Ad;@zooAkIENDB`(uuay)gtk.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_shadows/reset.css"); @import url("resource://css_shadows/cssview.css"); /* Get a nice background for the window */ .background { background-color: #4870bc; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } button { color: black; padding: 10px; border-radius: 5px; transition: all 250ms ease-in; border: 1px transparent solid; } button:hover { text-shadow: 3px 3px 5px alpha(black, 0.75); -gtk-icon-shadow: 3px 3px 5px alpha(black, 0.75); box-shadow: 3px 3px 5px alpha(black, 0.5) inset; border: solid 1px alpha(black, 0.75); } button:active { padding: 11px 9px 9px 11px; text-shadow: 1px 1px 2.5px alpha(black, 0.6); -gtk-icon-shadow: 1px 1px 2.5px alpha(black, 0.6); } (uuay)menus.ui
_New app.new <Primary>n _Open app.open _Save app.save <Primary>s Save _As... app.save-as <Primary>s
_Quit app.quit <Primary>q
_Preferences
_Prefer Dark Theme app.dark _Hide Titlebar when maximized win.titlebar _Color
_Red app.color red <Primary>r _Green app.color green <Primary>g _Blue app.color blue <Primary>b
_Shape
_Square win.shape square <Primary>s _Rectangle win.shape rectangle <Primary>r _Oval win.shape oval <Primary>o
_Bold win.bold <Primary><Shift>b
_Help _About win.about <Primary>a
(uuay)offscreen_window2.cD/* Offscreen Windows/Effects * * Offscreen windows can be used to render elements multiple times to achieve * various effects. */ #include #include #define GTK_TYPE_MIRROR_BIN (gtk_mirror_bin_get_type ()) #define GTK_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBin)) #define GTK_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) #define GTK_IS_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MIRROR_BIN)) #define GTK_IS_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MIRROR_BIN)) #define GTK_MIRROR_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) typedef struct _GtkMirrorBin GtkMirrorBin; typedef struct _GtkMirrorBinClass GtkMirrorBinClass; struct _GtkMirrorBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; }; struct _GtkMirrorBinClass { GtkContainerClass parent_class; }; GType gtk_mirror_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_mirror_bin_new (void); /*** implementation ***/ static void gtk_mirror_bin_realize (GtkWidget *widget); static void gtk_mirror_bin_unrealize (GtkWidget *widget); static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_mirror_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkMirrorBin, gtk_mirror_bin, GTK_TYPE_CONTAINER); static void to_child (GtkMirrorBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { *x_out = widget_x; *y_out = widget_y; } static void to_parent (GtkMirrorBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { *x_out = offscreen_x; *y_out = offscreen_y; } static void gtk_mirror_bin_class_init (GtkMirrorBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_mirror_bin_realize; widget_class->unrealize = gtk_mirror_bin_unrealize; widget_class->get_preferred_width = gtk_mirror_bin_get_preferred_width; widget_class->get_preferred_height = gtk_mirror_bin_get_preferred_height; widget_class->size_allocate = gtk_mirror_bin_size_allocate; widget_class->draw = gtk_mirror_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_MIRROR_BIN, g_cclosure_new (G_CALLBACK (gtk_mirror_bin_damage), NULL, NULL)); container_class->add = gtk_mirror_bin_add; container_class->remove = gtk_mirror_bin_remove; container_class->forall = gtk_mirror_bin_forall; container_class->child_type = gtk_mirror_bin_child_type; } static void gtk_mirror_bin_init (GtkMirrorBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_mirror_bin_new (void) { return g_object_new (GTK_TYPE_MIRROR_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkMirrorBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkMirrorBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkMirrorBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_mirror_bin_realize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkAllocation allocation; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); gdk_window_show (bin->offscreen_window); } static void gtk_mirror_bin_unrealize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_mirror_bin_parent_class)->unrealize (widget); } static GType gtk_mirror_bin_child_type (GtkContainer *container) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkMirrorBin cannot have more than one child"); } static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } static void gtk_mirror_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkRequisition child_requisition; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + child_requisition.width + 10; requisition->height = border_width * 2 + child_requisition.height * 2 + 10; } static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.height; } static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gint w, h; guint border_width; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; child_allocation.width = child_requisition.width; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, allocation->x + border_width, allocation->y + border_width, child_allocation.width, child_allocation.height); gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; cairo_matrix_t matrix; cairo_pattern_t *mask; int height; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); height = gdk_window_get_height (bin->offscreen_window); /* paint the offscreen child */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); cairo_matrix_init (&matrix, 1.0, 0.0, 0.3, 1.0, 0.0, 0.0); cairo_matrix_scale (&matrix, 1.0, -1.0); cairo_matrix_translate (&matrix, -10, - 3 * height - 10); cairo_transform (cr, &matrix); cairo_set_source_surface (cr, surface, 0, height); /* create linear gradient as mask-pattern to fade out the source */ mask = cairo_pattern_create_linear (0.0, height, 0.0, 2*height); cairo_pattern_add_color_stop_rgba (mask, 0.0, 0.0, 0.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgba (mask, 0.25, 0.0, 0.0, 0.0, 0.01); cairo_pattern_add_color_stop_rgba (mask, 0.5, 0.0, 0.0, 0.0, 0.25); cairo_pattern_add_color_stop_rgba (mask, 0.75, 0.0, 0.0, 0.0, 0.5); cairo_pattern_add_color_stop_rgba (mask, 1.0, 0.0, 0.0, 0.0, 1.0); /* paint the reflection */ cairo_mask (cr, mask); cairo_pattern_destroy (mask); } } else if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ GtkWidget * do_offscreen_window2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *bin, *vbox; GtkWidget *hbox, *entry, *applybutton, *backbutton; GtkSizeGroup *group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Effects"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); bin = gtk_mirror_bin_new (); group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); backbutton = gtk_button_new (); gtk_container_add (GTK_CONTAINER (backbutton), gtk_image_new_from_icon_name ("go-previous", 4)); gtk_size_group_add_widget (group, backbutton); entry = gtk_entry_new (); gtk_size_group_add_widget (group, entry); applybutton = gtk_button_new_with_label (_("Apply")); gtk_size_group_add_widget (group, applybutton); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), hbox); gtk_box_pack_start (GTK_BOX (hbox), backbutton, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), applybutton, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)pointer_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3eIDATXOLW?oEaOBa7p[)ă)M&,aVWWЋye=,~tOض {6@8fppy]Y5gΜ4֖e ӧO333ѣGU> t]/h^oFq@0t fggG!@uxk,rs1eSSdCCCa`YS]]Mss3ϟ?w &X]]-Z8"Ǐ'pU8q۶4MN< @H)m]\ⶕR L&*j%ɤ+++U_A{%J ,IGG`p[[[鑓 ~Xtwwt/ XLnކaBQkϞ=9rX,6nf:}׍igD"ʾťb@b@PKsI`q/rg\|Vls@׽H([[xIENDB`(uuay)css_blendmodes.css/* * First page. */ image.duck { background-image: url('resource://css_blendmodes/ducky.png'); background-size: cover; min-width: 200px; min-height: 200px; } image.gradient { background-image: linear-gradient(to right, red 0%%, green 50%%, blue 100%%); min-width: 200px; min-height: 200px; } /* * Second page. */ image.red { background: url('resource://css_blendmodes/blends.png') top center; min-width: 200px; min-height: 200px; } image.blue { background: url('resource://css_blendmodes/blends.png') bottom center; min-width: 200px; min-height: 200px; } /* * Third page. */ image.cyan { background: url('resource://css_blendmodes/cmy.jpg') top center; min-width: 200px; min-height: 200px; } image.magenta { background: url('resource://css_blendmodes/cmy.jpg') center center; min-width: 200px; min-height: 200px; } image.yellow { background: url('resource://css_blendmodes/cmy.jpg') bottom center; min-width: 200px; min-height: 200px; } image.blend0 { background-image: url('resource://css_blendmodes/ducky.png'), linear-gradient(to right, red 0%%, green 50%%, blue 100%%); background-size: cover; background-blend-mode: %s; min-width: 200px; min-height: 200px; } image.blend1 { background: url('resource://css_blendmodes/blends.png') top center, url('resource://css_blendmodes/blends.png') bottom center; background-blend-mode: %s; min-width: 200px; min-height: 200px; } image.blend2 { background: url('resource://css_blendmodes/cmy.jpg') top center, url('resource://css_blendmodes/cmy.jpg') center center, url('resource://css_blendmodes/cmy.jpg') bottom center; background-blend-mode: %s; min-width: 200px; min-height: 200px; } (uuay)gnome-calendar.png PNG  IHDR00WgAMA1_ zIDATx]lWwvvwNvc7֤}B"TDAVT臢ҨQ Ayh)BB R>ѠTb'󹉿];wwfa7N*Du5;wN;Nnn0;x}?&Ex @twRJ"T!@QW @ a H_(yJ6'C""a$ BuZ BiM* *=ܪD;ϏweBB E*es8N2H)A6/O^ZJ)[?J%#/hl34*aH(ω|>*c76 $2'\O6.8y}B1aᅊmsu'X aHB|rןP(J(^)RԑRDJNDΗ^ac_kG-VVW6l |#bhm!ne~ye9FhfA^G#7)rp$^<|] QJ"py2 KV^o $ʈ C;Qؐ{Iȥnc2}8ڭ;rk LdGui 8ƃ@ "Z!&7ֽ@^xO,k*)-l ]o[fMCz8@oܸ K;7ę v(d6LJxh-`Oˌ]5MdU`PHw@1c; 9D5#M@.}@7vg):?yyF+C ? lSKl =˓R)/fYZ)JgDeYZXbbGF@o84ށX5e!J:OS)N)w3ccdYv 180H+Mm֢@QNtR|'C^_Cgzt%eTkÐZ25;5эIXخh&BrĻt[jEZjc'ak*ͮa1yKTu]T%onl(r  ~ضrC4d'Ƅ:o!:zGcXd&zI} !ҩh+-G7 I4[=`ŵ $Mce_ܿ'F{1>7wccۀ^k1.Z\10ŁNVdf9v)c|t=< 3ccL̔1E94y0nzz=Du:3 #include /* Creates a tree model containing the completions */ GtkTreeModel * create_completion_model (void) { GtkListStore *store; GtkTreeIter iter; store = gtk_list_store_new (1, G_TYPE_STRING); /* Append one word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "GNOME", -1); /* Append another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "total", -1); /* And another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "totally", -1); return GTK_TREE_MODEL (store); } GtkWidget * do_entry_completion (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryCompletion *completion; GtkTreeModel *completion_model; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Entry Completion"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Completion demo, try writing total or gnome for example."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create our entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the completion object */ completion = gtk_entry_completion_new (); /* Assign the completion to the entry */ gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref (completion); /* Create a tree model and use it as the completion model */ completion_model = create_completion_model (); gtk_entry_completion_set_model (completion, completion_model); g_object_unref (completion_model); /* Use model column 0 as the text column */ gtk_entry_completion_set_text_column (completion, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)pagesetup.c//* Printing/Page Setup * * GtkPageSetupUnixDialog can be used if page setup is needed * independent of a full printing dialog. */ #include #include #include static void done_cb (GtkDialog *dialog, gint response, gpointer data) { gtk_widget_destroy (GTK_WIDGET (dialog)); } GtkWidget * do_pagesetup (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { window = gtk_page_setup_unix_dialog_new ("Page Setup", GTK_WINDOW (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "response", G_CALLBACK (done_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)toolpalette.c3l/* Tool Palette * * A tool palette widget shows groups of toolbar items as a grid of icons * or a list of names. */ #include #include static GtkWidget *window = NULL; static void load_icon_items (GtkToolPalette *palette); static void load_toggle_items (GtkToolPalette *palette); static void load_special_items (GtkToolPalette *palette); typedef struct _CanvasItem CanvasItem; struct _CanvasItem { GdkPixbuf *pixbuf; gdouble x, y; }; static gboolean drag_data_requested_for_drop = FALSE; static CanvasItem *drop_item = NULL; static GList *canvas_items = NULL; /********************************/ /* ====== Canvas drawing ====== */ /********************************/ static CanvasItem* canvas_item_new (GtkWidget *widget, GtkToolButton *button, gdouble x, gdouble y) { CanvasItem *item = NULL; const gchar *icon_name; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; int width; icon_name = gtk_tool_button_get_icon_name (button); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, NULL); pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); if (pixbuf) { item = g_slice_new0 (CanvasItem); item->pixbuf = pixbuf; item->x = x; item->y = y; } return item; } static void canvas_item_free (CanvasItem *item) { g_object_unref (item->pixbuf); g_slice_free (CanvasItem, item); } static void canvas_item_draw (const CanvasItem *item, cairo_t *cr, gboolean preview) { gdouble cx = gdk_pixbuf_get_width (item->pixbuf); gdouble cy = gdk_pixbuf_get_height (item->pixbuf); gdk_cairo_set_source_pixbuf (cr, item->pixbuf, item->x - cx * 0.5, item->y - cy * 0.5); if (preview) cairo_paint_with_alpha (cr, 0.6); else cairo_paint (cr); } static gboolean canvas_draw (GtkWidget *widget, cairo_t *cr) { GList *iter; cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); for (iter = canvas_items; iter; iter = iter->next) canvas_item_draw (iter->data, cr, FALSE); if (drop_item) canvas_item_draw (drop_item, cr, TRUE); return TRUE; } /*****************************/ /* ====== Palette DnD ====== */ /*****************************/ static void palette_drop_item (GtkToolItem *drag_item, GtkToolItemGroup *drop_group, gint x, gint y) { GtkWidget *drag_group = gtk_widget_get_parent (GTK_WIDGET (drag_item)); GtkToolItem *drop_item = gtk_tool_item_group_get_drop_item (drop_group, x, y); gint drop_position = -1; if (drop_item) drop_position = gtk_tool_item_group_get_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drop_item); if (GTK_TOOL_ITEM_GROUP (drag_group) != drop_group) { gboolean homogeneous, expand, fill, new_row; g_object_ref (drag_item); gtk_container_child_get (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item), "homogeneous", &homogeneous, "expand", &expand, "fill", &fill, "new-row", &new_row, NULL); gtk_container_remove (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item)); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); gtk_container_child_set (GTK_CONTAINER (drop_group), GTK_WIDGET (drag_item), "homogeneous", homogeneous, "expand", expand, "fill", fill, "new-row", new_row, NULL); g_object_unref (drag_item); } else gtk_tool_item_group_set_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); } static void palette_drop_group (GtkToolPalette *palette, GtkToolItemGroup *drag_group, GtkToolItemGroup *drop_group) { gint drop_position = -1; if (drop_group) drop_position = gtk_tool_palette_get_group_position (palette, drop_group); gtk_tool_palette_set_group_position (palette, drag_group, drop_position); } static void palette_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkAllocation allocation; GtkToolItemGroup *drop_group = NULL; GtkWidget *drag_palette = gtk_drag_get_source_widget (context); GtkWidget *drag_item = NULL; while (drag_palette && !GTK_IS_TOOL_PALETTE (drag_palette)) drag_palette = gtk_widget_get_parent (drag_palette); if (drag_palette) { drag_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (drag_palette), selection); drop_group = gtk_tool_palette_get_drop_group (GTK_TOOL_PALETTE (widget), x, y); } if (GTK_IS_TOOL_ITEM_GROUP (drag_item)) palette_drop_group (GTK_TOOL_PALETTE (drag_palette), GTK_TOOL_ITEM_GROUP (drag_item), drop_group); else if (GTK_IS_TOOL_ITEM (drag_item) && drop_group) { gtk_widget_get_allocation (GTK_WIDGET (drop_group), &allocation); palette_drop_item (GTK_TOOL_ITEM (drag_item), drop_group, x - allocation.x, y - allocation.y); } } /********************************/ /* ====== Passive Canvas ====== */ /********************************/ static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button, which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); CanvasItem *canvas_item = NULL; GtkWidget *tool_item = NULL; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); g_assert (NULL == drop_item); /* append a new canvas item when a tool button was found */ if (GTK_IS_TOOL_ITEM (tool_item)) canvas_item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); if (canvas_item) { canvas_items = g_list_append (canvas_items, canvas_item); gtk_widget_queue_draw (widget); } } /************************************/ /* ====== Interactive Canvas ====== */ /************************************/ static gboolean interactive_canvas_drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { if (drop_item) { /* already have a drop indicator - just update position */ drop_item->x = x; drop_item->y = y; gtk_widget_queue_draw (widget); gdk_drag_status (context, GDK_ACTION_COPY, time); } else { /* request DnD data for creating a drop indicator */ GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = FALSE; gtk_drag_get_data (widget, context, target, time); } return TRUE; } static void interactive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); GtkWidget *tool_item = NULL; CanvasItem *item; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); /* create a canvas item when a tool button was found */ g_assert (NULL == drop_item); if (!GTK_IS_TOOL_ITEM (tool_item)) return; if (drop_item) { canvas_item_free (drop_item); drop_item = NULL; } item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); /* Either create a new item or just create a preview item, depending on why the drag data was requested. */ if(drag_data_requested_for_drop) { canvas_items = g_list_append (canvas_items, item); drop_item = NULL; gtk_drag_finish (context, TRUE, FALSE, time); } else { drop_item = item; gdk_drag_status (context, GDK_ACTION_COPY, time); } gtk_widget_queue_draw (widget); } static gboolean interactive_canvas_drag_drop (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = TRUE; gtk_drag_get_data (widget, context, target, time); return FALSE; } static void interactive_canvas_drag_leave (gpointer data) { if (drop_item) { GtkWidget *widget = GTK_WIDGET (data); canvas_item_free (drop_item); drop_item = NULL; if (widget) gtk_widget_queue_draw (widget); } } static void on_combo_orientation_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkScrolledWindow *sw; GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; sw = GTK_SCROLLED_WINDOW (gtk_widget_get_parent (GTK_WIDGET (palette))); if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); gtk_orientable_set_orientation (GTK_ORIENTABLE (palette), val); if (val == GTK_ORIENTATION_HORIZONTAL) gtk_scrolled_window_set_policy (sw, GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); else gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); } static void on_combo_style_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); if (val == -1) gtk_tool_palette_unset_style (palette); else gtk_tool_palette_set_style (palette, val); } GtkWidget * do_toolpalette (GtkWidget *do_widget) { GtkWidget *box = NULL; GtkWidget *hbox = NULL; GtkWidget *combo_orientation = NULL; GtkListStore *orientation_model = NULL; GtkWidget *combo_style = NULL; GtkListStore *style_model = NULL; GtkCellRenderer *cell_renderer = NULL; GtkTreeIter iter; GtkWidget *palette = NULL; GtkWidget *palette_scroller = NULL; GtkWidget *notebook = NULL; GtkWidget *contents = NULL; GtkWidget *contents_scroller = NULL; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Tool Palette"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); /* Add widgets to control the ToolPalette appearance: */ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_add (GTK_CONTAINER (window), box); /* Orientation combo box: */ orientation_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Horizontal", 1, GTK_ORIENTATION_HORIZONTAL, -1); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Vertical", 1, GTK_ORIENTATION_VERTICAL, -1); combo_orientation = gtk_combo_box_new_with_model (GTK_TREE_MODEL (orientation_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_orientation), &iter); gtk_box_pack_start (GTK_BOX (box), combo_orientation, FALSE, FALSE, 0); /* Style combo box: */ style_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Text", 1, GTK_TOOLBAR_TEXT, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both", 1, GTK_TOOLBAR_BOTH, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both: Horizontal", 1, GTK_TOOLBAR_BOTH_HORIZ, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Icons", 1, GTK_TOOLBAR_ICONS, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Default", 1, -1, /* A custom meaning for this demo. */ -1); combo_style = gtk_combo_box_new_with_model (GTK_TREE_MODEL (style_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_style), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_style), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_style), &iter); gtk_box_pack_start (GTK_BOX (box), combo_style, FALSE, FALSE, 0); /* Add hbox */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (box), hbox, TRUE, TRUE, 0); /* Add and fill the ToolPalette: */ palette = gtk_tool_palette_new (); load_icon_items (GTK_TOOL_PALETTE (palette)); load_toggle_items (GTK_TOOL_PALETTE (palette)); load_special_items (GTK_TOOL_PALETTE (palette)); palette_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (palette_scroller), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width (GTK_CONTAINER (palette_scroller), 6); gtk_widget_set_hexpand (palette_scroller, TRUE); gtk_container_add (GTK_CONTAINER (palette_scroller), palette); gtk_container_add (GTK_CONTAINER (hbox), palette_scroller); gtk_widget_show_all (box); /* Connect signals: */ g_signal_connect (combo_orientation, "changed", G_CALLBACK (on_combo_orientation_changed), palette); g_signal_connect (combo_style, "changed", G_CALLBACK (on_combo_style_changed), palette); /* Keep the widgets in sync: */ on_combo_orientation_changed (GTK_COMBO_BOX (combo_orientation), palette); /* ===== notebook ===== */ notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_box_pack_end (GTK_BOX(hbox), notebook, FALSE, FALSE, 0); /* ===== DnD for tool items ===== */ g_signal_connect (palette, "drag-data-received", G_CALLBACK (palette_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), palette, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS | GTK_TOOL_PALETTE_DRAG_GROUPS, GDK_ACTION_MOVE); /* ===== passive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-data-received", passive_canvas_drag_data_received, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Passive DnD Mode")); /* ===== interactive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-motion", interactive_canvas_drag_motion, NULL, "signal::drag-data-received", interactive_canvas_drag_data_received, NULL, "signal::drag-leave", interactive_canvas_drag_leave, contents, "signal::drag-drop", interactive_canvas_drag_drop, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_HIGHLIGHT, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Interactive DnD Mode")); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void load_icon_items (GtkToolPalette *palette) { GList *contexts; GList *l; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (palette))); contexts = gtk_icon_theme_list_contexts (icon_theme); for (l = contexts; l; l = l->next) { gchar *context = l->data; GList *icon_names; GList *ll; const guint max_icons = 10; guint icons_count = 0; GtkWidget *group = gtk_tool_item_group_new (context); gtk_container_add (GTK_CONTAINER (palette), group); if (g_strcmp0 (context, "Animations") == 0) continue; g_message ("Got context '%s'", context); icon_names = gtk_icon_theme_list_icons (icon_theme, context); icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp); for (ll = icon_names; ll; ll = ll->next) { GtkToolItem *item; gchar *id = ll->data; if (g_str_equal (id, "emblem-desktop")) continue; if (g_str_has_suffix (id, "-symbolic")) continue; g_message ("Got id '%s'", id); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), id); gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (item), id); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); /* Prevent us having an insane number of icons: */ ++icons_count; if(icons_count >= max_icons) break; } g_list_free_full (icon_names, g_free); } g_list_free_full (contexts, g_free); } static void load_toggle_items (GtkToolPalette *palette) { GSList *toggle_group = NULL; GtkToolItem *item; GtkWidget *group; char *label; int i; group = gtk_tool_item_group_new ("Radio Item"); gtk_container_add (GTK_CONTAINER (palette), group); for (i = 1; i <= 10; ++i) { label = g_strdup_printf ("#%d", i); item = gtk_radio_tool_button_new (toggle_group); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), label); g_free (label); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); toggle_group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); } } static GtkToolItem * create_entry_item (const char *text) { GtkToolItem *item; GtkWidget *entry; entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), text); gtk_entry_set_width_chars (GTK_ENTRY (entry), 5); item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER (item), entry); return item; } static void load_special_items (GtkToolPalette *palette) { GtkToolItem *item; GtkWidget *group; GtkWidget *label_button; group = gtk_tool_item_group_new (NULL); label_button = gtk_button_new_with_label ("Advanced Features"); gtk_widget_show (label_button); gtk_tool_item_group_set_label_widget (GTK_TOOL_ITEM_GROUP (group), label_button); gtk_container_add (GTK_CONTAINER (palette), group); item = create_entry_item ("homogeneous=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, fill=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "fill", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, new-row=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "new-row", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-up"); gtk_tool_item_set_tooltip_text (item, "Show on vertical palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_horizontal (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_tool_item_set_tooltip_text (item, "Show on horizontal palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_vertical (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "edit-delete"); gtk_tool_item_set_tooltip_text (item, "Do not show at all"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_widget_set_no_show_all (GTK_WIDGET (item), TRUE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "view-fullscreen"); gtk_tool_item_set_tooltip_text (item, "Expanded this item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "help-browser"); gtk_tool_item_set_tooltip_text (item, "A regular item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); } (uuay)sidebar.ch /* Stack Sidebar * * GtkStackSidebar provides an automatic sidebar widget to control * navigation of a GtkStack object. This widget automatically updates it * content based on what is presently available in the GtkStack object, * and using the "title" child property to set the display labels. */ #include #include GtkWidget * do_sidebar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *sidebar; GtkWidget *stack; GtkWidget *box; GtkWidget *widget; GtkWidget *header; const gchar* pages[] = { "Welcome to GTK+", "GtkStackSidebar Widget", "Automatic navigation", "Consistent appearance", "Scrolling", "Page 6", "Page 7", "Page 8", "Page 9", NULL }; const gchar *c = NULL; guint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 500, 350); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(header), TRUE); gtk_window_set_titlebar (GTK_WINDOW(window), header); gtk_window_set_title (GTK_WINDOW(window), "Stack Sidebar"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); sidebar = gtk_stack_sidebar_new (); gtk_box_pack_start (GTK_BOX (box), sidebar, FALSE, FALSE, 0); stack = gtk_stack_new (); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack)); /* Separator between sidebar and stack */ widget = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box), stack, TRUE, TRUE, 0); for (i=0; (c = *(pages+i)) != NULL; i++ ) { if (i == 0) { widget = gtk_image_new_from_icon_name ("help-about", GTK_ICON_SIZE_MENU); gtk_image_set_pixel_size (GTK_IMAGE (widget), 256); } else { widget = gtk_label_new (c); } gtk_stack_add_named (GTK_STACK (stack), widget, c); gtk_container_child_set (GTK_CONTAINER (stack), widget, "title", c, NULL); } gtk_container_add (GTK_CONTAINER (window), box); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)blendmodes.uipA False False CSS Blend Modes 400 300 True False 12 12 12 True False Blend mode: 0 0 0 True True True in 150 0 1 True False center True stack 1 0 True False True True False False crossfade True False center center False True 12 12 True False Duck 0 0 True False Background 1 0 True False 0 1 True False 1 1 True False Blended picture 0 2 2 True False center 0 3 2 page0 Ducky True False center center False True 12 12 True False Red 0 0 True False Blue 1 0 True False 0 1 True False 1 1 True False Blended picture 0 2 2 True False center 0 3 2 page1 Blends True False center center True True 6 12 True False 0 1 True False 1 1 True False 0 3 True False center 1 3 True False Cyan 0 0 0 True False Magenta 0 1 0 True False Yellow 0 0 2 True False Blended picture 0 1 2 page2 CMYK 1 1 (uuay)row_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsnn^tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3`IDATX͖]H[g9mY0cV"!*pl݊FpK/:vūy~ƛ(W ^ -!qgIV=rr~ɛ/ps$,k C*_P@|197niKĝi9,˴|9sN@TSSC<ǯ_>r9wsz#^O׮]$%rov; "Q1F߿c؉IT@k9vtTQQA1(Ree% r\޳HTPȖjRT$B<7c$"tb rf,˲S0ĭ[ nÇ뱱1tuu寵Z-ŞݼysnD(p#.V&I51"zzzچp8.\[[[3Ƹ $%FFFY]],@SS6 Ȭv!_Kլo_HRΪRu%ᬱ2E1 `.?bGHЕgAdYC y@>P_$77o\E3}P&~(HDJ$ E<Oe9V=;55e>c4*@e"(шJrs2tSZmpKdY>̡8{Us$|d"YCVhڂ( _ZZ]\ @{ bX(F&T<, % rItj~EJ$޽{%I1T[@M__g^w)---%Jݻw3l /xl6z=`Pioo/R*wy ۿ4 )&jt:o߾^T B4ir:GN_B`8v9?\9m mmm 22ڱ1io##Ȝ(@Ntv KCRIENDB`(uuay)font_features/Tmain.ui} 800600GTK+ Demo111center1win.run1Run1112011never15011treestore0browse41 11110111120202020220word011_Info11011112020202000111Source1011 (uuay)cell_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3`IDATXkG?;-K_DJ} I J C/=b܋!B| d ' j E*q+D*V־f֎ՏUrvw;o޼yciʼ˱zPx<>*"IGT>nDtl-O777LFVVVDDdqqK )]9t@^UGkY,O @|D>j^6B n6w^ vkh[JiRG <2b{?ŁJ⊈x'[[[$K&~3o/ "ݡrTZuJ6\F1` ~zz۶n?ᖵ8sssMcbhhj4f؇NqooF@(^{:˩f|,brr2 }bh~RF@89$766nZ?ۿ_!~;& :(&&&nRj5y^(g NMMY_eY^Pe``t:}uǎdw8o\|TnT*=9Rafggɡ#<ւ/ BQGp2'L'"ρ'_f\TG #include static GtkWidget * create_bbox (gint horizontal, char *title, gint spacing, gint layout) { GtkWidget *frame; GtkWidget *bbox; GtkWidget *button; frame = gtk_frame_new (title); if (horizontal) bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); else bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER (bbox), 5); gtk_container_add (GTK_CONTAINER (frame), bbox); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout); gtk_box_set_spacing (GTK_BOX (bbox), spacing); button = gtk_button_new_with_label (_("OK")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Cancel")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Help")); gtk_container_add (GTK_CONTAINER (bbox), button); return frame; } GtkWidget * do_button_box (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *main_vbox; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *frame_horz; GtkWidget *frame_vert; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Button Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); frame_horz = gtk_frame_new ("Horizontal Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (frame_horz), vbox); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Spread", 40, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Edge", 40, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Start", 40, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "End", 40, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Center", 40, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); frame_vert = gtk_frame_new ("Vertical Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_container_add (GTK_CONTAINER (frame_vert), hbox); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Spread", 10, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Edge", 10, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Start", 10, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "End", 10, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Center", 10, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)shortcuts-clocks.ui 1 1 shortcuts 10 1 General 1 <ctrl>Page_Down Go to the next section 1 <ctrl>Page_Up Go to the previous section 1 <alt>Q Quit 1 <alt>Right ltr Forward 1 <ctrl>Left ltr Back 1 <alt>Left rtl Forward 1 <ctrl>Right rtl Back 1 world World Clocks 1 <ctrl>N Add a world clock 1 <ctrl>S Select world clocks 1 alarm Alarm 1 <ctrl>N Add an alarm 1 <ctrl>S Select alarms 1 stopwatch Stopwatch 1 Return space Start / Stop / Continue 1 L Lap 1 Delete Reset 1 timer Timer 1 Return space Start / Stop / Pause 1 Delete Reset (uuay)spinbutton.c/* Spin Button * * GtkSpinButton provides convenient ways to input data * that can be seen as a value in a range. The examples * here show that this does not necessarily mean numeric * values, and it can include custom formatting. */ #include #include #include #include static gint hex_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { const gchar *buf; gchar *err; gdouble res; buf = gtk_entry_get_text (GTK_ENTRY (spin_button)); res = strtol (buf, &err, 16); *new_val = res; if (*err) return GTK_INPUT_ERROR; else return TRUE; } static gint hex_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gchar *buf; gint val; adjustment = gtk_spin_button_get_adjustment (spin_button); val = (gint) gtk_adjustment_get_value (adjustment); if (fabs (val) < 1e-5) buf = g_strdup ("0x00"); else buf = g_strdup_printf ("0x%.2X", val); if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), buf); g_free (buf); return TRUE; } static gint time_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { const gchar *text; gchar **str; gboolean found = FALSE; gint hours; gint minutes; gchar *endh; gchar *endm; text = gtk_entry_get_text (GTK_ENTRY (spin_button)); str = g_strsplit (text, ":", 2); if (g_strv_length (str) == 2) { hours = strtol (str[0], &endh, 10); minutes = strtol (str[1], &endm, 10); if (!*endh && !*endm && 0 <= hours && hours < 24 && 0 <= minutes && minutes < 60) { *new_val = hours * 60 + minutes; found = TRUE; } } g_strfreev (str); if (!found) { *new_val = 0.0; return GTK_INPUT_ERROR; } return TRUE; } static gint time_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gchar *buf; gdouble hours; gdouble minutes; adjustment = gtk_spin_button_get_adjustment (spin_button); hours = gtk_adjustment_get_value (adjustment) / 60.0; minutes = (hours - floor (hours)) * 60.0; buf = g_strdup_printf ("%02.0f:%02.0f", floor (hours), floor (minutes + 0.5)); if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), buf); g_free (buf); return TRUE; } static gchar *month[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static gint month_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { gint i; gchar *tmp1, *tmp2; gboolean found = FALSE; for (i = 1; i <= 12; i++) { tmp1 = g_ascii_strup (month[i - 1], -1); tmp2 = g_ascii_strup (gtk_entry_get_text (GTK_ENTRY (spin_button)), -1); if (strstr (tmp1, tmp2) == tmp1) found = TRUE; g_free (tmp1); g_free (tmp2); if (found) break; } if (!found) { *new_val = 0.0; return GTK_INPUT_ERROR; } *new_val = (gdouble) i; return TRUE; } static gint month_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gdouble value; gint i; adjustment = gtk_spin_button_get_adjustment (spin_button); value = gtk_adjustment_get_value (adjustment); for (i = 1; i <= 12; i++) if (fabs (value - (double)i) < 1e-5) { if (strcmp (month[i-1], gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), month[i-1]); } return TRUE; } static gboolean value_to_label (GBinding *binding, const GValue *from, GValue *to, gpointer user_data) { g_value_take_string (to, g_strdup_printf ("%g", g_value_get_double (from))); return TRUE; } GtkWidget * do_spinbutton (GtkWidget *do_widget) { static GtkWidget *window; if (!window) { GtkBuilder *builder; GtkAdjustment *adj; GtkWidget *label; builder = gtk_builder_new_from_resource ("/spinbutton/spinbutton.ui"); gtk_builder_add_callback_symbols (builder, "hex_spin_input", G_CALLBACK (hex_spin_input), "hex_spin_output", G_CALLBACK (hex_spin_output), "time_spin_input", G_CALLBACK (time_spin_input), "time_spin_output", G_CALLBACK (time_spin_output), "month_spin_input", G_CALLBACK (month_spin_input), "month_spin_output", G_CALLBACK (month_spin_output), NULL); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Spin Buttons"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "basic_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "basic_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "hex_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "hex_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "time_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "time_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "month_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "month_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gestures.c/* Gestures * * Perform gestures on touchscreens and other input devices. This * demo reacts to long presses and swipes from all devices, plus * multi-touch rotate and zoom gestures. */ #include static GtkGesture *rotate = NULL; static GtkGesture *zoom = NULL; static gdouble swipe_x = 0; static gdouble swipe_y = 0; static gboolean long_pressed = FALSE; static gboolean touchpad_swipe_gesture_begin (GtkGesture *gesture, GdkEventSequence *sequence, GtkWidget *widget) { /* Disallow touchscreen events here */ if (sequence != NULL) gtk_gesture_set_state (gesture, GTK_EVENT_SEQUENCE_DENIED); return sequence == NULL; } static void swipe_gesture_swept (GtkGestureSwipe *gesture, gdouble velocity_x, gdouble velocity_y, GtkWidget *widget) { swipe_x = velocity_x / 10; swipe_y = velocity_y / 10; gtk_widget_queue_draw (widget); } static void long_press_gesture_pressed (GtkGestureLongPress *gesture, gdouble x, gdouble y, GtkWidget *widget) { long_pressed = TRUE; gtk_widget_queue_draw (widget); } static void long_press_gesture_end (GtkGesture *gesture, GdkEventSequence *sequence, GtkWidget *widget) { long_pressed = FALSE; gtk_widget_queue_draw (widget); } static void rotation_angle_changed (GtkGestureRotate *gesture, gdouble angle, gdouble delta, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static void zoom_scale_changed (GtkGestureZoom *gesture, gdouble scale, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); if (swipe_x != 0 || swipe_y != 0) { cairo_save (cr); cairo_set_line_width (cr, 6); cairo_move_to (cr, allocation.width / 2, allocation.height / 2); cairo_rel_line_to (cr, swipe_x, swipe_y); cairo_set_source_rgba (cr, 1, 0, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } if (gtk_gesture_is_recognized (rotate) || gtk_gesture_is_recognized (zoom)) { cairo_pattern_t *pat; cairo_matrix_t matrix; gdouble angle, scale; cairo_get_matrix (cr, &matrix); cairo_matrix_translate (&matrix, allocation.width / 2, allocation.height / 2); cairo_save (cr); angle = gtk_gesture_rotate_get_angle_delta (GTK_GESTURE_ROTATE (rotate)); cairo_matrix_rotate (&matrix, angle); scale = gtk_gesture_zoom_get_scale_delta (GTK_GESTURE_ZOOM (zoom)); cairo_matrix_scale (&matrix, scale, scale); cairo_set_matrix (cr, &matrix); cairo_rectangle (cr, -100, -100, 200, 200); pat = cairo_pattern_create_linear (-100, 0, 200, 0); cairo_pattern_add_color_stop_rgb (pat, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgb (pat, 1, 1, 0, 0); cairo_set_source (cr, pat); cairo_fill (cr); cairo_restore (cr); cairo_pattern_destroy (pat); } if (long_pressed) { cairo_save (cr); cairo_arc (cr, allocation.width / 2, allocation.height / 2, 50, 0, 2 * G_PI); cairo_set_source_rgba (cr, 0, 1, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } return TRUE; } GtkWidget * do_gestures (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *drawing_area; GtkGesture *gesture; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); gtk_window_set_title (GTK_WINDOW (window), "Gestures"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), drawing_area); gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK); g_signal_connect (drawing_area, "draw", G_CALLBACK (drawing_area_draw), NULL); /* Swipe */ gesture = gtk_gesture_swipe_new (drawing_area); g_signal_connect (gesture, "swipe", G_CALLBACK (swipe_gesture_swept), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* 3fg swipe for touchpads */ gesture = g_object_new (GTK_TYPE_GESTURE_SWIPE, "widget", drawing_area, "n-points", 3, NULL); g_signal_connect (gesture, "begin", G_CALLBACK (touchpad_swipe_gesture_begin), drawing_area); g_signal_connect (gesture, "swipe", G_CALLBACK (swipe_gesture_swept), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Long press */ gesture = gtk_gesture_long_press_new (drawing_area); g_signal_connect (gesture, "pressed", G_CALLBACK (long_press_gesture_pressed), drawing_area); g_signal_connect (gesture, "end", G_CALLBACK (long_press_gesture_end), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Rotate */ rotate = gesture = gtk_gesture_rotate_new (drawing_area); g_signal_connect (gesture, "angle-changed", G_CALLBACK (rotation_angle_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Zoom */ zoom = gesture = gtk_gesture_zoom_new (drawing_area); g_signal_connect (gesture, "scale-changed", G_CALLBACK (zoom_scale_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)scale.ui 4 2 0.1 1 4 2 0.1 1 4 2 0.1 1 Scales 20 1 10 10 1 Plain 0 0 0 1 1 200 0 adjustment1 1 1 0 1 Marks 0 0 1 1 1 200 0 adjustment2 1 1 1 1 Discrete 0 0 2 1 1 200 0 0 adjustment3 1 1 2 (uuay)e_resize_cursor.png PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXMHcg{c2Ut'"] A*.lB#(vntiWBZZĝ@t.qDIfD]11N7uqyrw{sO=@ sH}Qj4M3MDN^ӊ5wFi$KL<8[[[;= Á" =~ 8j""NShTv <1Z0tXVJpxx}`MYYY/q"h4ja_qJYi$Zyy+++?DݴOD  mll2UUU?E"[HK'BWJ]Z@4mtt>YJYYY?*JEDK$$>phÝ{{{"@KOOߺnmy388m' ^ VJdgg =>]ɀ."iQ!rss%C-vL EkkkR+Eh^CCC~ކ+urX\\Tw3f߿ ##һw\eF"CD\/1!VϾZzzz'FvޯE|Epx Gf_Gp8655e&#Ng;q};Ziii 3/:::>NEXY0!BsssfIIn.n[)jkkg^ oeAA'pkz/c{e )l6o566x17y( D)%ag8)/k@t>x<q."DΧ~ʀdc5b!p[/*1x>HUՠ.f3.YXSb@~ظx\c'V̘3A Oe#;lg-IENDB`(uuay)overlay2.c /* Overlay/Decorative Overlay * * Another example of an overlay with some decorative * and some interactive controls. */ #include static GtkTextTag *tag; static void margin_changed (GtkAdjustment *adjustment, GtkTextView *text) { gint value; value = (gint)gtk_adjustment_get_value (adjustment); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (text), value); g_object_set (tag, "pixels-above-lines", value, NULL); } GtkWidget * do_overlay2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *overlay; GtkWidget *sw; GtkWidget *text; GtkWidget *image; GtkWidget *scale; GtkTextBuffer *buffer; GtkTextIter start, end; GtkAdjustment *adjustment; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); gtk_window_set_title (GTK_WINDOW (window), "Decorative Overlay"); overlay = gtk_overlay_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); text = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_set_text (buffer, "Dear diary...", -1); tag = gtk_text_buffer_create_tag (buffer, "top-margin", "pixels-above-lines", 0, NULL); gtk_text_buffer_get_start_iter (buffer, &start); end = start; gtk_text_iter_forward_word_end (&end); gtk_text_buffer_apply_tag (buffer, tag, &start, &end); gtk_container_add (GTK_CONTAINER (window), overlay); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (sw), text); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); image = gtk_image_new_from_resource ("/overlay2/decor1.png"); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); gtk_widget_set_halign (image, GTK_ALIGN_START); gtk_widget_set_valign (image, GTK_ALIGN_START); image = gtk_image_new_from_resource ("/overlay2/decor2.png"); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); gtk_widget_set_halign (image, GTK_ALIGN_END); gtk_widget_set_valign (image, GTK_ALIGN_END); adjustment = gtk_adjustment_new (0, 0, 100, 1, 1, 0); g_signal_connect (adjustment, "value-changed", G_CALLBACK (margin_changed), text); scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); gtk_widget_set_size_request (scale, 120, -1); gtk_widget_set_margin_start (scale, 20); gtk_widget_set_margin_end (scale, 20); gtk_widget_set_margin_bottom (scale, 20); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), scale); gtk_widget_set_halign (scale, GTK_ALIGN_START); gtk_widget_set_valign (scale, GTK_ALIGN_END); gtk_widget_set_tooltip_text (scale, "Margin"); gtk_adjustment_set_value (adjustment, 100); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)revealer/Rcss_accordion/Oshortcuts-gedit.ui 1 1 shortcuts 12 1 Touchpad gestures 1 gesture-two-finger-swipe-right Switch to the next document 1 gesture-two-finger-swipe-left Switch to the previous document 1 Documents 1 <ctrl>N Create new document 1 <ctrl>O Open a document 1 <ctrl>S Save the document 1 <ctrl>W Close the document 1 <ctrl><Alt>Page_Down Switch to the next document 1 <ctrl><Alt>Page_Up Switch to the previous document 1 Find and Replace 1 <ctrl>F Find 1 <ctrl>G Find the next match 1 <ctrl><Shift>G Find the previous match 1 <ctrl>H Find and Replace 1 <ctrl><Shift>K Clear highlight 1 <ctrl>I Go to line 1 Tools 1 <shift>F7 Check spelling 1 Miscellaneous 1 F11 Fullscreen on / off 1 <ctrl>P Print the document 1 Insert Toggle insert / overwrite (uuay)decor2.png`CPNG  IHDRZGJLbKGD̿ pHYs  tIME9&5x IDATxwT93X`EĆ5boK5󚘨/MLb1Q`%6Ԡ("]@²ey,EvE6|>;;u]ppN####################C9Ha #b !`:+!w8ס7VQYZj[:2:K박4mXF"@@YZΏWZFwz:ʶ akS* Y*it,C9^%*Y_N&K#dng{rN:t9),)ng 7w֡s  5ara`i: ] 1 ^eB Fd8f""BC 屐 >=ID"#v[[e vn @uu@;PRVH,YGZN&"V c-/&C ɘaG <Z4suP{w Cyesb f/GZZgm^Y GZJR( w҄!h#VSMZ;ww& :D0@ߨ1GZN)`m1樹iHЁ5` c|_ɱa=p8<*P֓1;,n'S権Cn"2Kc hH박f&wѬ#"[IAld儎su؊ąϰxtrT#C9&!" GZ=-9<˿Eƕ8tgމ#Cg 9r:fWBЩI+`1ĖN8tZW#9"`+v3.sbխH,sU#CgE;}Y3ni:]@I6Bp4M6suLт#5c!*y6u8tzQ@b2׬áWaQZCHA6ħ " & !f_5lZGZN IQcmX2ypڍ#C)Z5D5e=*@R(quwFxu+^8B4`8IэdrdhC ]Y1xf@fOJRM/ !S1;i9t}b"C)O_ uӴG'pb|r*vb5]jCO,"T+[Cq:8h`6*vf0jNi +98M9 `BD5]G`<`- y9tL#])%X; ) =bMkηC SuZUzL\?O1suh(4$B<+g8LG*:$zX*qy\ûO#`KsuxVٚ{jw." Rrp`+L$dеtѮ};}8*2liDGZM{ q8c;Vr2D?Asa 5Ë؟#L{DhY,-~nGZd?`qӴ[IdzZ<.}q>P<'8#Dets;8t84eo*Υvzb{c b[,CAv{6Vp{y +؉N8t$ Kt;Y.u}%GZw"p LGPi:&%an£/F ut)ν3 x&GZN'JdZ[ 4su 7H]y Gp q8:lV̹Ff9:l%v"n<7ubP@$} &XZm:L s1 9B<HjC'Rb8gǒ #C m}& 0 isdI9:l{$*5xt<+BbֱzǷd܎Cz{3 t!rxڍ8kEw;GCe~#TBPOMTlIg e"PY||,b_\H YIh#t{ٙ7KYHf:<"LXF0G_||`yGZ- 9$S\MϴgnLsu &5Pڜ1欥MRKiG&Wru G,i1М xg49J-HAH \'R:lϩmi:ƚc)"*<ܽˑc@ ܅8= 6ywu|2k.+t[TrLi|D`˞[:lKk æh [Ү9 9^X?dI ,dOs;C0DLa Ci1B|l|Oh *{D ɳ^ɑ֡PaꛚHDĉL y@1%;tvJX#E\E?3ҜxJ˧u Hxާ;ɒb4~p U2$uu$h"!1r=S|}1'X3:%#ö@u571x|ާ&$|BkSƑ֡ [^̶O6,7ŖoN? 0֑aPŜln,E;(bv7"dɥ&:lCƔ=^n&bLX [9:[cS`bbDl G '&` LpOS)1&ã9xŊi<lZZn "@G@պ1'0su3 =C|= xdH\F^vaۑX3<=g}k_MjÈxsi"<",=! vm>ųG%1 yk#6Ҵž=8ާo ymh Pf}`+49:l ھ1҄GL"|eiIOSO#`)uQ]3d!  =`G;:|Iv>ۄX7I.a6bk$f#ö>0OQ m3ޖ+O V\Q젘::| ne,"Dec^ćZyhCF#7NCmm3q?' 7TAY4Ǣh ) `H})=9WYD=3Qs\b ,N $m ,͐1У9Y,x1U 672Ȱ q1Нx75L'bԴ`x<d9Q8cx704XʑԴ@C+fIT/@7G@\sbitkC2'!9d؅hDDo)~6(OO/`7^r4'bQTP@WJr֡@V! Qő{gejJS @SOiF5;h&Ky]&jĜq7+Z,Si*٩ʪu^*HNd 0<š*GrBlZB>S1ô#Dž C xœ#n_J<3TZv R‘֡ÑxdۨSjՑ@Ҏsu7brgv! v'"L$֑֡FB|B_4M('s#'dG}mv2Ĉ]"[m/ ]䍭fxCwЇˉȓEDT!rqu:(.G591)/yP %$v7 ;i)q=;PO[ K.oNGЀ!7 je @e4SQ:⓱.Yf`r;qjVFBV>!D##D Q@; !Oińa:wG0ldDhf` p/tļ|!*="Y͒v2x_خ1>?C@~LWd% DTlӴ[=,e E!$Kwd7ی5=** ,OHdcNӺc8"M:j=4K!wWGh{)!O0Uj'S" 6'uG͈j꣌1b >GBC+GGeziZ b2_$IF??Gac`-3hmuvzl7$GZARsmǐA4Sr @ ౜;iЍ ȝouq,f 4Do[l@/f%b.Ax3YZǚSM3/#QQC@@H%*"!i #C;-*̄bibw>i_ >Is ƙmMq!XIӴ[ll2| *|}É pB"X"ص"CE>|>oyZP;wn|}AB$53U zYo5]!2vP!W!fc=ڌ MTYaa$`͜uY\nBV2a82*z<=ى{\U<,;fBL#B|P<}V+&?UԉZmxGT$v@Mq;b*Y^KVFȗ˴l?o+z\c Y 36u8C;į$pFTN%"<t rDTG4E:Y&$rɤdk~02Ĭ9 YBd 9"|*ʦ;M뎍VeYUQ(GV <4Pyê2\*jvIô .XV" xE9!]Ro'#HV/quG̷Ɩߨ5l&beg p2˜4>bm isו$(Û:TPmk^2ݸmgq>qZh00Bhg״.:6UUB9ԃ[HEK2M3% Mo2;!f jXB|LAd g?T-}/D33># Cg9I=|=tZDjoVVz5XqB~{hU[~M)e8yȃSYigbou*-͊t2m:I|:b.GiCF/t`&rnJE* /Zp4=>HyN#'%I3LZxXbGwe xRP7z#;rk Pis$`𸍩*opu #@ta ˨8j+x$7mGOVYcSt2!br?~:dFO TZ[Q$ae3 0,_#ݻ FvBx2@,R֡5AXCCY4&곏N ~B15\dcxru<0&^#CCDS.nGL~2&XĢf [ IDAT;R)znֺB19x]e#XEPqLjڈAvgGd0ě0W:OyR`m;U|F<^+K]q4]ȰWuh 8V-̃'F0qJBx@0xZ$)ѴI2^mD_e*K\%^D]ycI5蜺5SAt#Ϗ bZByT;S1&nZl#ĭf3hiw}_/iIڈ<4U׏uiQ= }ҧ(]G:ۚl_*+vDVX,@e%3KOC,c)kXH#B*4 $dYxv+`3# 2a "C?%py<깟g.7$3]3@mds6Fdhι2^۪%y'./s||Þ+qrv,|Qk-E&*1`oU~b2ͥ.b៼ g{21s:WڈHOp /C\/Lg5<ЏgՆ`UaGp9fi9+YFoz=oB26 Ɂ|︁<e VږT;?\B^*) laqrfiԢ(f;KQ mQT-OvMDk Ck\CM!!cx:B,!!Y+ Kh76f,< bsh#VlF`c%:Uf>Xzes :Nd4xx[MA|iZg'۬s޶ޭӴ`kR:]t#}(%v4!#O*4'G `2Q C[( Ȑcts2b=hɎ-){DiNgbyF6 ,R`[Q@31@w6,jҊs氌uh#O}W1U"9Lt[wd0m)IkZhL[[9tX@(I1v#ZT5~~5D9!P1As{f*ӛ+#-+˿U g4f*Xz"'`Xb-^gKi&ϐ\1M|CՀ1WMřlg 1k'ԕʼtH |"۩H2*xDt%B'Ǎ"eʥRg([Ii}퉕͸U7  #"O6xM+uU,-ͽ(P Gdsx;Z&Е<0bnW0`ҍ~T+542ҟDxpv%kd}Lb"remҖDl8o ?]p˥@QJc 85!>ZЭI. c"Vj32C.1N1|{}sj7'<[̘!&@ݜ=pInʪЅ!eO>EF.VM{S@LjH,F9 ,w<ĕ\&ulz_ VXٖ+'$AY';YAXx#gNnݹZO,թ6݋̈́똫czȳ 1=yU ^:K?(qjmk,˵tR֛y׾}]5BWj²־^@~"EM))ki٤jO}/y%-gR 3MR_׀.np<ۂҶxOj_ H*-QmjQn*mmphRz&hw}Fived:xY[Y;9KtϟU/׵@e.PP~.` ^Ek8@~ʾ˕ jxU*+dMdcXP őT7ҍףG=iTے㇊x{gO,^\-Oȿu&#/ -U=[꩞ꦊȕI5v(.{tٿPvT@:_1COhNPeY]mi@V (mu7io<9$Q﨎W"R}ALjw{Q-y\vi_Sqj=הOc>CH/T2* oy2T2Bݨ"ebEĤRيCMzBWio̦2ZNїt&QS/-Mӻ^ݦ_T.F'Qq5gE: KXP;uN(NR!SO:]Tez&j٤ƲO/Kxҳ}I}2Ju3 Uj+N}xۻvD[11׮(ygD3j=?YDQ:cÎ -!>*{ָYG Wc|4s HXݡ 5JFFY򕑑:X_ժڍRl= UʳFʧhU*5 4}KSZtOU:^u{~(XH ! 7T(T~Dlդ"'awU%yBQD`9fgEzĄviVEGZUPfZ3й .W{~iLB+ndz^Яt8>Khh=9;Y3uV=ky5ـ,Ujѕ>PM6@U./4֪aO]4AwKMպD#ҳ*ؿojqt y4PS2rK:A橰޵wYr!OרY.nS}% ^.hцƥH2$#_Q2B3Uŏo_X@4s#_*~ZAzFqy)|9Egk ju.7Pl-On\ob3VgmQ}:}*'غ&lٕƔַOKbB _(#҅BYr/_zI11߶*h::]+`.UEOӊ BHz8-aU ʬo/>kDD=jD:hn9Q2Bhuȁ't6*BYfYꖊLTZkSVeU>P *Nh ^:^ !׫& 3=}gŨm`EicѺX9]BՕ5(yzv5.s:kQ\PǏGjuvՑl{T˯(#j|=trV@xUg6]b崋P#1pU1n:G器7_[ѯrtӷOH-PQzE]B[=7؟4Ʋy{ۮQofqc`k%שEoq_x a*jhńNؽ㨅".]UjW]/;NY=<~ ])!ܞP並У%F&_8e@ۄ/lɗ_qfK,֗4lgm7ݩ˵}? \NqտKPF]/UQꪭ%ZFcu^-*ckMnH[nV%ڨFm)]vp620XO״ktGYhscruHT&ҷV.zCYUֺjNUmA-ޒUcm zЖEe;@Jﵟ|eT6ԋnܬ=BY UZ))n󵳾%εDQbٚYzIZ}^8Aq{=Z~򕬙s2Akv:1DJX, t-:ņ@q} !6@4r 4.qٜ"Y.yVg_:Iۧ^__Z682Ϩ^?+Niz:KU)+4LԲI-U:Nߒ|7[DK:]56rD'[M1N \6pJqjT\وR E-O{sQVvzOlsqZu|%M]㴝]N/5E Ђ4#bPWCQ%1i/iuL}JꯣK=aC-oS,Xy5ABt${js:J~avmV-En1 ^t?[jӖ?L1_S sP7e ]$_F;iM9%YFRtRc\& c>cr#@G,}W6e uRi2VCVi%NOjV^G̵ )pl)lSu!ngVBun:pRBF{XUpU)ki VQVGcǵn4w,~j]67˯:FY? Z|D4/]tVL8ʆҬJhNO>HשA]Trd?z%hC[$EP}pboTlc,!-пy;PA Pқ^'ݨ؛KjrFf10ielS`؋CًA&$w/b&4h&koV]dI4PC5R{h_:Adtn!.u.՟] Y:\Z#=ԎĹc.*uvjmOGEώ;, yOt&-mH=h{N6 t/!盦I_=v"A&O}wQ~6bf/v<S#+;W'p{'mpʙhX"vRl\[PE3OVCCG_cb |N])cGp2LW{[{XE7G@ 2~UIi]|qP@5s<;*ݹrLt}Mfp #D;o-|Cl̓&!Cr gM5GҭR|I-2TB^uGט- + Sj?[ɘYꯌ*z(O}%M֊ +mƈwH!$ SFUtM O?x͐k!O5zi:I- 5yb7 ]O{ PJxQ%`ayCuQ}<:vgɦ\3y,U@`C$3[tQ͟ VqLZY>dm|3!G2 vd[UUksqHJ1oi,B2 Рބ0+1"A(A_*+@ K+DG&3fqm=/GE4㸾rYf/,U|7q֩1#k8JP5iRթ $ֳ)c=w)Va`Ci]=AeE+ U@#Bn%#gJ*gAhpfNNZ94xU `~NI8iz)HM4rT9 ;{t"5lgaxJ6)}sxe4){›.-mqb5M(Xz. 엗i%C|jU\믨g3ev˓EahdE19%]r$c}Ɠdl؋+y-,S0wDHKV9m! )⍡}]/\.eGG(־.M%eM:<X]]@pʲLǫ|_ @Uè\19N3B8Z eY~ _BU p)mmm]t:NR'!A3ׅBLMM\V7rREч1&&+At:eP%j:$I"d2$_x!N!2-1ooog~\^^i__W{{{avqqA~B˲,Zbj!$)x X,X,c^D%Fa>Rl"Y~ ^9Fѿjjj:'v}u{{{B.?t{{{f\.cu(O_ZokkU(9```l~nբi3̩ *JE 8{yssӉ={m3(? %%r]ɤn@xX<?hĪ%^GA600&ʝ('I=Iy>rZQ(a+ RA9@Z B }8NC3bEw[?loW>IENDB`(uuay)cursors.c/* Cursors * * Demonstrates a useful set of available cursors. */ #include static void set_cursor (GtkWidget *button, gpointer data) { GtkWidget *toplevel; GdkCursor *cursor = data; GdkWindow *window; toplevel = gtk_widget_get_toplevel (button); window = gtk_widget_get_window (toplevel); gdk_window_set_cursor (window, cursor); } static GtkWidget * add_section (GtkWidget *box, const gchar *heading) { GtkWidget *label; GtkWidget *section; label = gtk_label_new (heading); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_top (label, 10); gtk_widget_set_margin_bottom (label, 10); gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0); section = gtk_flow_box_new (); gtk_widget_set_halign (section, GTK_ALIGN_START); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (section), GTK_SELECTION_NONE); gtk_flow_box_set_min_children_per_line (GTK_FLOW_BOX (section), 2); gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (section), 20); gtk_box_pack_start (GTK_BOX (box), section, FALSE, TRUE, 0); return section; } static void add_button (GtkWidget *section, const gchar *css_name) { GtkWidget *image, *button; GdkDisplay *display; GdkCursor *cursor; display = gtk_widget_get_display (section); cursor = gdk_cursor_new_from_name (display, css_name); if (cursor == NULL) image = gtk_image_new_from_icon_name ("image-missing", GTK_ICON_SIZE_MENU); else { gchar *path; path = g_strdup_printf ("/cursors/%s_cursor.png", css_name); g_strdelimit (path, "-", '_'); image = gtk_image_new_from_resource (path); g_free (path); } gtk_widget_set_size_request (image, 32, 32); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), image); gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button"); g_signal_connect (button, "clicked", G_CALLBACK (set_cursor), cursor); gtk_widget_set_tooltip_text (button, css_name); gtk_container_add (GTK_CONTAINER (section), button); } GtkWidget * do_cursors (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *sw; GtkWidget *box; GtkWidget *section; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Cursors"); gtk_window_set_default_size (GTK_WINDOW (window), 500, 500); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); g_object_set (box, "margin-start", 20, "margin-end", 20, "margin-bottom", 10, NULL); gtk_container_add (GTK_CONTAINER (sw), box); section = add_section (box, "General"); add_button (section, "default"); add_button (section, "none"); section = add_section (box, "Link & Status"); add_button (section, "context-menu"); add_button (section, "help"); add_button (section, "pointer"); add_button (section, "progress"); add_button (section, "wait"); section = add_section (box, "Selection"); add_button (section, "cell"); add_button (section, "crosshair"); add_button (section, "text"); add_button (section, "vertical-text"); section = add_section (box, "Drag & Drop"); add_button (section, "alias"); add_button (section, "copy"); add_button (section, "move"); add_button (section, "no-drop"); add_button (section, "not-allowed"); add_button (section, "grab"); add_button (section, "grabbing"); section = add_section (box, "Resize & Scrolling"); add_button (section, "all-scroll"); add_button (section, "col-resize"); add_button (section, "row-resize"); add_button (section, "n-resize"); add_button (section, "e-resize"); add_button (section, "s-resize"); add_button (section, "w-resize"); add_button (section, "ne-resize"); add_button (section, "nw-resize"); add_button (section, "se-resize"); add_button (section, "sw-resize"); add_button (section, "ew-resize"); add_button (section, "ns-resize"); add_button (section, "nesw-resize"); add_button (section, "nwse-resize"); section = add_section (box, "Zoom"); add_button (section, "zoom-in"); add_button (section, "zoom-out"); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)textview/pixbufs.c/* Pixbufs * * A GdkPixbuf represents an image, normally in RGB or RGBA format. * Pixbufs are normally used to load files from disk and perform * image scaling. * * This demo is not all that educational, but looks cool. It was written * by Extreme Pixbuf Hacker Federico Mena Quintero. It also shows * off how to use GtkDrawingArea to do a simple animation. * * Look at the Image demo for additional pixbuf usage examples. * */ #include #include #include #define BACKGROUND_NAME "/pixbufs/background.jpg" static const char *image_names[] = { "/pixbufs/apple-red.png", "/pixbufs/gnome-applets.png", "/pixbufs/gnome-calendar.png", "/pixbufs/gnome-foot.png", "/pixbufs/gnome-gmush.png", "/pixbufs/gnome-gimp.png", "/pixbufs/gnome-gsame.png", "/pixbufs/gnu-keys.png" }; #define N_IMAGES G_N_ELEMENTS (image_names) /* demo window */ static GtkWidget *window = NULL; /* Current frame */ static GdkPixbuf *frame; /* Background image */ static GdkPixbuf *background; static gint back_width, back_height; /* Images */ static GdkPixbuf *images[N_IMAGES]; /* Widgets */ static GtkWidget *da; /* Loads the images for the demo and returns whether the operation succeeded */ static gboolean load_pixbufs (GError **error) { gint i; if (background) return TRUE; /* already loaded earlier */ background = gdk_pixbuf_new_from_resource (BACKGROUND_NAME, error); if (!background) return FALSE; /* Note that "error" was filled with a GError */ back_width = gdk_pixbuf_get_width (background); back_height = gdk_pixbuf_get_height (background); for (i = 0; i < N_IMAGES; i++) { images[i] = gdk_pixbuf_new_from_resource (image_names[i], error); if (!images[i]) return FALSE; /* Note that "error" was filled with a GError */ } return TRUE; } /* Expose callback for the drawing area */ static gint draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_pixbuf (cr, frame, 0, 0); cairo_paint (cr); return TRUE; } #define CYCLE_TIME 3000000 /* 3 seconds */ static gint64 start_time; /* Handler to regenerate the frame */ static gboolean on_tick (GtkWidget *widget, GdkFrameClock *frame_clock, gpointer data) { gint64 current_time; double f; int i; double xmid, ymid; double radius; gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height, frame, 0, 0); if (start_time == 0) start_time = gdk_frame_clock_get_frame_time (frame_clock); current_time = gdk_frame_clock_get_frame_time (frame_clock); f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME; xmid = back_width / 2.0; ymid = back_height / 2.0; radius = MIN (xmid, ymid) / 2.0; for (i = 0; i < N_IMAGES; i++) { double ang; int xpos, ypos; int iw, ih; double r; GdkRectangle r1, r2, dest; double k; ang = 2.0 * G_PI * (double) i / N_IMAGES - f * 2.0 * G_PI; iw = gdk_pixbuf_get_width (images[i]); ih = gdk_pixbuf_get_height (images[i]); r = radius + (radius / 3.0) * sin (f * 2.0 * G_PI); xpos = floor (xmid + r * cos (ang) - iw / 2.0 + 0.5); ypos = floor (ymid + r * sin (ang) - ih / 2.0 + 0.5); k = (i & 1) ? sin (f * 2.0 * G_PI) : cos (f * 2.0 * G_PI); k = 2.0 * k * k; k = MAX (0.25, k); r1.x = xpos; r1.y = ypos; r1.width = iw * k; r1.height = ih * k; r2.x = 0; r2.y = 0; r2.width = back_width; r2.height = back_height; if (gdk_rectangle_intersect (&r1, &r2, &dest)) gdk_pixbuf_composite (images[i], frame, dest.x, dest.y, dest.width, dest.height, xpos, ypos, k, k, GDK_INTERP_NEAREST, ((i & 1) ? MAX (127, fabs (255 * sin (f * 2.0 * G_PI))) : MAX (127, fabs (255 * cos (f * 2.0 * G_PI))))); } gtk_widget_queue_draw (da); return G_SOURCE_CONTINUE; } GtkWidget * do_pixbufs (GtkWidget *do_widget) { if (!window) { GError *error; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pixbufs"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); error = NULL; if (!load_pixbufs (&error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load an image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } else { gtk_widget_set_size_request (window, back_width, back_height); frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, back_width, back_height); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL); gtk_container_add (GTK_CONTAINER (window), da); gtk_widget_add_tick_callback (da, on_tick, NULL, NULL); } } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); g_object_unref (frame); } return window; } (uuay)gtk.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_pixbufs/reset.css"); @import url("resource://css_pixbufs/cssview.css"); @keyframes move-the-image { 0% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } 3.125% { background-position: 55.19% 76.11%, 72.14% 64.79%, 76.11% 44.81%, 64.79% 27.86%, 44.81% 23.89%, 27.86% 35.21%, 23.89% 55.19%, 35.21% 72.14%, 0% 0%; } 6.25% { background-position: 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 0% 0%; } 9.375% { background-position: 66.46% 74.64%, 79.06% 55.78%, 74.64% 33.54%, 55.78% 20.94%, 33.54% 25.36%, 20.94% 44.22%, 25.36% 66.46%, 44.22% 79.06%, 0% 0%; } 12.5% { background-position: 71.84% 71.84%, 80.89% 50.00%, 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 0% 0%; } 15.625% { background-position: 76.55% 67.74%, 81.32% 43.77%, 67.74% 23.45%, 43.77% 18.68%, 23.45% 32.26%, 18.68% 56.23%, 32.26% 76.55%, 56.23% 81.32%, 0% 0%; } 18.75% { background-position: 80.21% 62.51%, 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 0% 0%; } 21.875% { background-position: 82.54% 56.47%, 77.58% 31.57%, 56.47% 17.46%, 31.57% 22.42%, 17.46% 43.53%, 22.42% 68.43%, 43.53% 82.54%, 68.43% 77.58%, 0% 0%; } 25% { background-position: 83.33% 50.00%, 73.57% 26.43%, 50.00% 16.67%, 26.43% 26.43%, 16.67% 50.00%, 26.43% 73.57%, 50.00% 83.33%, 73.57% 73.57%, 0% 0%; } 28.125% { background-position: 82.54% 43.53%, 68.43% 22.42%, 43.53% 17.46%, 22.42% 31.57%, 17.46% 56.47%, 31.57% 77.58%, 56.47% 82.54%, 77.58% 68.43%, 0% 0%; } 31.25% { background-position: 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 80.21% 62.51%, 0% 0%; } 34.375% { background-position: 76.55% 32.26%, 56.23% 18.68%, 32.26% 23.45%, 18.68% 43.77%, 23.45% 67.74%, 43.77% 81.32%, 67.74% 76.55%, 81.32% 56.23%, 0% 0%; } 37.5% { background-position: 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 71.84% 71.84%, 80.89% 50.00%, 0% 0%; } 40.625% { background-position: 66.46% 25.36%, 44.22% 20.94%, 25.36% 33.54%, 20.94% 55.78%, 33.54% 74.64%, 55.78% 79.06%, 74.64% 66.46%, 79.06% 44.22%, 0% 0%; } 43.75% { background-position: 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 0% 0%; } 46.875% { background-position: 55.19% 23.89%, 35.21% 27.86%, 23.89% 44.81%, 27.86% 64.79%, 44.81% 76.11%, 64.79% 72.14%, 76.11% 55.19%, 72.14% 35.21%, 0% 0%; } 50% { background-position: 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 0% 0%; } 53.125% { background-position: 45.44% 27.07%, 30.57% 37.01%, 27.07% 54.56%, 37.01% 69.43%, 54.56% 72.93%, 69.43% 62.99%, 72.93% 45.44%, 62.99% 30.57%, 0% 0%; } 56.25% { background-position: 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 0% 0%; } 59.375% { background-position: 38.68% 33.06%, 30.02% 46.03%, 33.06% 61.32%, 46.03% 69.98%, 61.32% 66.94%, 69.98% 53.97%, 66.94% 38.68%, 53.97% 30.02%, 0% 0%; } 62.5% { background-position: 36.49% 36.49%, 30.89% 50.00%, 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 0% 0%; } 65.625% { background-position: 34.97% 39.96%, 32.28% 53.53%, 39.96% 65.03%, 53.53% 67.72%, 65.03% 60.04%, 67.72% 46.47%, 60.04% 34.97%, 46.47% 32.28%, 0% 0%; } 68.75% { background-position: 34.02% 43.38%, 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 0% 0%; } 71.875% { background-position: 33.50% 46.72%, 36.01% 59.35%, 46.72% 66.50%, 59.35% 63.99%, 66.50% 53.28%, 63.99% 40.65%, 53.28% 33.50%, 40.65% 36.01%, 0% 0%; } 75% { background-position: 33.33% 50.00%, 38.21% 61.79%, 50.00% 66.67%, 61.79% 61.79%, 66.67% 50.00%, 61.79% 38.21%, 50.00% 33.33%, 38.21% 38.21%, 0% 0%; } 78.125% { background-position: 33.50% 53.28%, 40.65% 63.99%, 53.28% 66.50%, 63.99% 59.35%, 66.50% 46.72%, 59.35% 36.01%, 46.72% 33.50%, 36.01% 40.65%, 0% 0%; } 81.25% { background-position: 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 34.02% 43.38%, 0% 0%; } 84.375% { background-position: 34.97% 60.04%, 46.47% 67.72%, 60.04% 65.03%, 67.72% 53.53%, 65.03% 39.96%, 53.53% 32.28%, 39.96% 34.97%, 32.28% 46.47%, 0% 0%; } 87.5% { background-position: 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 36.49% 36.49%, 30.89% 50.00%, 0% 0%; } 90.625% { background-position: 38.68% 66.94%, 53.97% 69.98%, 66.94% 61.32%, 69.98% 46.03%, 61.32% 33.06%, 46.03% 30.02%, 33.06% 38.68%, 30.02% 53.97%, 0% 0%; } 93.75% { background-position: 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 0% 0%; } 96.875% { background-position: 45.44% 72.93%, 62.99% 69.43%, 72.93% 54.56%, 69.43% 37.01%, 54.56% 27.07%, 37.01% 30.57%, 27.07% 45.44%, 30.57% 62.99%, 0% 0%; } 100% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } } @keyframes size-the-image { 0% { background-size: 96px, 12px, 96px, 12px, 96px, 12px, 96px, 12px, auto } 100% { background-size: 12px, 96px, 12px, 96px, 12px, 96px, 12px, 96px, auto } } window { background-image: url("resource://css_pixbufs/apple-red.png"), url("resource://css_pixbufs/gnome-applets.png"), url("resource://css_pixbufs/gnome-calendar.png"), url("resource://css_pixbufs/gnome-foot.png"), url("resource://css_pixbufs/gnome-gmush.png"), url("resource://css_pixbufs/gnome-gimp.png"), url("resource://css_pixbufs/gnome-gsame.png"), url("resource://css_pixbufs/gnu-keys.png"), url("resource://css_pixbufs/background.jpg"); background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat; animation: move-the-image infinite linear 3s, size-the-image infinite alternate ease-in-out 0.75s; } /* Make the text editor has a nice style */ .view, scrollbar, separator { color: black; background-color: rgba(255,255,255,0.5); } .view:selected { background-color: rgba(127,127,255,0.5); } (uuay)alphatest.pnggPNG  IHDR|B}>gAMA|Q cHRMo?r$m_j<Wmg,IDATxb?(`i0 F(> F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 9]:= h`3Z G[`Q02@G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(`-G(R@,Q0 F~8.h Q0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 FQ0 F v(C D,R @Z``d"ڭ` b?,SLWRdh$7|4CH4 UPvfdd3 gm0$riUR=7 (Y^`8FXrpIgt(( Obm(F5@ qE7B+:`eD(ʠN< $uG"=X!܋@\?`|kn  c$Fp@'FF \SxIg*ZcR@{  ȿHhr uj45cac1#iUQ4}E;D-T2?,H͋U^$&,#, ta|HwTgF(  |X!0F.W"ˀ@c)!L6 aAFF

J˙{Ie`*z .opf N{ e\0Vy02BZxh y/ƚ:$-8* t? S<a![&^(@9k(u09 u)#*F{hnhR9@+Ѐ_?D1 ,5i0N!#\?:3AP\u`<A!5^VDi&j024M j-у]'`U`a&D@]࣏`zlCȒm"v`a [tz5#R,CSϸd@z+0@Y[K¿PQ0 h h#NXvB}vQKA10i.J=G--|:nh+a $pCw"nGŶ,;؊ {>WVOv3V|VON˙ , >.[=6#7 F4PC:-{I3t`p?Rw|ZctC[H4,n',Z7xҎNdufѕ@Jh?M'7!$Q]RҢ@,7sj7踂l ѥ!L1`+`L ޾mrژ3hn!db5qNiO!=,98-'@;>Ⱦ]ٟX{ft< &]hA9]ƭ< ^(p 931q@MPy NrynX̤ Y]eyjD"4#v84`sK.#@ |X|=0g"ҁ.M74T@LjÍ "K PnX9 WdL#t <&$ԁydElYv_Ԍ!Cr;VOpW02, K U@75ő)fA갫$[eO)ӌqotg|FYHe#RflQgD3tUB!R<@X]0w .dZ+i t%aK*#}HQLzU?HsYL%5B##rL!@Fd7 TXoNxt2]A X0v ]ЍrK|2J^r z vhl4<2@W댈$= $0‰.9L`Y Np1@/Jeu,ldY*\v|Q7= {P z0(Ԟ t;l?tfEtd+Z`aT4<@:ms2*D! Hص 7@F8#Al+!U2x !U Ԇ< RCVTbP ^ π-SoB3tP*PqJ 6`퟼RBFB6Vy;l? ~C4Y9v*J1Q.Q!ɦ;v2XXAѥgN+Y :,C[J[u/~~q! QRP2IjvoMgҁD9 N'ygdI0-z7lB,z|!}i8i| ['D!sf}n{SA7q0R-l i!=Ǚz"ub e52,FsE݃p?;bv+$|o'6<ȳׄ+i v/YA0wTЍ $`de@]*H ;+ƉKrJ Djι/tXe{X;(;o>N4U4p;Z(̀m[#҆3/mbwSD|<n^08B-EDܝjq,/_i [XkB\K\!;nSD.az}&qG\&@"pu{D&bsFXfd?8%Ī|/.ˀgF"nS Ԥ`f2,c?.z$'K'~ +naJ?(HI2/IW` tձr FD9$5i@QPWx?c8d?R ^f`VΩ].n?:r!l 8'P֩٠Bco!4aSx\ئgFjdf6 Zӟp`@ HόyZ&0Tk fϻE-̜Z|'t"-eRP4QM;p{aY"` @SGRPCBÚ)ᣨЋi` -/ 3YX>*Izn=0 #p$F3,HV& (,&X=$q˯`` [D y _.sXI[Old?]ʓe{4o~_[G܈ .ݔ)杓.%%hClD=ӂƫ֫ _m (u dd~N7{sQ3->s m7S  XVQ+`Xʎ}SWDI!P"1I` hl#]OFAXà,ǘL\ @0Uևn}m4#Ĵ~BVmId~.6`n?de @޵ ,l$vXXG`D ,RQ@4ugύ?w1ŭ=פ-!*Gr]O̽Q.XN}1* D= LdjP+cHsCHr; {ܯ Ur5(Vtv$[&;䟝<2%uM;Y*1|ɲ| ]"ISf}5Pp0nTdNPA:wG"3Iji܏K*NxH o"=TXgH:| = qah3p`gg\pǪ&yi+$$jIdzjIo{{6l}t41I/Z[/ې)-,F}~m5 K)8 19P@{eYKw$I0E @"+T]q<]oV=dzeCLp67TIJʎ2xgbӟ G߅}!35tgnko0L}oRę1,qJ'^mh')! $"%;)د,s$9(N5Ԥ.bC uYemb쵴`ox %ygo0 Ca# 4l =;P2 0+q+zO wGsX'?}I ER#܎!*K^|AUY6$գ[ٜIBi /$٣{͵(ѥBh*&iӴNݲo~SƘ7 _Q&` v.o]S}kfHSC-@;J*W0C6p%A2p-@C:Jՠ+y|ڮO&jq@^ѼV|M;}/Js`2JlOЦA2m@ tH,0=s9g;' hD}';_,O)x_J)`m琿gZQS}=IS;x*!1k@'-I`|(Fh2N,& 3X-Wtp;'}e'<)[TӨ架9]jaU E2Ĭ4hWUB-.$sϬ39!}x'v@;iȴ(O4 J$Z{{eK+Gy< qa(lo +`c [!SЩ?RN{qv?r ߃݂_Q ZBՁfm"u6x-{z{gJFUL<~q"d%)mFPg-:d>f2Foy'T;UosEn@_/|e?Ø٠m<>21V$Pܳ)Ti]vӱ cۤ qFw 2$Wʝh9{4$):pVY|31unWȻ#bǫkj% lw<,fFo ax< }F7_^熧 'ڂ04<_?*ȍpC8,Z´KМ-W)|FeB%wfEVm!Aչ3Q4zhKv<ڍah4+0ð @T4,Ai#K iqPdYz/:r|X&Rz3^/Dډ䃇A*z XZhh(Nêp9'6=RXa& drѣ*Ct{=}2; {B`2UāWR I{m)lGKR\E7lulw̱* @Q&B҉uԕxS1wC[2=kTDTSapZi>Ydҧ]{#o]Wa&.FCtD=[ZI&8a1!1!>},Q KN?. u{iDF+A;=lˣ{4_C^ P1Skdx/<9L.I0=eyyN)[3 k 'PY_em#|P\ Ң~VDP0iIp+:C,Z{/4Ts1av)f PI@ap#R0N>*E1]#e:< na`bLX“ 0JDWu&9/v~?s2*H}6=/ %ɦ"3ԨGf BuDLk;. s|'ج 0pB"l`Z+)xeӢi~}vވz)@2,02q;0kg;Z fG3'SQTL{e&vIвLEcr8^a?G6zXT&BISg=0 B0%&L9 c{ @!A҄ ``ÿU@#3;2,fN ӋW:vsRHbldiHV4{( @Xa\jYd}jG<{ %=> eMg땓 m]E29.ckGaaXNfũf)9rS]1+ZA,tG&# k(L fvl+L)\PGa 6=QTdp $6LvyWP>~?w70oa /FFVٗ6*UN2@g*NNLw _H9TAKexa4%a}ߘrH)$ID"ؽZD_7=7ucI>TE"+G,7IG+{$o";?ӛ"1Ϡ\1^)S$>NԴG^b F+7]!k6(Y2.1>oGrea5$H>R*ie[bv;znW4CN@JyEo+ -2&MilǁMOW:}[{ QQOL0N DXB %h+J@Y&8tyno@ $l >b5d8>}Ԋ'2N@uO#q9بjUS6S):OF@ y raX &_E#LIL 4֬M~#k܉< b" ,H )OSMceaYCDktLmup [D):*7'B'%iBE<^E% g)؄jJ;9ֻFd; Eh}4zT%1+f CESwGo,;gFL=/钱*z(6F4.*+& !"ѣ19 @ d3 gԾD FT&״>_!Qq {F,`_ OL_ϥ_n;tfUՠ !KFJ˧jlCH2w&~yJ!.WJFJ9YLcsWrfjӗ6g LX4͹Z)cĻCn9`@ExbDxs t htgZZF蟀8Ja]RJI ).I&PI"#f#a>Wڵ\lf ye|>QUYd"U]8|a}</fp?*'zx)7>k+yV(rrKzɒ=2Ç1u½jTn:᬴sR'p*T/KYTŒgBߔ"x Mn*$TO p=9k@ @l,l? J /QKG[UmN/\5XvU|+[>r\@] $R/c]Nj QEp`fYA'ja<6+Ʈocƭ U, K( &h:#(wU%">*rKylI!iؖ\_s4LNxɍάh[&3:Ia* 0[ |ҨABDO+g{v;Ql9 IJS͆`uhJ’Նb8:}YWdoulArdWb5wWV_pVW XdґR?Lm)CZďyg$tux)OAr:dV^ g(XRҰ-R'T4ц\iǟXx%6y!diϰ18GsV3?oȻa(/:@b ŗ1`(}ֲsb=0oZE{۝|Vy03X9j_)sy~viBesG)oe =ssA#TI !s2nn9Iy^]Zd=]z$}3+2ۈ]"Ɠ+k@ `*:%[{N#{8)[rҳG*ߙvE54*=̆[[N* W?k4o0SV -12JE#j Xg,Tº<3GHӏ.3WTzatM.[Ł0lYK0xž$ ;]H.@k̇] 0 t`>$@Gk?/Ikg g>ˈ~]EpoWbpdAui,=/MlzJS tEAd=""2 19ak *!`D:lf,>T1GFc6 : 70#+ZD8d-hMO?x2!fY{BտLgZP|z |Uu#D٣RҐ*mW'Jr\<7]0 Q( 蘀)-2%Cc%t.DZ-)/A;6lrрg5'']^Q$D gcnj}*oxH;ū<,K&kg}7cd1{~,_eO(دN;-EZ$cYŞaG|Àm I&dJ1dRj!.r&$|/s|szR.؄C=0Ke6PhƠ'!w_58S$':E1st}a B;c V`h)bKq]:p"qȎ[YvjݏYf̳$=kX)MެH,4u[~%srЈU{W˦퐺0I+$,+zy{#%w{|`[3Ɛi%+nx"2i:hM @VJuGX`%i/3H4P!a >5ZSr{4tA1}5Ii,_K";OA4>Pw80 LG>03&2&NQ DBU!MrGr}1eYa\wvqd6̞9OYW{D5J/qfRK߬nRo'W])8*Y*8N.(q9on]ʳ6 kWdԥP5U>]M  z$t?R&obDO|(y#vR X׃Z@& 6Z0psH,gfu@|g@/TC#Z(/80zN!ۜ4 LaW .$?ZIO\guЂO@wM[ 1`q sn(<[V*sa);T?LئFDs/#-ȇaڅȆ5OEp#Q?\@a t T@KAܱ=ŽD.q ?-?}5c4+iA(]i@aH?lv͊4t XnC;$,p@7KUlj{;wpv4iRh;q /I'3k݌z -D@@&ʷG5(BjyhΜNʢҜa@tr~ YhEJn6 $#EUJ?8JH(^}?5k+8uЯΒk% Z"]0 sF`؅-x cp&X#m'G>IDqDnq 33+9XtA f-to.c w=7r4-j9kNz+HGCIx$=HrqEoxI=EԊKZu JiF(~Hi(j_r:SEZ񰝩 VƱw|B:z@:J[G*I^C>!{.{ӒOrFrnj1pPsޜ\OBwqSK^QB >s,L8hFf+ Tgw':/ra{M$ ,`UI5!P.)Z*o׷1ȝ'5Q`ݐ4>V\?ŭ6o mnA2kΟ]10 4 /aeGB06 x;?`gbd&>@-T0!*U(Nj_ KGMRs$M~s2C1.Eُ˘}(M=^zucKvGڛV>v|9M.O x׳_m7*˂H:-,dvkpBQ>Y&7M34"54.J0K׏O,\j1 uZ j֋4z{eJ{5ρ A-8W݋ mbo:X"53P1 % Is|9 (~~ŀ߽y$Lej/-|(?&vY%gp >+Nq<w$d2e}r& WYTaAT;xdz-6GFaT1~lv3ihaSePX͇$Њ-֨ CH̞RTzeA9@G4Pf۳e:"`b^CH:W*NB9jldcz\HIEdw=5@CǿܒpEPElUr-`%H>ne>v([@]& e-;G4k$_zkmH :, +r=%`oͨݳJO; z>Oۦ!u`02/w ]e:D0—ZGI;/`o* 7[xXEib2 s+t >y9LÏZ@Tț gv20Zѳ۫ؿ @vv|X5c@@CG/ı+\ !K5La 3ȁ$:tjQj}O9c~G6$PSa"~(SrNfG-89hPˀvяv/@ [\3S&HK؆*B@:ڗQ0E"^Sq tEZҐn@Z+DzA|h UY=뫴4o`,G3E [ zhGEY9b[4T8ȀmE$#j2C0>#@%`+Ax1@k$`%#8i+J{]r vG<_^;stQ#p-;0w1 9?vBeEgqMcjFt-ms!5-`1BVdvV@A„{$FX9 *@P8 0yąe C9!® 6L:={!\`Cag̓@̇,2'@oGfVaq;2,*X:5p" xd>G.G.8t ,GBpaeo u0Xh H1*a~6/F QpCeB IpH]?7юT};Ia״B,z-a%٥Ѝj~IV3A+j"Nć,e 2$)j [x'j˫E;nUrZ%7&o "ZXc3@0RF J"D -]`u4,@2AMbi4Ej/t4/s VbrˇP _0BfXm†l\#M4y#_,ht #J^aqD+f'- w4s ?1zآ ڮ "C`>m3=KP }HA>` aZ9Kۧ"Ō1{xǀ.h993B%jg͋H^+:a,nvA`a@q &3DhfD\ 1kVpwAkDpOYPz*,)&<9%DhCZC{#e4\ |\l?ZKdgN}+zsB@k0gr }BjT!bPF{5}"]ZY7O!N6`-Ki~ϬHFÊ'$3g=ps?lh O瑋~b)3B!ﰞa/)*-Qcహ(֤!f!Hσ Vb/!2B8lk,c abBKp %M?κSn#C @ 59aqĀ=b@ 1_⒃ #xJ;@AG S8ց_.5~Y{!lPZ־cF+hyX>ubdޑcdY 6F*a711X x*ek@eO>x'J;g@ LOܔa7E<,`eWǐPt$ڏ5+ ͺ@[9 r ́!oE=@{F@uo(>0*&Fx&X%݋SKZ)/G((j;Lȣds!M7b3Pm"r /eM@A#9-EN#PlKpfY'h7,S``a ,Z KN]h?Z@C]5ݲ3L6c3! 1^LB2Ƚc4,:r[4ᏂQ0 1(l;j ,AsC{݈qd]=HZc! H{B GSaQ? +Q@5,e%#|3bt)І5H;pQF<NoD*;#|ƙsM#h? F(&0OCo]tdVBG(Y|]SG)## 9|o)@| F Q0 FUb@: ?P;#$d1 G"vm(d2tXRaO` F'mG(TGy g@7WB7sl/@̪{W] ul?|2R}>t@`FfeȜpAl‡&`ECT#(k푶@%jzy-G(T3yO89 P c&`4b:v"GYHGQ@1n?i*;={<ƏybB)RC h? F(x q%[baxv  z ?`@EnciZK,#*Q0 FUj_tfHMa0@o_ފ>ƀ|C*W~:Š4ZQ0 3>e@) ro Ϣ^.AїOJBb2@6o1 Q?|=j)[t//Q@5lr|#DyX Zy8p3u1ݶw3v2"] ,rk= @(j`Bs`&,F l,rqpkrRc8ԀXw/@6U7W H8 끅Q4ZQ0  \!fa Asgawe@ gW*ТTi_5Zc=Q@uPvLX q^(Ȏ,hg@rw0s* 1l+Ew0Q@P~ :gBVVR5_rM7^ueʘ1gP/D\)o6X ]=8@`lYЋt |Ն/+_):,y`둚K ߡ-G(``h`h`h`h`h`h`h`pwm &uHb10 "7'~gx|9u~>}~$Rۥ]'ckxyYkZz62 6 CY#d?^fLe8\F`Ẇ[y_dA }7o/ػAa%xeli?ɱ#;\y4> Ye©Poly%(cE3'!Opnǁ6*VWKSr\8dbuܫ=9=~' v`NiHą*+çï6mv¨r^25ı38vu墜N94;,j4"d0i᷊֭C'})FQ?Cj[Gε铖r,S WBڡr U4e|iF}sn7MH_&##Us}V+_Wu5 ݼ0ֽ}GnkCਓ]UKgFkuyn$O\%#uD\'I%JpX'w97uoswkxݚ[%| {G։DUjuk8#9V;9@uG3rY:1П[sPdD NK(ڡNR֩0&EUC)U]]5nm OZWZީh)bHY [JLL([v!q3@6P!FDWO./4W8!ہM_@E9\q:e @Owjc;tSkJ=|&ՇaT\$Dy<_ܞ&2\cR[O>xԫoZ]ruq q0IYbbyEJo1 _Jӷu$fv$3I)a}7E u **s"D>7@G;hO|G$:qkG֝ӽ*HߵOؽQ`qAN&iK\dBD)W 3aHnIɘc%! ")= \]+36u׶b.AL% C+}vߋ؁jbK$ pXձY=3BծA++-tk ?8ӹN)+'=?$(a3?JnZ^Hئ$Sc!KhrQR\_'_|ӌ#-][r`_?:<ҡ݊ 37 Pshu0ܝV}(~ ӹuW2`=qjm4 6%: 1{҃@=01-4bZ2/)Wr3 L/:PKT@NwАB)&U^yj\`s WEGߐ LR[\~MzÜP^*60"[ rIO]A}F4"΋$K7)$t5(2;Mb;AU씲]C&>pyԷuqq]1Su6vNeN` 1 k'A%.: Vl/L2f6 IwjmobH t=QLc/]d 6U)Kj̣[UVӉlu4g_:_lBjKrZ# lRR tR]myא*srL?E"?}KlsE*&uqC4bLi CCNܓwo{Sdr_iH,_9atO8-=-j0A'|nٴoQ=+SoeJigg {kMx^=^ 4Sot6n3.Ԩ. 5X| K`u7C2F@1Ǘ $} cK#o褙LQQa;A܈ m'1Q4h2s$3[8cfvfM|[6#9ڵixlm?_:TLS 2d.\*bsXRt~i5/<-Mj i58$Ѷ|ؚGQj')!b=d(` ? F( F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! F Q0 F(! V0,$iaX _..b>ik1rNEo穴F'oG~VgOx^Wduuu2]>>٪3-yib<6g-wg@AjB&60MPs|הRW>';S@A|ZSzN)@uECui .W͎ .Tt).#QQ[(.*j μ8BwBpŸb&~i[ -IsmL y }EВe#@7w[Sx|r}ۿ,-*C;sh|hnkM͗Vȧi9d| Q>qgqq Az[4 e5'Fn,F,Dj؀BS #3 S3NS[bɷ#,NwC}yGS?8nb;q 'qF>9cbgKVZKMAt1`wTSk.GzT{*/$|QIFi;Q_Wftwvunb"bۄBͼ՞^KJOret@tKb5ע׿t;t]> \E;Ap1<vsqd$8GuVҳDtU *_`k<%T :ڸ Y +. ~n@qͰ3|+FAu 50d`qf"B.xQNH$T$c[M2>pKη&3@^Rwՙ2nu qAz[{E A|yA)I)$O L{SqOeIv!vgD9tIN [91"4Ǧhd;[[.) [C̯6 *Tj@]<mZx6[ȩᦙ5@U΁ 0p(\ 8]ۻĒ,rkwk /a\aH\mЉie^5sDA4\ϜK4# MSKTOÉKi={b)4s-mv}r6ަԘ63mҏ |]ktw[jRl.u!'ˌh\0@.EGL/ gx81l> X?cS!QC #include #include void copy_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Set clipboard text */ gtk_clipboard_set_text (clipboard, gtk_entry_get_text (GTK_ENTRY (entry)), -1); } void paste_received (GtkClipboard *clipboard, const gchar *text, gpointer user_data) { GtkWidget *entry; entry = GTK_WIDGET (user_data); /* Set the entry text */ if(text) gtk_entry_set_text (GTK_ENTRY (entry), text); } void paste_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Request the contents of the clipboard, contents_received will be called when we do get the contents. */ gtk_clipboard_request_text (clipboard, paste_received, entry); } static GdkPixbuf * get_image_pixbuf (GtkImage *image) { const gchar *icon_name; GtkIconSize size; GtkIconTheme *icon_theme; int width; switch (gtk_image_get_storage_type (image)) { case GTK_IMAGE_PIXBUF: return g_object_ref (gtk_image_get_pixbuf (image)); case GTK_IMAGE_ICON_NAME: gtk_image_get_icon_name (image, &icon_name, &size); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (image))); gtk_icon_size_lookup (size, &width, NULL); return gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); default: g_warning ("Image storage type %d not handled", gtk_image_get_storage_type (image)); return NULL; } } static void drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2); g_object_unref (pixbuf); } void drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_selection_data_set_pixbuf (selection_data, pixbuf); g_object_unref (pixbuf); } static void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint32 time, gpointer data) { GdkPixbuf *pixbuf; if (gtk_selection_data_get_length (selection_data) > 0) { pixbuf = gtk_selection_data_get_pixbuf (selection_data); gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static void copy_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_clipboard_set_image (clipboard, pixbuf); g_object_unref (pixbuf); } static void paste_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = gtk_clipboard_wait_for_image (clipboard); if (pixbuf) { gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static gboolean button_press (GtkWidget *widget, GdkEventButton *button, gpointer data) { GtkWidget *menu; GtkWidget *item; if (button->button != GDK_BUTTON_SECONDARY) return FALSE; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic (_("_Copy")); g_signal_connect (item, "activate", G_CALLBACK (copy_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic (_("_Paste")); g_signal_connect (item, "activate", G_CALLBACK (paste_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) button); return TRUE; } GtkWidget * do_clipboard (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox, *hbox; GtkWidget *label; GtkWidget *entry, *button; GtkWidget *ebox, *image; GtkClipboard *clipboard; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Clipboard"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("\"Copy\" will copy the text\nin the entry to the clipboard"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Copy")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (copy_button_clicked), entry); label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Paste")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (paste_button_clicked), entry); label = gtk_label_new ("Images can be transferred via the clipboard, too"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first image */ image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* Create the second image */ image = gtk_image_new_from_icon_name ("process-stop", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* tell the clipboard manager to make the data persistent */ clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_clipboard_set_can_store (clipboard, NULL, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)glarea.cN+/* OpenGL Area * * GtkGLArea is a widget that allows custom drawing using OpenGL calls. */ #include #include #include static GtkWidget *demo_window = NULL; /* the GtkGLArea widget */ static GtkWidget *gl_area = NULL; enum { X_AXIS, Y_AXIS, Z_AXIS, N_AXIS }; /* Rotation angles on each axis */ static float rotation_angles[N_AXIS] = { 0.0 }; /* The object we are drawing */ static const GLfloat vertex_data[] = { 0.f, 0.5f, 0.f, 1.f, 0.5f, -0.366f, 0.f, 1.f, -0.5f, -0.366f, 0.f, 1.f, }; /* Initialize the GL buffers */ static void init_buffers (GLuint *vao_out, GLuint *buffer_out) { GLuint vao, buffer; /* We only use one VAO, so we always keep it bound */ glGenVertexArrays (1, &vao); glBindVertexArray (vao); /* This is the buffer that holds the vertices */ glGenBuffers (1, &buffer); glBindBuffer (GL_ARRAY_BUFFER, buffer); glBufferData (GL_ARRAY_BUFFER, sizeof (vertex_data), vertex_data, GL_STATIC_DRAW); glBindBuffer (GL_ARRAY_BUFFER, 0); if (vao_out != NULL) *vao_out = vao; if (buffer_out != NULL) *buffer_out = buffer; } /* Create and compile a shader */ static GLuint create_shader (int type, const char *src) { GLuint shader; int status; shader = glCreateShader (type); glShaderSource (shader, 1, &src, NULL); glCompileShader (shader); glGetShaderiv (shader, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetShaderiv (shader, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetShaderInfoLog (shader, log_len, NULL, buffer); g_warning ("Compile failure in %s shader:\n%s", type == GL_VERTEX_SHADER ? "vertex" : "fragment", buffer); g_free (buffer); glDeleteShader (shader); return 0; } return shader; } /* Initialize the shaders and link them into a program */ static void init_shaders (const char *vertex_path, const char *fragment_path, GLuint *program_out, GLuint *mvp_out) { GLuint vertex, fragment; GLuint program = 0; GLuint mvp = 0; int status; GBytes *source; source = g_resources_lookup_data (vertex_path, 0, NULL); vertex = create_shader (GL_VERTEX_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (vertex == 0) { *program_out = 0; return; } source = g_resources_lookup_data (fragment_path, 0, NULL); fragment = create_shader (GL_FRAGMENT_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (fragment == 0) { glDeleteShader (vertex); *program_out = 0; return; } program = glCreateProgram (); glAttachShader (program, vertex); glAttachShader (program, fragment); glLinkProgram (program); glGetProgramiv (program, GL_LINK_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetProgramiv (program, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetProgramInfoLog (program, log_len, NULL, buffer); g_warning ("Linking failure:\n%s", buffer); g_free (buffer); glDeleteProgram (program); program = 0; goto out; } /* Get the location of the "mvp" uniform */ mvp = glGetUniformLocation (program, "mvp"); glDetachShader (program, vertex); glDetachShader (program, fragment); out: glDeleteShader (vertex); glDeleteShader (fragment); if (program_out != NULL) *program_out = program; if (mvp_out != NULL) *mvp_out = mvp; } static void compute_mvp (float *res, float phi, float theta, float psi) { float x = phi * (G_PI / 180.f); float y = theta * (G_PI / 180.f); float z = psi * (G_PI / 180.f); float c1 = cosf (x), s1 = sinf (x); float c2 = cosf (y), s2 = sinf (y); float c3 = cosf (z), s3 = sinf (z); float c3c2 = c3 * c2; float s3c1 = s3 * c1; float c3s2s1 = c3 * s2 * s1; float s3s1 = s3 * s1; float c3s2c1 = c3 * s2 * c1; float s3c2 = s3 * c2; float c3c1 = c3 * c1; float s3s2s1 = s3 * s2 * s1; float c3s1 = c3 * s1; float s3s2c1 = s3 * s2 * c1; float c2s1 = c2 * s1; float c2c1 = c2 * c1; /* initialize to the identity matrix */ res[0] = 1.f; res[4] = 0.f; res[8] = 0.f; res[12] = 0.f; res[1] = 0.f; res[5] = 1.f; res[9] = 0.f; res[13] = 0.f; res[2] = 0.f; res[6] = 0.f; res[10] = 1.f; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; /* apply all three rotations using the three matrices: * * ⎡ c3 s3 0 ⎤ ⎡ c2 0 -s2 ⎤ ⎡ 1 0 0 ⎤ * ⎢ -s3 c3 0 ⎥ ⎢ 0 1 0 ⎥ ⎢ 0 c1 s1 ⎥ * ⎣ 0 0 1 ⎦ ⎣ s2 0 c2 ⎦ ⎣ 0 -s1 c1 ⎦ */ res[0] = c3c2; res[4] = s3c1 + c3s2s1; res[8] = s3s1 - c3s2c1; res[12] = 0.f; res[1] = -s3c2; res[5] = c3c1 - s3s2s1; res[9] = c3s1 + s3s2c1; res[13] = 0.f; res[2] = s2; res[6] = -c2s1; res[10] = c2c1; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; } static GLuint position_buffer; static GLuint program; static GLuint mvp_location; /* We need to set up our state when we realize the GtkGLArea widget */ static void realize (GtkWidget *widget) { const char *vertex_path, *fragment_path; GdkGLContext *context; gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; context = gtk_gl_area_get_context (GTK_GL_AREA (widget)); if (gdk_gl_context_get_use_es (context)) { vertex_path = "/glarea/glarea-gles.vs.glsl"; fragment_path = "/glarea/glarea-gles.fs.glsl"; } else { vertex_path = "/glarea/glarea-gl.vs.glsl"; fragment_path = "/glarea/glarea-gl.fs.glsl"; } init_buffers (&position_buffer, NULL); init_shaders (vertex_path, fragment_path, &program, &mvp_location); } /* We should tear down the state when unrealizing */ static void unrealize (GtkWidget *widget) { gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; glDeleteBuffers (1, &position_buffer); glDeleteProgram (program); } static void draw_triangle (void) { float mvp[16]; /* Compute the model view projection matrix using the * rotation angles specified through the GtkRange widgets */ compute_mvp (mvp, rotation_angles[X_AXIS], rotation_angles[Y_AXIS], rotation_angles[Z_AXIS]); /* Use our shaders */ glUseProgram (program); /* Update the "mvp" matrix we use in the shader */ glUniformMatrix4fv (mvp_location, 1, GL_FALSE, &mvp[0]); /* Use the vertices in our buffer */ glBindBuffer (GL_ARRAY_BUFFER, position_buffer); glEnableVertexAttribArray (0); glVertexAttribPointer (0, 4, GL_FLOAT, GL_FALSE, 0, 0); /* Draw the three vertices as a triangle */ glDrawArrays (GL_TRIANGLES, 0, 3); /* We finished using the buffers and program */ glDisableVertexAttribArray (0); glBindBuffer (GL_ARRAY_BUFFER, 0); glUseProgram (0); } static gboolean render (GtkGLArea *area, GdkGLContext *context) { if (gtk_gl_area_get_error (area) != NULL) return FALSE; /* Clear the viewport */ glClearColor (0.5, 0.5, 0.5, 1.0); glClear (GL_COLOR_BUFFER_BIT); /* Draw our object */ draw_triangle (); /* Flush the contents of the pipeline */ glFlush (); return TRUE; } static void on_axis_value_change (GtkAdjustment *adjustment, gpointer data) { int axis = GPOINTER_TO_INT (data); g_assert (axis >= 0 && axis < N_AXIS); /* Update the rotation angle */ rotation_angles[axis] = gtk_adjustment_get_value (adjustment); /* Update the contents of the GL drawing area */ gtk_widget_queue_draw (gl_area); } static GtkWidget * create_axis_slider (int axis) { GtkWidget *box, *label, *slider; GtkAdjustment *adj; const char *text; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); switch (axis) { case X_AXIS: text = "X axis"; break; case Y_AXIS: text = "Y axis"; break; case Z_AXIS: text = "Z axis"; break; default: g_assert_not_reached (); } label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_widget_show (label); adj = gtk_adjustment_new (0.0, 0.0, 360.0, 1.0, 12.0, 0.0); g_signal_connect (adj, "value-changed", G_CALLBACK (on_axis_value_change), GINT_TO_POINTER (axis)); slider = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adj); gtk_container_add (GTK_CONTAINER (box), slider); gtk_widget_set_hexpand (slider, TRUE); gtk_widget_show (slider); gtk_widget_show (box); return box; } static void close_window (GtkWidget *widget) { /* Reset the state */ demo_window = NULL; gl_area = NULL; rotation_angles[X_AXIS] = 0.0; rotation_angles[Y_AXIS] = 0.0; rotation_angles[Z_AXIS] = 0.0; } GtkWidget * create_glarea_window (GtkWidget *do_widget) { GtkWidget *window, *box, *button, *controls; int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "OpenGL Area"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_box_set_spacing (GTK_BOX (box), 6); gtk_container_add (GTK_CONTAINER (window), box); gl_area = gtk_gl_area_new (); gtk_widget_set_hexpand (gl_area, TRUE); gtk_widget_set_vexpand (gl_area, TRUE); gtk_container_add (GTK_CONTAINER (box), gl_area); /* We need to initialize and free GL resources, so we use * the realize and unrealize signals on the widget */ g_signal_connect (gl_area, "realize", G_CALLBACK (realize), NULL); g_signal_connect (gl_area, "unrealize", G_CALLBACK (unrealize), NULL); /* The main "draw" call for GtkGLArea */ g_signal_connect (gl_area, "render", G_CALLBACK (render), NULL); controls = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_container_add (GTK_CONTAINER (box), controls); gtk_widget_set_hexpand (controls, TRUE); for (i = 0; i < N_AXIS; i++) gtk_container_add (GTK_CONTAINER (controls), create_axis_slider (i)); button = gtk_button_new_with_label ("Quit"); gtk_widget_set_hexpand (button, TRUE); gtk_container_add (GTK_CONTAINER (box), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); return window; } GtkWidget* do_glarea (GtkWidget *do_widget) { if (demo_window == NULL) demo_window = create_glarea_window (do_widget); if (!gtk_widget_get_visible (demo_window)) gtk_widget_show_all (demo_window); else gtk_widget_destroy (demo_window); return demo_window; } (uuay)filtermodel.cW/* Tree View/Filter Model * * This example demonstrates how GtkTreeModelFilter can be used not * just to show a subset of the rows, but also to compute columns * that are not actually present in the underlying model. */ #include #include enum { WIDTH_COLUMN, HEIGHT_COLUMN, AREA_COLUMN, SQUARE_COLUMN }; static void format_number (GtkTreeViewColumn *col, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gint num; gchar *text; gtk_tree_model_get (model, iter, GPOINTER_TO_INT (data), &num, -1); text = g_strdup_printf ("%d", num); g_object_set (cell, "text", text, NULL); g_free (text); } static void filter_modify_func (GtkTreeModel *model, GtkTreeIter *iter, GValue *value, gint column, gpointer data) { GtkTreeModelFilter *filter_model = GTK_TREE_MODEL_FILTER (model); gint width, height; GtkTreeModel *child_model; GtkTreeIter child_iter; child_model = gtk_tree_model_filter_get_model (filter_model); gtk_tree_model_filter_convert_iter_to_child_iter (filter_model, &child_iter, iter); gtk_tree_model_get (child_model, &child_iter, WIDTH_COLUMN, &width, HEIGHT_COLUMN, &height, -1); switch (column) { case WIDTH_COLUMN: g_value_set_int (value, width); break; case HEIGHT_COLUMN: g_value_set_int (value, height); break; case AREA_COLUMN: g_value_set_int (value, width * height); break; case SQUARE_COLUMN: g_value_set_boolean (value, width == height); break; default: g_assert_not_reached (); } } static gboolean visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gint width; gtk_tree_model_get (model, iter, WIDTH_COLUMN, &width, -1); return width < 10; } static void cell_edited (GtkCellRendererSpin *cell, const char *path_string, const char *new_text, GtkListStore *store) { int val; GtkTreePath *path; GtkTreeIter iter; int column; path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path); gtk_tree_path_free (path); column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); val = atoi (new_text); gtk_list_store_set (store, &iter, column, val, -1); } GtkWidget * do_filtermodel (GtkWidget *do_widget) { static GtkWidget *window; GtkWidget *tree; GtkListStore *store; GtkTreeModel *model; GtkTreeViewColumn *column; GtkCellRenderer *cell; GType types[4]; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/filtermodel/filtermodel.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = (GtkListStore*)gtk_builder_get_object (builder, "liststore1"); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn1"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext1"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (WIDTH_COLUMN)); g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn2"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext2"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (HEIGHT_COLUMN)); g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn3"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext3"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn4"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext4"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn5"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext5"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (AREA_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn6"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrendererpixbuf1"); gtk_tree_view_column_add_attribute (column, cell, "visible", SQUARE_COLUMN); tree = (GtkWidget*)gtk_builder_get_object (builder, "treeview2"); types[WIDTH_COLUMN] = G_TYPE_INT; types[HEIGHT_COLUMN] = G_TYPE_INT; types[AREA_COLUMN] = G_TYPE_INT; types[SQUARE_COLUMN] = G_TYPE_BOOLEAN; model = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); gtk_tree_model_filter_set_modify_func (GTK_TREE_MODEL_FILTER (model), G_N_ELEMENTS (types), types, filter_modify_func, NULL, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (tree), model); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn7"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext6"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn8"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext7"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); tree = (GtkWidget*)gtk_builder_get_object (builder, "treeview3"); model = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (model), visible_func, NULL, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (tree), model); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)infobar.c/* Info Bars * * Info bar widgets are used to report important messages to the user. */ #include #include static void on_bar_response (GtkInfoBar *info_bar, gint response_id, gpointer user_data) { GtkWidget *dialog; GtkWidget *window; if (response_id == GTK_RESPONSE_CLOSE) { gtk_widget_hide (GTK_WIDGET (info_bar)); return; } window = gtk_widget_get_toplevel (GTK_WIDGET (info_bar)); dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "You clicked a button on an info bar"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "Your response has id %d", response_id); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); gtk_widget_show_all (dialog); } GtkWidget * do_infobar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *bar; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *label; GtkWidget *actions; GtkWidget *button; if (!window) { actions = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Info Bars"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_INFO"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Message"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Warning"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new_with_buttons (_("_OK"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_QUESTION"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Question"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_ERROR"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Error"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_OTHER); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_OTHER"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Other"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); frame = gtk_frame_new ("Info bars"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 8); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); gtk_container_add (GTK_CONTAINER (frame), vbox2); /* Standard message dialog */ label = gtk_label_new ("An example of different info bars"); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0); gtk_widget_show_all (actions); gtk_box_pack_start (GTK_BOX (vbox2), actions, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-gsame.pngPNG  IHDR00WgAMA1_^IDATxYdWy[{U3ӳ3a0+f1F !HI7x,g~Swoߟk03֫6Y,bMWr?[?;j1񪴜S|zoY|쳷S;s%>sj\3Җ\+A {?+%y2 P/=S .>٘cƘ2j;_ 'VF;k wN;njYo9-dG-ӿw?ӟ=B()9 4&0L.~$%KL(K~| _ѹ|h#B4xۍKx`Fi猆F?Ikm!qcQ%7 BY`x)uJRc|'g8w:{S@6s:.&R0 =y;zRJß[޲t_}&[i؋.YoKU!Ejg;*sf[)y@E ^G٠L^B6v@$9J@YJ@cp@hs;}jP `8V\Ib+~fժR9֘0r#?chEb5USб2wdЙBDEF(ՠ-4ƶu ra"nR͜>Y1U @2q{78asC^,yr\ģ'\kW!WbJCvFdIJjDS2B #l\S8IMJV@]e߳83lu2mu6ZYÿvW녙th6jLLX{wNgy=;wd#lm'Y,}T[ 6NsD:bj^tG)ǟ{Mo󙝇{.[Fxt+(M AElZET'12nF/"QlҜ02J+%Am D)C~l"oKm! dn[yǹOyԣ%!)RjV)5jK)kRJ8L]" i昭nil M3"݄"OZVc6F.[#7UPxSDq[kSkmbst!D@<ߪv:;f4ZG(9Α) /Í#$'eZbkAx>.v^ @^޶ֶMkmZ+1Ba1BITn+$:vgjT3p$(c'h3Mr&&4 HPiz6%t N;jZkT!Xp55afvVhCE4Mb"Ռ7N:!hk3\ Jr$PF;* 6|k1L5!D0?9uY>@1nRIiĒ:6/ʉ Ɉ2ֶhQ8r\g*h^1b!D`E`3U @=v޴V0M "I $ 2.f[ `uu{W[Bkg^ ,hkB$Z;֎$W|?Ԭ7pGjz}أO<,mFWu̥O]{l#3-R=И^ZI+~`6t kur>dZ֒8Ɋ3T̬\3*_;w.6?:p`f9zDgnĮKk)ԆfBXJ Zztx{n޿w5g1IT+dy&,#I0 |$[7 n[H^ѷΏN8%>Zq^sw~) !zvb(pd:H(4IyFRE IZQ=.TZpZ%^+x:򖛿!If)I>3\Gh)cTZ)cGQz@զ2rGKkkHuNIApn˅^R7a@ݡ.QuԽ];vuZ!T}jQNRT+UfXC 0&' B?LKRnsu^\yJ yv~1qFCbðpq1 !B@K)m!)W.|;}?QS 4,JV~ okwN33^zb8)q]Yx2a%b !TVTRqr)egi9#o$4Ea,Q<ׄQ\|+eƽ®z@$GIL/c&J~TN\^VmR1h!e/4OQ ]$q]_x^Dh1'{&o f@&`%4j.)!DF 4n)4ιJڻ0n^@eB'qa_|9?R5-oL Jkgѣ␰4`aaA}l6fxӾVn_LLy^8 +)," }MR]gU/mCCҀ/ \KylA[_/M-uǽv%Jy#҄Dv @tpPKQq?66*y |tKRRUVen~bՊ5.emmqAI}y`=Nm+_ϾNiJg3ޤW e)q+|%Ķ;^s1aIENDB`(uuay)theming.ui0 10 vertical 1 1 0 0 1 0 Normal 1 1 edit-find 1 0 1 0 Active 1 1 edit-find 1 1 0 1 0 Insensitive 1 1 edit-find 1 0 1 Raised 1 1 edit-find 1 0 1 Raised Active 1 1 edit-find 1 1 0 1 0 Insensitive Active 1 edit-find 1 1 1 0 1 1 1 Search... edit-find-symbolic 0 1 1 1 1 center center Hi, I am a button 0 1 1 1 0 And I'm another button 0 1 1 1 0 1 This is a button party! 0 1 1 1 0 2 1 1 1 icons 0 1 0 Normal 1 list-add-symbolic 1 0 1 0 Normal 1 list-add-symbolic 1 0 1 0 Active 1 list-remove-symbolic 1 1 0 1 0 Active 1 list-remove-symbolic 1 1 0 1 0 0 Insensitive 1 edit-find-symbolic 1 0 1 0 0 Insensitive Active 1 go-up-symbolic 1 1 1 10 horizontal 1 Plain end 1 1 Destructive 1 Suggested (uuay)gnu-keys.png PNG  IHDR00WgAMA aIDATxkt]e゙[rr-M&i4IoŦC;DgPQTTguleP^Ҧ-msk~9Im}y|)̗:~yy}.qK\2C^Fd"弋Kt᪵UrL+ͷRu-YVV^zU+W (=ݽo `L-(`Fy9&NaYV왳vmۏ:/L/zefB01o2jy_8Pϱup H)B0qm_[ ȿV;@V(\{^fr(6 IG{x3cKս( *H$|)T4h?]ȂeneY9kjx4Jbd+W^y%լhB L  [|aIl2F~~+&OG @Uө|A< _ 8nSOn$I1UfV^~<`wn~ t4'8͞-ZXYyށT{߽ۿ_qǎR\RȬJ Il[8y%e^UQ5Mc_EVvϕxK"yn /﮻iK,554k>+cY=\mOw0 xmO~/P Be``}r!ʊ)- 3blя[i%hF*$LcuTcP⒊;>u{)j0%yyB` p㉸퇿]WWWwBǁQ`rJn'7†jB4E4Lo߫4kp$/w]MP5b$q|tb嗱kҲr=elt_="GeG7tM0M'߽;~rt]G"IA4¡0hhlzFF 3:$ccc$IFc8z9zG BB&Mرc<.馛)/+W||f9pEQP <.ӿxb&8ҊoRinm&77Jj-_Ƽy9s4gΝ"JY8R"}qʦa&j`A4Mlذk\k  ԾZolDUUt]_}}RL7^L@G>2EUPu.+ZJBz{zof$6JEE% ;.' ˪g΂HC "Yz@0H__/CA=ơCعs'K,acض͑#u}ctL%Oxɼ@QQQov(G&]]]]Pe1HSPX+0LښhhlॗvHũcH.iiiq,*QUΞսGbYAx|;w$;7p(*斪yϝxd0 x _bf/H_y_|'<9Bcǎ8y3˙;gPs &pl}G3RK v5V>3tZ͆O~7^/f(=>.\wI àa&M/}TM#;+#?EQQ*̟;˗zΎNod*Iii2~n}.**gdh+HOjo.a 7\rY"&6>55<.<ץ-?žp7QZVi o=B:==Xu,KpUܱAR{`?wE 'OP6ן"#QtM! 12CʛKco}wc) R0u #%'4 U?>D"Yy_?? ,kf:ōm[+k&pmTTT,]=[(x3SE_8R88I*"@+_FW\=|v4 ,\W M -郵ugsrm7d mݽ횪BP@(hB;u…5?=x'uyjS_kOYpݡ:+>6M>۾d;O5;{}#6//oY''UTTT3L'lK}ACRJ%A kBg[ԌT4hzo>JhBkVjUSÙL DUU;?vTaYvȡc=gN7=='yiT]m-mV 3KhqCowL&0 NCDz.L\Τ/y۽e˗rsM5.b$ Dcx}k+V.Ng{cC#4y/x'QV]ʫYZZꍌ Y{Q~WRnaswkwD"&w?K\{;$誂IENDB`(uuay)stack.ui Stack 1 1 stack center 0 0 1 1 crossfade 1 20 20 gtk3-demo page1 Page 1 Page 2 1 1 1 center center page2 Page 2 1 center center 1 page3 face-laugh-symbolic 0 1 (uuay)drawingarea.cr!/* Drawing Area * * GtkDrawingArea is a blank area where you can draw custom displays * of various kinds. * * This demo has two drawing areas. The checkerboard area shows * how you can just draw something; all you have to do is write * a signal handler for expose_event, as shown here. * * The "scribble" area is a bit more advanced, and shows how to handle * events such as button presses and mouse motion. Click the mouse * and drag in the scribble area to draw squiggles. Resize the window * to clear the area. */ #include static GtkWidget *window = NULL; /* Pixmap for scribble area, to store current scribbles */ static cairo_surface_t *surface = NULL; /* Create a new surface of the appropriate size to store our scribbles */ static gboolean scribble_configure_event (GtkWidget *widget, GdkEventConfigure *event, gpointer data) { GtkAllocation allocation; cairo_t *cr; if (surface) cairo_surface_destroy (surface); gtk_widget_get_allocation (widget, &allocation); surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, allocation.width, allocation.height); /* Initialize the surface to white */ cr = cairo_create (surface); cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); cairo_destroy (cr); /* We've handled the configure event, no need for further processing. */ return TRUE; } /* Redraw the screen from the surface */ static gboolean scribble_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); return FALSE; } /* Draw a rectangle on the screen */ static void draw_brush (GtkWidget *widget, gdouble x, gdouble y) { GdkRectangle update_rect; cairo_t *cr; update_rect.x = x - 3; update_rect.y = y - 3; update_rect.width = 6; update_rect.height = 6; /* Paint to the surface, where we store our state */ cr = cairo_create (surface); gdk_cairo_rectangle (cr, &update_rect); cairo_fill (cr); cairo_destroy (cr); /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } static gboolean scribble_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data) { if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ if (event->button == GDK_BUTTON_PRIMARY) draw_brush (widget, event->x, event->y); /* We've handled the event, stop processing */ return TRUE; } static gboolean scribble_motion_notify_event (GtkWidget *widget, GdkEventMotion *event, gpointer data) { int x, y; GdkModifierType state; if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ /* This call is very important; it requests the next motion event. * If you don't call gdk_window_get_pointer() you'll only get * a single motion event. The reason is that we specified * GDK_POINTER_MOTION_HINT_MASK to gtk_widget_set_events(). * If we hadn't specified that, we could just use event->x, event->y * as the pointer location. But we'd also get deluged in events. * By requesting the next event as we handle the current one, * we avoid getting a huge number of events faster than we * can cope. */ gdk_window_get_device_position (event->window, event->device, &x, &y, &state); if (state & GDK_BUTTON1_MASK) draw_brush (widget, x, y); /* We've handled it, stop processing */ return TRUE; } static gboolean checkerboard_draw (GtkWidget *da, cairo_t *cr, gpointer data) { gint i, j, xcount, ycount, width, height; #define CHECK_SIZE 10 #define SPACING 2 /* At the start of a draw handler, a clip region has been set on * the Cairo context, and the contents have been cleared to the * widget's background color. The docs for * gdk_window_begin_paint_region() give more details on how this * works. */ xcount = 0; width = gtk_widget_get_allocated_width (da); height = gtk_widget_get_allocated_height (da); i = SPACING; while (i < width) { j = SPACING; ycount = xcount % 2; /* start with even/odd depending on row */ while (j < height) { if (ycount % 2) cairo_set_source_rgb (cr, 0.45777, 0, 0.45777); else cairo_set_source_rgb (cr, 1, 1, 1); /* If we're outside the clip, this will do nothing. */ cairo_rectangle (cr, i, j, CHECK_SIZE, CHECK_SIZE); cairo_fill (cr); j += CHECK_SIZE + SPACING; ++ycount; } i += CHECK_SIZE + SPACING; ++xcount; } /* return TRUE because we've handled this event, so no * further processing is required. */ return TRUE; } static void close_window (void) { window = NULL; if (surface) cairo_surface_destroy (surface); surface = NULL; } GtkWidget * do_drawingarea (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *da; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Drawing Area"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the checkerboard area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Checkerboard pattern"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); g_signal_connect (da, "draw", G_CALLBACK (checkerboard_draw), NULL); /* * Create the scribble area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Scribble area"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); /* Signals used to handle backing surface */ g_signal_connect (da, "draw", G_CALLBACK (scribble_draw), NULL); g_signal_connect (da,"configure-event", G_CALLBACK (scribble_configure_event), NULL); /* Event signals */ g_signal_connect (da, "motion-notify-event", G_CALLBACK (scribble_motion_notify_event), NULL); g_signal_connect (da, "button-press-event", G_CALLBACK (scribble_button_press_event), NULL); /* Ask to receive events the drawing area doesn't normally * subscribe to */ gtk_widget_set_events (da, gtk_widget_get_events (da) | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)popover/Klinks.cr /* Links * * GtkLabel can show hyperlinks. The default action is to call * gtk_show_uri_on_window() on their URI, but it is possible to override * this with a custom handler. */ #include static void response_cb (GtkWidget *dialog, gint response_id, gpointer data) { gtk_widget_destroy (dialog); } static gboolean activate_link (GtkWidget *label, const gchar *uri, gpointer data) { if (g_strcmp0 (uri, "keynav") == 0) { GtkWidget *dialog; GtkWidget *parent; parent = gtk_widget_get_toplevel (label); dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "The term keynav is a shorthand for " "keyboard navigation and refers to the process of using " "a program (exclusively) via keyboard input."); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); return TRUE; } return FALSE; } GtkWidget * do_links (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Links"); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); label = gtk_label_new ("Some text may be marked up\n" "as hyperlinks, which can be clicked\n" "or activated via keynav\n" "and they work fine with other markup, like when\n" "searching on " "Go" "og" "le" "."); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show (label); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-foot.pngd PNG  IHDR/0#gAMA1_ IDATxYkly=wfvvfܗ)QŪl#HqdmT i4N A(n ] l<8v*#%RDY$MJ>?2T ,T\0s _e/ׇ o>Н:qj^ڷo߉mXpd WMjo1W[?kll,cСT*5:6M$eW2ob x3}3}xgPUjI3&c+wM& rտ%v{v$+Q):ښNƘUOdΑ/R7ODzHKR"xDb!zKAHiY0 RedLU(fyQݵr]] Cj6ѪU!J-a>奂Jz|q 琈E0ym{A=J|7xx#luS6}Wz6#gޘ%r[%-Mi|Zov,e |YQp"z}_wԪ_hUvyc ѦY|)B&_; qիtMb\^cϏ& G}F+8nu;hdhp6Zbew7%5 3 3j`*-nxw-8ph$Rwmcg.#\ٚmd몂g Kdj,J(*}k_z~'H^sk#-dz7vq5_VONKF8%5*'Qc]Xioiٟĥûo岹#vDP0Ƕ`YoozVYT?/l$,D!M%c-V0̟lV+T%drL\0y?mlВ'FGL%4D2IEM MF>Oy3׳ݽ}X|wo_o,l biuS/#[(=948Ǡ`zz{a[aYGPIg,# Hu^-Cm]X_;+{>VWU mX0, ϣ4C<ЪW`Y"Fni|e̤Pk $>\|r=N"6  CJYǒb!ǶZ@MC#\V˫V)c=vjn̻ [5 VIa[xAqD1׶ XYZd2gr[AWfD/Wk3GiZeyx'eBD1D8%kkeL%OO<^-Fޜ$ 1-;єdhF$EmS'eQ]Ӊm0M,g2x8v,~7|/jf0ֽ%ю^0l8$-I (J=j;.XaZbMo;MC| -Q8<<  #include #define GTK_TYPE_ROTATED_BIN (gtk_rotated_bin_get_type ()) #define GTK_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBin)) #define GTK_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) #define GTK_IS_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ROTATED_BIN)) #define GTK_IS_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ROTATED_BIN)) #define GTK_ROTATED_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) typedef struct _GtkRotatedBin GtkRotatedBin; typedef struct _GtkRotatedBinClass GtkRotatedBinClass; struct _GtkRotatedBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; gdouble angle; }; struct _GtkRotatedBinClass { GtkContainerClass parent_class; }; GType gtk_rotated_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_rotated_bin_new (void); void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle); /*** implementation ***/ static void gtk_rotated_bin_realize (GtkWidget *widget); static void gtk_rotated_bin_unrealize (GtkWidget *widget); static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_rotated_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkRotatedBin, gtk_rotated_bin, GTK_TYPE_CONTAINER); static void to_child (GtkRotatedBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = widget_x; y = widget_y; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c + y * s; yr = y * c - x * s; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; *x_out = x; *y_out = y; } static void to_parent (GtkRotatedBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = offscreen_x; y = offscreen_y; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c - y * s; yr = x * s + y * c; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; *x_out = x; *y_out = y; } static void gtk_rotated_bin_class_init (GtkRotatedBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_rotated_bin_realize; widget_class->unrealize = gtk_rotated_bin_unrealize; widget_class->get_preferred_width = gtk_rotated_bin_get_preferred_width; widget_class->get_preferred_height = gtk_rotated_bin_get_preferred_height; widget_class->size_allocate = gtk_rotated_bin_size_allocate; widget_class->draw = gtk_rotated_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_ROTATED_BIN, g_cclosure_new (G_CALLBACK (gtk_rotated_bin_damage), NULL, NULL)); container_class->add = gtk_rotated_bin_add; container_class->remove = gtk_rotated_bin_remove; container_class->forall = gtk_rotated_bin_forall; container_class->child_type = gtk_rotated_bin_child_type; } static void gtk_rotated_bin_init (GtkRotatedBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_rotated_bin_new (void) { return g_object_new (GTK_TYPE_ROTATED_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkRotatedBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkRotatedBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkRotatedBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_rotated_bin_realize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkAllocation allocation; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); gdk_window_show (bin->offscreen_window); } static void gtk_rotated_bin_unrealize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_rotated_bin_parent_class)->unrealize (widget); } static GType gtk_rotated_bin_child_type (GtkContainer *container) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkRotatedBin cannot have more than one child"); } static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle) { g_return_if_fail (GTK_IS_ROTATED_BIN (bin)); bin->angle = angle; gtk_widget_queue_resize (GTK_WIDGET (bin)); gdk_window_geometry_changed (bin->offscreen_window); } static void gtk_rotated_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkRequisition child_requisition; double s, c; double w, h; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); s = sin (bin->angle); c = cos (bin->angle); w = c * child_requisition.width + s * child_requisition.height; h = s * child_requisition.width + c * child_requisition.height; border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + w; requisition->height = border_width * 2 + h; } static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.height; } static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); guint border_width; gint w, h; gdouble s, c; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; if (c == 0.0) child_allocation.width = h / s; else if (s == 0.0) child_allocation.width = w / c; else child_allocation.width = MIN ((w - s * child_allocation.height) / c, (h - c * child_allocation.height) / s); if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, child_allocation.x, child_allocation.y, child_allocation.width, child_allocation.height); child_allocation.x = child_allocation.y = 0; gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GdkWindow *window; gdouble s, c; gdouble w, h; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; GtkAllocation child_area; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); gtk_widget_get_allocation (bin->child, &child_area); /* transform */ s = sin (bin->angle); c = cos (bin->angle); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; cairo_translate (cr, (w - child_area.width) / 2, (h - child_area.height) / 2); cairo_translate (cr, child_area.width / 2, child_area.height / 2); cairo_rotate (cr, bin->angle); cairo_translate (cr, -child_area.width / 2, -child_area.height / 2); /* clip */ cairo_rectangle (cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); cairo_clip (cr); /* paint */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); } } if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ static void scale_changed (GtkRange *range, GtkRotatedBin *bin) { gtk_rotated_bin_set_angle (bin, gtk_range_get_value (range)); } GtkWidget * do_offscreen_window (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *bin, *vbox, *scale, *button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Button"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, G_PI/2, 0.01); gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); button = gtk_button_new_with_label ("A Button"); bin = gtk_rotated_bin_new (); g_signal_connect (scale, "value-changed", G_CALLBACK (scale_changed), bin); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), button); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)zoom_out_cursor.pngzPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3WIDATXWmLT~30CqeTTJĴ1 b5U5UP[k`pFRw1E TMHcZ>Cgޙs[\7铜s*jS&tkZ:uqy0QzYkdYf7oV @tM[F1f^RRB oٲEa>D0,SYYbcwtt8._ӧOz̙?]zo]]]/8n<ծ84::sN$Z[[ .N 񰾾W{Ur|;ֲ:t@UV/^@ 0ZWW`6狤2ݙH Ŝ Dt:f&PFF|>688طB\555*>222zL @֭[7׮]q?6<ϫ£G>$"Zf lbQKK|c6&sh"@EEEDDP4 8611DQ$tQ e˖YZ 2C(9r$IӧOh8?]r3'?DťKȳg `WhDQ`xxX0\&ь ddbqCCCF4e@`0^Wh4 fhllL  vm0FbM! x/_v:N,6[Ze/_TԺDDvZ""e`I@Q#*77?F$(h,|r䊢Hp8|} Ȳ%Q@ ?~)o%"`yIDhÆ 9Dtx_nNݻw iӦMìR 'Nq"%M{H"_?vj~bW4y@`Öy^fXT'p8dY!J"ʚ4*eY l޽]~~>` m@ gz{{^xFlɒ%tƍH(1ƘBD " wɓ'> wA\y ~?888r؊+qBT^^NT\\4h&9D#,DCɀ& F Ğ)VZ߿_ڶm( DQtOL&qDot0X`1<91u1Kj^۷os^Ov#>dřL.D%nүſ}xgCCC^L[Rnݺ59WZ[[v} @ =X{J^h%I N"BD%!zXC6WSQfIENDB`(uuay)nw_resize_cursor.png PNG  IHDR szzsBIT|d pHYsBB" >tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXH[W?/IƆVݨ)ڕV,MYamW[ZԚj1WViZlF-e(4:Z+6P*s b4X&ywXgVac_w>{=׿,)Ƴȱ^R1$Y?B B5C!ljj|a @9;Y}t:7z<}GZ<8 T^`p$4MNX]]ͣG @GDNzu-ID`3'"Qʷhkczzzf41+!!g222$IǒힺzD lll5rPzKͶ#!hb|^ @gffn0YW@FFLLL9sZ5$IB!~ܹsեO?~ >*+"$&*rQQr~ EiUIIIp(۶m+**j~܀D`9%''!V__!HhCDfFz{{†XbiݙNӚ8 ;`{ɩS$ټɓ'_) innNTTT|*lKKKH.~ҥKBQp8ooOhmm%(W\i p3kjj W(f{)fO static GtkWidget *window = NULL; GtkWidget * do_theming_style_classes (GtkWidget *do_widget) { GtkWidget *grid; GtkBuilder *builder; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Style Classes"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); builder = gtk_builder_new_from_resource ("/theming_style_classes/theming.ui"); grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); gtk_widget_show_all (grid); gtk_container_add (GTK_CONTAINER (window), grid); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)colorsel.c /* Color Chooser * * A GtkColorChooser lets the user choose a color. There are several * implementations of the GtkColorChooser interface in GTK+. The * GtkColorChooserDialog is a prebuilt dialog containing a * GtkColorChooserWidget. */ #include static GtkWidget *window = NULL; static GtkWidget *da; static GdkRGBA color; static GtkWidget *frame; /* draw callback for the drawing area */ static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_rgba (cr, &color); cairo_paint (cr); return TRUE; } static void response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) { if (response_id == GTK_RESPONSE_OK) gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); gtk_widget_destroy (GTK_WIDGET (dialog)); } static void change_color_callback (GtkWidget *button, gpointer data) { GtkWidget *dialog; dialog = gtk_color_chooser_dialog_new ("Changing color", GTK_WINDOW (window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); gtk_widget_show_all (dialog); } GtkWidget * do_colorsel (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *button; if (!window) { color.red = 0; color.blue = 1; color.green = 0; color.alpha = 1; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Color Chooser"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the color swatch area */ frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_callback), NULL); /* set a minimum size */ gtk_widget_set_size_request (da, 200, 200); gtk_container_add (GTK_CONTAINER (frame), da); button = gtk_button_new_with_mnemonic ("_Change the above color"); gtk_widget_set_halign (button, GTK_ALIGN_END); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (change_color_callback), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)brick2.png)PNG  IHDRsBIT|d pHYs>>"tEXtSoftwarewww.inkscape.org< IDATxySk Z)(Id[![,hE[dkRVWv06<gky?0|>yss^$z&eߏ~}$ifa;K<.3{;1`cࣄ]ƓYnKsιyBAf%M` ^s"{m|X l&Ɋq9'`f?P> t9WҘpC31fv(MܧsιF" _0oG,iV-ؠ;< ݟ;\ʄnf {Fx֒?5yy}s^Lt٥5y%*WHz sHB^X+DHI# ʔkIHNl:s>nf6H8baPj3[0LI"%Y$չA%Ms.Z\kW%*~~nfk$*7sιbjKfv4KFU%EQ+$]t9犩%VuU%#m{B>:wιTyB7O#سuU)~Ul`ıv[9\quw%T"P,yIHAz؍sιAԑSL3OdexH=%]+i$}VsMsJ-BAW+*z9{~+9\yUSPY[l`ı 妃p9>¶&{3; EiAAD8q9n.Y=G ɒ׶랒nm:sN $lk`\##]4Y'錦p9F -{{O~.m#?͝sT=+fI7u$E\?[Rq9N &b&Ŏ S@R[q9H =[=*ׄe%ifd mHIz@sΥWGkcHh%/ E0NJp9׿>g/x ^HC4*`SI7ԿsιԑЯ"]2Q"I;Rޒ\AG lw9džMf6cf2B+Hq[:~/wrXIk%no$[IY?sG fv5a=T3;)Ϗ"b0mp3r=+D3$TjF9\yCB77qxkf6H'n ~zW^p$&Gv+Q6,iip]9z Ӌwnz^ݑYe,swdz41`E UM}zE? $隊w9b& 3KA9tIQx+1WOK^ f(`M_qxsι70M%s],w=l|GJ^NM<;fB#̊zxrwhY:i-3;7O%U\9\$3wQ 5 SnUy8"..Zj/3Cٵ/s1|%̦!g&=ˀˀ#/tf6/wx bfۀS3%=]u\92qkly#?z^ڜHX`8lIf9kl5#{ 78jGC]Es.{:Xۓn 5Xv#t c%ĺ/:@vVfU$(ݬ\sιn'[%=`f Ͳ!L-XBIGF<| TΝsι!uW;rc J EFu& KHnEۜsιhOb;pYvzON$$/[sνrY+#,> ci9sú|waeOUf,Dsu4N ka/p Yn4%Q(<<U{sJIHgfv.A&>l l%I7V_"o핒(>Ae) ()QTAI+7Ġ$$yW׎"LuB~1Ж߀5z6=\8pcSI-"P}^V3It5g  b3A'o?uzô IQS`3[v3K7"y6} fv|6зl3;p0)>3Yfi%3̾ؑD6d\,yT%h*וȒ.~X-nOl 3;Wfu]1oaf[^cf>)5ii8A3;g 6IԜ' uKwuc_D1E쇄ڵ;mtefoTշf֚ L"lEkفlYN-n`'[ҩ_ $6E@f6GH8Nս΀j^ؓD-B_B4j#Tm:ajf{UvF)^D'efM'yefkG+{͜5N~Nl-@U9HNH#+K`2kY"YkK$lzJMIzQ>c̶-}PkǘF/}6z#N{~vVt%~m ^JGWg d`f׏`zndi氚fD(g>A-EM!qe5Y٪I7^@8heJgSh5sA;5nو efK+uK%=B ǭGXܹ.0NR]U}FRbݾC8) @Ag@v䤚?̮`DU$ lnI/6b@ qWZz6saOˤdl' IX,"ggd?+!1w%MMw]'鞦)VӁ$ ;Ӓ989;+l)m1#="EwaZ5$a \_q*nzvT_hi~/8+M Ez C((aTqmlM( ç/;f'P3LclffIUmڊ4 rMn]C~Q3t3{bOMh:nfq#UIS$Fxn9t qY*iOueIOFֱ$U<;윂JJT죄g+T({x7$aIzIɒϪ!@$"\ĞE[„ 1O 4g5/ ]YAfZ|7ASI~vlsO&aqlք)$,+;Y鍞RYB϶ߒV'ljv-a; h^3[0WS?t'pjd3{ ^UyV:g&7HK7O $guhj5P35m>iӑ^MI"yvI~3+ oQ}r1՞C !z'2?x8d!b{ò2m뿝"H?fX]vڼ9$iB\DԛImM3bGg|MhIMNj‰9[0(GgcMkFu"?KKI"_?k:.%bx7 }%?Dc ml=KlBe(NfKAt}rq(mc4 yՑ}ZN$gSGh pcA jnjtkxF,f;c@bfph^ec_tڽ^jmҞF_7E/Tgg7RMIs|sEf"&_|yT*_<xBo@tB϶snUr\$m\ݒ$eu{M`fK1u#$=<+޲ ً?'-3:Thpy|A "hM3J*(pzMwZ{ˌP_/3x-- W ؕ)=}3KN@ڪCT"6])4&fτހlIM?1 }|7ټ+wh\JzeNx,Vd΂ h*E܁:Z[q0lnȄH{iYޖrVwD\?8Ұ "B1JOf yp GJ\0!D8W\}"Ŧ\m7mЧvnfnam$lf;m]X dЧ%NHX-? e/~6P|l1eo\ 1 }dQ< l(8bܟI/?:%tIwG4C31 UI/&$kfMC[ nPnxBU)^{ޕ.F=P^*j=G)~}a{BeF'`tոXCRlʺ=qm=p´kY GV])fBg_[ ~KbJf6U`%_pWb-ɬ E\[{BO3bqoIHE \6H {$֙8KI5*E︊"tC{p&}!n}`T1' ?7emIjayĎWLE=CiMle?ZP9z(:B_(Fۀ$۴PL1gM|MNͫs+Oj;TMkK"5@xOA\L(m|%b#j%^ =^h*ppMS#_8Œ-~3[JN0(r2kfS\:gf"9S:£"kM>RYE{@)!u[>M'nuTi߁1 ׬a#LQ UozMz=hBYIk:Ĥj>vٖ#XVOO4ؙ0ja_bjh̢:^H||^K$~QF]D$]tbn!d[n7h,TUBD#m<( I[H](kb'^7COL܌A'#шYA2r^ !~F>(=WݑCqR2 ;wY'<&s`j=Mm[֑wUZE@ qW#A^MǑCI *y1񾪦TT|rkPՠhB﷽ӱ^Vm_yOS2H:88#_6KɛBH,e]%_9WiBt0xQc![ZOפhB7M74c~/:> ֑$3pk:H~Nky2J 2OC`\ TNEۡ7^5lK7kI^k*[ѯ /&Ée;yNο.u8:z+~瓁]%1]} LX>(w#kdx 3D秊׵M*%}F>=%M-%(ne}gO%GsE}T+ =i]+ JIDATʶz2OG8s5`y`Fi2p0pK+ v'ImvzKK5eS U]힧LƙYU+&SuӁ-U;ekpL'&?@jtuk\`EIg[*%/M藑-⏸b)/)}Yf)akwVٚQ Ie# q |PzdRV+Mo\SaWW I$n?&YE%tIӀ?|rPYEF@Ff]TTw#13%ssszPS)}0-y=54eJwKkst `X^7-5 ńu&)Qn*Deޓ})5>LiW消>rW ƲbqcA:mҒ]ff3ͪkd}̖$84["|gVT?4_%me'uJ5?>F`h$9IK,I) ثhCӉG٘lMs.ro[_|1ꊶd<"̝{d =gz`+t,97Uz죠l ߠ¶3Cs:$2I6sYzىKn7c|s΍n',|68RWt4sn( K_`#cix2w97%tI"lXv=g9\2Hz0R?xp'`cIӚ9\`C"4K6KM&Jz@s֎;IL?Xjp 'ssEDB4EҶF<<L+9 )nf6'5 )n`GI5sιԓ }-pZ: 9\>>Bot,<|F҅MsEB`f_~,馃q9*0w}pNHf*]# r9FOBdfK^F6 0'Iz6=s.Qл`EBr_ XXׁtࡎٯ7HY{9~RU7-`IENDB`(uuay)background.jpgVJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"8!1AQ"a2q#BR3rbC1 ?T[C GzFh ʎ^h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T#[M*n@)Ҥ:Ivs)P'FbΦ˾D.8ԽhDT)OHKAƝL|Q=*i0 vMf[4" EbqT,,xb!x[aP;%?!-ROv'1G0Y/i5nFg#G _ @'zk2V6;_@a,kĚ/̷Qw7&Z FFPAb-j4@b;^f1Vjjl^^ ~sEGӴ0R:q:WL¬€2 X7fAjı8vbnԅ!53ж"<RT Umo6cڵ7oV`|df"džMJ9 Ub9=-r֡)`)0&55<5@]D=kpl? -rZDRPpuUM#`lsk m7ʆkV@5HΪ 1<$P"LGv(Iv,< 2+9lڊ>p@WC)"KhwUIk,1se[P; KK;d 5U7L[NA^.L)Gi2$p/ AUE(ñ:2.kvRfL6&IX80$ʑW׹E۷Qvy[iQӲ-[>3?5Q4:v&&A|ǦO5y"B0[ĝE⵷gkPa1+{ ds ip]GTy>h[Li(~Y'T q588*4H>Kmq@I3?PIi8QdyDS"*+N"`ڀ$YĒq$qYR촋kwnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPhj`chTA rA>&Icj}GC@#7sN s^bm#gt1O4Taʏ$UCV䝘nР(9:8Q.oLs!Ar#u%dVwOg7ٮ{6LY().ZN4&>*a 梪O4 +@Y?]#Hb&!'Fnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPPKr@ :pf}ܓM)wA;m-#tm#(w{xp o\ޟfw'@*S6[ޙY\E(UTJ2Di46 {UF V ʼnf*:IHM1gGu5l"FB0Ŷ8&GbPJj&fh vbp5!*1\CR}G$tfi d4cftwQMsV)9d*Nc [cM2l4v 4ffH`'f)\Rn0=y4='rI'C+cjq'z'f6'>")[;i[eN "-y1bFTT3DA&h}CB(aR5kV`~$$p?4PỸfPT!Ʃ`" >hYsm4IOdIX ?zP$ (ղ@?+*ǙQ2i~4V.C\=D*# @1X;k"2mРF̬@S}SNŷ1ʠP"a@;a.޳΢M *b?ZկF%}dɬTO H*, !j'SL>#ǓAmEQZiK*O>!mL Dl(S:קҪɮvMr?yuO&uC7aAzt-xdž2-4 M%3ykV}DZIf 9KjGjqp8xJ)LAuv"~yn(#{e*P*O 4~Xk Z`+hjSB?P`8 ,fALd(AfcrcTH4, $觲O$I(fcj LIcj(b4H!݀ Ѭ[L5I6hP#fVw)SbۈYeP(|@LD\|zYQJ&PD±fڭjףhHvvqo'Qm D9a#q+*;z4Ŧp 9'B椑!w{رPI[lG"!tI<T$ߚY>h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T(uuay)css_multiplebgs.css/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_multiplebgs/reset.css"); @import url("resource://css_multiplebgs/cssview.css"); #canvas { transition-property: background-color, background-image; transition-duration: 0.5s; background-color: #4870bc; } /* The gradients below are adapted versions of Lea Verou's CSS3 patterns, * licensed under the MIT license: * Copyright (c) 2011 Lea Verou, http://lea.verou.me/ * * See https://github.com/LeaVerou/CSS3-Patterns-Gallery */ /********** * Bricks * **********/ /* @define-color brick_hi #d42; @define-color brick_lo #b42; @define-color brick_hi_backdrop #888; @define-color brick_lo_backdrop #999; #canvas { background-color: #999; background-image: linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px), linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } #canvas:backdrop { background-color: #444; background-image: linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px), linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } */ /* #bricks-button { background-color: #eef; background-image: -gtk-scaled(url('resource:///css_multiplebgs/brick.png'),url('resource:///css_multiplebgs/brick2.png')); background-repeat: no-repeat; background-position: center; } */ /********** * Tartan * **********/ /* @define-color tartan_bg #662e2c; @define-color tartan_bg_backdrop #333; #canvas { background-color: @tartan_bg; background-image: repeating-linear-gradient(transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(-55deg, transparent, transparent 1px, rgba(0,0,0,.2) 1px, rgba(0,0,0,.2) 4px, transparent 4px, transparent 19px, rgba(0,0,0,.2) 19px, rgba(0,0,0,.2) 24px, transparent 24px, transparent 51px, rgba(0,0,0,.2) 51px, rgba(0,0,0,.2) 54px, transparent 54px, transparent 74px); } #canvas:backdrop { background-color: @tartan_bg_backdrop; } */ /*********** * Stripes * ***********/ /* @define-color base_bg #4870bc; @define-color backdrop_bg #555; #canvas { background-color: @base_bg; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } #canvas:backdrop { background-color: @backdrop_bg; } */ /*************** * Lined Paper * ***************/ /* #canvas { background-color: #fff; background-image: linear-gradient(90deg, transparent 79px, alpha(#f98195, 0.40) 79px, #f98195 80px, alpha(#f98195, 0.40) 81px, transparent 81px), linear-gradient(alpha(#77c5cf, 0.60), alpha(#77c5cf, 0.60) 1px, transparent 1px); background-size: 100% 36px; } #canvas:backdrop { background-color: #f1f2f4; background-image: linear-gradient(90deg, transparent 79px, alpha(#999, 0.40) 79px, #999 80px, alpha(#999, 0.40) 81px, transparent 81px), linear-gradient(alpha(#bbb, 0.60), alpha(#bbb, 0.60) 1px, transparent 1px); } */ (uuay)apple-red.png PNG  IHDR00WgAMA a IDATx[]Wyk9s8 N)JڄڨB>pE WK R@@@BqS+8v3sk}>31^|֞9e{^tvy_Tz߇} r޽cksM?p<p+E>*ܾ֏ W]vfgvw>yv!'+_dLom]aD֭G7L#ͯ굿>tbލW-,.{>E,&+֬h /ڳ{^>߄z;?/ ;po}U.tKGŇf6)o]EZ91|}~ W--7C4 ;%씍ozۍ! g|aNgnMo,VKU!@0G|׶nڱk5pJog&;W5B8tpao;[6:׽O\ 2R wͮr|Ο=ZEB|[aղ,ꭿw~x VmB)Fhcݷ}\In}GSefc"vԪg/-3j"`wogpr>Aqow;7O ̄ & AXA۰ض8pS9pMNwnmჃja~n,v?s{v}7ُOP v4!tTUMOh[( 0 :4uȢ(;'yn9?Scbጙ!|'/͛7+Wu_իNH)D^'jFĪBĐ,h.%49 0ofH_ CSv&/ʁnzhɖtJ?ܽ^q6]^~ӣ&5)G1!@2 ĺۖzf r\饊6?7=_ޓwַ/;w'W7y'^jc wzCDqbO1H!޴a f曖cP26,dhRЀص0hO~ί{r/VOMVl^}5#ey_\3*1D7*Jx*4+Dƨ$",X^SxAJpǏvpǏ8Gݍ׮YmeM޲zr\ǎ1?L NɈq X4L Iz!u$Dw!P!X(3J⺫~w>*;o; fLթѦO{ A?MtzU:z47"qsHNDS@8ɜn5A75e<3atH` _ v:,~J;I`U"* af#Pp wD0US"Vka`9zT5^W/8Ognl?P2⠥Qs8;A T"J9%3^]vݫ )%@_jBxɘ9w'fT(0 -/lpaAAi#aEN0NKm7]E;tz`@~$Zɘ`xD^1CQƱoN@pu,@z%jS6:ઔEk)e  "`h "TFPv,GbrJ>5ZS TP'4QuGlb*-+18ʨ>L Uǣ",*V1,E, *U;Ή@&D "Ǐљ&}a5\ )"JF0U3 sh БB+isa+  J)-M:&Xɸ "y4âd-TrD@#Ȱ(q@S<ܶwŧULЛYE*J.D B#%Cdb`#j0#qZUT)h}7kCPK VfZaoI@PB iA ֩#  F Q>JdŽP1IP"XTlXE"ia"Z@<hsaЎgyhCL_) LMttzb|[{v0Fԕ*A"E" 'U(G3.ElPSZsD %;١B1rch&3Ԅ%$D9FbwƓ963{;ydb vXs<2N80qY?fza\!9zTr;O97c2~ie8]щblE˜ |\IENDB`(uuay)fishbowl.ui Fishbowl True True True icons - 0 fps end True 0 end False True none changes-allow True end True False none changes-prevent True end True True (uuay)scale/obuilder/css_basics/~!foreigndrawing.c/* Foreign drawing * * Many applications can't use GTK+ widgets, for a variety of reasons, * but still want their user interface to appear integrated with the * rest of the desktop, and follow GTK+ themes. This demo shows how to * use GtkStyleContext and the gtk_render_ APIs to achieve this. * * Note that this is a very simple, non-interactive example. */ #include #include static void append_element (GtkWidgetPath *path, const char *selector) { static const struct { const char *name; GtkStateFlags state_flag; } pseudo_classes[] = { { "active", GTK_STATE_FLAG_ACTIVE }, { "hover", GTK_STATE_FLAG_PRELIGHT }, { "selected", GTK_STATE_FLAG_SELECTED }, { "disabled", GTK_STATE_FLAG_INSENSITIVE }, { "indeterminate", GTK_STATE_FLAG_INCONSISTENT }, { "focus", GTK_STATE_FLAG_FOCUSED }, { "backdrop", GTK_STATE_FLAG_BACKDROP }, { "dir(ltr)", GTK_STATE_FLAG_DIR_LTR }, { "dir(rtl)", GTK_STATE_FLAG_DIR_RTL }, { "link", GTK_STATE_FLAG_LINK }, { "visited", GTK_STATE_FLAG_VISITED }, { "checked", GTK_STATE_FLAG_CHECKED }, { "drop(active)", GTK_STATE_FLAG_DROP_ACTIVE } }; const char *next; char *name; char type; guint i; next = strpbrk (selector, "#.:"); if (next == NULL) next = selector + strlen (selector); name = g_strndup (selector, next - selector); if (g_ascii_isupper (selector[0])) { GType gtype; gtype = g_type_from_name (name); if (gtype == G_TYPE_INVALID) { g_critical ("Unknown type name `%s'", name); g_free (name); return; } gtk_widget_path_append_type (path, gtype); } else { /* Omit type, we're using name */ gtk_widget_path_append_type (path, G_TYPE_NONE); gtk_widget_path_iter_set_object_name (path, -1, name); } g_free (name); while (*next != '\0') { type = *next; selector = next + 1; next = strpbrk (selector, "#.:"); if (next == NULL) next = selector + strlen (selector); name = g_strndup (selector, next - selector); switch (type) { case '#': gtk_widget_path_iter_set_name (path, -1, name); break; case '.': gtk_widget_path_iter_add_class (path, -1, name); break; case ':': for (i = 0; i < G_N_ELEMENTS (pseudo_classes); i++) { if (g_str_equal (pseudo_classes[i].name, name)) { gtk_widget_path_iter_set_state (path, -1, gtk_widget_path_iter_get_state (path, -1) | pseudo_classes[i].state_flag); break; } } if (i == G_N_ELEMENTS (pseudo_classes)) g_critical ("Unknown pseudo-class :%s", name); break; default: g_assert_not_reached (); break; } g_free (name); } } static GtkStyleContext * create_context_for_path (GtkWidgetPath *path, GtkStyleContext *parent) { GtkStyleContext *context; context = gtk_style_context_new (); gtk_style_context_set_path (context, path); gtk_style_context_set_parent (context, parent); /* Unfortunately, we have to explicitly set the state again here * for it to take effect */ gtk_style_context_set_state (context, gtk_widget_path_iter_get_state (path, -1)); gtk_widget_path_unref (path); return context; } static GtkStyleContext * get_style (GtkStyleContext *parent, const char *selector) { GtkWidgetPath *path; if (parent) path = gtk_widget_path_copy (gtk_style_context_get_path (parent)); else path = gtk_widget_path_new (); append_element (path, selector); return create_context_for_path (path, parent); } static GtkStyleContext * get_style_with_siblings (GtkStyleContext *parent, const char *selector, const char **siblings, gint position) { GtkWidgetPath *path, *siblings_path; guint i; if (parent) path = gtk_widget_path_copy (gtk_style_context_get_path (parent)); else path = gtk_widget_path_new (); siblings_path = gtk_widget_path_new (); for (i = 0; siblings[i]; i++) append_element (siblings_path, siblings[i]); gtk_widget_path_append_with_siblings (path, siblings_path, position); gtk_widget_path_unref (siblings_path); return create_context_for_path (path, parent); } static void draw_style_common (GtkStyleContext *context, cairo_t *cr, gint x, gint y, gint width, gint height, gint *contents_x, gint *contents_y, gint *contents_width, gint *contents_height) { GtkBorder margin, border, padding; int min_width, min_height; gtk_style_context_get_margin (context, gtk_style_context_get_state (context), &margin); gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border); gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); gtk_style_context_get (context, gtk_style_context_get_state (context), "min-width", &min_width, "min-height", &min_height, NULL); x += margin.left; y += margin.top; width -= margin.left + margin.right; height -= margin.top + margin.bottom; width = MAX (width, min_width); height = MAX (height, min_height); gtk_render_background (context, cr, x, y, width, height); gtk_render_frame (context, cr, x, y, width, height); if (contents_x) *contents_x = x + border.left + padding.left; if (contents_y) *contents_y = y + border.top + padding.top; if (contents_width) *contents_width = width - border.left - border.right - padding.left - padding.right; if (contents_height) *contents_height = height - border.top - border.bottom - padding.top - padding.bottom; } static void query_size (GtkStyleContext *context, gint *width, gint *height) { GtkBorder margin, border, padding; int min_width, min_height; gtk_style_context_get_margin (context, gtk_style_context_get_state (context), &margin); gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border); gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); gtk_style_context_get (context, gtk_style_context_get_state (context), "min-width", &min_width, "min-height", &min_height, NULL); min_width += margin.left + margin.right + border.left + border.right + padding.left + padding.right; min_height += margin.top + margin.bottom + border.top + border.bottom + padding.top + padding.bottom; if (width) *width = MAX (*width, min_width); if (height) *height = MAX (*height, min_height); } static void draw_menu (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *menu_context; GtkStyleContext *menuitem_context; GtkStyleContext *hovermenuitem_context; GtkStyleContext *hoveredarrowmenuitem_context; GtkStyleContext *arrowmenuitem_context; GtkStyleContext *checkmenuitem_context; GtkStyleContext *disabledarrowmenuitem_context; GtkStyleContext *disabledcheckmenuitem_context; GtkStyleContext *radiomenuitem_context; GtkStyleContext *disablemenuitem_context; GtkStyleContext *disabledradiomenuitem_context; GtkStyleContext *separatormenuitem_context; gint menuitem1_height, menuitem2_height, menuitem3_height, menuitem4_height, menuitem5_height; gint contents_x, contents_y, contents_width, contents_height; gint menu_x, menu_y, menu_width, menu_height; gint arrow_width, arrow_height, arrow_size; gint toggle_x, toggle_y, toggle_width, toggle_height; /* This information is taken from the GtkMenu docs, see "CSS nodes" */ menu_context = get_style (gtk_widget_get_style_context(widget), "menu"); hovermenuitem_context = get_style (menu_context, "menuitem:hover"); hoveredarrowmenuitem_context = get_style (hovermenuitem_context, "arrow.right:dir(ltr)"); menuitem_context = get_style (menu_context, "menuitem"); arrowmenuitem_context = get_style (menuitem_context, "arrow:dir(rtl)"); disablemenuitem_context = get_style (menu_context, "menuitem:disabled"); disabledarrowmenuitem_context = get_style (disablemenuitem_context, "arrow:dir(rtl)"); checkmenuitem_context = get_style (menuitem_context, "check:checked"); disabledcheckmenuitem_context = get_style (disablemenuitem_context, "check"); separatormenuitem_context = get_style (menu_context, "separator:disabled"); radiomenuitem_context = get_style (menuitem_context, "radio:checked"); disabledradiomenuitem_context = get_style (disablemenuitem_context, "radio"); *height = 0; query_size (menu_context, NULL, height); menuitem1_height = 0; query_size (hovermenuitem_context, NULL, &menuitem1_height); query_size (hoveredarrowmenuitem_context, NULL, &menuitem1_height); *height += menuitem1_height; menuitem2_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem2_height); query_size (arrowmenuitem_context, NULL, &menuitem2_height); query_size (disabledarrowmenuitem_context, NULL, &menuitem2_height); *height += menuitem2_height; menuitem3_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem3_height); query_size (checkmenuitem_context, NULL, &menuitem3_height); query_size (disabledcheckmenuitem_context, NULL, &menuitem3_height); *height += menuitem3_height; menuitem4_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (separatormenuitem_context, NULL, &menuitem4_height); *height += menuitem4_height; menuitem5_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem5_height); query_size (radiomenuitem_context, NULL, &menuitem5_height); query_size (disabledradiomenuitem_context, NULL, &menuitem5_height); *height += menuitem5_height; draw_style_common (menu_context, cr, x, y, width, *height, &menu_x, &menu_y, &menu_width, &menu_height); /* Hovered with right arrow */ gtk_style_context_get (hoveredarrowmenuitem_context, gtk_style_context_get_state (hoveredarrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); draw_style_common (hovermenuitem_context, cr, menu_x, menu_y, menu_width, menuitem1_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_arrow (hoveredarrowmenuitem_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); /* Left arrow sensitive, and right arrow insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height, menu_width, menuitem2_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (arrowmenuitem_context, gtk_style_context_get_state (arrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); gtk_render_arrow (arrowmenuitem_context, cr, G_PI / 2, contents_x, contents_y + (contents_height - arrow_size) / 2, arrow_size); gtk_style_context_get (disabledarrowmenuitem_context, gtk_style_context_get_state (disabledarrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); gtk_render_arrow (disabledarrowmenuitem_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); /* Left check enabled, sensitive, and right check unchecked, insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height, menu_width, menuitem3_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (checkmenuitem_context, gtk_style_context_get_state (checkmenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (checkmenuitem_context, cr, contents_x, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (checkmenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); gtk_style_context_get (disabledcheckmenuitem_context, gtk_style_context_get_state (disabledcheckmenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (disabledcheckmenuitem_context, cr, contents_x + contents_width - toggle_width, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (disabledcheckmenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); /* Separator */ draw_style_common (separatormenuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height + menuitem3_height, menu_width, menuitem4_height, NULL, NULL, NULL, NULL); /* Left check enabled, sensitive, and right check unchecked, insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height + menuitem3_height + menuitem4_height, menu_width, menuitem5_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (radiomenuitem_context, gtk_style_context_get_state (radiomenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (radiomenuitem_context, cr, contents_x, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (radiomenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); gtk_style_context_get (disabledradiomenuitem_context, gtk_style_context_get_state (disabledradiomenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (disabledradiomenuitem_context, cr, contents_x + contents_width - toggle_width, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (disabledradiomenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); g_object_unref (menu_context); g_object_unref (menuitem_context); g_object_unref (hovermenuitem_context); g_object_unref (hoveredarrowmenuitem_context); g_object_unref (arrowmenuitem_context); g_object_unref (checkmenuitem_context); g_object_unref (disabledarrowmenuitem_context); g_object_unref (disabledcheckmenuitem_context); g_object_unref (radiomenuitem_context); g_object_unref (disablemenuitem_context); g_object_unref (disabledradiomenuitem_context); g_object_unref (separatormenuitem_context); } static void draw_menubar (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *frame_context; GtkStyleContext *border_context; GtkStyleContext *menubar_context; GtkStyleContext *hovered_menuitem_context; GtkStyleContext *menuitem_context; gint contents_x, contents_y, contents_width, contents_height; gint item_width; /* Menubar background is the same color as our base background, so use a frame */ frame_context = get_style (NULL, "frame"); border_context = get_style (frame_context, "border"); /* This information is taken from the GtkMenuBar docs, see "CSS nodes" */ menubar_context = get_style (NULL, "menubar"); hovered_menuitem_context = get_style (menubar_context, "menuitem:hover"); menuitem_context = get_style (menubar_context, "menuitem"); *height = 0; query_size (frame_context, NULL, height); query_size (border_context, NULL, height); query_size (menubar_context, NULL, height); query_size (hovered_menuitem_context, NULL, height); query_size (menuitem_context, NULL, height); draw_style_common (frame_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (border_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (menubar_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); item_width = contents_width / 3; draw_style_common (hovered_menuitem_context, cr, contents_x, contents_y, item_width, contents_height, NULL, NULL, NULL, NULL); draw_style_common (menuitem_context, cr, contents_x + item_width * 2, contents_y, item_width, contents_height, NULL, NULL, NULL, NULL); g_object_unref (menuitem_context); g_object_unref (hovered_menuitem_context); g_object_unref (menubar_context); g_object_unref (border_context); g_object_unref (frame_context); } static void draw_notebook (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint height) { GtkStyleContext *notebook_context; GtkStyleContext *header_context; GtkStyleContext *tabs_context; GtkStyleContext *tab1_context, *tab2_context; GtkStyleContext *stack_context; gint header_height; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkNotebook docs, see "CSS nodes" */ notebook_context = get_style (NULL, "notebook.frame"); header_context = get_style (notebook_context, "header.top"); tabs_context = get_style (header_context, "tabs"); tab1_context = get_style (tabs_context, "tab:checked"); tab2_context = get_style (tabs_context, "tab:hover"); stack_context = get_style (notebook_context, "stack"); header_height = 0; query_size (notebook_context, NULL, &header_height); query_size (header_context, NULL, &header_height); query_size (tabs_context, NULL, &header_height); query_size (tab1_context, NULL, &header_height); query_size (tab2_context, NULL, &header_height); draw_style_common (notebook_context, cr, x, y, width, height, NULL, NULL, NULL, NULL); draw_style_common (header_context, cr, x, y, width, header_height, NULL, NULL, NULL, NULL); draw_style_common (tabs_context, cr, x, y, width, header_height, NULL, NULL, NULL, NULL); draw_style_common (tab1_context, cr, x, y, width / 2, header_height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (tab2_context, cr, x + width / 2, y, width / 2, header_height, NULL, NULL, NULL, NULL); draw_style_common (stack_context, cr, x, y + header_height, width,height - header_height, NULL, NULL, NULL, NULL); g_object_unref (stack_context); g_object_unref (tabs_context); g_object_unref (tab1_context); g_object_unref (tab2_context); g_object_unref (header_context); g_object_unref (notebook_context); } static void draw_horizontal_scrollbar (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, GtkStateFlags state, gint *height) { GtkStyleContext *scrollbar_context; GtkStyleContext *contents_context; GtkStyleContext *trough_context; GtkStyleContext *slider_context; gint slider_width; /* This information is taken from the GtkScrollbar docs, see "CSS nodes" */ scrollbar_context = get_style (NULL, "scrollbar.horizontal.bottom"); contents_context = get_style (scrollbar_context, "contents"); trough_context = get_style (contents_context, "trough"); slider_context = get_style (trough_context, "slider"); gtk_style_context_set_state (scrollbar_context, state); gtk_style_context_set_state (contents_context, state); gtk_style_context_set_state (trough_context, state); gtk_style_context_set_state (slider_context, state); *height = 0; query_size (scrollbar_context, NULL, height); query_size (contents_context, NULL, height); query_size (trough_context, NULL, height); query_size (slider_context, NULL, height); gtk_style_context_get (slider_context, gtk_style_context_get_state (slider_context), "min-width", &slider_width, NULL); draw_style_common (scrollbar_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (contents_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (trough_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (slider_context, cr, x + position, y, slider_width, *height, NULL, NULL, NULL, NULL); g_object_unref (slider_context); g_object_unref (trough_context); g_object_unref (contents_context); g_object_unref (scrollbar_context); } static void draw_text (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint height, const gchar *text, GtkStateFlags state) { GtkStyleContext *label_context; GtkStyleContext *selection_context; GtkStyleContext *context; PangoLayout *layout; /* This information is taken from the GtkLabel docs, see "CSS nodes" */ label_context = get_style (NULL, "label.view"); selection_context = get_style (label_context, "selection"); gtk_style_context_set_state (label_context, state); if (state & GTK_STATE_FLAG_SELECTED) context = selection_context; else context = label_context; layout = gtk_widget_create_pango_layout (widget, text); gtk_render_background (context, cr, x, y, width, height); gtk_render_frame (context, cr, x, y, width, height); gtk_render_layout (context, cr, x, y, layout); g_object_unref (layout); g_object_unref (selection_context); g_object_unref (label_context); } static void draw_check (GtkWidget *widget, cairo_t *cr, gint x, gint y, GtkStateFlags state, gint *width, gint *height) { GtkStyleContext *button_context; GtkStyleContext *check_context; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkCheckButton docs, see "CSS nodes" */ button_context = get_style (NULL, "checkbutton"); check_context = get_style (button_context, "check"); gtk_style_context_set_state (check_context, state); *width = *height = 0; query_size (button_context, width, height); query_size (check_context, width, height); draw_style_common (button_context, cr, x, y, *width, *height, NULL, NULL, NULL, NULL); draw_style_common (check_context, cr, x, y, *width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_check (check_context, cr, contents_x, contents_y, contents_width, contents_height); g_object_unref (check_context); g_object_unref (button_context); } static void draw_radio (GtkWidget *widget, cairo_t *cr, gint x, gint y, GtkStateFlags state, gint *width, gint *height) { GtkStyleContext *button_context; GtkStyleContext *check_context; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkRadioButton docs, see "CSS nodes" */ button_context = get_style (NULL, "radiobutton"); check_context = get_style (button_context, "radio"); gtk_style_context_set_state (check_context, state); *width = *height = 0; query_size (button_context, width, height); query_size (check_context, width, height); draw_style_common (button_context, cr, x, y, *width, *height, NULL, NULL, NULL, NULL); draw_style_common (check_context, cr, x, y, *width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_check (check_context, cr, contents_x, contents_y, contents_width, contents_height); g_object_unref (check_context); g_object_unref (button_context); } static void draw_progress (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, gint *height) { GtkStyleContext *bar_context; GtkStyleContext *trough_context; GtkStyleContext *progress_context; /* This information is taken from the GtkProgressBar docs, see "CSS nodes" */ bar_context = get_style (NULL, "progressbar.horizontal"); trough_context = get_style (bar_context, "trough"); progress_context = get_style (trough_context, "progress.left"); *height = 0; query_size (bar_context, NULL, height); query_size (trough_context, NULL, height); query_size (progress_context, NULL, height); draw_style_common (bar_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (trough_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (progress_context, cr, x, y, position, *height, NULL, NULL, NULL, NULL); g_object_unref (progress_context); g_object_unref (trough_context); g_object_unref (bar_context); } static void draw_scale (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, gint *height) { GtkStyleContext *scale_context; GtkStyleContext *contents_context; GtkStyleContext *trough_context; GtkStyleContext *slider_context; GtkStyleContext *highlight_context; gint contents_x, contents_y, contents_width, contents_height; gint trough_height, slider_height; scale_context = get_style (NULL, "scale.horizontal"); contents_context = get_style (scale_context, "contents"); trough_context = get_style (contents_context, "trough"); slider_context = get_style (trough_context, "slider"); highlight_context = get_style (trough_context, "highlight.top"); *height = 0; query_size (scale_context, NULL, height); query_size (contents_context, NULL, height); query_size (trough_context, NULL, height); query_size (slider_context, NULL, height); query_size (highlight_context, NULL, height); draw_style_common (scale_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (contents_context, cr, contents_x, contents_y, contents_width, contents_height, &contents_x, &contents_y, &contents_width, &contents_height); /* Scale trough defines its size querying slider and highlight */ trough_height = 0; query_size (trough_context, NULL, &trough_height); slider_height = 0; query_size (slider_context, NULL, &slider_height); query_size (highlight_context, NULL, &slider_height); trough_height += slider_height; draw_style_common (trough_context, cr, contents_x, contents_y, contents_width, trough_height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (highlight_context, cr, contents_x, contents_y, contents_width / 2, contents_height, NULL, NULL, NULL, NULL); draw_style_common (slider_context, cr, contents_x + position, contents_y, contents_height, contents_height, NULL, NULL, NULL, NULL); g_object_unref (scale_context); g_object_unref (contents_context); g_object_unref (trough_context); g_object_unref (slider_context); g_object_unref (highlight_context); } static void draw_combobox (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gboolean has_entry, gint *height) { GtkStyleContext *combo_context; GtkStyleContext *box_context; GtkStyleContext *button_context; GtkStyleContext *button_box_context; GtkStyleContext *entry_context; GtkStyleContext *arrow_context; gint contents_x, contents_y, contents_width, contents_height; gint button_width; gint arrow_width, arrow_height, arrow_size; /* This information is taken from the GtkComboBox docs, see "CSS nodes" */ combo_context = get_style (NULL, "combobox:focus"); box_context = get_style (combo_context, "box.horizontal.linked"); if (has_entry) { const char *siblings[3] = { "entry.combo:focus", "button.combo" , NULL }; entry_context = get_style_with_siblings (box_context, "entry.combo:focus", siblings, 0); button_context = get_style_with_siblings (box_context, "button.combo", siblings, 1); } else { const char *siblings[2] = { "button.combo" , NULL }; button_context = get_style_with_siblings (box_context, "button.combo", siblings, 0); } button_box_context = get_style (button_context, "box.horizontal"); arrow_context = get_style (button_box_context, "arrow"); *height = 0; query_size (combo_context, NULL, height); query_size (box_context, NULL, height); if (has_entry) query_size (entry_context, NULL, height); query_size (button_context, NULL, height); query_size (button_box_context, NULL, height); query_size (arrow_context, NULL, height); gtk_style_context_get (arrow_context, gtk_style_context_get_state (arrow_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); draw_style_common (combo_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (box_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); if (has_entry) { button_width = *height; draw_style_common (entry_context, cr, x, y, width - button_width, *height, NULL, NULL, NULL, NULL); draw_style_common (button_context, cr, x + width - button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); } else { button_width = width; draw_style_common (button_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); } draw_style_common (button_box_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); draw_style_common (arrow_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); gtk_render_arrow (arrow_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); g_object_unref (arrow_context); if (has_entry) g_object_unref (entry_context); g_object_unref (button_context); g_object_unref (combo_context); } static void draw_spinbutton (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *spin_context; GtkStyleContext *entry_context; GtkStyleContext *up_context; GtkStyleContext *down_context; GtkIconTheme *icon_theme; GtkIconInfo *icon_info; GdkPixbuf *pixbuf; gint icon_width, icon_height, icon_size; gint button_width; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkSpinButton docs, see "CSS nodes" */ spin_context = get_style (NULL, "spinbutton.horizontal:focus"); entry_context = get_style (spin_context, "entry:focus"); up_context = get_style (spin_context, "button.up:focus:active"); down_context = get_style (spin_context, "button.down:focus"); *height = 0; query_size (spin_context, NULL, height); query_size (entry_context, NULL, height); query_size (up_context, NULL, height); query_size (down_context, NULL, height); button_width = *height; draw_style_common (spin_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (entry_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); gtk_style_context_get (up_context, gtk_style_context_get_state (up_context), "min-width", &icon_width, "min-height", &icon_height, NULL); icon_size = MIN (icon_width, icon_height); icon_info = gtk_icon_theme_lookup_icon (icon_theme, "list-add-symbolic", icon_size, 0); pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, up_context, NULL, NULL); g_object_unref (icon_info); draw_style_common (up_context, cr, x + width - button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_icon (up_context, cr, pixbuf, contents_x, contents_y + (contents_height - icon_size) / 2); g_object_unref (pixbuf); gtk_style_context_get (down_context, gtk_style_context_get_state (down_context), "min-width", &icon_width, "min-height", &icon_height, NULL); icon_size = MIN (icon_width, icon_height); icon_info = gtk_icon_theme_lookup_icon (icon_theme, "list-remove-symbolic", icon_size, 0); pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, down_context, NULL, NULL); g_object_unref (icon_info); draw_style_common (down_context, cr, x + width - 2 * button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_icon (down_context, cr, pixbuf, contents_x, contents_y + (contents_height - icon_size) / 2); g_object_unref (pixbuf); g_object_unref (down_context); g_object_unref (up_context); g_object_unref (entry_context); g_object_unref (spin_context); } static gboolean draw_cb (GtkWidget *widget, cairo_t *cr) { gint panewidth, width, height; gint x, y; width = gtk_widget_get_allocated_width (widget); panewidth = width / 2; height = gtk_widget_get_allocated_height (widget); cairo_rectangle (cr, 0, 0, width, height); cairo_set_source_rgb (cr, 0.9, 0.9, 0.9); cairo_fill (cr); x = y = 10; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 30, GTK_STATE_FLAG_NORMAL, &height); y += height + 8; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 40, GTK_STATE_FLAG_PRELIGHT, &height); y += height + 8; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 50, GTK_STATE_FLAG_ACTIVE|GTK_STATE_FLAG_PRELIGHT, &height); y += height + 8; draw_text (widget, cr, x, y, panewidth - 20, 20, "Not selected", GTK_STATE_FLAG_NORMAL); y += 20 + 10; draw_text (widget, cr, x, y, panewidth - 20, 20, "Selected", GTK_STATE_FLAG_SELECTED); x = 10; y += 20 + 10; draw_check (widget, cr, x, y, GTK_STATE_FLAG_NORMAL, &width, &height); x += width + 10; draw_check (widget, cr, x, y, GTK_STATE_FLAG_CHECKED, &width, &height); x += width + 10; draw_radio (widget, cr, x, y, GTK_STATE_FLAG_NORMAL, &width, &height); x += width + 10; draw_radio (widget, cr, x, y, GTK_STATE_FLAG_CHECKED, &width, &height); x = 10; y += height + 10; draw_progress (widget, cr, x, y, panewidth - 20, 50, &height); y += height + 10; draw_scale (widget, cr, x, y, panewidth - 20, 75, &height); y += height + 20; draw_notebook (widget, cr, x, y, panewidth - 20, 160); /* Second column */ x += panewidth; y = 10; draw_menu (widget, cr, x, y, panewidth - 20, &height); y += height + 10; draw_menubar (widget, cr, x, y, panewidth - 20, &height); y += height + 20; draw_spinbutton (widget, cr, x, y, panewidth - 20, &height); y += height + 30; draw_combobox (widget, cr, x, y, panewidth - 20, FALSE, &height); y += height + 10; draw_combobox (widget, cr, 10 + panewidth, y, panewidth - 20, TRUE, &height); return FALSE; } GtkWidget * do_foreigndrawing (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *box; GtkWidget *da; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Foreign drawing"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_container_add (GTK_CONTAINER (window), box); da = gtk_drawing_area_new (); gtk_widget_set_size_request (da, 400, 400); gtk_widget_set_hexpand (da, TRUE); gtk_widget_set_vexpand (da, TRUE); gtk_widget_set_app_paintable (da, TRUE); gtk_container_add (GTK_CONTAINER (box), da); g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)shortcuts-boxes.uix 1 1 shortcuts 12 1 Overview overview 1 F1 Help 1 <Ctrl>n Create a new box 1 <Ctrl>f Search 1 <Ctrl>k Keyboard shortcuts 1 <Ctrl>q Close Window/Quit Boxes 1 Box Creation and Properties wizard 1 ltr <Alt>Right Switch to the next page 1 ltr <Alt>Left Switch to the previous page 1 rtl <Alt>Left Switch to the next page 1 rtl <Alt>Right Switch to the previous page 1 Box Display display 1 Control_L+Alt_L Grab/Ungrab keyboard 1 ltr <Alt>Left Back to overview 1 rtl <Alt>Right Back to overview 1 <Ctrl>q Close window/Quit Boxes 1 F11 Fullscreen/Restore from fullscreen (uuay)popover.c/* Popovers * * A bubble-like window containing contextual information or options. * GtkPopovers can be attached to any widget, and will be displayed * within the same window, but on top of all its content. */ #include static void toggle_changed_cb (GtkToggleButton *button, GtkWidget *popover) { gtk_widget_set_visible (popover, gtk_toggle_button_get_active (button)); } static GtkWidget * create_popover (GtkWidget *parent, GtkWidget *child, GtkPositionType pos) { GtkWidget *popover; popover = gtk_popover_new (parent); gtk_popover_set_position (GTK_POPOVER (popover), pos); gtk_container_add (GTK_CONTAINER (popover), child); gtk_container_set_border_width (GTK_CONTAINER (popover), 6); gtk_widget_show (child); return popover; } static GtkWidget * create_complex_popover (GtkWidget *parent, GtkPositionType pos) { GtkWidget *popover, *window, *content; GtkBuilder *builder; builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/popover/popover.ui", NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); content = gtk_bin_get_child (GTK_BIN (window)); g_object_ref (content); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (content)), content); gtk_widget_destroy (window); g_object_unref (builder); popover = create_popover (parent, content, GTK_POS_BOTTOM); g_object_unref (content); return popover; } static void entry_size_allocate_cb (GtkEntry *entry, GtkAllocation *allocation, gpointer user_data) { GtkEntryIconPosition popover_pos; GtkPopover *popover = user_data; cairo_rectangle_int_t rect; if (gtk_widget_is_visible (GTK_WIDGET (popover))) { popover_pos = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "popover-icon-pos")); gtk_entry_get_icon_area (entry, popover_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); } } static void entry_icon_press_cb (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, gpointer user_data) { GtkWidget *popover = user_data; cairo_rectangle_int_t rect; gtk_entry_get_icon_area (entry, icon_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); g_object_set_data (G_OBJECT (entry), "popover-icon-pos", GUINT_TO_POINTER (icon_pos)); } static void day_selected_cb (GtkCalendar *calendar, gpointer user_data) { cairo_rectangle_int_t rect; GtkAllocation allocation; GtkWidget *popover; GdkEvent *event; event = gtk_get_current_event (); if (event->type != GDK_BUTTON_PRESS) return; gdk_window_coords_to_parent (event->button.window, event->button.x, event->button.y, &event->button.x, &event->button.y); gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation); rect.x = event->button.x - allocation.x; rect.y = event->button.y - allocation.y; rect.width = rect.height = 1; popover = create_popover (GTK_WIDGET (calendar), gtk_entry_new (), GTK_POS_BOTTOM); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); gdk_event_free (event); } GtkWidget * do_popover (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *popover, *box, *widget; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 24); gtk_container_set_border_width (GTK_CONTAINER (box), 24); gtk_container_add (GTK_CONTAINER (window), box); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); widget = gtk_toggle_button_new_with_label ("Button"); popover = create_popover (widget, gtk_label_new ("This popover does not grab input"), GTK_POS_TOP); gtk_popover_set_modal (GTK_POPOVER (popover), FALSE); g_signal_connect (widget, "toggled", G_CALLBACK (toggle_changed_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_entry_new (); popover = create_complex_popover (widget, GTK_POS_TOP); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_PRIMARY, "edit-find"); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_SECONDARY, "edit-clear"); g_signal_connect (widget, "icon-press", G_CALLBACK (entry_icon_press_cb), popover); g_signal_connect (widget, "size-allocate", G_CALLBACK (entry_size_allocate_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_calendar_new (); g_signal_connect (widget, "day-selected", G_CALLBACK (day_selected_cb), NULL); gtk_container_add (GTK_CONTAINER (box), widget); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)overlay.c /* Overlay/Interactive Overlay * * Shows widgets in static positions over a main widget. * * The overlayed widgets can be interactive controls such * as the entry in this example, or just decorative, like * the big blue label. */ #include static void do_number (GtkButton *button, GtkEntry *entry) { gtk_entry_set_text (entry, gtk_button_get_label (button)); } GtkWidget * do_overlay (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *overlay; GtkWidget *grid; GtkWidget *button; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; int i, j; char *text; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); gtk_window_set_title (GTK_WINDOW (window), "Interactive Overlay"); overlay = gtk_overlay_new (); grid = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (overlay), grid); entry = gtk_entry_new (); for (j = 0; j < 5; j++) { for (i = 0; i < 5; i++) { text = g_strdup_printf ("%d", 5*j + i); button = gtk_button_new_with_label (text); g_free (text); gtk_widget_set_hexpand (button, TRUE); gtk_widget_set_vexpand (button, TRUE); g_signal_connect (button, "clicked", G_CALLBACK (do_number), entry); gtk_grid_attach (GTK_GRID (grid), button, i, j, 1, 1); } } vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), vbox); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), vbox, TRUE); gtk_widget_set_halign (vbox, GTK_ALIGN_CENTER); gtk_widget_set_valign (vbox, GTK_ALIGN_CENTER); label = gtk_label_new ("Numbers"); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 8); gtk_entry_set_placeholder_text (GTK_ENTRY (entry), "Your Lucky Number"); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 8); gtk_container_add (GTK_CONTAINER (window), overlay); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)cmy.jpgJFIF,,\File source: http://commons.wikimedia.org/wiki/File:CMYK_separation_%E2%80%93_no_black.jpgC   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((X F!1A"Qaq2#BR3br$CS%DTcC!1AQaq"2#BRbr3Cs$ ?8b|d%r#5YgE:^}B2<ڵןM] 6=B8l"9nnӮK+8H-@)=1l5a u5j.0 ΤӤdp:m6Uz$?\VZvu@x"|z2ХIaHyֱnӯh:|V %IlwGR9?=R\UnYz]g ,,C :Vb*<,U8Jmf unZ7(@!!0@;dV;gy,xSPn8r[Vja, C+9#v'r{qYT6{ ^U@6;|'tK["^YB|qj59`[{/R}%:Ciۊt.nц ׊a~"*։ƹ$yL` 0c}'0IYP'SBTy35,@TJ&@ީeux8lsXdB #VbjШVJ5Hh;Do}H@<<i}H10Ank>gV<9)BI<=S7ƚPH]SstUYM\/a@hY\ۯh]@RqS*R5ǭXsC͐ 6]7 knH%] rN[>PΫ[3QhT(vt@7F3`;r"HyS4B=c)V#;k,{M̢4"DNI󾫵p~wX",^W+4cϰp /rXNI!D;gWz*@q4\dHXdn*J c%#-́}I1 4*WA uz  :Au~_U#84u/:5[M$;`Ն5`؀yMw|F5갔8ssOZw~{khGMWD8A6K q#ֱ{A2|G LS+sdfΝq. 0놵&Z $m&w][.朥OF|6s'mMVzapZ yxq:JS.8 iaM^処jQQǟSE o{.9nyJ`:G2k&m3[,1@>m]sT?UF+7i5;ER塚.[i"8B%r]NVvQ  O#}t[jK81s&Ǥ yΡ<|;K Ƹ8(\As[[Tȭv0n Z$G.bpn!)dYPF 휒apŮbGZ+>#i*u<"|2H]L:Vh峎=LePTMDl0۝Egae9y 9- sreu:^[V K0xl6;cTPͷlĿ LC[ ֗0E.:`>fsU#p3N}6}6\X+sP#_oy.nӡ&Vu؜\j$37% 9_Ôd#u:Nح!&%PUyFڀo]U*2: ƒv2H: ,-1U%٤2Hؑ4;>n3:B.R< $e5L; <" &{@>@-;n='e#IYLٖq2;Wf%KbWQLI;Xw+H}JJ`c8T?g:*a/7I& w^yA[Y"%+ZYO$ F&{-ө[08AmHNm1e}61u ͭ { =Tg IƝuQ;ٸE6յF:rUw}V[Y^YU; JY[]t#ׂŅYv M n8$A ֦%RHcjՈ{Z?ERe0P",s6^q\DeՁ cCs f>eߢkvC< 7tz%iBo+RB91Q^ rαu Xg@i76 `l:23pţb72fw 7!낶RIYeL*pA*,2$)$^\W@Q*jb6H>Q.[0ezU^ 1t@3jtqцic'_ez J>1u1V^W^!CIzTvť(ARHmBX1?I">z^+YƖɩt/݁qsJ(dwh&z/GgkOy([imHXt],c m^31doC6ڹ5# lzZ4W.3ycqjCIO^7T`N -WMS`0\1ߌsUQJ"QĻ3xsKQsp$`Ac_9'v wV9Ͻ_2DNaR50䇺]x:1u8,|9JGwOܐ`1ß^Gu&2-UecK F$%pzAk~"kiĚPx$w(P"`jR"nI&4y/m) { M}<ۿ˯!iwoctկoJcL,VIjbA2JTi$ &m]:55 " nm~. lOK=Ď @Gq [ր>3ךb~..[rIe%LD Ҳ:8+h*Aø.9¿\m q0=&7f[XUʼnh]>ҲTט РM/ |,u7m5(i5b߃c[i h:n،CUozw0 @$s++"u\#53efDŽ }8͜2خ'$ۚ@/3x[.VnG2Jr.v9;܃F tԦhs}CqLBw'GOV07ǂv3F7Qݼgîi7A;'g;v](:żHD9,J.pXdb6ø?}XSh]g]3C;;~!IcRHžZ漿)ڄ'&yW1ZːB48Ff J+; E]|d@N7oӮ.P J1ǏFbUϪֆottTp짇{Ti0>\rKq="(g J``l|$⬧P5sqTVc@@gAm&46G]kԭzMs-șTQz >۽zALM2\%;=n)s%'OxߦrYiJ[0ȩc{V5eWUR n`xBoct[L -I Iu`s8U:%NRڀ嘽'A Ɔo"cw1Iu )B85Lfyx- F92;ůHדx{sG"B=>@r4|W@Tq"9RnOBL,gu g88sM [(o/ CJ o⺝8 #cR6H#Yp#G3H<}WFѮ:Empd230?{cT9jMRI͋ϚXM 1 7A?7 D伖3S,H=n毑t@t&3w98vѦAnsZQ YdѮbFuH|@ƝDzDS3&_QyZ$exXe[Y]`)m;Ҩ;[y~V.ͦf$mᯒ5I ]!*e{"Y#Ʈ:sf77;‹. Fvt+N M"C+%@-m KMG[j tׁmomvs%ԩeu2|VU`#jOsu7NHb^ 9v0F=}WQ4CNnut°Uض#n1xM_O溳~{} Ւ^Q+;&G]88u&#\3FnJl/}gA>>B{t]<{r)9lleŐ;FFH+o x*Jha]Ɯͯ:t1euҞp. xݫNeXwy>. +DNTA-[pC+)4՜cb9F` )by3{r"fW? C4N0>r?mwgw?ܾI`2cb9q^IcwՍOXp%#|c_Ϙ_s6:y*NPHrVj4 9{*mHDd$(*#s}IvIdD>1P6t:[s D'HvKD#fs; X4p,< 6N?x>5o+0 *,1H*CtVHha=j$9hZmfdaiHc KoU4f&'n׫»4\?{̕"t'/9ud$ \q[.C0.JUK,:U]8^~2CF룃đ6> =nu;$ )`!eĻ3q+{j5@vWQNy$@7;Qm.{K {y`]:>pNsbAw5]ҩ-|DFv+._ %<)(;y7#W+0pgo7n7Wמ´"kWM IQ#'8;/eMT1XP΂ p'-Atq,X˗`FAm'mEJ.;p6 Yz[K4D&ԂGVۮRZ~p̖JCi94銃0}l{5dN ^Ot,FsJ`\zb^ͦ>ܾ'W{3O{,\3iׯߨ:83bD]Kxj-ESIc}q o7#8bX ^Җt>K>3D*-؞Jmn=G?=iFFwhq]Rךr2 "Wa8x#b7v)v,_ U:{vdDR+CFZt.kkcnO ~ m,>f<kٚb6]UZ)LL=V:"21 cxbsޱ*xnuv}$VmtbXܠX6FFz(q<-u1be6Ả^u1t>`Dr[I$]20?k)# q* VvZL˩ 7׆.EԶn%HfI#mS鶥$.mS$FbGR&I&yNuNv8vZN2q]S8G]ZIP?#knde{]%Ol3= 2\ú{GǍ*"fl$^!xjl>7o>;2%`ߵSv=3kA"67Zy,sZ)A2敉@UglyӀ7R]: $2HiB})$uPbV11sx2޾˨x#+fWFKbkVeP'.@q}gqphpi6u1Ms C+Z,o0jiIIV|+Sck#N7 .+ *0˶p<bҦ줝J,ZGx)Xu=\M!_ޕJa8K uf6]B !Y1IͰX14fRnN >bLIj ӘWOu--̍#6Xܭ]]%uU$PMJIU]kGӚ T^u`f=}DT3V'V卹i-\:iflg#Q;jLJ: _ Q_8wvq=jOpJm~eX8 EĬ`).##0[9Ԛa3 ⪵qu#g0ʒ}@(c8/lBHK.Ja6\s :(D129 C@#uFqHnE4 P vaNȤH?Β6+vRMcMF8TF=8ֺ\[h`-‣c,rw#ި{Ca3+m'[Y7qޥk G%RuZ7=ۚGCCFM:G#x\Kf وq[i8\M'FwqTSTPЁB qIhl*r$携 2F=NIiH1 #4!<(H(RSWN[Fs_D "l lXke &U} 8|J+/@$oxo_zIJ }ʲ2E6x_$B1 ;'#=9N{ wլ),`8BnxZ.}եJde->UZ̴+na/#L4vQcGi uuWF.NPB@j_(9??lfYɢv>2aWa,JS18>50k*uV0}~CG$QʁG J#Jj'80I}S *Պ`z 1f"BFL=e#M۴QW+<8C9'E[mvn?Jb1u^3ڥ)k`YI`TRZj0%0h*tqUL:{qUXdoh-MF;U.楪O7&&0kc( /p1~*U5Z7n}2㩷=Guךr04vJk@(4"RM4 IMqc4/kgq&%@ќRjJ6-ً`}9옕ghSwHXgƑzqII)U4 Vޞ7]U.Xc̱S+|[+K5vyӟ<ڷ<\?FNU͕aJ#,?qdT 1LϤ 06ڠ՞H3)&߂y 7Mi 0#(?}M2UYe2J x)R]E8.vGTcʘ'q9۹h{dx.*S)cag7si !!J; Q2^j~]ck,wb n:w>'}S]g틜lMς` 1b3A$[~*dWb ʼԒGJ+fP!W YA v>BenmI4GҬ(5MIi=}Tnin|r$acƿ~vSc\5ʏ}Lכ[_[0r39ߚ|IP}՜m7QkK_ pqhxAi ͲI5$ Ih*-x|@(+YO!8l!dtI erz2x&+ah7 aXG$ռ?FB"I;s}vڐ`1wRŗ!<㟧ZZ Z.?pܠ2*SQx>Ci6EJKNo̍$C.2;sOCE,H!Ԭ@9 o۟]TEחԡK?ڰ!Ɛ`{)9ۚ)1~ZG>騅 # 9T>ڮ*4&ʜfJijUK0lpOQ٧yvGsHj ʒ\1 OQ'KTV]=1jP@rՉ/_L`B \F*sĴE!kF3Rh;Ű w0pNƪ\gHC y D0$ J>Dꖰ6b*M1ȄNr7>f<]9a tlA{ƣ˘0}Dr0\e*WpS4K=nvEKu?fFcrY3TmNlUD̕9-@<z^lT Qʹ' o_FbV7F$i!UF3I8ên[cw>*~q[pؿӴܵIg k`5XqZ7 蜘mNT;g; Ĩԛ׊lEleSOT_S`IXZ/,r98.ŎlVKs}9>UJ.H⪎L䅩E'O6l>|}I-;qP8CW+G.х]ޣiXa.d,9@7Ӕ6?go.*pΣD{fǷeQati6*Niuņfкk(BecIcVV$eШ2|\Ȧ-Tk';*@:kQsd:`9AŖ( UӌSl,Z}z&`,eFDD$o!Dp暊@gBjEP{`t9!Gojh쥝5fl ؜VCQO Z')*ki|JKcb TMJfcm GݧFO~)_8z䁁2=2R;PUEt].h]+فJԽ7Nu615*3rlUgE kRߙ+\} 0Syx)ho(u̟erh@w,@Ϯ=@:ʴaY0Dఋ9O&IV`OrԶ IȤYy^] "@2H˔%TFM'qjvǗR\G펹݊`?cW6v{@@]]!G$_M p|JQg7NYcAe ʪ<n2UƃX@gvO>=o2̟p\Fu.u7sv=T]-hDߚЧ{fhkv-6J$n3bmhfzOYuMAok~v^mP!Ei+*I33'> @GAĻ_} (HOhǷΓ0 ;(lh݇LIߟutt,` ){eF;(g3Tbm =v)Ĉ+lWB'u*.{ DxKRgSApI[gxde:kP;srv>ղ!<:!s1_KIo|:EΓrtP$ʹp eshV'|=<iЄӥIFsq#Vc?)smU:]IXjΡ*T~}>ɷO“,R&pT,KW-Ov1zTZoaZ38? )aX p/zfa$& _ )[(gH }psڣo]\;B${I:=67MvG_AN|RFA2u<(d=JK> ar'1'4I[i Ga^i`W*_}ok+L4C}v__}*Ϯ(Oo># klZZvi=s?}?hŵ7 |ODf_f62\OiEiS6Mfue{c)p:*QH1`FݱKk N0*:cgnQlw@RVF]I ٝRGEJ^ΩӵDE$0}!E_ʥQv^bQmU37:e`=>ݡ2H y:X1G:KA*RilE2gy]U3t*%\`ֳ#/ p _.*=H/} 5 77~_ƞ 84`mGĽIb'WsmfZ 8 YCd>Uv_,D޺l?;`DŽy[H`6o]*9] )@ d wzE6D&*Ýf/\%³ko1/,ulS {$s7MvR}Kln;oBa[Y0MΓfFIjRHJl33*5pʖTUcAud1YTӬGoQHS~drzs:C/NY'e FwRxpyOWX-u0 9<;ub k</PTpA62_8yz\mqu-Vj ?F' qAkZܸ;4xO8q*}:9SU zN FRe,6|Ih;Ӓ+ַ0emM78>dB*n`u[X*"l cH['s=hc~:-Ԉ!u]{bvә+;ǸD_ ZZ&bq8#cԙ ־d]xpX[ hs e[c"O#t?1K($k! c\aO:N.X4j76QӹWX^L,9R=q+/fкB]ɉ.Fr2!q[&o? xq}3]Ac٘; =E?/O k yHI]~ΊAmX?}:WG^A=?7dBCWA|PLm-PgP4!x \KOn\&=/CS1w]ʥG90IײݳmYi/ѩgMV:_/QkPG4*%-ȸdhӠ~C3$]6Tb_e/hbZ=5EZC/J 1,i[ PvRQq"R/JIX5`wܲTdkMДG Ӡ8bҗg< 88nd.}j( y~g ?]&?w.+mq}3KEVKw;n"px?%WPdf"AAn"}8}N*TIWIK@_? 'ش!D(YOOg2=r|%U?5ed8>]>+MVH@cV?]b$N<#ZlX.y^?;Wbҙ=O\Q#?Tbo%-#u ԏ3{cX!<rG$nDQ@:)З~bp %C"eI@ v5pÛAu"ד&R7WɆcj7vnͤDh̀HM>a^io:5Q'ԯȠ8--OA4X*DpPd~,6dJ"s uF7|톫 H":\=v-ѕn<4׼-},<0kWRG '|sjd &}W9 ˋbm ܓ*{t[ʡ;?\ֆ}+1 hvOmg$ʙ&l 69Ll@9d\M-}DwR7,>=qo5t> LcԘ.%z^n,dG J}е7F|K'}f 7Oۃi!V ԝ8GBeo,Dտ u:t$ʸRZ8.%Q~ZxQ${'#|LUt<דV5Z3{m|{>xR+ ڒ)v`6aW m||UT -c3v2l G5ǹk#n-Vgb :܍' qjcJr1/R*5yds 7Ԉ<}F)&;Ri~,xjT\p_l$fZK9Æ!9JO}n/:T`*l|Rn S2CZY}[y1k: DX\=Rf&ω\ =q JFplg~{.S%:\Kޣoq1 0 $mZNf;elM9wfjxksF;GlaZ#d#u8?K1.-nԓkU &dZ!k4Z2`y5W-?x }~GAz\Fvv) 21Տ`\G(IH;6ԙUNV߆nzǯU.;Pmcjֵ-,xϧae(Z4w^끁|T3WvnH:^# 9.y'q֫* nT#).Tm\w"Hp⷏/eQ}AmAҴQ%$`lpG{LI>hdpHv$9Ϯ;+=CvxsIU0o~e&*k7D"RTxj}Uk"8mQBC.Tcb7Ó~^&1FOc;qsB*bxM46)wD28`IxߌPlP\|wS&2!ܞ4C9M9"L[mshP)~[nVZ zGV}/'U Wy ૊RFH#9Pes[ˮ'I(ҋ]svyߕD8Lu7A.u쮦gyRM:O[] AD83A Su_fxZe \T!1X]UsFY+ENz8Bi9%cey$,x*!@ Su,N¯Byeh/ooKv\1J{/-1ӯ%RgGgnrAۓL4Oʑ{1d٢bc>ɜGj+3`)?Z0Nfd:Q&+2m|SsnQebqǀJDxhX `E1ͫh;uVkH TCݴJ.|xrɀvRGo_9#+ď "+G'8lmv'$ևᘅ`u7dG۩K43K& V!''mެse_T2WۗnY*7q"Px}Y*5ArѩS"uRZI ǩ'?BBa]ôY#$Mjtn*#(Y LX|Rsn) OhKU."!B{`= _ircO(:-}{Ի@L8%_b%7=sKӺnpP;IghGeQ6]im][ ӱ,m'9ާ-%WqPm3ϚJhs P'3IpU):؏&xSÕamw9M-35]W,x>Y|E#y9{ԃ2d׏AϣRnjs0nӾ[uV{QDc-8Cj8MCo.k+.tG*1x8?]YNV~ ၙCM@279Tfknu)I9cY]TBM'ҜF #FBMD+A>E`.$.Xl# {+$D_\tm5*o*Ԩqk$m>dpc]*Jr{,oR-V-W0#ǙC,8 {橨9kIGZc;vRM,;P)S"/Y.bB J,8g$Օ3E-#̮_S[`EBgWsݯc6XaӋ˩4* 0sTMZUhe$8}[,:ɘ)S:v ;FUL>\Ç_C@"ZdW4lt] v~{BBo+>7@TeurSim* ??v5(S`+dr\n&h%S)*H:; G+AoE5s^MtUܖ6o$Ȏex'#gLT| %wP\v \ΣxD,;$iuOVjit~~ FRHcx%svF` Ag#zzbI] FX}NVˆC5hʩ@z>H~KO3-J7(U# #qSAʠ  ?M[Ck`ij:5e:Ez|77? #QVǭO#jӹnS_1ⴉLL> b⫞py[n^ 7F: N`Q0$yp|!7 YPO& %^z I?dep?N}*n^Lxw>u൭PB L6FWmiE$׆X m-373Pk huJlԞNkaq/N 8WNrs?Z2MZ"_5,WŘ@DDf(Q!1DI@@O1@@JJ7@Dz "QD"J7%9Z "Q #1F %,Q9)Mn;` (S "R@Fb %-耉)`9(ވoDJ[耉)Q9(4@D~)$b#!(LmC''ng@QԭMcKq`{PS8XBbJXB%9HD)')i(DBr F(D%(B(bJ1B%PbJ1bJ4МS3NG} @z+ljG(\)UEbWQ~Fb\OOxNta&~ KU =ahWX9F(D"Q(BPbъ(BrBSBӶ{PBB,}iG1 3'UOu%a'3rGRڅK S0yY24"QB% b>y*X" =.vGFI3^0Y6܌nEWJ>!=rG,c99#Or}(YF[?h,.#ˡm O-x4.N}O~r ŬdU c=99DǭU.ǜb~hSmtКEwBrI; PPK~1p0=(NcdF+kb ?w?lwEZmBr(D&=B1B%4"UlG$*^=@`g~x,F6fHQoBUc(YVk[Is̢f%asBjTn;y"t|HZ1dЯ5 'N\-gVg$my4][ #6`I^7Y2%p-0W;^:ڴk$R>x88r:4tTlG\oӖo7k c U6Xss{n'D!s.mM +i l!t UKgx1T1C3oB3Q1+67[(N%( |K):TwcB'U9XDn!y5('CL ;6CGZX(kv'v8,U+0r9iUG@P`6ՑL.`=BtX\[@ڃ d#%0s>\G5ڞU SNB«cLÒ@Hf؉j‘6бI,NJ#cg~ O%YW^"+=~3Bj,W7vZlBIVF>-Xl utK,xd8)߸ۊ8 {R;[c}EO rp3({{IkusW)YJ sr<,Le$`HP P΄72~aB6 4]b^@g#!]`Hm8[>vJ-VEn9jK>gV e[W3Ǝѕ~?h]AFG4֫4iHʹ+0)(_F˓N~$WZmBUrfU9!GqUl9o滽&)/bga˗@*w' CH×"ygVʧ&E#fmc粽&֧v]@ư!! 7;phTHmI۝z}խLkg|E2#a,39ǶBueLSs]j-`fH sH-R\{GxpRlsk&ecT N=9&otd&yn5HP#~#}hYߘۄ^ Q;au;9ǭ%ypBrPb,vq.$ ۓ(VӤUP@B)|T]6Q+ӢJJe2,cVn -Gۭ\\aҨ` (Y0Bg/>k2zShEi ܍miV^ITIVM Dnl)ɰ^8`O|qAsIqtC-.\M.}"TR>w>_V3ja%M^)"Uo+.h}q>4)5༠htA I6$!dPݨwt;%fHrCOnFG慜Qdxy.EL{Hh-eID n#9mS^SQ&YCO,:LgL(ůd#C\4ndtgP1| {zЫf{- ԺV.I2KHq;mJ|V)1sM2dYtμ<6awQ]H\=tx{#<@ʩ؍ޚԤ.sA+uNXǮ$O'$;Z, :u}-JįS XBId8zkFIO+ԙ E"1&D>\At ѣF #TNz" |Ϯ|nr"JZUR0Ҹgס]ݠ,[nS[>E avNX43<R*E Βs[ ~i+Nʥw99 ᩹Ĵ>_sf]t"4A+; }0AUߖ6u? %ܷ-qKG# F\A8qkEg8's]GNV;`|j=83QX*D}x|_+Qv(f\rNs= /EVqۛl:吞@m4.iw欜H|Sv4(TB;Ԉ'S6J@x RT13I"9Huή,bet@;pl/iÂwMufr|RR]jLm3-SYݜmfJ`ז;E@O8S-+F_|}FlgX1t2I'iKgd.n"GPX0bLԿ;).k;zaz#GhdPAIW0> CIO^+_P/i}#e ,@; FwBd-r]4# 2=(X1<8.UI3s.aa$ZbPEÎ{{LYT qxݭƓۿulz⽴%l+x*Ydk,d`x. D7 @B'r{3ښSpU=DIdPW%5g$;{L-]94+FM:ԠLswU5^t g8s;3il/<.3Ip[hV޹ 6,D #@GڅE<4ž˥mtڤُ,Be, YyldV}TgrGкL#XT{>HxG(#ʸ>o6ڹ? 6_]I A#3: aarᝂ7ZzRD!B 's*TӘ }z{mW͠%#q 8ZZax{ŲuW3Ѱ n;k?ңۗ2X.th&V|7f!GTinOׂ:įq0*@*O=߽hii 2A#Hg?dJ6@ې?E:6 dKxbeJ{ v =GU:l]4P 2.0}Q\Z̧^\@`sZM^T3 t bZ_מcb~|B״:H~mp̷I k%s4Z$o.<÷xXGo41Q [8kubIa9  H|w{+72;'ymne'^>9>Z4Ph^]!S01yhQ^D{K@+ (WbZ+ :"H]ΣqiwMŧt!`F5@89$=X(:y:p˄j[O@r#ΒL\ɶr Oc)j5`F`\Ьs%\Y^aK0r1B+l6NE!HÏ0QDFL.d+`#znd`$@j$.paW[\EҺǾB~-_M`_'ԣÀÓ}zkE\ FN<#ҤCwN+Zvw (qsMfHuou]>YpIp!*>;TWGhYЪz|ҙbfxeB/%_P N;Bf=ă'7XNNğ#rFǾ(Wvf#ďG}]D*hxuKrFӡ6^ ۾>u[Ia 1`r3yܓq$UM2Aޫ J8`.s_PmU!KĸDQBXXD͗sL xgp(Xh2^C2(dus2yw#]9qr%"$p$Ҝ.l>*"G[bh2j %jM M$w7;}3ߟZFCےk5j2. CׇͦɺuծzkR(h=e|4K=^g"ƣR?=-"xJ+G!ekgcPpgm6TO$32ONsdn|'\Pֹ곷Af/JFCJ҅`ƴˎkLkr K-Η]Z6_1uP>UҘj :Du꬛#)0.*0*H99>Bp~r}u$rW_?AB{6rJ0sr09'BA!ceS! @ 4ʺŖn nAjPu0t#LM@ag '_U[uId26;z![WsS3#k_s:Vʏt(A03r~jmC-<%RGJͯiQolQ8p ۇ_և3auai 8 olj۟Ҕ,xw.K%I`̀rus܃XkөNĂm%GTa?,N9F}h[P.ԯ?{'_(7,zMzZ0]NNS1ąP6ϥFwT谥ع[u`0A?ΜEA&x[I-͊ą)'8rCf`!XˆwgY3pGMjs8.[&Y%B|IƇv҅:N2}.qሧ9-/=5}+km764ʛ{JI) w$m8P aB/w.r={zg++̞r m*ppqMXl9T:A{mIGSu^I*Z+  DeV"\F}O%$M$zPBV |W$,Sll<҅w}،-4- THp0zrT8CLЬԣIH(U.<6 aThv+pF{bZi9LT쮤dGƑ:o]S ˽]rx!׬~'a]fF\qҚ4q.4hDaUnc nh*nlROp3R}mD( aY8IN˜kCA%vZAUX;g@<|er g'VN'oAdPv 4"rr**`tB;I1&5(!* YeP~^iʵ0*CvJjrѪay!ɖG;g}j*isd4>to*;+M%IHP.7f͜%[~ Yl*\q]Fs}mbuWDh΂ ͖wWF `$- 4jCc}M]b$MZZ8%W*bBvԄi֍K[BHȎZQOt~E Q^Bqy=RiN9d 1 *jys!M 3ߜzБbӍ3I"0;%D1 $ٗoB;$̡s"H]G1{IE\xoNq'|Tel6^c۞T{ǿ6uccb~j@J~YX 8>朩XFX ău? eU1( 6hR] dgօ*pќkdQp#[QȐ,7pbbGċS = ;fgI:Ix\Iw+Km/͒(n]ʹX]o;aҌNW2aT8ށTd<_ZIԀ'ߝ8n\!bdأ.9:4i+CEՋ(0Nvp?NHQ.ii6 *t'74U`%Fdw +7'|gJ C3|"`0t;z!@hG-ǩAQ{3)0{qVeZPB┪բt=)QZ&2&+މHTaUI W H1j5R .Th9V|yϢ<}N2߾А)A؎y#z!,Hc"*6hG|e:pU9]4Zm%KjJ5j_3;>)eV }+Op H3St #YoGruZ:š\#fU-)64g44]$pd@4ln|sGF8 #jʬT ~\{(UcLq 1Y@:I68:R۩> {J `C 6J^{|| ![0שTt!ǥS~g .ܑwhuDO8Ԭ}CcP>*:,A̦`GDuf&rWqASe<+F\13L-Mr26sS kbtQj&1h{:~lZFs(%$pa|\vt.UUU n4O(:$#JƩ8LYɩ1,`QP ~36+ Q1pzm%-ɕ_ }w>*̮NǛ}0Sf{4tb sHukxBF3Hm:dj&^{SVܦQ,XL +.cE{֐*4L캽5լItꍴlaGN-`s7EԱݙ^i@5c;miޣ˪YFm҄+Dg9l!Ȑ6ud meLSSj.HzZDz ɘ18ԙ#څ>e1jvXC5m#FSE|ϩ 'oKupcԒʑc,2[?*`ki`~,iu*2)w$8N"u˽JPQ$26J7n (`:da N_Gϟ SYdϭ<uӇ[,L`b\gNOz`qW5raFn젆@vq$ӻ~W[\F"\Hۮff`3U1EmsCLHa{Ԙe Q 'e.hWY26oÍn`?;AIbF$cPZ-$GsI$ prE BYBD2x6k/3>ks=O-21;\O dԣh8G^O׬[.F~ws?L*@gx«WEٱ87lڟK.1PoOE4~h3¨ZgQzq"@mOD*>u`v*4sRL`0}?Tc#|hC@o^ۥ5Bw<\ 'ʠ(Vo4\*ᝬ0}}rlAU;|U:ǭn?ic!Sҍm|=}lFgH;)CIķ_w kKd%DFS?Vm >!H uw^Kd(Gךzl+i*BV HIK ulycS6F cҜiUp@x =(QBFA)#PYK@ 0n7ՐnOBIX/[ (wdpWIsN;D@6I>W4 GB IS/Tw2qVJ[ ?$ӟhE$jM$%8)R@Javu X VB1 m-30SWAx`ZD*]He;Kr: ;(U.хC0HBrr>vވO'-q;TcպHԝ Ʉxp۵ ft÷cmEљzp$_tJ3tQf\#qDh@GD80dϙFr=,΅k@u#"smhhWpKh:\Rl>εd.tyѺ|+p9GmLjWOt>g[X-'~ChQ4~BZFDpYi դonm(1]L!F=S6UT$1'N% Ds(Plw1LImQL֊g`=iE?z.^6x/v G!sرǶEZF˝,C?RE4IS)Բ1yXo*tY\BȒX3'lZ[30"#;r&u¯\JCqK+U}$#a,r* zNp^H^_CeҍrHD1FQ׵R\EPXtpZ$), !vcq? Pb-y TZ8I֡NzjP\eERoLlCBc3T$uL`s';Ф:($1;!8 fxή9Q d);jCeЏb}Нq,.&bq*椶[i`I Ԉ6# T'_:]8$~jj2"bS;M57#LB`06f;ӁB3/NwFO9AzLənyss7*if,~s^]ݥ_ 2[; 0g=5 M*tE=@5]ct۳ӽAg'*. #>"c(qM$Sm#W"ApW {PTd}U! ~JG"V.qcʃ_Τe_A;Du{'TImnio| \7^a@V8|=Jqov6Xn[Kͭr\'WU^pj8e}0ڏ!iy[NJ6qQd-er#  qv`߄vz٩@[5`{)_֠ik,/[v1Zg܃v&35ɝ3H8+ JlaZl~>${y)Jk[H mzZif$TR$ӥ6\~6;%q h:[\Ok y'ǛQ89 {HJ\4T< Խ;䱙'U 2_fb~[2Ed 1;ՀKe6$T:AnP-`F]7!:Dm6S] g4 O>$x:nO}{Uk2ZA 3Cv#_[v߾s)XNg!j#1_+i,pRP.VE#k>g$gIUs"`WI_L/>]Qnf hwz1׫&IL3Og?Dajo$?TL~CF}D^) 5o?DQ'Q?nzŧL{¸'&ӳO?m(?n:'()a|Zo;λaqywy NaeÜ  9.F><%AM7Ǯ\)u۳8Ҡ{a,Y\cuhNߪ;R4Ҥ4i8㷵0e;]ϥS$;3!3dzllw]mst+ 5w1ڤ/nƆ.Dͽy]j 5bXP&X1Ơ}JW9:8פּmqZ":z%YapN#'eSTt̓GJ[ם~yѵuy_/O),d8,wݻ.`#H ·^و@df`PϦ<}aU\3\ ~,J \9 0AzJ&`r&tǭh~ǘL.c*M lU c⯺I,ete8搑u[Y u];ngm帙RXcBgօ|E 'B73kqh2ޫmV9,0I"韒iewh%G2cbb1(NS,ۅyclu#k+tq+"(: UysDH:[[wxXeMh > [9>c6/1ov%၎2Hkk^V KM4hZ8r8,`#;pm5ΕUNOt)7LIa%J sd!!QbqH芡ڒ5 ֺ,WI^ F+oLg`6-s~驆JA&?v;xDS¶xQuC$Q'l<{ԲI +cpNc#umE%^ry:yF{\S.1gI^~[h%~ dO 0;>eִO?6YO9fg-AWge|8>S!sqT*7YN*xIUKXU^=Ŵi.YI\[a;R(S`:׶}, 44iRɧq:&ڔq>gfLg sLl~i|YcN!Š#cH?WH>Wt_S! Fࢡt^i[srOzSJG1R7P(-g_EIx]c*p"?)zR|})bY<:-X{2H c?ef'K"`^5C):Wb#a|տw?SMw5]αuTD374*Y!9o|s*0Xp4L:kb궢77SWHȫsxkD3M}<1LvƄ=6Z:[dž%ELTfbx` &p?@9n,]qۊdH-ż$iߑ7qt@pm@lo[.0ʮgarve] 41~ʶEN ˜٤ʼnf,Ϭ\@ N˒F^P5 [a'fEAsd}<E)g쳽Is?55X})f?O7bs|HH!q# 7C iH  0t';xӹYarϑdž]w ]Goq=Oj3!3><I4j[s$E2򯙿C΍!2] =ի:- sKID=`4V Wq#C v~!U|.m-7'eտJJʬ\igaӶY)W̎]j.5x3I8sƿ#m 8&DWKRx'OpƗrڄ9 N1!Vk﷘7s/XUfs^A;Jsա$BTa26o-ҢWӄO RӶUwb?5%@ĺ^{΋bXI*m>v[(mNrvD#[vJ `w'8q}ڕM.v"O bQ 'R1|eIP- BunC o$8܂ #jQt `xwZPI 3X"ۦov! Bbڀx^T}>)c^>W{J5 [~ sXWRӜx-9#i CM԰8Ys--{ ^I9p ?\vN˪+e9'7Cn*F q"16m։S^]u5Uݤ-{'M,c}Xb?xl5RTW9ZDċ.T|idg}@槞з;ru5MwN j2flz\ *v;`߿>ԔTd`ˡV)<ߜ@Y0M+Iok>̡D`4(a pCi䩓9m=(CM.OM}2I',ahPUzq8lFnU@cFvPXpv=R5 Fk",u>4MqjɷHƬnco|zt*bC&sttYVkkFY)Ɩ?\@)7XAkOi0"č%p$Υ;~;!e 4i+nވ\,!Iq|nH-(xTLF[,2 $gczp8BkA5/`<>VB,gA]FrA3iI;{z:F$_b˕,p$*6 *mHDsT=ɕ*%naYeϪD9_cIV'Qi"or`TA Ԥ5hc7Y%8֒3/$'Фϐ`}1B2ISd m4ՀT#3ȱdR@C!sKc:QFާN_6nR+h [Vn=Gi)ȱ'xNAm$ޅ?%9E.}oB3꫻i_O S؄F;*R^;PHߊui Rk2N2TS#ELu)in`Пލu1O^jvSICY>)Dp^zRXXj(xE>BC`@N2sl5"vkPET[D*;+'Q6>Բjuil#+pq:Q{$v)UbF{Uu /:[$:2󁓎TQl q;,'CQs;ֲXǪc3*0}Z;m"B e08SJimǪlHe:HI}qBj <Eg / i0N[]o{HAӯdΣn0w6QE#=klAcgs҅6VsT= E) ƝAN Byܭ'H,K3iߜ`޴( ]z.z\mĦK H1۸EW\7mm+HKҸ4֖UaxQep[+q e])-UB,'d?xU?ؐH9^TzmNUvYkl8;͈TpT),kYol6?xg[F}F1BRXN!`@mԼG ݊Gsm e\wyN MP210fǔENOڄzu6e֬R9mJB;5Fr@8?MCF lH#dG~OhQl_SCR'gl?]hRI[1RS\P Ъnt\U cӰ )ӨAen!'`#'ʴW7su͵qeh=j2p>TV>фRȒ"qlsBi Zi- ;R\QuuOTIݛIPdl8}3 )ЭZc@xcBB&q hGr78q߹>IE\EY0b}’]G H ޿45aH<4WA֢?+PsGi.hfF`Ųs=ɡYUH3?k5nّ mNvMM 2Bu*5C'oOWq׷%aYYԞq'RiRf5瀱PzoD}n8) RqE$mD?1oqZ)Hz1 Wٻ4%pk4hP0o"ʬc;&H=Oz\9/ՕcsQXJ7wQ}2\JbB.pF6۷MaiӦ]l]/3R~A/Z/ GX]J\8eF3[P3F.=b pЈ ^!fILȮci; 7:.UG:fH㳨YIђI̒Ie ow#UTjѯ״mi?+wKtɑ(vUyH"!g:G ӂ9x)xLEF0ݴ$m[>{JαԾ Q\uhϋw#Jd HuSQwEj[t&Y#7D*2OΊmke5G\+t[ˮҮ$+7+%f><F:OlXLU iA,u}z/w=B  3Ш+ӿn &˝ELf='C$JL`}2N{*TY_.gj b޼x.߁"i|2Qc8pps]O5Y\V$Deͷsì _uf͍Yfhٻ%\C\{D7;Cm$Hળ;Sk)V/w lS]OnVx"; hJ;6)C:Zlc.I5G@OP~ HeB&U(L7]^-7: Ԝ󏧥 K`M3 ;IAddq1Ϸԟ#kk -3A8՜d`n?j5T+{u~Lu3sڙ]bء]6=,khe,s*nkՒL) k!2iⴚ(iqX#}R%)P(HHV_ʈH`-!|ɔm@;cD&}{P; #9ȤL::1UK"e- 'TX]ӭtS.IŒ( ܚTk/2LO& *eH*% D)m |cc1{S{[tu~6M$ulO֬_F9>KI 븄l88dB;?5h}B0P mJځwݛb<%-dlY9uN%H6xWq!F!&n¡RX&9\dIL%T^?F xP#֘f#עQ\1;Ut⣓6S1j󇓪eYIY\LH],jꚞߎ}kFW2]3di:C G({nإU&,[cI{E?*$j5 5F@z"JnVj3)  75\1Լ<aS>PkYlڡPHdKC `Y8XRh#M):I 293 E(!F≑By9(9>)9{t'hCwѿWPw;~CʄMAMYo֚A^eEqB#ET‰ڪ0,>S50kCE#%d ӈn,A3R[TaW#Y+VsuJFw{b\S*EpN~jW)=pDpIhFH6B2s.p9 Ye 叹Qnv. I(Q>ZQOIH* sGL8>T?O~޴ˉJ=)5t>*Qr 튃s6Ɏjst 2!C=>PrM,oRZ M.jQPk3iD~ kKFD`0R2uby_QLK>^x/WpG*NM. 6H&ő dsDj$i 2t ?ƪy5,\1$7,uגU#7\qq)(I*Eה%PM!HUBITL%PMB3L9L3LD'( I!~j)h2vЕAB!4BF&SK"E x$)Ś HՍ~d\-%(F:%PM#P"预#zWBTQIa4QT"QME+!!PiS#tՌtAL*ڋFH#T%5ME$BU LoV H(B;HkޝބH(e5a޴(4#qBU#443(E% hB(B)BNPEڥ%1Ĥj$5=8QU!4P:EEGE6)"cze"RP BFP"PZ QOT'4uBYY ⣢P&@ޥIHPW(4 >Pi<90#<_E0Z7qgmGj|k =GfNPQk|HRIŷVs2)z(Fsv'ҧkW2·bgKȝJH+Oz^aThqEFJL(E:!0LKDM! R0aE*CRB*1(Hn0A4'НLD O,fakʯXx_Z dmyˆ;q7ܥdlc'TcI #(%DyVkfy)‰96^&G>"[n~<#\qX2 q$~UJ7o>q}ʛV;~5# 7>5/jyTeRrwI.iRGz!G4D<FsLMQd#4I*S)Pj!0OÎ%"t#tϮO gziM#DY |iT 6왙RqS^'',/7#Sb-rZiҴ7,qa\|Y}nU◌WqKBGꌁ#~`xd xvojx$e?ҢqήDe ̱P gz۝`q$ [QCr3oUIh=_`R~&_w $֫&]!h69)}+[a݇d#ӷf2ÕH1RhAB(B "sD9"EB)G4B2(BLy Q(A4!G4`J6u=nO ~mX!p 3_3 kd8֑k[h>FɤI?PGcI(C})T7q.ɫpZMOpN0NNlľuP:pP ?ƫ45D|5L+ºB yOWGOw|t0T* ]ls"D#"ȣ2;@F;DBY AKJLhf+?hN}(g< wn!FTk^߭K$iFjFȄlY>g;#,=B_*&7$zו4iRE_InVBNyJzBB oqI\Aw:b qѨkl g5m?W$g Q&3jn=`4@C.NWqߓ+S>VHt_[6>F#x(p(:NF:H*MkHCG>zU<}MD܎s֫4Pv<~ILN'A(%`Fn350趠#1yYܦ=nb,TPwB2irj3L`P4B)B2if(FO 0OJ!,{TrF'Т]}r}^S?w ۧTHv@ڵg5C~}SW O`:ORH U÷Xp.R3[ٶ~o(aۯdJNd =#z_% vU4]H1kggiD~>L2,T%ӎ*V.?/~x>[&(*Hdfn|&;ӕzձuy=m81###I@5 :EA"z@Wj=_#քT$-VlAN^/d ;>IؒXn$ێZۻ/P5A_ (W\t{O/$ݛKu>GO@p&}TJ1XOYZ4(Z$_FA#q'?DR,>>:xc5X#+<# MiMj/##z .b?<#d`X<Lװ`ŝw;RD鹟J"AMx6>8L*7xe$j?v ?Nsjeg-u ?gHi?ƋqXʝ㑌~in#lG~Mu9N䑌kN!&"gjLƧ -UCJ0VJ ^41LjHXh {zFr5} :|r9ڧFlff;<ԼˏOHx!֏]KcXRT|672MDNMLt݈yxAG[.^nw^DF8{T0`{ƭ&8عi7 0QA8?ևl#8NgJC }hmJ@ x$&ճ#r k.x⯷Β7?u~"āZwUAZ[NM柱=`#m©Sđk m9 (^" X< UH~1:whRPx'~?J)F;K_~,<Z9#:qӚd.]p 0~q+" JKNjnFʟꂛI8I-xO |95el_΂`1˚AnRw9sV9R~UW֞48Z;1ׄ$j,g qJ`ABK1 nX#U.ȦU j_Z_iZzdžɊ` QNl6]vca N97!AF<:`#[^HRyB[LJvmZdM!L65U'+Uq0qO ܒ~MN*չ3(O.8cj}zbCww ;T'1MI-i$OIgn~ ؔ ڢ lU B`V4͎#D7B0l+]\gn2TlhYK?vs|Wl|wu*ӂXc>C!{_TG9>Tgs µC:sojOJ q`@&owDlvSG] (';)p;J(HFOj fcssʹ#e9}Ec*Svm[L8 PX4~ɠE.A9ܑDZJl"J%CuB[vr&p8jn (HҠKb>PnL!{Ybpc3ō P~I8+Q`"ϰ} by(VfR{⩨Ud^[ $](IQUt(R%Ntx_dbVUǭkFj6{DP1?Ί8qL1A2BN /"syUBusJcp.sSkdb8]uD "=;)7 YЫ |W<&n=ߔ6VV5V: }< J)I(HjN0Pxɺפ޹P5}l(B9c5 UәfxD8+.0uͬi#}:R*- |߻Cئ@W.AS~1ޱbs0@7:ue65%}v9)9ȝ~<7VDH\nF3+Vk L"cOr5})[kN()4r 005~#g^RR~04`#"uO1 WKu;1s?XBLROGҭR44&]{yr~,NlC",ù!b#}#]n0>)%tu% LRiWrA$ga 92 5tf!׽t! ܟ.@U>#>V:yo_(uuay)help_cursor.png PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXOLTWtZ8J˟4)iAژ4I*BCM\6vх%. e]Pc1X@$RiB80޽] 2֙(%'/}<9ѕn˵̙3f$VU4#\M.ƍ{Җ<;!sss|BqYLfggիW˜Y^^./\ !{: ,#TJ72>>(((@(((nfggڷo߻|5kG"%%Ehccc&i=m\w^B~رN9|IJKKە̵@`H8,)_d977cܹs H)LMM! _UU&&& 1jMMM0\:-˸bM&BzarãxZ0&''nzz ݽ{wKjjj,fffn[焌)C5ׯ_v\B&''SRR777Ҳk0@ z,XxPmve l_!&(J oDP԰‘iG BlKw@1BN4Dbǎ&kwww`0D6 \y|0۷o"K! ?\D"L&:Ķm۞b+fzzʼn'jv,5y CCCׄf ؀r w)loZO'2"b9?y 2!L@$O!4L~8| 10 20 5 25 15 15 5 50 1 5 Filter Model 1 10 10 10 10 10 10 1 1 Original 0 0 0 1 1 liststore1 0 Width 1 adj Height 1 adj 0 1 1 1 0 0 Width Height Area Square object-select-symbolic 1 1 1 Computed Columns 0 1 0 1 Filtered 0 0 2 1 1 0 0 Width Height 0 3 (uuay)floppybuddy.gif`GIF89aPF  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~ぁ=v{! NETSCAPE2.0! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. ! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This space for rent...! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@H 2hJ2rD)@*0.O[vDٕ@Xsjj׶l6$٫w5mW)9-͢{,ҁEgu8 5|bSCJ%x3|Cf ۸Icqhq}vmBN-8(U/gys_9qٵ^?9yï>d|p_M6~ϕv(ބ`.} W!*I؅І9gNAȚkhq8S)5Hgf>$JBHL:mh:QIe!I6 $0JY$dHX'umAh긑*9|jB昉aрx&be1aJYziviJ:*A*=ҫꚔ,Bk$KO9Ūl}<WL%*QMi.W~HS•;Rvն;m_2xn~).kn2zk0 .9,o[.fw#! ,L> H*\ȰÇ#JHŋ3jȱǏ CIdA(S\rɅNjI̗ cJϞ@&΃EE4eSF@TL}Z 4TIb͚P vX(Dːյj7)֩VU{n*4YR{5*ʹ ,hq |PJ|]x'ФsWZ_Sޙ'[}u[[E%č_O|9sϥ.PassSWo8yguh` w%V"h rY]ɗփvN(ǁd`]&L%Db'\~ rуxvڌԈҍ&x!AjFd("6DP8%JUqE[V``)eH_qy&[kx'QG)"}y~`1Uh!;)ZބNNf꒤v*iI+¤ҨhꥄVkj*t뎵*+Od!U_Dlv5`u]6k؎4-MfҷyfbnWJ5Ӣc$K~n 7G,T!This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set;(uuay)menus.ch/* Menus * * There are several widgets involved in displaying menus. The * GtkMenuBar widget is a menu bar, which normally appears horizontally * at the top of an application, but can also be layed out vertically. * The GtkMenu widget is the actual menu that pops up. Both GtkMenuBar * and GtkMenu are subclasses of GtkMenuShell; a GtkMenuShell contains * menu items (GtkMenuItem). Each menu item contains text and/or images * and can be selected by the user. * * There are several kinds of menu item, including plain GtkMenuItem, * GtkCheckMenuItem which can be checked/unchecked, GtkRadioMenuItem * which is a check menu item that's in a mutually exclusive group, * GtkSeparatorMenuItem which is a separator bar, GtkTearoffMenuItem * which allows a GtkMenu to be torn off, and GtkImageMenuItem which * can place a GtkImage or other widget next to the menu text. * * A GtkMenuItem can have a submenu, which is simply a GtkMenu to pop * up when the menu item is selected. Typically, all menu items in a menu bar * have submenus. */ #include #include #include static GtkWidget * create_menu (gint depth) { GtkWidget *menu; GtkRadioMenuItem *last_item; char buf[32]; int i, j; if (depth < 1) return NULL; menu = gtk_menu_new (); last_item = NULL; for (i = 0, j = 1; i < 5; i++, j++) { GtkWidget *menu_item; sprintf (buf, "item %2d - %d", depth, j); menu_item = gtk_radio_menu_item_new_with_label_from_widget (NULL, buf); gtk_radio_menu_item_join_group (GTK_RADIO_MENU_ITEM (menu_item), last_item); last_item = GTK_RADIO_MENU_ITEM (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_widget_show (menu_item); if (i == 3) gtk_widget_set_sensitive (menu_item, FALSE); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), create_menu (depth - 1)); } return menu; } static void change_orientation (GtkWidget *button, GtkWidget *menubar) { GtkWidget *parent; GtkOrientation orientation; parent = gtk_widget_get_parent (menubar); orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (parent)); gtk_orientable_set_orientation (GTK_ORIENTABLE (parent), 1 - orientation); if (orientation == GTK_ORIENTATION_VERTICAL) g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_TTB, NULL); else g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_LTR, NULL); } static GtkWidget *window = NULL; GtkWidget * do_menus (GtkWidget *do_widget) { GtkWidget *box; GtkWidget *box1; GtkWidget *box2; GtkWidget *button; if (!window) { GtkWidget *menubar; GtkWidget *menu; GtkWidget *menuitem; GtkAccelGroup *accel_group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Menus"); g_signal_connect (window, "destroy", G_CALLBACK(gtk_widget_destroyed), &window); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); gtk_container_set_border_width (GTK_CONTAINER (window), 0); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show (box); box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (box), box1); gtk_widget_show (box1); menubar = gtk_menu_bar_new (); gtk_widget_set_hexpand (menubar, TRUE); gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0); gtk_widget_show (menubar); menu = create_menu (2); menuitem = gtk_menu_item_new_with_label ("test\nline2"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("foo"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (3)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("bar"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (4)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); button = gtk_button_new_with_label ("Flip"); g_signal_connect (button, "clicked", G_CALLBACK (change_orientation), menubar); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("Close"); g_signal_connect_swapped (button, "clicked", G_CALLBACK(gtk_widget_destroy), window); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_set_can_default (button, TRUE); gtk_widget_grab_default (button); gtk_widget_show (button); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)css_blendmodes.c0/* Theming/CSS Blend Modes * * You can blend multiple backgrounds using the CSS blend modes available. */ #include #define WID(x) ((GtkWidget*) gtk_builder_get_object (builder, x)) /* * These are the available blend modes. */ struct { gchar *name; gchar *id; } blend_modes[] = { { "Color", "color" }, { "Color (burn)", "color-burn" }, { "Color (dodge)", "color-dodge" }, { "Darken", "darken" }, { "Difference", "difference" }, { "Exclusion", "exclusion" }, { "Hard Light", "hard-light" }, { "Hue", "hue" }, { "Lighten", "lighten" }, { "Luminosity", "luminosity" }, { "Multiply", "multiply" }, { "Normal", "normal" }, { "Overlay", "overlay" }, { "Saturate", "saturate" }, { "Screen", "screen" }, { "Soft Light", "soft-light" }, { NULL } }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" static void update_css_for_blend_mode (GtkCssProvider *provider, const gchar *blend_mode) { GBytes *bytes; gchar *css; bytes = g_resources_lookup_data ("/css_blendmodes/css_blendmodes.css", 0, NULL); css = g_strdup_printf ((gchar*) g_bytes_get_data (bytes, NULL), blend_mode, blend_mode, blend_mode); gtk_css_provider_load_from_data (provider, css, -1, NULL); g_bytes_unref (bytes); g_free (css); } #pragma GCC diagnostic pop static void row_activated (GtkListBox *listbox, GtkListBoxRow *row, GtkCssProvider *provider) { const gchar *blend_mode; blend_mode = blend_modes[gtk_list_box_row_get_index (row)].id; update_css_for_blend_mode (provider, blend_mode); } static void setup_listbox (GtkBuilder *builder, GtkStyleProvider *provider) { GtkWidget *normal_row; GtkWidget *listbox; gint i; normal_row = NULL; listbox = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (WID ("scrolledwindow")), listbox); g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), provider); /* Add a row for each blend mode available */ for (i = 0; blend_modes[i].name != NULL; i++) { GtkWidget *label; GtkWidget *row; row = gtk_list_box_row_new (); label = g_object_new (GTK_TYPE_LABEL, "label", blend_modes[i].name, "xalign", 0.0, NULL); gtk_container_add (GTK_CONTAINER (row), label); gtk_container_add (GTK_CONTAINER (listbox), row); /* The first selected row is "normal" */ if (g_strcmp0 (blend_modes[i].id, "normal") == 0) normal_row = row; } /* Select the "normal" row */ gtk_list_box_select_row (GTK_LIST_BOX (listbox), GTK_LIST_BOX_ROW (normal_row)); g_signal_emit_by_name (G_OBJECT (normal_row), "activate"); gtk_widget_grab_focus (normal_row); } GtkWidget * do_css_blendmodes (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkStyleProvider *provider; GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/css_blendmodes/blendmodes.ui"); window = WID ("window"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); /* Setup the CSS provider for window */ provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); setup_listbox (builder, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)progress_cursor.pngWPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P34IDATXoHTk?sfgqMx1M dPZv ,QAFu_A j)4R*6WnD--:0k9o_8v[ڛsfy\]]]`CCp?H<4rRDˎbǏ_D\zzzh4ÿRiٶm[ý{GyiL&&&if. Ե;uo rVǶm9p]v}WZZ*[-ZJX_[[$`2\+ /^,`P H*++%x<&"j||nooԳgwY""hƍǀ|ܘ… eɒ%'+W*yꕜݻqo߾}o | &i8N 4MeeeYMFF~x->Q]]{q҂l(YYYضiCOOO:FA]똦Ʌ 0M8uԷTrp`ea>0`CDze8w'N Xvo_@y;:J),D.b_ٳx<n76l,lۦݑ-~h^H FFF~X ߟ388l: Rb\.DceffT)'H$n `Y"0::Jee%?̙3hرB^xb FFF$W=,JwB*555e !O<)I}}ܼySLIffdggKww}֭fepAQJɽ{$M6I$TWW'a#GRJUTTX,4ѣGE)%=ADF|>.PHܹ#[[[erȪUnnn7P ݘJ)rO:::v)G\.$??_t:0 Ba D/_g`==i\z`cffpeYArssEuq\t:t+o D֭[WO=D"*//' Hd\xҥ}{4MSojjra ,  uVhnn~o߾^a7M͛7_+HnM}AAы/~eW4m~7lB|yA[$kCz,M}n&O9d!y4*99fHeb"0I9τ>2NKhL׵$+)9cSwKIENDB`(uuay)shortcuts.c /* Shortcuts Window * * GtkShortcutsWindow is a window that provides a help overlay * for shortcuts and gestures in an application. */ #include static void show_shortcuts (GtkWidget *window, const gchar *id, const gchar *view) { GtkBuilder *builder; GtkWidget *overlay; gchar *path; path = g_strdup_printf ("/shortcuts/%s.ui", id); builder = gtk_builder_new_from_resource (path); g_free (path); overlay = GTK_WIDGET (gtk_builder_get_object (builder, id)); gtk_window_set_transient_for (GTK_WINDOW (overlay), GTK_WINDOW (window)); g_object_set (overlay, "view-name", view, NULL); gtk_widget_show (overlay); g_object_unref (builder); } static void builder_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-builder", NULL); } static void gedit_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-gedit", NULL); } static void clocks_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-clocks", NULL); } static void clocks_shortcuts_stopwatch (GtkWidget *window) { show_shortcuts (window, "shortcuts-clocks", "stopwatch"); } static void boxes_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", NULL); } static void boxes_shortcuts_wizard (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", "wizard"); } static void boxes_shortcuts_display (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", "display"); } GtkWidget * do_shortcuts (GtkWidget *do_widget) { static GtkWidget *window = NULL; static gboolean icons_added = FALSE; if (!icons_added) { icons_added = TRUE; gtk_icon_theme_add_resource_path (gtk_icon_theme_get_default (), "/icons"); } g_type_ensure (G_TYPE_FILE_ICON); if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/shortcuts/shortcuts.ui"); gtk_builder_add_callback_symbols (builder, "builder_shortcuts", G_CALLBACK (builder_shortcuts), "gedit_shortcuts", G_CALLBACK (gedit_shortcuts), "clocks_shortcuts", G_CALLBACK (clocks_shortcuts), "clocks_shortcuts_stopwatch", G_CALLBACK (clocks_shortcuts_stopwatch), "boxes_shortcuts", G_CALLBACK (boxes_shortcuts), "boxes_shortcuts_wizard", G_CALLBACK (boxes_shortcuts_wizard), "boxes_shortcuts_display", G_CALLBACK (boxes_shortcuts_display), NULL); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)markup.ck/* Text View/Markup * * GtkTextBuffer lets you define your own tags that can influence * text formatting in a variety of ways. In this example, we show * that GtkTextBuffer can load Pango markup and automatically generate * suitable tags. */ #include static GtkWidget *stack; static GtkWidget *view; static GtkWidget *view2; static void source_toggled (GtkToggleButton *button) { if (gtk_toggle_button_get_active (button)) gtk_stack_set_visible_child_name (GTK_STACK (stack), "source"); else { GtkTextBuffer *buffer; GtkTextIter start, end; gchar *markup; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2)); gtk_text_buffer_get_bounds (buffer, &start, &end); markup = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_delete (buffer, &start, &end); gtk_text_buffer_insert_markup (buffer, &start, markup, -1); g_free (markup); gtk_stack_set_visible_child_name (GTK_STACK (stack), "formatted"); } } GtkWidget * do_markup (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *sw; GtkTextBuffer *buffer; GtkTextIter iter; GBytes *bytes; const gchar *markup; GtkWidget *header; GtkWidget *show_source; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); stack = gtk_stack_new (); gtk_widget_show (stack); gtk_container_add (GTK_CONTAINER (window), stack); show_source = gtk_check_button_new_with_label ("Source"); gtk_widget_set_valign (show_source, GTK_ALIGN_CENTER); g_signal_connect (show_source, "toggled", G_CALLBACK (source_toggled), stack); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE); gtk_header_bar_pack_start (GTK_HEADER_BAR (header), show_source); gtk_widget_show_all (header); gtk_window_set_titlebar (GTK_WINDOW (window), header); gtk_window_set_title (GTK_WINDOW (window), "Markup"); view = gtk_text_view_new (); gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 10); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 10); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); gtk_widget_show_all (sw); gtk_stack_add_named (GTK_STACK (stack), sw, "formatted"); view2 = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view2), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view2), 10); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view2), 10); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view2); gtk_widget_show_all (sw); gtk_stack_add_named (GTK_STACK (stack), sw, "source"); bytes = g_resources_lookup_data ("/markup/markup.txt", 0, NULL); markup = (const gchar *)g_bytes_get_data (bytes, NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert_markup (buffer, &iter, markup, -1); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2)); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, markup, -1); g_bytes_unref (bytes); gtk_widget_show (stack); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)hypertext.cF%/* Text View/Hypertext * * Usually, tags modify the appearance of text in the view, e.g. making it * bold or colored or underlined. But tags are not restricted to appearance. * They can also affect the behavior of mouse and key presses, as this demo * shows. */ #include #include /* Inserts a piece of text into the buffer, giving it the usual * appearance of a hyperlink in a web browser: blue and underlined. * Additionally, attaches some data on the tag, to make it recognizable * as a link. */ static void insert_link (GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint page) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data (G_OBJECT (tag), "page", GINT_TO_POINTER (page)); gtk_text_buffer_insert_with_tags (buffer, iter, text, -1, tag, NULL); } /* Fills the buffer with text and interspersed links. In any real * hypertext app, this method would parse a file to identify the links. */ static void show_page (GtkTextBuffer *buffer, gint page) { GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); if (page == 1) { gtk_text_buffer_insert (buffer, &iter, "Some text to show that simple ", -1); insert_link (buffer, &iter, "hyper text", 3); gtk_text_buffer_insert (buffer, &iter, " can easily be realized with ", -1); insert_link (buffer, &iter, "tags", 2); gtk_text_buffer_insert (buffer, &iter, ".", -1); } else if (page == 2) { gtk_text_buffer_insert (buffer, &iter, "A tag is an attribute that can be applied to some range of text. " "For example, a tag might be called \"bold\" and make the text inside " "the tag bold. However, the tag concept is more general than that; " "tags don't have to affect appearance. They can instead affect the " "behavior of mouse and key presses, \"lock\" a range of text so the " "user can't edit it, or countless other things.\n", -1); insert_link (buffer, &iter, "Go back", 1); } else if (page == 3) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_insert_with_tags (buffer, &iter, "hypertext:\n", -1, tag, NULL); gtk_text_buffer_insert (buffer, &iter, "machine-readable text that is not sequential but is organized " "so that related items of information are connected.\n", -1); insert_link (buffer, &iter, "Go back", 1); } } /* Looks at all tags covering the position of iter in the text view, * and if one of them is a link, follow it by showing the page identified * by the data attached to it. */ static void follow_if_link (GtkWidget *text_view, GtkTextIter *iter) { GSList *tags = NULL, *tagp = NULL; tags = gtk_text_iter_get_tags (iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { show_page (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)), page); break; } } if (tags) g_slist_free (tags); } /* Links can be activated by pressing Enter. */ static gboolean key_press_event (GtkWidget *text_view, GdkEventKey *event) { GtkTextIter iter; GtkTextBuffer *buffer; switch (event->keyval) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); follow_if_link (text_view, &iter); break; default: break; } return FALSE; } /* Links can also be activated by clicking or tapping. */ static gboolean event_after (GtkWidget *text_view, GdkEvent *ev) { GtkTextIter start, end, iter; GtkTextBuffer *buffer; gdouble ex, ey; gint x, y; if (ev->type == GDK_BUTTON_RELEASE) { GdkEventButton *event; event = (GdkEventButton *)ev; if (event->button != GDK_BUTTON_PRIMARY) return FALSE; ex = event->x; ey = event->y; } else if (ev->type == GDK_TOUCH_END) { GdkEventTouch *event; event = (GdkEventTouch *)ev; ex = event->x; ey = event->y; } else return FALSE; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); /* we shouldn't follow a link if the user has selected something */ gtk_text_buffer_get_selection_bounds (buffer, &start, &end); if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) return FALSE; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, ex, ey, &x, &y); if (gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (text_view), &iter, x, y)) follow_if_link (text_view, &iter); return TRUE; } static gboolean hovering_over_link = FALSE; static GdkCursor *hand_cursor = NULL; static GdkCursor *regular_cursor = NULL; /* Looks at all tags covering the position (x, y) in the text view, * and if one of them is a link, change the cursor to the "hands" cursor * typically used by web browsers. */ static void set_cursor_if_appropriate (GtkTextView *text_view, gint x, gint y) { GSList *tags = NULL, *tagp = NULL; GtkTextIter iter; gboolean hovering = FALSE; if (gtk_text_view_get_iter_at_location (text_view, &iter, x, y)) { tags = gtk_text_iter_get_tags (&iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { hovering = TRUE; break; } } } if (hovering != hovering_over_link) { hovering_over_link = hovering; if (hovering_over_link) gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor); else gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor); } if (tags) g_slist_free (tags); } /* Update the cursor image if the pointer moved. */ static gboolean motion_notify_event (GtkWidget *text_view, GdkEventMotion *event) { gint x, y; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, event->x, event->y, &x, &y); set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y); return FALSE; } GtkWidget * do_hypertext (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; GdkDisplay *display; display = gtk_widget_get_display (do_widget); hand_cursor = gdk_cursor_new_from_name (display, "pointer"); regular_cursor = gdk_cursor_new_from_name (display, "text"); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20); g_signal_connect (view, "key-press-event", G_CALLBACK (key_press_event), NULL); g_signal_connect (view, "event-after", G_CALLBACK (event_after), NULL); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); show_page (buffer, 1); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)grab_cursor.pngpPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3MIDATXkG?ZkJ.84Bk{Iȡ` 5>z!_kL8'_4 U~:זVV3=X^kI Ռw[n*|m4:p߾}̑Ѵ-T Bo#sb񏾾>'PUΟ?/4鐚O>|ee0sm!;;;= (X_89zB7vƍoϞ=/T*eY(n0?x`9I+*iZpf3@Hչl'@' \jm7nEBC[vT}!1%jߙr dC%iIENDB`(uuay)ne_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3lIDATXOLg? UV ڸŹuSZaC$8CNzXb1v s2 =4-)Y42l4ҷg޲X-¶yk?gSSg5 *(튢taSɃ-&ؕ+W,7o\/};&lÎ;a`# e|8p@X,k@ 1> xfK.ݽ&ׯmmmRJ(`㓺㚦d*ÇgXyal!@vxw]MBU… ce`k)rbb"ya59UUUip;|n!]ץaӦMOf4M Y$sΣSw^*l6OtMu&ɔ4e2>333U__='GI !VV (\? VBmmmEY&?X8sL2t !GU<^@w~), ҂׻f凜.۽,t:}}}0l.-{P(4 G]&:&%0ĿgY|Ν K$`0z(DU ؾ};CCC"FNgO<USccٱ\;ݻ]&7n[V|>H&1>0iڨn?599yܹs=uzNLooؼyF" 5@FGGoK)]鴈bX,MRb```8J^ g`l6[z|s֭=`giMKV/Z[[~xWWW(o뺾!&.^bw_96gggkllV T}Pm۶kjj x 6nG6VU,0XYvE#:KFżoEr&bā?;9$wDQ)F\O3ĸ_h7^;tIENDB`(uuay)listbox.ui<8 1 1 Email message 1 1 Embed message 1 (uuay)shortcuts-builder.uia 1 1 editor Editor Shortcuts 1 General 1 Global Search <ctrl>period 1 Preferences <ctrl>comma 1 Command Bar <ctrl>Return 1 Terminal <ctrl><shift>t 1 Keyboard Shortcuts <ctrl><shift>question 1 Panels 1 Toggle left panel F9 1 Toggle right panel <shift>F9 1 Toggle bottom panel <ctrl>F9 1 Touchpad gestures 1 gesture-two-finger-swipe-right Switch to the next document 1 gesture-two-finger-swipe-left Switch to the previous document 1 Files 1 <ctrl>n Create new document 1 <ctrl>o Open a document 1 <ctrl>s Save the document 1 <ctrl>w Close the document 1 <ctrl><alt>Page_Down Switch to the next document 1 <ctrl><alt>Page_Up Switch to the previous document 1 Find and replace 1 <ctrl>f Find 1 <ctrl>g Find the next match 1 <ctrl><shift>g Find the previous match 1 <ctrl><shift>k Clear highlight 1 Copy and Paste 1 <ctrl>c Copy selected text to clipboard 1 <ctrl>x Cut selected text to clipboard 1 <ctrl>v Paste text from clipboard 1 Undo and Redo 1 <ctrl>z Undo previous command 1 <ctrl><shift>z Redo previous command 1 Editing 1 <ctrl><shift>a Increment number at cursor 1 <ctrl><shift>x Decrement number at cursor 1 <ctrl>j Join selected lines 1 <ctrl>space Show completion window 1 Insert Toggle overwrite 1 <ctrl><alt>i Reindent line 1 Navigation 1 <alt>n Move to next error in file 1 <alt>p Move to previous error in file 1 <shift><alt>Left Move to previous edit location 1 <shift><alt>Right Move to next edit location 1 <alt>period Jump to definition of symbol 1 <alt><shift>Up Move sectionport up within the file 1 <alt><shift>Down Move sectionport down within the file 1 <alt><shift>End Move sectionport to end of file 1 <alt><shift>Home Move sectionport to beginning of file 1 <ctrl>percent Move to matching bracket 1 Selections 1 <ctrl>a Select all 1 <ctrl>backslash Unselect all 1 terminal Terminal Shortcuts 1 General 1 Global Search <ctrl>period 1 Preferences <ctrl>comma 1 Command Bar <ctrl>Return 1 Terminal <ctrl><shift>t 1 Keyboard Shortcuts <ctrl><shift>question 1 Copy and Paste 1 <ctrl><shift>c Copy selected text to clipboard 1 <ctrl><shift>v Paste text from clipboard 1 Switching 1 <alt>1...9 Switch to n-th tab 1 All gestures 1 gesture-pinch A stock pinch gesture 1 gesture-stretch A stock stretch gesture 1 gesture-rotate-clockwise A stock rotation gesture 1 gesture-rotate-counterclockwise A stock rotation gesture 1 gesture-two-finger-swipe-left A stock swipe gesture 1 gesture-two-finger-swipe-right A stock swipe gesture 1 'Special' combinations 1 t+t You want tea ? 1 <shift><ctrl> Shift Control 1 <ctrl>&<ctrl> Control Control 1 Control_L&Control_R Left and right control (uuay)iconview_edit.c/* Icon View/Editing and Drag-and-Drop * * The GtkIconView widget supports Editing and Drag-and-Drop. * This example also demonstrates using the generic GtkCellLayout * interface to set up cell renderers in an icon view. */ #include #include enum { COL_TEXT, NUM_COLS }; static void fill_store (GtkListStore *store) { GtkTreeIter iter; const gchar *text[] = { "Red", "Green", "Blue", "Yellow" }; gint i; /* First clear the store */ gtk_list_store_clear (store); for (i = 0; i < 4; i++) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_TEXT, text[i], -1); } } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING); return store; } static void set_cell_color (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gchar *text; GdkRGBA color; guint32 pixel = 0; GdkPixbuf *pixbuf; gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1); if (!text) return; if (gdk_rgba_parse (&color, text)) pixel = ((gint)(color.red * 255)) << 24 | ((gint)(color.green * 255)) << 16 | ((gint)(color.blue * 255)) << 8 | ((gint)(color.alpha * 255)); g_free (text); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 24, 24); gdk_pixbuf_fill (pixbuf, pixel); g_object_set (cell, "pixbuf", pixbuf, NULL); g_object_unref (pixbuf); } static void edited (GtkCellRendererText *cell, gchar *path_string, gchar *text, gpointer data) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; model = gtk_icon_view_get_model (GTK_ICON_VIEW (data)); path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_TEXT, text, -1); gtk_tree_path_free (path); } GtkWidget * do_iconview_edit (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *icon_view; GtkListStore *store; GtkCellRenderer *renderer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); g_object_unref (store); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_SINGLE); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view), GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2); gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view), renderer, set_cell_color, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view), renderer, "text", COL_TEXT, NULL); gtk_container_add (GTK_CONTAINER (window), icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)grabbing_cursor.pngPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXK+W~ j+B, ֕ԕJu%)r՝tlT%VĶ4jF'Mft!`{{>\TOrMUUU1@KKp\oZE{{{B!+^KKK5###/TU= LHT(=>įۿ/taۛB 2ia{ws2 Ecc?*#S~0zۍ*="iX`0XHR~N2Z$p8JҵbIJ... eO6bp\\^^p8p477sxxXh$Yl0D$@ (DQ fCg)ijt\__tJ|$)VqL׎벝+UMMJn19Mpfff{zzZx<N瓟V:;;x<~}P._YYfhhh6U) ^ɟ===KWWWHYp-I҇_ttto߾ o(k ̯ZqWw \O_&ߕ@>+ʝ&IENDB`(uuay)expander.c/* Expander * * GtkExpander allows to provide additional content that is initially hidden. * This is also known as "disclosure triangle". * * This example also shows how to make the window resizable only if the expander * is expanded. */ #include #include static GtkWidget *window = NULL; static void response_cb (GtkDialog *dialog, gint response_id) { gtk_widget_destroy (window); window = NULL; } static void expander_cb (GtkExpander *expander, GParamSpec *pspec, GtkWindow *dialog) { gtk_window_set_resizable (dialog, gtk_expander_get_expanded (expander)); } static void do_not_expand (GtkWidget *child, gpointer data) { gtk_container_child_set (GTK_CONTAINER (gtk_widget_get_parent (child)), child, "expand", FALSE, "fill", FALSE, NULL); } GtkWidget * do_expander (GtkWidget *do_widget) { GtkWidget *toplevel; GtkWidget *area; GtkWidget *box; GtkWidget *expander; GtkWidget *sw; GtkWidget *tv; GtkTextBuffer *buffer; if (!window) { toplevel = gtk_widget_get_toplevel (do_widget); window = gtk_message_dialog_new_with_markup (GTK_WINDOW (toplevel), 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", "Something went wrong"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (window), "Here are some more details " "but not the full story."); area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (window)); box = gtk_widget_get_parent (area); gtk_container_child_set (GTK_CONTAINER (gtk_widget_get_parent (box)), box, "expand", TRUE, "fill", TRUE, NULL); gtk_container_foreach (GTK_CONTAINER (area), do_not_expand, NULL); expander = gtk_expander_new ("Details:"); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (sw), 100); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); tv = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); gtk_text_view_set_editable (GTK_TEXT_VIEW (tv), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (tv), GTK_WRAP_WORD); gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), "Finally, the full story with all details. " "And all the inside information, including " "error codes, etc etc. Pages of information, " "you might have to scroll down to read it all, " "or even resize the window - it works !\n" "A second paragraph will contain even more " "innuendo, just to make you scroll down or " "resize the window. Do it already !", -1); gtk_container_add (GTK_CONTAINER (sw), tv); gtk_container_add (GTK_CONTAINER (expander), sw); gtk_box_pack_end (GTK_BOX (area), expander, TRUE, TRUE, 0); gtk_widget_show_all (expander); g_signal_connect (expander, "notify::expanded", G_CALLBACK (expander_cb), window); g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)modelbutton.c3/* Model Button * * GtkModelButton is a button widget that is designed to be used with * a GAction as model. The button will adjust its appearance according * to the kind of action it is connected to. * * It is also possible to use GtkModelButton without a GAction. In this * case, you should set the "role" attribute yourself, and connect to the * "clicked" signal as you would for any other button. * * A common use of GtkModelButton is to implement menu-like content * in popovers. */ #include static void tool_clicked (GtkButton *button) { gboolean active; g_object_get (button, "active", &active, NULL); g_object_set (button, "active", !active, NULL); } GtkWidget * do_modelbutton (GtkWidget *do_widget) { static GtkWidget *window = NULL; static GActionEntry win_entries[] = { { "color", NULL, "s", "'red'", NULL }, { "chocolate", NULL, NULL, "true", NULL }, { "vanilla", NULL, NULL, "false", NULL }, { "sprinkles", NULL, NULL, NULL, NULL } }; if (!window) { GtkBuilder *builder; GActionGroup *actions; builder = gtk_builder_new_from_resource ("/modelbutton/modelbutton.ui"); gtk_builder_add_callback_symbol (builder, "tool_clicked", G_CALLBACK (tool_clicked)); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); actions = (GActionGroup*)g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), window); gtk_widget_insert_action_group (window, "win", actions); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)markup.txt Text sizes: tiny very small small normal large very large huge Text colors and backgrounds Colorful underlines and more Colorful strikethroughs Superscripts and subscripts: 𝜀0 = 𝜔𝜔𝜔... Letterspacing OpenType font features: feast versus feast Shortcuts: MonospaceBoldItalicBigSmallUnderlinedStrikethrough – Superscript – Subscript (uuay)decor1.pngCPNG  IHDRZGJLbKGD̿ pHYs  tIME7Iv IDATxwƿg݅,{/ *؍-kԘfDM7)Xbbb{WENy~̹s.KXM<|X;3w" gX"%=K| 1GV:wP.=!oZ3kҴ!ՇPdMfSzҟٙ QJG_ sϑV ĕ- ϝ:>Ҙ`f?㯕eVQe\one!ҟu@㥄" 4xY 0Tљ.bs5crV1yg# yGYG&BxD QEr4!Kۄ6UW8GxYI=1^*NjF;;lRC*^_UF:SC QTđ3E2x!9bB<vù&#|V$>^T0Z_q09.yE2xLɼIDlQC> ^9̬K#~7/b-^I.h$GSKwzRG5YBF2PQ3{?O(yF:0}؎hz^! e5gx~&I{7REP-lmM'AoZxv*UN|ܝx͒Y{9 )It >'ON?f9pnUyHLh$k)t P:dxT3(#mMzBcl T#"V0YLM36C@,673\'Hw=/ " ۰+0!*j+ɷp/ӕqqtB(wcCA) nk鯉 / yEVD\mWyQeثRFkD1UCdQV?Thum}U윮Qtf4dFMDJ niZ}QF ݠ7=J~^!|SWx](QB\;){WzQ+g@Dk еZi%نʃx-b "/xm`D|Aho  >VluVY,DHH(#絤.1W*#dYw5'#2Bdޗ'gjnсQgk۴pBq QLiKfd4^SBgbvB9yBtӂ%Bca#[IqX#[B{YٵX߭tVhfjfl͟4B37 m6fđ֑8Mq|(a=C5[}j&Xg/Uk~‚'71ۋÒ y- xLcnQyOqm6EsG rB[UZͬoƊ@}Wo1%m؂G\.BFyugXx;+CC4Z4\C_}O5X4J;hq?f=hlS¼֣JŊUaq4J_eJzv1q}榼[vulLQ͚?%oZtN1:ER1$9z~hdT@}Ko)ހd0eMcd4Ju&QxwMrЭ6꣜}Mj}{/ET:.C4v5{aZ`ʨU#F#ml/$uߪǯdHZ>7$Sl|Uקrp8ljDuXW=s223YFtd0CPӗo̟ToPWWY+YB 6Nҙ-ɾ@SEKF[{i&/ 9b\2Q%c#nSPFfI:}l=y U'UPܠPFji+ghݧ䅫Zm^odphH-{hOUk7ʊq$BIf[svJJN-Yz_qmmLEC)CEhA4ֱ꫼jվ:_75-`K/q;4{PM)#a]/k/ .PFhZBeNC-KWA: *;jцmD=*S^[W?˅|eU"*CkeZ&C.ԇ*ȃкt;_SKx= |NWVJh~YD'Bakᾤ>Bu+_,57>`^GuT&>{ɣ:Mu 䔨sW';t.zN4]5:'KT@#sTd(?ӺfwxiBy\o- Eg\ip%%ZIvCO[RE֢VO#BKYʓJ\~V}W1Q;*o 69}KzZk0Mr6q 6V)I1 <#=y:H!uK}QX3PĩD.֜bYb+uR]zld4D':ͨ( 7P;ǩ MymC[ AEȒdek~*Wiv͋;YdzNb9gүԀxEd)ܲ[02!"8;Hݬd`mZ~`SUN,Fkot/4RUؙd{B; חUZ}Y˸Ic ү0HW6p"iZR(&AV3CwBdE Ve4PzWeǰ+JExH5Y7:PFWwRiúVlVX*gu~B]pB`!Z,r#$&coTG+v NRbwatңRʩ>8P}U%J0׈*[UhrыJ3gK5$MgvqK*?E n?uz+fzUaʖ.uufTQ^ꪮSwuUGLV[t]TO|*gZmiګ]Pw[zp4+y+fp=P8Q䗖tYU0`hH9V<YcMQ7;Cw&zKBF5Kh_uK.\zٞԭQF}FP^&Woz~Kpj\Z9VVvәMMNh^) |檅X@YDL׷j|sS}rʦVdn1rd'R"^b5ѕ]9}gJm]̖c1c!bl#ؖ1=1&N"\WmeFr* &3ic5mwH٢.TSG1)ͻmxx|D̮| f\.> rtb 5] $]K men2cyud3SM#4'YE:2F01bj[V#* b^A^# óyaG`7yj]:$U,Ry:QCG:ҍ.! FM;59N[/KL"iZsdfQhBjښ93 2ڋ뾄vKZ 7 .o1٬d5,KO`fڀmO쎱-ЙΦiK*5c 7=ISZ)i=M9s|}Ϝku&>!#Cӛ}XN0!_-A&ʓf^+oXrR]MQ}I&(%D2KMTQݬ uFTn%MeN75PFغ{3I#OS}]5QbiN\\$O~%'gh`cŜӒQTꚞq ^"@F-k5mhN׳iH;؉#T12AVG74Ry"t ^`Ga Vy:ځ,G(ׅ^_i<c,/d"ۂiݖ/hJ~ %)[Kk*%v,ёzʃz,~ kJj2k`xEZIL<>UHHOҟtI]a1ư𩥳<Q.<K.WĹ0L~Sv 1&Ipi-?],Ϟ_e²bo hc_KZg@'Ƒ /h-!5$|"^KoL<䩡ݔg!#|<+%to߯Q)T涱3-oTIQ:mJBxmxb* iZ48?sfuLDb!db#ˉ?X;MlM-=!e  b Ķu)&W#$X~l.ֲzKN, IDATߤj᳇'"fXEڦ|>>n:Z'N'/i4,0$$ngV!pk8ij2MDI`Yy.]d$AOSea#>Y9Ү H\jr@=]H# za fL2W ҀG@C ֶ\I!뵨y}KEJ >12s/ɜ2>'"Jb @@yR<f@5Иwd"T[vSwZEW7nzY1gHn*2dغrSFiJsvq[;ʈu@h|j N!Vbҙ+iHdaEO ]g) O6i&V98yQM')"?1cgw1v^Fb꓂ɲ#۲5IwIKItV9N5Yj?XzQ"46{kze3uV<V&-C\r%)^Y>1^e*+mLibO0nx;T,gY]#gZ,]=[яu`VQms}U.:nr{ 1ZI)3x00sXi4,Pv8j[,}y iE@xd""` nmh2&? h#b(a0dɄj<RM굂I}tFeR`7#&S'c.60 3=G֡HV}zq)cӡf\g̒!dXށܑv2؜CyRl-ZX6reqq}0VRt)\+Z̴Lmu}9m9L/U8ҮǪS]rۨk4 * =22#QDie*m=:Ժ3NZU^#빠z)afײXF .Qtnj^-4Z+͑6m4{WeE;n'(mQo]ꪜPnPK{ 1xYh ;HD5Ymm&3 ^Cm iµ3O߽d1>jjZ6RL횦`n7v;ɳ ZE(4tϱcW +VWP2?+tˋd\X9gFnkgPY8UF9V6 LVg)hllaheZ[HU,{SN /WPN[U׾X[Cz$W 8MHkO*:Vu[=K+F}Cc]uXEkΚKt I9b-$_'ChW?Hj\w0;d &bⴠ0iqb[i"LU6-f&S}ׂgd)S$)دt#d&@xvrbVy&psQz<(j5Jtn:MG޿`E;OLSӴub fJ5˸G;0ճ4{a"%˨/{<;JUJh=WqZ\Hp+ K^Z.KӓE40`_0C >P9,!HD㸘&Y7ˣjK.$kbK{('zk3% C@kQ+P W^ns' yuzSVh? C]l)^eZn4HQZCլu'dtꉚ;kKU7װbȕӲqM#[V:\NOS-dK]8Nm$ 0Wi@4!KܓN<>r!{SE=?eJ\@8|ɅR)"M":2/ujdӷ~4.&B+688|1l +8,>>=6HZ/ p}15#6)ֳ+!ǒlM 18Ͻx9f.Iy5AOF u 6OuTVoB\nD! -.rP*U&}f2la"V#C2.`x2A+mmnEVwI Ɲ"2Jzt_ǁQ\@G]#7G0ʣ*]޳YӖkhuhzWy&ks!u}%SdV͏}A+p3iiڸbvV`'wT +BFYvXq:TI*2>Mkm |B`@l\@|2V-:7c"\jJM=z HܧIC<>OSi> !Ybi}Gd'" 'oI^v:cf{!bX[j>҆xr Ykw!CfRiI_7Ӎ@E(=n݆xǐ[LӍӶDw}”^m"q>Zy𩓶FK}8:RZ1kwHҲ (󄥲& mL)dQ {LBG&H m9f`˶8lҖ,v 3JI>E<÷F}ަi6ie M00lOƖYA%g| ZmI: zCT=Y70L_b݊1T3+Ltؤ2 1վG PGl~gV(eq(&pL]#Kmલ=ݩ婫w1ZMGu}*b YF&FkكN"d x@Nj@`gt7 ,qM=Hh dAa1قyBz2{ȓ.0>1U%SppԣBB@95 NZt˯rNjWM_pmBZc;O=*Hp}sn,m2AO1+Il+qh-a!p#|]x <ܭ.H_s@ہ[$8ܵvh?у'-q _~O91 TkH[ %8O<#Egi!i+?s< wC{$o+\GXdK3N8GyP&rt;_#+\㪼 is4S<51;bb|b rh'oB4 1qwyC;!t1 a#E-ɹk>H>A&)?a@LV̍uhGoA5`0 ts?Y;h7 >V}"2p?䳃Ɛ3bc "çCo1j_uh Ҟ!tv&³|.{7sMHk)oәSX=X^bdWttphytIbW2A WGP-^ųK98 iK|Oq8 ;\-ȓ@mkW yd(5/5Yw01xl]MLZVՒZiLh0zPm`oj촛roja[ Pϳrh;yy"N2riZE[X4$E4z5b% _"/ 5 f˩idF_\DvAZh2,d;P:у, pjK08|@xy e7DȇL"r[9q^H\Q` xa>8/HGv$si"1%@gGY}Csuh? 9XG409",ؒ83m~D"l' `<6pphsKk1L0uoЃz:p=@Gup804Sc(Pdr3kcyQ-j2TCдHQKI~J*&8jS暶H0BRvPvAڜX|[b.ě1d X0xOޮlrb킴R3s<;Ll}W9GlMG4rBN]CkCIzm8:]ѩZvJD<4ʿC;$m^3QmeAi}Gvii=VgVsm-L6vG_O95J88CX4|NI"I/9l,|a1N_}#WuTg&FdX> p]wiکGzMчZ VQC  ?mL~7L9B<ӑ00=i#̔Ӵ킴I 0i$p#|p<ĮTQCe.C"K-"x.zH =hbdه"@9~iI hٯCשaC-ǐa3Z9M R5*{iØ4`@5iKBF"XԒnEpӕBv T ZZ1RZ5mL1㸸gƱۦ E!@xDԹW=F<[i K%dv 6>d/Fe\G 0q0}4) 9}9#dxÓk$%3+ Q8e[3M5<oU#4&I׸Z oHq%Ya7Xj/,>KiRSe},H%3FI #A>@j%NrVp#njBOI1OO\"xH9E0, U-u"L)m+ $8b 3mݘ:+"6is%u DҺv!a^>⼯.-=TLIDATo{CPiUkEHHx~r!":^(aĝԩ]Pi+o>2EA.hY[7|5"bi-/* Benchmark/Fishbowl * * This demo models the fishbowl demos seen on the web in a GTK way. * It's also a neat little tool to see how fast your computer (or * your GTK version) is. */ #include #include "gtkfishbowl.h" GtkWidget *allow_changes; #define N_STATS 5 #define STATS_UPDATE_TIME G_USEC_PER_SEC typedef struct _Stats Stats; struct _Stats { gint64 last_stats; gint64 last_frame; gint last_suggestion; guint frame_counter_max; guint stats_index; guint frame_counter[N_STATS]; guint item_counter[N_STATS]; }; static Stats * get_stats (GtkWidget *widget) { static GQuark stats_quark = 0; Stats *stats; if (G_UNLIKELY (stats_quark == 0)) stats_quark = g_quark_from_static_string ("stats"); stats = g_object_get_qdata (G_OBJECT (widget), stats_quark); if (stats == NULL) { stats = g_new0 (Stats, 1); g_object_set_qdata_full (G_OBJECT (widget), stats_quark, stats, g_free); stats->last_frame = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); stats->last_stats = stats->last_frame; } return stats; } static void do_stats (GtkWidget *widget, GtkWidget *info_label, gint *suggested_change) { Stats *stats; gint64 frame_time; stats = get_stats (widget); frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); if (stats->last_stats + STATS_UPDATE_TIME < frame_time) { char *new_label; guint i, n_frames; n_frames = 0; for (i = 0; i < N_STATS; i++) { n_frames += stats->frame_counter[i]; } new_label = g_strdup_printf ("icons - %.1f fps", (double) G_USEC_PER_SEC * n_frames / (N_STATS * STATS_UPDATE_TIME)); gtk_label_set_label (GTK_LABEL (info_label), new_label); g_free (new_label); if (stats->frame_counter[stats->stats_index] >= 19 * stats->frame_counter_max / 20) { if (stats->last_suggestion > 0) stats->last_suggestion *= 2; else stats->last_suggestion = 1; } else { if (stats->last_suggestion < 0) stats->last_suggestion--; else stats->last_suggestion = -1; stats->last_suggestion = MAX (stats->last_suggestion, 1 - (int) stats->item_counter[stats->stats_index]); } stats->stats_index = (stats->stats_index + 1) % N_STATS; stats->frame_counter[stats->stats_index] = 0; stats->item_counter[stats->stats_index] = stats->item_counter[(stats->stats_index + N_STATS - 1) % N_STATS]; stats->last_stats = frame_time; if (suggested_change) *suggested_change = stats->last_suggestion; else stats->last_suggestion = 0; } else { if (suggested_change) *suggested_change = 0; } stats->last_frame = frame_time; stats->frame_counter[stats->stats_index]++; stats->frame_counter_max = MAX (stats->frame_counter_max, stats->frame_counter[stats->stats_index]); } static void stats_update (GtkWidget *widget) { Stats *stats; stats = get_stats (widget); stats->item_counter[stats->stats_index] = gtk_fishbowl_get_count (GTK_FISHBOWL (widget)); } static gboolean move_fish (GtkWidget *bowl, GdkFrameClock *frame_clock, gpointer info_label) { gint suggested_change = 0; do_stats (bowl, info_label, !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (allow_changes)) ? &suggested_change : NULL); gtk_fishbowl_set_count (GTK_FISHBOWL (bowl), gtk_fishbowl_get_count (GTK_FISHBOWL (bowl)) + suggested_change); stats_update (bowl); return G_SOURCE_CONTINUE; } GtkWidget * do_fishbowl (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; GtkWidget *bowl, *info_label; g_type_ensure (GTK_TYPE_FISHBOWL); builder = gtk_builder_new_from_resource ("/fishbowl/fishbowl.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); bowl = GTK_WIDGET (gtk_builder_get_object (builder, "bowl")); info_label = GTK_WIDGET (gtk_builder_get_object (builder, "info_label")); allow_changes = GTK_WIDGET (gtk_builder_get_object (builder, "changes_allow")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_widget_realize (window); gtk_widget_add_tick_callback (bowl, move_fish, info_label, NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)modelbutton.ui> 1 1 Model Button 1 vertical 80 1 thing_a 1 Color 1 1 thing_b 1 Flavors 1 1 thing_c 1 Tools 1 1 10 vertical 1 win.color 'red' Red 1 1 win.color 'green' Green 1 1 win.color 'blue' Blue 1 1 10 vertical 10 1 win.chocolate Chocolate 1 win.vanilla Vanilla 1 1 win.sprinkles Add Sprinkles 1 10 vertical 10 1 Hammer check 1 Screwdriver check 1 Drill check (uuay)editable_cells.cf./* Tree View/Editable Cells * * This demo demonstrates the use of editable cells in a GtkTreeView. If * you're new to the GtkTreeView widgets and associates, look into * the GtkListStore example first. It also shows how to use the * GtkCellRenderer::editing-started signal to do custom setup of the * editable widget. * * The cell renderers used in this demo are GtkCellRendererText, * GtkCellRendererCombo and GtkCellRendererProgress. */ #include #include #include typedef struct { gint number; gchar *product; gint yummy; } Item; enum { COLUMN_ITEM_NUMBER, COLUMN_ITEM_PRODUCT, COLUMN_ITEM_YUMMY, NUM_ITEM_COLUMNS }; enum { COLUMN_NUMBER_TEXT, NUM_NUMBER_COLUMNS }; static GArray *articles = NULL; static void add_items (void) { Item foo; g_return_if_fail (articles != NULL); foo.number = 3; foo.product = g_strdup ("bottles of coke"); foo.yummy = 20; g_array_append_vals (articles, &foo, 1); foo.number = 5; foo.product = g_strdup ("packages of noodles"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); foo.number = 2; foo.product = g_strdup ("packages of chocolate chip cookies"); foo.yummy = 90; g_array_append_vals (articles, &foo, 1); foo.number = 1; foo.product = g_strdup ("can vanilla ice cream"); foo.yummy = 60; g_array_append_vals (articles, &foo, 1); foo.number = 6; foo.product = g_strdup ("eggs"); foo.yummy = 10; g_array_append_vals (articles, &foo, 1); } static GtkTreeModel * create_items_model (void) { gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create array */ articles = g_array_sized_new (FALSE, FALSE, sizeof (Item), 1); add_items (); /* create list store */ model = gtk_list_store_new (NUM_ITEM_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN); /* add items */ for (i = 0; i < articles->len; i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_ITEM_NUMBER, g_array_index (articles, Item, i).number, COLUMN_ITEM_PRODUCT, g_array_index (articles, Item, i).product, COLUMN_ITEM_YUMMY, g_array_index (articles, Item, i).yummy, -1); } return GTK_TREE_MODEL (model); } static GtkTreeModel * create_numbers_model (void) { #define N_NUMBERS 10 gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create list store */ model = gtk_list_store_new (NUM_NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_INT); /* add numbers */ for (i = 0; i < N_NUMBERS; i++) { char str[2]; str[0] = '0' + i; str[1] = '\0'; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_NUMBER_TEXT, str, -1); } return GTK_TREE_MODEL (model); #undef N_NUMBERS } static void add_item (GtkWidget *button, gpointer data) { Item foo; GtkTreeIter current, iter; GtkTreePath *path; GtkTreeModel *model; GtkTreeViewColumn *column; GtkTreeView *treeview = (GtkTreeView *)data; g_return_if_fail (articles != NULL); foo.number = 0; foo.product = g_strdup ("Description here"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); /* Insert a new row below the current one */ gtk_tree_view_get_cursor (treeview, &path, NULL); model = gtk_tree_view_get_model (treeview); if (path) { gtk_tree_model_get_iter (model, ¤t, path); gtk_tree_path_free (path); gtk_list_store_insert_after (GTK_LIST_STORE (model), &iter, ¤t); } else { gtk_list_store_insert (GTK_LIST_STORE (model), &iter, -1); } /* Set the data for the new row */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_ITEM_NUMBER, foo.number, COLUMN_ITEM_PRODUCT, foo.product, COLUMN_ITEM_YUMMY, foo.yummy, -1); /* Move focus to the new row */ path = gtk_tree_model_get_path (model, &iter); column = gtk_tree_view_get_column (treeview, 0); gtk_tree_view_set_cursor (treeview, path, column, FALSE); gtk_tree_path_free (path); } static void remove_item (GtkWidget *widget, gpointer data) { GtkTreeIter iter; GtkTreeView *treeview = (GtkTreeView *)data; GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { gint i; GtkTreePath *path; path = gtk_tree_model_get_path (model, &iter); i = gtk_tree_path_get_indices (path)[0]; gtk_list_store_remove (GTK_LIST_STORE (model), &iter); g_array_remove_index (articles, i); gtk_tree_path_free (path); } } static gboolean separator_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint idx; path = gtk_tree_model_get_path (model, iter); idx = gtk_tree_path_get_indices (path)[0]; gtk_tree_path_free (path); return idx == 5; } static void editing_started (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path, gpointer data) { gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable), separator_row, NULL, NULL); } static void cell_edited (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); switch (column) { case COLUMN_ITEM_NUMBER: { gint i; i = gtk_tree_path_get_indices (path)[0]; g_array_index (articles, Item, i).number = atoi (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).number, -1); } break; case COLUMN_ITEM_PRODUCT: { gint i; gchar *old_text; gtk_tree_model_get (model, &iter, column, &old_text, -1); g_free (old_text); i = gtk_tree_path_get_indices (path)[0]; g_free (g_array_index (articles, Item, i).product); g_array_index (articles, Item, i).product = g_strdup (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).product, -1); } break; } gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview, GtkTreeModel *items_model, GtkTreeModel *numbers_model) { GtkCellRenderer *renderer; /* number column */ renderer = gtk_cell_renderer_combo_new (); g_object_set (renderer, "model", numbers_model, "text-column", COLUMN_NUMBER_TEXT, "has-entry", FALSE, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_signal_connect (renderer, "editing-started", G_CALLBACK (editing_started), NULL); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_NUMBER)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Number", renderer, "text", COLUMN_ITEM_NUMBER, NULL); /* product column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_PRODUCT)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Product", renderer, "text", COLUMN_ITEM_PRODUCT, NULL); /* yummy column */ renderer = gtk_cell_renderer_progress_new (); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_YUMMY)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Yummy", renderer, "value", COLUMN_ITEM_YUMMY, NULL); } GtkWidget * do_editable_cells (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *sw; GtkWidget *treeview; GtkWidget *button; GtkTreeModel *items_model; GtkTreeModel *numbers_model; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editable Cells"); gtk_container_set_border_width (GTK_CONTAINER (window), 5); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Shopping list (you can edit the cells!)"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create models */ items_model = create_items_model (); numbers_model = create_numbers_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (items_model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_SINGLE); add_columns (GTK_TREE_VIEW (treeview), items_model, numbers_model); g_object_unref (numbers_model); g_object_unref (items_model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* some buttons */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Add item"); g_signal_connect (button, "clicked", G_CALLBACK (add_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Remove item"); g_signal_connect (button, "clicked", G_CALLBACK (remove_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_window_set_default_size (GTK_WINDOW (window), 320, 200); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)gnome-gmush.png PNG  IHDR00WgAMA1_ cIDATx[$YNU{{qlbK"1R2QL B ͑xKH<8h`@/+lǻk{޹LwOwuu9UU }|O/}O ĭh(.]X}[W; <_^qƜȄX02#Lcŕ+kzk\Gw}?Ǔp2&N1iFuvIuvr;\{ |鯭4ӉQXd֐KRg5֊VCFϾ'CLXpzWGɬa0걺&=Y*_K+ǎ羓c̘I(c9\{k-)vGC$h 88K__xWWgW't-" .XLvb+Ng0Ƣ2Eeh8kqIz]T2Gd6%"@nY>| `oFX^=vxƚek-ΝEj @f22kU|as <5d$Z-~@RcF޴,:ۼ|GzrTfIZ!|: 8p 91a@Jߗx+6][=Ӧj>pOn_" bc3?ϛukO!DQkuffZlnl> RiΟybҌԦh2 Gl.hxW^wMDŽ " C(Bk &;;=]u4 ֮T*:œqfKssdWw>?v۝}tZ$nR*?x {!koƯ-?ܳ{rHNSGvIRa8  ~#&qL$R0ers7h$NXťuV$J&WrX._M9<|ߗ~K)58ILb,Zn#ʼni$ J}y`1j s*qȷomR)v{sp/oH?[~qX!RJj*RqOiA)d2A)E$ycZs 9GZ%X\gqao.κ<=stؗŷD>Rz{D)>t|cDQDE$IB) jlr!.-h68r mh6:O|=|?k8VۯGkY$ Ks$Ii2 DQD(A0;3#8~|޲Gfnрtww|LN\B<[?~+? q;h6xO|| \),T*cPJ!GUG @NI!:>rC t]qB̀f3'G'~~OwָcJBeH)B0L}BCkspFYufm_]^!tuG/4GK9RT*8Bnׅ!ֲHE0Dx<RzD⯟},BxX~+~u2c}U/dxkR1뽑V@D¿)i>ed!0 ihQJM H)WIFfIoZGn&js\*x-'FkHd$v>iRΎ1fZE'2zkܠ9Ph-'PX,0Okb–IL&&;|7W 9rUˣ_ρmw#$I SZk8- $sV2[/H)d$J81Sŗ <.diZOZ_rљ#Ϝ9R 9HӔ4M}cJGQV[l4K`MI&|^B»x. Each time * a different hardware device is used to move the pointer, the * master device will be updated to match the axes it provides, * these changes can be tracked through GdkDevice::changed, or * checking gdk_event_get_source_device(). * * On the other hand, this demo handles basic multitouch events, * each event coming from an specific touchpoint will contain a * GdkEventSequence that's unique for its lifetime, so multiple * touchpoints can be tracked. */ #include #include typedef struct { GdkDevice *last_source; GdkDeviceTool *last_tool; gdouble *axes; GdkRGBA color; gdouble x; gdouble y; } AxesInfo; typedef struct { GHashTable *pointer_info; /* GdkDevice -> AxesInfo */ GHashTable *touch_info; /* GdkEventSequence -> AxesInfo */ } EventData; const gchar *colors[] = { "black", "orchid", "fuchsia", "indigo", "thistle", "sienna", "azure", "plum", "lime", "navy", "maroon", "burlywood" }; static GtkPadActionEntry pad_actions[] = { { GTK_PAD_ACTION_BUTTON, 1, -1, N_("Nuclear strike"), "pad.nuke" }, { GTK_PAD_ACTION_BUTTON, 2, -1, N_("Release siberian methane reserves"), "pad.heat" }, { GTK_PAD_ACTION_BUTTON, 3, -1, N_("Release solar flare"), "pad.fry" }, { GTK_PAD_ACTION_BUTTON, 4, -1, N_("De-stabilize Oort cloud"), "pad.fall" }, { GTK_PAD_ACTION_BUTTON, 5, -1, N_("Ignite WR-104"), "pad.burst" }, { GTK_PAD_ACTION_BUTTON, 6, -1, N_("Lart whoever asks about this button"), "pad.lart" }, { GTK_PAD_ACTION_RING, -1, -1, N_("Earth axial tilt"), "pad.tilt" }, { GTK_PAD_ACTION_STRIP, -1, -1, N_("Extent of weak nuclear force"), "pad.dissolve" }, }; static const gchar *pad_action_results[] = { "☢", "♨", "☼", "☄", "⚡", "💫", "◑", "⚛" }; static guint cur_color = 0; static guint pad_action_timeout_id = 0; static AxesInfo * axes_info_new (void) { AxesInfo *info; info = g_new0 (AxesInfo, 1); gdk_rgba_parse (&info->color, colors[cur_color]); cur_color = (cur_color + 1) % G_N_ELEMENTS (colors); return info; } static EventData * event_data_new (void) { EventData *data; data = g_new0 (EventData, 1); data->pointer_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_free); data->touch_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_free); return data; } static void event_data_free (EventData *data) { g_hash_table_destroy (data->pointer_info); g_hash_table_destroy (data->touch_info); g_free (data); } static void update_axes_from_event (GdkEvent *event, EventData *data) { GdkDevice *device, *source_device; GdkEventSequence *sequence; GdkDeviceTool *tool; gdouble x, y; AxesInfo *info; device = gdk_event_get_device (event); source_device = gdk_event_get_source_device (event); sequence = gdk_event_get_event_sequence (event); tool = gdk_event_get_device_tool (event); if (event->type == GDK_TOUCH_END || event->type == GDK_TOUCH_CANCEL) { g_hash_table_remove (data->touch_info, sequence); return; } else if (event->type == GDK_LEAVE_NOTIFY) { g_hash_table_remove (data->pointer_info, device); return; } if (!sequence) { info = g_hash_table_lookup (data->pointer_info, device); if (!info) { info = axes_info_new (); g_hash_table_insert (data->pointer_info, device, info); } } else { info = g_hash_table_lookup (data->touch_info, sequence); if (!info) { info = axes_info_new (); g_hash_table_insert (data->touch_info, sequence, info); } } if (info->last_source != source_device) info->last_source = source_device; if (info->last_tool != tool) info->last_tool = tool; g_clear_pointer (&info->axes, g_free); if (event->type == GDK_TOUCH_BEGIN || event->type == GDK_TOUCH_UPDATE) { if (sequence && event->touch.emulating_pointer) g_hash_table_remove (data->pointer_info, device); } if (event->type == GDK_MOTION_NOTIFY) { info->axes = g_memdup (event->motion.axes, sizeof (gdouble) * gdk_device_get_n_axes (source_device)); } else if (event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) { info->axes = g_memdup (event->button.axes, sizeof (gdouble) * gdk_device_get_n_axes (source_device)); } if (gdk_event_get_coords (event, &x, &y)) { info->x = x; info->y = y; } } static gboolean event_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { update_axes_from_event (event, user_data); gtk_widget_queue_draw (widget); return FALSE; } static void render_arrow (cairo_t *cr, gdouble x_diff, gdouble y_diff, const gchar *label) { cairo_save (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_new_path (cr); cairo_move_to (cr, 0, 0); cairo_line_to (cr, x_diff, y_diff); cairo_stroke (cr); cairo_move_to (cr, x_diff, y_diff); cairo_show_text (cr, label); cairo_restore (cr); } static void draw_axes_info (cairo_t *cr, AxesInfo *info, GtkAllocation *allocation) { gdouble pressure, tilt_x, tilt_y, distance, wheel, rotation, slider; GdkAxisFlags axes = gdk_device_get_axes (info->last_source); cairo_save (cr); cairo_set_line_width (cr, 1); gdk_cairo_set_source_rgba (cr, &info->color); cairo_move_to (cr, 0, info->y); cairo_line_to (cr, allocation->width, info->y); cairo_move_to (cr, info->x, 0); cairo_line_to (cr, info->x, allocation->height); cairo_stroke (cr); cairo_translate (cr, info->x, info->y); if (!info->axes) { cairo_restore (cr); return; } if (axes & GDK_AXIS_FLAG_PRESSURE) { cairo_pattern_t *pattern; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_PRESSURE, &pressure); pattern = cairo_pattern_create_radial (0, 0, 0, 0, 0, 100); cairo_pattern_add_color_stop_rgba (pattern, pressure, 1, 0, 0, pressure); cairo_pattern_add_color_stop_rgba (pattern, 1, 0, 0, 1, 0); cairo_set_source (cr, pattern); cairo_arc (cr, 0, 0, 100, 0, 2 * G_PI); cairo_fill (cr); cairo_pattern_destroy (pattern); } if (axes & GDK_AXIS_FLAG_XTILT && axes & GDK_AXIS_FLAG_YTILT) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_XTILT, &tilt_x); gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_YTILT, &tilt_y); render_arrow (cr, tilt_x * 100, tilt_y * 100, "Tilt"); } if (axes & GDK_AXIS_FLAG_DISTANCE) { double dashes[] = { 5.0, 5.0 }; cairo_text_extents_t extents; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_DISTANCE, &distance); cairo_save (cr); cairo_move_to (cr, distance * 100, 0); cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_set_dash (cr, dashes, 2, 0.0); cairo_arc (cr, 0, 0, distance * 100, 0, 2 * G_PI); cairo_stroke (cr); cairo_move_to (cr, 0, -distance * 100); cairo_text_extents (cr, "Distance", &extents); cairo_rel_move_to (cr, -extents.width / 2, 0); cairo_show_text (cr, "Distance"); cairo_move_to (cr, 0, 0); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_WHEEL) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_WHEEL, &wheel); cairo_save (cr); cairo_set_line_width (cr, 10); cairo_set_source_rgba (cr, 0, 0, 0, 0.5); cairo_new_sub_path (cr); cairo_arc (cr, 0, 0, 100, 0, wheel * 2 * G_PI); cairo_stroke (cr); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_ROTATION) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_ROTATION, &rotation); rotation *= 2 * G_PI; cairo_save (cr); cairo_rotate (cr, - G_PI / 2); cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); cairo_set_line_width (cr, 5); cairo_new_sub_path (cr); cairo_arc (cr, 0, 0, 100, 0, rotation); cairo_stroke (cr); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_SLIDER) { cairo_pattern_t *pattern, *mask; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_SLIDER, &slider); cairo_save (cr); cairo_move_to (cr, 0, -10); cairo_rel_line_to (cr, 0, -50); cairo_rel_line_to (cr, 10, 0); cairo_rel_line_to (cr, -5, 50); cairo_close_path (cr); cairo_clip_preserve (cr); pattern = cairo_pattern_create_linear (0, -10, 0, -60); cairo_pattern_add_color_stop_rgb (pattern, 0, 0, 1, 0); cairo_pattern_add_color_stop_rgb (pattern, 1, 1, 0, 0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); mask = cairo_pattern_create_linear (0, -10, 0, -60); cairo_pattern_add_color_stop_rgba (mask, 0, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgba (mask, slider, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgba (mask, slider, 0, 0, 0, 0); cairo_pattern_add_color_stop_rgba (mask, 1, 0, 0, 0, 0); cairo_mask (cr, mask); cairo_pattern_destroy (mask); cairo_set_source_rgb (cr, 0, 0, 0); cairo_stroke (cr); cairo_restore (cr); } cairo_restore (cr); } static const gchar * tool_type_to_string (GdkDeviceToolType tool_type) { switch (tool_type) { case GDK_DEVICE_TOOL_TYPE_PEN: return "Pen"; case GDK_DEVICE_TOOL_TYPE_ERASER: return "Eraser"; case GDK_DEVICE_TOOL_TYPE_BRUSH: return "Brush"; case GDK_DEVICE_TOOL_TYPE_PENCIL: return "Pencil"; case GDK_DEVICE_TOOL_TYPE_AIRBRUSH: return "Airbrush"; case GDK_DEVICE_TOOL_TYPE_MOUSE: return "Mouse"; case GDK_DEVICE_TOOL_TYPE_LENS: return "Lens cursor"; case GDK_DEVICE_TOOL_TYPE_UNKNOWN: default: return "Unknown"; } } static void draw_device_info (GtkWidget *widget, cairo_t *cr, GdkEventSequence *sequence, gint *y, AxesInfo *info) { PangoLayout *layout; GString *string; gint height; cairo_save (cr); string = g_string_new (NULL); g_string_append_printf (string, "Source: %s", gdk_device_get_name (info->last_source)); if (sequence) g_string_append_printf (string, "\nSequence: %d", GPOINTER_TO_UINT (sequence)); if (info->last_tool) { const gchar *tool_type; guint64 serial; tool_type = tool_type_to_string (gdk_device_tool_get_tool_type (info->last_tool)); serial = gdk_device_tool_get_serial (info->last_tool); g_string_append_printf (string, "\nTool: %s", tool_type); if (serial != 0) g_string_append_printf (string, ", Serial: %lx", serial); } cairo_move_to (cr, 10, *y); layout = gtk_widget_create_pango_layout (widget, string->str); pango_cairo_show_layout (cr, layout); cairo_stroke (cr); pango_layout_get_pixel_size (layout, NULL, &height); gdk_cairo_set_source_rgba (cr, &info->color); cairo_set_line_width (cr, 10); cairo_move_to (cr, 0, *y); *y = *y + height; cairo_line_to (cr, 0, *y); cairo_stroke (cr); cairo_restore (cr); g_object_unref (layout); g_string_free (string, TRUE); } static gboolean draw_cb (GtkWidget *widget, cairo_t *cr, gpointer user_data) { EventData *data = user_data; GtkAllocation allocation; AxesInfo *info; GHashTableIter iter; gpointer key, value; gint y = 0; gtk_widget_get_allocation (widget, &allocation); /* Draw Abs info */ g_hash_table_iter_init (&iter, data->pointer_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_axes_info (cr, info, &allocation); } g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_axes_info (cr, info, &allocation); } /* Draw name, color legend and misc data */ g_hash_table_iter_init (&iter, data->pointer_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_device_info (widget, cr, NULL, &y, info); } g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, &key, &value)) { info = value; draw_device_info (widget, cr, key, &y, info); } return FALSE; } static void update_label_text (GtkWidget *label, const gchar *text) { gchar *markup = NULL; if (text) markup = g_strdup_printf ("%s", text); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); } static gboolean reset_label_text_timeout_cb (gpointer user_data) { GtkWidget *label = user_data; update_label_text (label, NULL); pad_action_timeout_id = 0; return G_SOURCE_REMOVE; } static void update_label_and_timeout (GtkWidget *label, const gchar *text) { if (pad_action_timeout_id) g_source_remove (pad_action_timeout_id); update_label_text (label, text); pad_action_timeout_id = g_timeout_add (200, reset_label_text_timeout_cb, label); } static void on_action_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *label = user_data; const gchar *result; gchar *str; result = g_object_get_data (G_OBJECT (action), "action-result"); if (!parameter) update_label_and_timeout (label, result); else { str = g_strdup_printf ("%s %.2f", result, g_variant_get_double (parameter)); update_label_and_timeout (label, str); g_free (str); } } static void init_pad_controller (GtkWidget *window, GtkWidget *label) { GtkPadController *pad_controller; GSimpleActionGroup *action_group; GSimpleAction *action; gint i; action_group = g_simple_action_group_new (); pad_controller = gtk_pad_controller_new (GTK_WINDOW (window), G_ACTION_GROUP (action_group), NULL); for (i = 0; i < G_N_ELEMENTS (pad_actions); i++) { if (pad_actions[i].type == GTK_PAD_ACTION_BUTTON) { action = g_simple_action_new (pad_actions[i].action_name, NULL); } else { action = g_simple_action_new_stateful (pad_actions[i].action_name, G_VARIANT_TYPE_DOUBLE, NULL); } g_signal_connect (action, "activate", G_CALLBACK (on_action_activate), label); g_object_set_data (G_OBJECT (action), "action-result", (gpointer) pad_action_results[i]); g_action_map_add_action (G_ACTION_MAP (action_group), G_ACTION (action)); g_object_unref (action); } gtk_pad_controller_set_action_entries (pad_controller, pad_actions, G_N_ELEMENTS (pad_actions)); g_object_set_data_full (G_OBJECT (window), "pad-controller", pad_controller, g_object_unref); g_object_unref (action_group); } GtkWidget * do_event_axes (GtkWidget *toplevel) { static GtkWidget *window = NULL; EventData *event_data; GtkWidget *box, *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Event Axes"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_set_support_multidevice (box, TRUE); gtk_widget_add_events (box, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SMOOTH_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_TOUCH_MASK); event_data = event_data_new (); g_object_set_data_full (G_OBJECT (box), "gtk-demo-event-data", event_data, (GDestroyNotify) event_data_free); g_signal_connect (box, "event", G_CALLBACK (event_cb), event_data); g_signal_connect (box, "draw", G_CALLBACK (draw_cb), event_data); label = gtk_label_new (""); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_container_add (GTK_CONTAINER (box), label); init_pad_controller (window, label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)ns_resize_cursor.pngPNG  IHDR szzsBIT|d pHYsnn^tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3`IDATX͖]H[g9mY0cV"!*pl݊FpK/:vūy~ƛ(W ^ -!qgIV=rr~ɛ/ps$,k C*_P@|197niKĝi9,˴|9sN@TSSC<ǯ_>r9wsz#^O׮]$%rov; "Q1F߿c؉IT@k9vtTQQA1(Ree% r\޳HTPȖjRT$B<7c$"tb rf,˲S0ĭ[ nÇ뱱1tuu寵Z-ŞݼysnD(p#.V&I51"zzzچp8.\[[[3Ƹ $%FFFY]],@SS6 Ȭv!_Kլo_HRΪRu%ᬱ2E1 `.?bGHЕgAdYC y@>P_$77o\E3}P&~(HDJ$ E<Oe9V=;55e>c4*@e"(шJrs2tSZmpKdY>̡8{Us$|d"YCVhڂ( _ZZ]\ @{ bX(F&T<, % rItj~EJ$޽{%I1T[@M__g^w)---%Jݻw3l /xl6z=`Pioo/R*wy ۿ4 )&jt:o߾^T B4ir:GN_B`8v9?\9m mmm 22ڱ1io##Ȝ(@Ntv KCRIENDB`(uuay)glarea/M4v"gnome-applets.png PNG  IHDR00WgAMA abKGD pHYs``zxEtIME ( IDATxYuګg㐢9ҖdkMіI@ӒF 'P q^b=F I6<Yk I @L٢hQ#҈Ԉξw5}(e<) ={#qs$L.KgK v\&H a-'r#pUVW cs1,'og])6˽~ @c[ : (&POsp3_:z|dxp4Ȓ4':NZeMo}ߘ]XY3B|y@.ρ|sy޽_$,H( <ϱ]vX[>G/nN(9&P*/=ra0**,!!IRB_쯹 +baGRR/dS*?{ķ+}5,)nj]R7 4%Mb$%NRUS/.Cȥw}TT*S)K覉a訪,ɿ$4!c8!c8ŕ;%l3j>?w\R*)U*eR4Q5EQd.$邕}(8ˆLKzk}}^o| Ǟ{_꺎ii J ib)2 ,S)Ұt+N9voinʲhF ,Q*WɃYӻ໱/ ,QT$uMes;B6x@Ldp edY)2cPUwH2xId Y\'N*$2YzRra/ۥ'}x"K3,#R,,f4%C|&+!4#R$EcyI(Wpz`Rӿ*2 {AަXS#it2EDa@xv| €(KӘ$Iӄ4MIqyxq7/ӱ]TMR.?݌mj8ꮰQݕw\s|}K" C(&j54z^z;Flj☡a\Ͽ/xAډHdOA@{xظݱpm ױ|;>( g}}3gޣ^gV\,rIݮ= +]iE!Bs=_feNt=/~SJ uD*] U(Cǧ/ֱ]xg"e]iJr|qXZ\4?ȓ?JLN& >]CܵGf׮a'2,bychl!{>A!I8V==X6M�{8*f9 xWJ%Iqˬ?ÿ4X= I,ϒ)aF1AA1iS2M8V#lľW_}N`nvCCyȲ Ο'==? ʪ!q#2%äJozw}yusl^[[[a RNZ1l{ &'%BR 45$&Ŭq% $ } ZZ\4c>{`˲fFFF5A (lvnzSo}͖mwszr;BAk*"$ i"+2*aP_K˫/ߚ8juj'F!%{T;%IUUZa*W):r0體 RVjhɩ19nZoO>.^n(HpZFFmfQ{l CM쯡j*#JwKt72y?\v♶ ' m멅# V,ˆg C3TEsuM!YQU)#m+_܈?%! @C^>kR(uc3e՞]lA_x)n/o+uhZQ`Q,<liOU cg7yA|527]B9p @xq bo?ڧE~p{ ցtc Ř5.a[A}/ ef b\GYD@6$-<E/E,E=<VD8q//.!<+dM`PV<}Cvwb}HB&*za+9B{z4zQ$Pr8C7ze^)|oթ {y շX~o$QajmӢ "EBbxvPZs|EkS؎%_X{.^52* @NwBhJiO{]XdZ8'Z O YG2Ad;@zooAkIENDB`(uuay)css_basics.c/* Theming/CSS Basics * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_basics (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "CSS Basics"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_basics/css_basics.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)listbox.c0/* List Box * * GtkListBox allows lists with complicated layouts, using * regular widgets supporting sorting and filtering. * */ #include #include #include static GdkPixbuf *avatar_pixbuf_other; static GtkWidget *window = NULL; #define GTK_TYPE_MESSAGE (gtk_message_get_type ()) #define GTK_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_CAST ((message), GTK_TYPE_MESSAGE, GtkMessage)) #define GTK_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_IS_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_TYPE ((message), GTK_TYPE_MESSAGE)) #define GTK_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE)) #define GTK_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_TYPE_MESSAGE_ROW (gtk_message_row_get_type ()) #define GTK_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_CAST ((message_row), GTK_TYPE_MESSAGE_ROW, GtkMessageRow)) #define GTK_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) #define GTK_IS_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_TYPE ((message_row), GTK_TYPE_MESSAGE_ROW)) #define GTK_IS_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE_ROW)) #define GTK_MESSAGE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) typedef struct _GtkMessage GtkMessage; typedef struct _GtkMessageClass GtkMessageClass; typedef struct _GtkMessageRow GtkMessageRow; typedef struct _GtkMessageRowClass GtkMessageRowClass; typedef struct _GtkMessageRowPrivate GtkMessageRowPrivate; struct _GtkMessage { GObject parent; guint id; char *sender_name; char *sender_nick; char *message; gint64 time; guint reply_to; char *resent_by; int n_favorites; int n_reshares; }; struct _GtkMessageClass { GObjectClass parent_class; }; struct _GtkMessageRow { GtkListBoxRow parent; GtkMessageRowPrivate *priv; }; struct _GtkMessageRowClass { GtkListBoxRowClass parent_class; }; struct _GtkMessageRowPrivate { GtkMessage *message; GtkRevealer *details_revealer; GtkImage *avatar_image; GtkWidget *extra_buttons_box; GtkLabel *content_label; GtkLabel *source_name; GtkLabel *source_nick; GtkLabel *short_time_label; GtkLabel *detailed_time_label; GtkBox *resent_box; GtkLinkButton *resent_by_button; GtkLabel *n_favorites_label; GtkLabel *n_reshares_label; GtkButton *expand_button; }; GType gtk_message_get_type (void) G_GNUC_CONST; GType gtk_message_row_get_type (void) G_GNUC_CONST; G_DEFINE_TYPE (GtkMessage, gtk_message, G_TYPE_OBJECT); static void gtk_message_finalize (GObject *obj) { GtkMessage *msg = GTK_MESSAGE (obj); g_free (msg->sender_name); g_free (msg->sender_nick); g_free (msg->message); g_free (msg->resent_by); G_OBJECT_CLASS (gtk_message_parent_class)->finalize (obj); } static void gtk_message_class_init (GtkMessageClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gtk_message_finalize; } static void gtk_message_init (GtkMessage *msg) { } static void gtk_message_parse (GtkMessage *msg, const char *str) { char **strv; int i; strv = g_strsplit (str, "|", 0); i = 0; msg->id = strtol (strv[i++], NULL, 10); msg->sender_name = g_strdup (strv[i++]); msg->sender_nick = g_strdup (strv[i++]); msg->message = g_strdup (strv[i++]); msg->time = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->reply_to = strtol (strv[i++], NULL, 10); if (strv[i]) { if (*strv[i]) msg->resent_by = g_strdup (strv[i]); i++; if (strv[i]) { msg->n_favorites = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->n_reshares = strtol (strv[i++], NULL, 10); } } } } g_strfreev (strv); } static GtkMessage * gtk_message_new (const char *str) { GtkMessage *msg; msg = g_object_new (gtk_message_get_type (), NULL); gtk_message_parse (msg, str); return msg; } G_DEFINE_TYPE_WITH_PRIVATE (GtkMessageRow, gtk_message_row, GTK_TYPE_LIST_BOX_ROW); static void gtk_message_row_update (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; GDateTime *t; char *s; gtk_label_set_text (priv->source_name, priv->message->sender_name); gtk_label_set_text (priv->source_nick, priv->message->sender_nick); gtk_label_set_text (priv->content_label, priv->message->message); t = g_date_time_new_from_unix_utc (priv->message->time); s = g_date_time_format (t, "%e %b %y"); gtk_label_set_text (priv->short_time_label, s); g_free (s); s = g_date_time_format (t, "%X - %e %b %Y"); gtk_label_set_text (priv->detailed_time_label, s); g_free (s); g_date_time_unref (t); gtk_widget_set_visible (GTK_WIDGET(priv->n_favorites_label), priv->message->n_favorites != 0); s = g_strdup_printf ("%d\nFavorites", priv->message->n_favorites); gtk_label_set_markup (priv->n_favorites_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET(priv->n_reshares_label), priv->message->n_reshares != 0); s = g_strdup_printf ("%d\nReshares", priv->message->n_reshares); gtk_label_set_markup (priv->n_reshares_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET (priv->resent_box), priv->message->resent_by != NULL); if (priv->message->resent_by) gtk_button_set_label (GTK_BUTTON (priv->resent_by_button), priv->message->resent_by); if (strcmp (priv->message->sender_nick, "@GTKtoolkit") == 0) gtk_image_set_from_icon_name (priv->avatar_image, "gtk3-demo", GTK_ICON_SIZE_DND); else gtk_image_set_from_pixbuf (priv->avatar_image, avatar_pixbuf_other); } static void gtk_message_row_expand (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; gboolean expand; expand = !gtk_revealer_get_reveal_child (priv->details_revealer); gtk_revealer_set_reveal_child (priv->details_revealer, expand); if (expand) gtk_button_set_label (priv->expand_button, "Hide"); else gtk_button_set_label (priv->expand_button, "Expand"); } static void expand_clicked (GtkMessageRow *row, GtkButton *button) { gtk_message_row_expand (row); } static void reshare_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_reshares++; gtk_message_row_update (row); } static void favorite_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_favorites++; gtk_message_row_update (row); } static void gtk_message_row_state_flags_changed (GtkWidget *widget, GtkStateFlags previous_state_flags) { GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (widget)->priv; GtkStateFlags flags; flags = gtk_widget_get_state_flags (widget); gtk_widget_set_visible (priv->extra_buttons_box, flags & (GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_SELECTED)); GTK_WIDGET_CLASS (gtk_message_row_parent_class)->state_flags_changed (widget, previous_state_flags); } static void gtk_message_row_finalize (GObject *obj) { GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (obj)->priv; g_object_unref (priv->message); G_OBJECT_CLASS (gtk_message_row_parent_class)->finalize(obj); } static void gtk_message_row_class_init (GtkMessageRowClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gtk_message_row_finalize; gtk_widget_class_set_template_from_resource (widget_class, "/listbox/listbox.ui"); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, content_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_name); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_nick); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, short_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, detailed_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, extra_buttons_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, details_revealer); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, avatar_image); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_by_button); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_reshares_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_favorites_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, expand_button); gtk_widget_class_bind_template_callback (widget_class, expand_clicked); gtk_widget_class_bind_template_callback (widget_class, reshare_clicked); gtk_widget_class_bind_template_callback (widget_class, favorite_clicked); widget_class->state_flags_changed = gtk_message_row_state_flags_changed; } static void gtk_message_row_init (GtkMessageRow *row) { row->priv = gtk_message_row_get_instance_private (row); gtk_widget_init_template (GTK_WIDGET (row)); } static GtkMessageRow * gtk_message_row_new (GtkMessage *message) { GtkMessageRow *row; row = g_object_new (gtk_message_row_get_type (), NULL); row->priv->message = message; gtk_message_row_update (row); return row; } static int gtk_message_row_sort (GtkMessageRow *a, GtkMessageRow *b, gpointer data) { return b->priv->message->time - a->priv->message->time; } static void row_activated (GtkListBox *listbox, GtkListBoxRow *row) { gtk_message_row_expand (GTK_MESSAGE_ROW (row)); } GtkWidget * do_listbox (GtkWidget *do_widget) { GtkWidget *scrolled, *listbox, *vbox, *label; GtkMessage *message; GtkMessageRow *row; GBytes *data; char **lines; int i; if (!window) { avatar_pixbuf_other = gdk_pixbuf_new_from_resource_at_scale ("/listbox/apple-red.png", 32, 32, FALSE, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "List Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); /* NULL window variable when window is closed */ g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("Messages from Gtk+ and friends"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); listbox = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (scrolled), listbox); gtk_list_box_set_sort_func (GTK_LIST_BOX (listbox), (GtkListBoxSortFunc)gtk_message_row_sort, listbox, NULL); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (listbox), FALSE); g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), NULL); gtk_widget_show_all (vbox); data = g_resources_lookup_data ("/listbox/messages.txt", 0, NULL); lines = g_strsplit (g_bytes_get_data (data, NULL), "\n", 0); for (i = 0; lines[i] != NULL && *lines[i]; i++) { message = gtk_message_new (lines[i]); row = gtk_message_row_new (message); gtk_widget_show (GTK_WIDGET (row)); gtk_container_add (GTK_CONTAINER (listbox), GTK_WIDGET (row)); } g_strfreev (lines); g_bytes_unref (data); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)/s,SEhVCr}y$no_drop_cursor.png]PNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3:IDATXKhTWw1&m'PHf1T 5X$" +T(TkVBͮH*./C YP0dLJc`23w;u1;w~p{oV8[mY۶m^.sid2Ya%JSSSFkk+x;w ٷo_Ç;;;&yT.T*x aHb||q^/H뙝K.# Y:]r4IR׉'z+@0m(^y<2i-!`Obk.r9Od- |Ԥb(Izt$P(H static void quit_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; gtk_widget_destroy (window); } static void about_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; GtkBuilder *builder; GtkWidget *about_dlg; builder = g_object_get_data (G_OBJECT (window), "builder"); about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1")); gtk_dialog_run (GTK_DIALOG (about_dlg)); gtk_widget_hide (about_dlg); } static void help_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { g_print ("Help not available\n"); } static GActionEntry win_entries[] = { { "quit", quit_activate, NULL, NULL, NULL }, { "about", about_activate, NULL, NULL, NULL }, { "help", help_activate, NULL, NULL, NULL } }; GtkWidget * do_builder (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *toolbar; GActionGroup *actions; GtkAccelGroup *accel_group; GtkWidget *item; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/builder/demo.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "toolbar1")); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); actions = (GActionGroup*)g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), window); gtk_widget_insert_action_group (window, "win", actions); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); item = (GtkWidget*)gtk_builder_get_object (builder, "new_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_n, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "open_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "save_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "quit_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "copy_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_c, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "cut_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_x, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "paste_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_v, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "help_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_F1, 0, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "about_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_F7, 0, GTK_ACCEL_VISIBLE); g_object_set_data_full (G_OBJECT(window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)demo.ui4 John Doe 25 This is the John Doe row Mary Unknown 50 This is the Mary Unknown row Builder demo gtk3-demo 250 440 Builder 1 1 The menubar 1 _File 1 1 _New 1 1 _Open 1 1 _Save 1 1 Save _As 1 1 1 _Quit 1 win.quit 1 _Edit 1 1 _Copy 1 1 _Cut 1 1 _Paste 1 1 _Help 1 1 _Help 1 win.help 1 _About 1 win.about 0 1 The toolbar 1 New Create a new file document-new 1 Open Open a file document-open 1 Save Save a file document-save 1 1 1 Copy Copy selected object into the clipboard edit-copy 1 Cut Cut selected object into the clipboard edit-cut 1 Paste Paste object from the clipboard edit-paste 0 1 in 1 1 liststore1 3 Name list A list of person with name, surname and age columns Name 0 Surname 1 Age 2 2 1 1 3 0 (uuay)application_demo/@I\css_blendmodes/f`flowbox.cl3/* Flow Box * * GtkFlowBox allows flexible and responsive grids which reflow * as needed and support sorting and filtering. * * The children of a GtkFlowBox are regular widgets */ #include #include #include static gboolean draw_color (GtkWidget *drawingarea, cairo_t *cr, const char *color_name) { GdkRGBA rgba; if (gdk_rgba_parse (&rgba, color_name)) { gdk_cairo_set_source_rgba (cr, &rgba); cairo_paint (cr); } return FALSE; } static GtkWidget * color_swatch_new (const gchar *color) { GtkWidget *button, *area; button = gtk_button_new (); area = gtk_drawing_area_new (); g_signal_connect (area, "draw", G_CALLBACK (draw_color), (gpointer) color); gtk_widget_set_size_request (area, 24, 24); gtk_container_add (GTK_CONTAINER (button), area); gtk_widget_show_all (button); return button; } GtkWidget * do_flowbox (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *scrolled, *flowbox; const gchar *colors[] = { "AliceBlue", "AntiqueWhite", "AntiqueWhite1", "AntiqueWhite2", "AntiqueWhite3", "AntiqueWhite4", "aqua", "aquamarine", "aquamarine1", "aquamarine2", "aquamarine3", "aquamarine4", "azure", "azure1", "azure2", "azure3", "azure4", "beige", "bisque", "bisque1", "bisque2", "bisque3", "bisque4", "black", "BlanchedAlmond", "blue", "blue1", "blue2", "blue3", "blue4", "BlueViolet", "brown", "brown1", "brown2", "brown3", "brown4", "burlywood", "burlywood1", "burlywood2", "burlywood3", "burlywood4", "CadetBlue", "CadetBlue1", "CadetBlue2", "CadetBlue3", "CadetBlue4", "chartreuse", "chartreuse1", "chartreuse2", "chartreuse3", "chartreuse4", "chocolate", "chocolate1", "chocolate2", "chocolate3", "chocolate4", "coral", "coral1", "coral2", "coral3", "coral4", "CornflowerBlue", "cornsilk", "cornsilk1", "cornsilk2", "cornsilk3", "cornsilk4", "crimson", "cyan", "cyan1", "cyan2", "cyan3", "cyan4", "DarkBlue", "DarkCyan", "DarkGoldenrod", "DarkGoldenrod1", "DarkGoldenrod2", "DarkGoldenrod3", "DarkGoldenrod4", "DarkGray", "DarkGreen", "DarkGrey", "DarkKhaki", "DarkMagenta", "DarkOliveGreen", "DarkOliveGreen1", "DarkOliveGreen2", "DarkOliveGreen3", "DarkOliveGreen4", "DarkOrange", "DarkOrange1", "DarkOrange2", "DarkOrange3", "DarkOrange4", "DarkOrchid", "DarkOrchid1", "DarkOrchid2", "DarkOrchid3", "DarkOrchid4", "DarkRed", "DarkSalmon", "DarkSeaGreen", "DarkSeaGreen1", "DarkSeaGreen2", "DarkSeaGreen3", "DarkSeaGreen4", "DarkSlateBlue", "DarkSlateGray", "DarkSlateGray1", "DarkSlateGray2", "DarkSlateGray3", "DarkSlateGray4", "DarkSlateGrey", "DarkTurquoise", "DarkViolet", "DeepPink", "DeepPink1", "DeepPink2", "DeepPink3", "DeepPink4", "DeepSkyBlue", "DeepSkyBlue1", "DeepSkyBlue2", "DeepSkyBlue3", "DeepSkyBlue4", "DimGray", "DimGrey", "DodgerBlue", "DodgerBlue1", "DodgerBlue2", "DodgerBlue3", "DodgerBlue4", "firebrick", "firebrick1", "firebrick2", "firebrick3", "firebrick4", "FloralWhite", "ForestGreen", "fuchsia", "gainsboro", "GhostWhite", "gold", "gold1", "gold2", "gold3", "gold4", "goldenrod", "goldenrod1", "goldenrod2", "goldenrod3", "goldenrod4", "gray", "gray0", "gray1", "gray10", "gray100", "gray11", "gray12", "gray13", "gray14", "gray15", "gray16", "gray17", "gray18", "gray19", "gray2", "gray20", "gray21", "gray22", "gray23", "gray24", "gray25", "gray26", "gray27", "gray28", "gray29", "gray3", "gray30", "gray31", "gray32", "gray33", "gray34", "gray35", "gray36", "gray37", "gray38", "gray39", "gray4", "gray40", "gray41", "gray42", "gray43", "gray44", "gray45", "gray46", "gray47", "gray48", "gray49", "gray5", "gray50", "gray51", "gray52", "gray53", "gray54", "gray55", "gray56", "gray57", "gray58", "gray59", "gray6", "gray60", "gray61", "gray62", "gray63", "gray64", "gray65", "gray66", "gray67", "gray68", "gray69", "gray7", "gray70", "gray71", "gray72", "gray73", "gray74", "gray75", "gray76", "gray77", "gray78", "gray79", "gray8", "gray80", "gray81", "gray82", "gray83", "gray84", "gray85", "gray86", "gray87", "gray88", "gray89", "gray9", "gray90", "gray91", "gray92", "gray93", "gray94", "gray95", "gray96", "gray97", "gray98", "gray99", "green", "green1", "green2", "green3", "green4", "GreenYellow", "grey", "grey0", "grey1", "grey10", "grey100", "grey11", "grey12", "grey13", "grey14", "grey15", "grey16", "grey17", "grey18", "grey19", "grey2", "grey20", "grey21", "grey22", "grey23", "grey24", "grey25", "grey26", "grey27", "grey28", "grey29", "grey3", "grey30", "grey31", "grey32", "grey33", "grey34", "grey35", "grey36", "grey37", "grey38", "grey39", "grey4", "grey40", "grey41", "grey42", "grey43", "grey44", "grey45", "grey46", "grey47", "grey48", "grey49", "grey5", "grey50", "grey51", "grey52", "grey53", "grey54", "grey55", "grey56", "grey57", "grey58", "grey59", "grey6", "grey60", "grey61", "grey62", "grey63", "grey64", "grey65", "grey66", "grey67", "grey68", "grey69", "grey7", "grey70", "grey71", "grey72", "grey73", "grey74", "grey75", "grey76", "grey77", "grey78", "grey79", "grey8", "grey80", "grey81", "grey82", "grey83", "grey84", "grey85", "grey86", "grey87", "grey88", "grey89", "grey9", "grey90", "grey91", "grey92", "grey93", "grey94", "grey95", "grey96", "grey97", "grey98", "grey99", "honeydew", "honeydew1", "honeydew2", "honeydew3", "honeydew4", "HotPink", "HotPink1", "HotPink2", "HotPink3", "HotPink4", "IndianRed", "IndianRed1", "IndianRed2", "IndianRed3", "IndianRed4", "indigo", "ivory", "ivory1", "ivory2", "ivory3", "ivory4", "khaki", "khaki1", "khaki2", "khaki3", "khaki4", "lavender", "LavenderBlush", "LavenderBlush1", "LavenderBlush2", "LavenderBlush3", "LavenderBlush4", "LawnGreen", "LemonChiffon", "LemonChiffon1", "LemonChiffon2", "LemonChiffon3", "LemonChiffon4", "LightBlue", "LightBlue1", "LightBlue2", "LightBlue3", "LightBlue4", "LightCoral", "LightCyan", "LightCyan1", "LightCyan2", "LightCyan3", "LightCyan4", "LightGoldenrod", "LightGoldenrod1", "LightGoldenrod2", "LightGoldenrod3", "LightGoldenrod4", "LightGoldenrodYellow", "LightGray", "LightGreen", "LightGrey", "LightPink", "LightPink1", "LightPink2", "LightPink3", "LightPink4", "LightSalmon", "LightSalmon1", "LightSalmon2", "LightSalmon3", "LightSalmon4", "LightSeaGreen", "LightSkyBlue", "LightSkyBlue1", "LightSkyBlue2", "LightSkyBlue3", "LightSkyBlue4", "LightSlateBlue", "LightSlateGray", "LightSlateGrey", "LightSteelBlue", "LightSteelBlue1", "LightSteelBlue2", "LightSteelBlue3", "LightSteelBlue4", "LightYellow", "LightYellow1", "LightYellow2", "LightYellow3", "LightYellow4", "lime", "LimeGreen", "linen", "magenta", "magenta1", "magenta2", "magenta3", "magenta4", "maroon", "maroon1", "maroon2", "maroon3", "maroon4", "MediumAquamarine", "MediumBlue", "MediumOrchid", "MediumOrchid1", "MediumOrchid2", "MediumOrchid3", "MediumOrchid4", "MediumPurple", "MediumPurple1", "MediumPurple2", "MediumPurple3", "MediumPurple4", "MediumSeaGreen", "MediumSlateBlue", "MediumSpringGreen", "MediumTurquoise", "MediumVioletRed", "MidnightBlue", "MintCream", "MistyRose", "MistyRose1", "MistyRose2", "MistyRose3", "MistyRose4", "moccasin", "NavajoWhite", "NavajoWhite1", "NavajoWhite2", "NavajoWhite3", "NavajoWhite4", "navy", "NavyBlue", "OldLace", "olive", "OliveDrab", "OliveDrab1", "OliveDrab2", "OliveDrab3", "OliveDrab4", "orange", "orange1", "orange2", "orange3", "orange4", "OrangeRed", "OrangeRed1", "OrangeRed2", "OrangeRed3", "OrangeRed4", "orchid", "orchid1", "orchid2", "orchid3", "orchid4", "PaleGoldenrod", "PaleGreen", "PaleGreen1", "PaleGreen2", "PaleGreen3", "PaleGreen4", "PaleTurquoise", "PaleTurquoise1", "PaleTurquoise2", "PaleTurquoise3", "PaleTurquoise4", "PaleVioletRed", "PaleVioletRed1", "PaleVioletRed2", "PaleVioletRed3", "PaleVioletRed4", "PapayaWhip", "PeachPuff", "PeachPuff1", "PeachPuff2", "PeachPuff3", "PeachPuff4", "peru", "pink", "pink1", "pink2", "pink3", "pink4", "plum", "plum1", "plum2", "plum3", "plum4", "PowderBlue", "purple", "purple1", "purple2", "purple3", "purple4", "red", "red1", "red2", "red3", "red4", "RosyBrown", "RosyBrown1", "RosyBrown2", "RosyBrown3", "RosyBrown4", "RoyalBlue", "RoyalBlue1", "RoyalBlue2", "RoyalBlue3", "RoyalBlue4", "SaddleBrown", "salmon", "salmon1", "salmon2", "salmon3", "salmon4", "SandyBrown", "SeaGreen", "SeaGreen1", "SeaGreen2", "SeaGreen3", "SeaGreen4", "seashell", "seashell1", "seashell2", "seashell3", "seashell4", "sienna", "sienna1", "sienna2", "sienna3", "sienna4", "silver", "SkyBlue", "SkyBlue1", "SkyBlue2", "SkyBlue3", "SkyBlue4", "SlateBlue", "SlateBlue1", "SlateBlue2", "SlateBlue3", "SlateBlue4", "SlateGray", "SlateGray1", "SlateGray2", "SlateGray3", "SlateGray4", "SlateGrey", "snow", "snow1", "snow2", "snow3", "snow4", "SpringGreen", "SpringGreen1", "SpringGreen2", "SpringGreen3", "SpringGreen4", "SteelBlue", "SteelBlue1", "SteelBlue2", "SteelBlue3", "SteelBlue4", "tan", "tan1", "tan2", "tan3", "tan4", "teal", "thistle", "thistle1", "thistle2", "thistle3", "thistle4", "tomato", "tomato1", "tomato2", "tomato3", "tomato4", "turquoise", "turquoise1", "turquoise2", "turquoise3", "turquoise4", "violet", "VioletRed", "VioletRed1", "VioletRed2", "VioletRed3", "VioletRed4", "wheat", "wheat1", "wheat2", "wheat3", "wheat4", "white", "WhiteSmoke", "yellow", "yellow1", "yellow2", "yellow3", "yellow4", "YellowGreen", NULL }; gint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Flow Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); flowbox = gtk_flow_box_new (); gtk_widget_set_valign (flowbox, GTK_ALIGN_START); gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (flowbox), 30); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (flowbox), GTK_SELECTION_NONE); gtk_container_add (GTK_CONTAINER (scrolled), flowbox); gtk_container_add (GTK_CONTAINER (window), scrolled); for (i = 0; colors[i]; i++) gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i])); gtk_widget_show_all (scrolled); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } (uuay)gtkfishbowl.c_A/* GTK - The GIMP Toolkit * Copyright (C) 2017 Benjamin Otte * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ #include "config.h" #include "gtkfishbowl.h" #include "gtk/fallback-c89.c" typedef struct _GtkFishbowlPrivate GtkFishbowlPrivate; typedef struct _GtkFishbowlChild GtkFishbowlChild; struct _GtkFishbowlPrivate { GList *children; guint count; gint64 last_frame_time; guint tick_id; }; struct _GtkFishbowlChild { GtkWidget *widget; double x; double y; double dx; double dy; }; enum { PROP_0, PROP_ANIMATING, PROP_COUNT, NUM_PROPERTIES }; static GParamSpec *props[NUM_PROPERTIES] = { NULL, }; G_DEFINE_TYPE_WITH_PRIVATE (GtkFishbowl, gtk_fishbowl, GTK_TYPE_CONTAINER) static void gtk_fishbowl_init (GtkFishbowl *fishbowl) { gtk_widget_set_has_window (GTK_WIDGET (fishbowl), FALSE); } /** * gtk_fishbowl_new: * * Creates a new #GtkFishbowl. * * Returns: a new #GtkFishbowl. */ GtkWidget* gtk_fishbowl_new (void) { return g_object_new (GTK_TYPE_FISHBOWL, NULL); } static void gtk_widget_measure (GtkWidget *widget, GtkOrientation orientation, gint size, gint *minimum, gint *natural, gint *minimum_baseline, gint *natural_baseline) { g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (size >= -1); if (orientation == GTK_ORIENTATION_HORIZONTAL) { if (size < 0) gtk_widget_get_preferred_width (widget, minimum, natural); else gtk_widget_get_preferred_width_for_height (widget, size, minimum, natural); if (minimum_baseline) *minimum_baseline = -1; if (natural_baseline) *natural_baseline = -1; } else { gtk_widget_get_preferred_height_and_baseline_for_width (widget, size, minimum, natural, minimum_baseline, natural_baseline); } } static void gtk_fishbowl_measure (GtkWidget *widget, GtkOrientation orientation, int for_size, int *minimum, int *natural, int *minimum_baseline, int *natural_baseline) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *children; gint child_min, child_nat; *minimum = 0; *natural = 0; for (children = priv->children; children; children = children->next) { child = children->data; if (!gtk_widget_get_visible (child->widget)) continue; gtk_widget_measure (child->widget, orientation, -1, &child_min, &child_nat, NULL, NULL); *minimum = MAX (*minimum, child_min); *natural = MAX (*natural, child_nat); } } static void gtk_fishbowl_get_preferred_width (GtkWidget *widget, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, -1, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_height (GtkWidget *widget, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, -1, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_width_for_height (GtkWidget *widget, int for_size, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, for_size, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_height_and_baseline_for_width (GtkWidget *widget, int for_size, int *minimum, int *natural, int *minimum_baseline, int *natural_baseline) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, for_size, minimum, natural, minimum_baseline, natural_baseline); } static void gtk_fishbowl_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GtkAllocation child_allocation; GtkRequisition child_requisition; GList *children; gtk_widget_set_allocation (widget, allocation); for (children = priv->children; children; children = children->next) { child = children->data; if (!gtk_widget_get_visible (child->widget)) continue; gtk_widget_get_preferred_size (child->widget, &child_requisition, NULL); child_allocation.x = allocation->x + round (child->x * (allocation->width - child_requisition.width)); child_allocation.y = allocation->y + round (child->y * (allocation->height - child_requisition.height)); child_allocation.width = child_requisition.width; child_allocation.height = child_requisition.height; gtk_widget_size_allocate (child->widget, &child_allocation); } } static double new_speed (void) { /* 5s to 50s to cross screen seems fair */ return g_random_double_range (0.02, 0.2); } static void gtk_fishbowl_add (GtkContainer *container, GtkWidget *widget) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child_info; g_return_if_fail (GTK_IS_FISHBOWL (fishbowl)); g_return_if_fail (GTK_IS_WIDGET (widget)); child_info = g_new0 (GtkFishbowlChild, 1); child_info->widget = widget; child_info->x = 0; child_info->y = 0; child_info->dx = new_speed (); child_info->dy = new_speed (); gtk_widget_set_parent (widget, GTK_WIDGET (fishbowl)); priv->children = g_list_prepend (priv->children, child_info); priv->count++; g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_COUNT]); } static void gtk_fishbowl_remove (GtkContainer *container, GtkWidget *widget) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GtkWidget *widget_container = GTK_WIDGET (container); GList *children; for (children = priv->children; children; children = children->next) { child = children->data; if (child->widget == widget) { gboolean was_visible = gtk_widget_get_visible (widget); gtk_widget_unparent (widget); priv->children = g_list_remove_link (priv->children, children); g_list_free (children); g_free (child); if (was_visible && gtk_widget_get_visible (widget_container)) gtk_widget_queue_resize (widget_container); priv->count--; g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_COUNT]); break; } } } static void gtk_fishbowl_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *children; if (!include_internals) return; children = priv->children; while (children) { child = children->data; children = children->next; (* callback) (child->widget, callback_data); } } static gboolean gtk_fishbowl_draw (GtkWidget *widget, cairo_t *cr) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *list; for (list = priv->children; list; list = list->next) { child = list->data; gtk_container_propagate_draw (GTK_CONTAINER (fishbowl), child->widget, cr); } return FALSE; } static void gtk_fishbowl_dispose (GObject *object) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); gtk_fishbowl_set_animating (fishbowl, FALSE); gtk_fishbowl_set_count (fishbowl, 0); G_OBJECT_CLASS (gtk_fishbowl_parent_class)->dispose (object); } static void gtk_fishbowl_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); switch (prop_id) { case PROP_ANIMATING: gtk_fishbowl_set_animating (fishbowl, g_value_get_boolean (value)); break; case PROP_COUNT: gtk_fishbowl_set_count (fishbowl, g_value_get_uint (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gtk_fishbowl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); switch (prop_id) { case PROP_ANIMATING: g_value_set_boolean (value, gtk_fishbowl_get_animating (fishbowl)); break; case PROP_COUNT: g_value_set_uint (value, gtk_fishbowl_get_count (fishbowl)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gtk_fishbowl_class_init (GtkFishbowlClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); object_class->dispose = gtk_fishbowl_dispose; object_class->set_property = gtk_fishbowl_set_property; object_class->get_property = gtk_fishbowl_get_property; widget_class->get_preferred_width = gtk_fishbowl_get_preferred_width; widget_class->get_preferred_height = gtk_fishbowl_get_preferred_height; widget_class->get_preferred_width_for_height = gtk_fishbowl_get_preferred_width_for_height; widget_class->get_preferred_height_and_baseline_for_width = gtk_fishbowl_get_preferred_height_and_baseline_for_width; widget_class->size_allocate = gtk_fishbowl_size_allocate; widget_class->draw = gtk_fishbowl_draw; container_class->add = gtk_fishbowl_add; container_class->remove = gtk_fishbowl_remove; container_class->forall = gtk_fishbowl_forall; props[PROP_ANIMATING] = g_param_spec_boolean ("animating", "animating", "Whether children are moving around", FALSE, G_PARAM_READWRITE); props[PROP_COUNT] = g_param_spec_uint ("count", "Count", "Number of widgets", 0, G_MAXUINT, 0, G_PARAM_READABLE); g_object_class_install_properties (object_class, NUM_PROPERTIES, props); } guint gtk_fishbowl_get_count (GtkFishbowl *fishbowl) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); return priv->count; } char **icon_names = NULL; gsize n_icon_names = 0; static void init_icon_names (GtkIconTheme *theme) { GPtrArray *icons; GList *l, *icon_list; if (icon_names) return; icon_list = gtk_icon_theme_list_icons (theme, NULL); icons = g_ptr_array_new (); for (l = icon_list; l; l = l->next) { if (g_str_has_suffix (l->data, "symbolic")) continue; g_ptr_array_add (icons, g_strdup (l->data)); } n_icon_names = icons->len; g_ptr_array_add (icons, NULL); /* NULL-terminate the array */ icon_names = (char **) g_ptr_array_free (icons, FALSE); /* don't free strings, we assigned them to the array */ g_list_free_full (icon_list, g_free); } static const char * get_random_icon_name (GtkIconTheme *theme) { init_icon_names (theme); return icon_names[g_random_int_range(0, n_icon_names)]; } void gtk_fishbowl_set_count (GtkFishbowl *fishbowl, guint count) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); g_object_freeze_notify (G_OBJECT (fishbowl)); while (priv->count > count) { gtk_container_remove (GTK_CONTAINER (fishbowl), ((GtkFishbowlChild *) priv->children->data)->widget); } while (priv->count < count) { GtkWidget *new_widget; new_widget = gtk_image_new_from_icon_name (get_random_icon_name (gtk_icon_theme_get_default ()), GTK_ICON_SIZE_DIALOG); gtk_widget_show (new_widget); gtk_container_add (GTK_CONTAINER (fishbowl), new_widget); } g_object_thaw_notify (G_OBJECT (fishbowl)); } gboolean gtk_fishbowl_get_animating (GtkFishbowl *fishbowl) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); return priv->tick_id != 0; } static gboolean gtk_fishbowl_tick (GtkWidget *widget, GdkFrameClock *frame_clock, gpointer unused) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *l; gint64 frame_time, elapsed; frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); elapsed = frame_time - priv->last_frame_time; priv->last_frame_time = frame_time; /* last frame was 0, so we're just starting to animate */ if (elapsed == frame_time) return G_SOURCE_CONTINUE; for (l = priv->children; l; l = l->next) { child = l->data; child->x += child->dx * ((double) elapsed / G_USEC_PER_SEC); child->y += child->dy * ((double) elapsed / G_USEC_PER_SEC); if (child->x <= 0) { child->x = 0; child->dx = new_speed (); } else if (child->x >= 1) { child->x = 1; child->dx = - new_speed (); } if (child->y <= 0) { child->y = 0; child->dy = new_speed (); } else if (child->y >= 1) { child->y = 1; child->dy = - new_speed (); } } gtk_widget_queue_allocate (widget); return G_SOURCE_CONTINUE; } void gtk_fishbowl_set_animating (GtkFishbowl *fishbowl, gboolean animating) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); if (gtk_fishbowl_get_animating (fishbowl) == animating) return; if (animating) { priv->tick_id = gtk_widget_add_tick_callback (GTK_WIDGET (fishbowl), gtk_fishbowl_tick, NULL, NULL); } else { priv->last_frame_time = 0; gtk_widget_remove_tick_callback (GTK_WIDGET (fishbowl), priv->tick_id); priv->tick_id = 0; } g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_ANIMATING]); } (uuay)gnome-foot.pngd PNG  IHDR/0#gAMA1_ IDATxYkly=wfvvfܗ)QŪl#HqdmT i4N A(n ] l<8v*#%RDY$MJ>?2T ,T\0s _e/ׇ o>Н:qj^ڷo߉mXpd WMjo1W[?kll,cСT*5:6M$eW2ob x3}3}xgPUjI3&c+wM& rտ%v{v$+Q):ښNƘUOdΑ/R7ODzHKR"xDb!zKAHiY0 RedLU(fyQݵr]] Cj6ѪU!J-a>奂Jz|q 琈E0ym{A=J|7xx#luS6}Wz6#gޘ%r[%-Mi|Zov,e |YQp"z}_wԪ_hUvyc ѦY|)B&_; qիtMb\^cϏ& G}F+8nu;hdhp6Zbew7%5 3 3j`*-nxw-8ph$Rwmcg.#\ٚmd몂g Kdj,J(*}k_z~'H^sk#-dz7vq5_VONKF8%5*'Qc]Xioiٟĥûo岹#vDP0Ƕ`YoozVYT?/l$,D!M%c-V0̟lV+T%drL\0y?mlВ'FGL%4D2IEM MF>Oy3׳ݽ}X|wo_o,l biuS/#[(=948Ǡ`zz{a[aYGPIg,# Hu^-Cm]X_;+{>VWU mX0, ϣ4C<ЪW`Y"Fni|e̤Pk $>\|r=N"6  CJYǒb!ǶZ@MC#\V˫V)c=vjn̻ [5 VIa[xAqD1׶ XYZd2gr[AWfD/Wk3GiZeyx'eBD1D8%kkeL%OO<^-Fޜ$ 1-;єdhF$EmS'eQ]Ӊm0M,g2x8v,~7|/jf0ֽ%ю^0l8$-I (J=j;.XaZbMo;MC| -Q8<< ,1kR( \g _ښpr@LJR󜆖e]d2p"677EVhHir ~D"uUU{\y TUb(L&_"e>xgvςY b*Z@f6q_r (?J,IENDB`(uuay)gtkfishbowl.h/* GTK - The GIMP Toolkit * Copyright (C) 2017 Benjamin Otte * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ #ifndef __GTK_FISHBOWL_H__ #define __GTK_FISHBOWL_H__ #include G_BEGIN_DECLS #define GTK_TYPE_FISHBOWL (gtk_fishbowl_get_type ()) #define GTK_FISHBOWL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FISHBOWL, GtkFishbowl)) #define GTK_FISHBOWL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FISHBOWL, GtkFishbowlClass)) #define GTK_IS_FISHBOWL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FISHBOWL)) #define GTK_IS_FISHBOWL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FISHBOWL)) #define GTK_FISHBOWL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FISHBOWL, GtkFishbowlClass)) typedef struct _GtkFishbowl GtkFishbowl; typedef struct _GtkFishbowlClass GtkFishbowlClass; struct _GtkFishbowl { GtkContainer container; }; struct _GtkFishbowlClass { GtkContainerClass parent_class; }; GType gtk_fishbowl_get_type (void) G_GNUC_CONST; GtkWidget* gtk_fishbowl_new (void); guint gtk_fishbowl_get_count (GtkFishbowl *fishbowl); void gtk_fishbowl_set_count (GtkFishbowl *fishbowl, guint count); gboolean gtk_fishbowl_get_animating (GtkFishbowl *fishbowl); void gtk_fishbowl_set_animating (GtkFishbowl *fishbowl, gboolean animating); G_END_DECLS #endif /* __GTK_FISHBOWL_H__ */ (uuay)reset.cssp/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } (uuay)listbox/search_entry.cd!/* Entry/Search Entry * * GtkEntry allows to display icons and progress information. * This demo shows how to use these features in a search entry. */ #include #include static GtkWidget *window = NULL; static GtkWidget *menu = NULL; static GtkWidget *notebook = NULL; static guint search_progress_id = 0; static guint finish_search_id = 0; static void show_find_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); } static void show_cancel_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1); } static gboolean search_progress (gpointer data) { gtk_entry_progress_pulse (GTK_ENTRY (data)); return G_SOURCE_CONTINUE; } static void search_progress_done (GtkEntry *entry) { gtk_entry_set_progress_fraction (entry, 0.0); } static gboolean finish_search (GtkButton *button) { show_find_button (); if (search_progress_id) { g_source_remove (search_progress_id); search_progress_id = 0; } return G_SOURCE_REMOVE; } static gboolean start_search_feedback (gpointer data) { search_progress_id = g_timeout_add_full (G_PRIORITY_DEFAULT, 100, (GSourceFunc)search_progress, data, (GDestroyNotify)search_progress_done); return G_SOURCE_REMOVE; } static void start_search (GtkButton *button, GtkEntry *entry) { show_cancel_button (); search_progress_id = g_timeout_add_seconds (1, (GSourceFunc)start_search_feedback, entry); finish_search_id = g_timeout_add_seconds (15, (GSourceFunc)finish_search, button); } static void stop_search (GtkButton *button, gpointer data) { if (finish_search_id) { g_source_remove (finish_search_id); finish_search_id = 0; } finish_search (button); } static void clear_entry (GtkEntry *entry) { gtk_entry_set_text (entry, ""); } static void search_by_name (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "name"); } static void search_by_description (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by description\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "description"); } static void search_by_file (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by file name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "file name"); } GtkWidget * create_search_menu (GtkWidget *entry) { GtkWidget *menu; GtkWidget *item; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic ("Search by _name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_name), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _description"); g_signal_connect (item, "activate", G_CALLBACK (search_by_description), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _file name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_file), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show_all (menu); return menu; } static void icon_press_cb (GtkEntry *entry, gint position, GdkEventButton *event, gpointer data) { if (position == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event); } static void activate_cb (GtkEntry *entry, GtkButton *button) { if (search_progress_id != 0) return; start_search (button, entry); } static void search_entry_destroyed (GtkWidget *widget) { if (finish_search_id != 0) { g_source_remove (finish_search_id); finish_search_id = 0; } if (search_progress_id != 0) { g_source_remove (search_progress_id); search_progress_id = 0; } window = NULL; } static void entry_populate_popup (GtkEntry *entry, GtkMenu *menu, gpointer user_data) { GtkWidget *item; GtkWidget *search_menu; gboolean has_text; has_text = gtk_entry_get_text_length (entry) > 0; item = gtk_separator_menu_item_new (); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("C_lear"); gtk_widget_show (item); g_signal_connect_swapped (item, "activate", G_CALLBACK (clear_entry), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_set_sensitive (item, has_text); search_menu = create_search_menu (GTK_WIDGET (entry)); item = gtk_menu_item_new_with_label ("Search by"); gtk_widget_show (item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), search_menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } GtkWidget * do_search_entry (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *find_button; GtkWidget *cancel_button; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Search Entry"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (search_entry_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Search entry demo"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); /* Create our entry */ entry = gtk_search_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); /* Create the find and cancel buttons */ notebook = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_box_pack_start (GTK_BOX (hbox), notebook, FALSE, FALSE, 0); find_button = gtk_button_new_with_label ("Find"); g_signal_connect (find_button, "clicked", G_CALLBACK (start_search), entry); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), find_button, NULL); gtk_widget_show (find_button); cancel_button = gtk_button_new_with_label ("Cancel"); g_signal_connect (cancel_button, "clicked", G_CALLBACK (stop_search), NULL); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), cancel_button, NULL); gtk_widget_show (cancel_button); /* Set up the search icon */ search_by_name (NULL, GTK_ENTRY (entry)); /* Set up the clear icon */ g_signal_connect (entry, "icon-press", G_CALLBACK (icon_press_cb), NULL); g_signal_connect (entry, "activate", G_CALLBACK (activate_cb), NULL); /* Create the menu */ menu = create_search_menu (entry); gtk_menu_attach_to_widget (GTK_MENU (menu), entry, NULL); /* add accessible alternatives for icon functionality */ g_object_set (entry, "populate-all", TRUE, NULL); g_signal_connect (entry, "populate-popup", G_CALLBACK (entry_populate_popup), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (menu); gtk_widget_destroy (window); } return window; } (uuay)ducky.pngPNG  IHDR pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F IDATxym[Zc̹{sn[.} R^K,ADPF#5QQ?$Gğ $JE[ ETQUVwOݾ={5֘$D#`5s<Ϲܽ^k9מm\Z*xux}}v{'!awR HIUcky%ˉ\ֲQr Ѽrϼr/}ōG^⧐.:4Gwzbg~7W_r̃F_t<K T`@\# @_]|PЭ= _׼b}q({ "@ʍ_oV/מ ҽ/+˅[ֲe}a[|nO|^>Ka24x`\LX_- @@qҿ^n8$# B@z L@0FN>N~戫WNoڧ+e-k)\O=Oc5gϏSSD-]x>jq2 ˀ2%nj'ӠV@y @UXvLi`\y8z|OCﶗXo./}YZRѻ>=x_OU9ᴻӂ>RZΏ JѯPt) wN.X"& BonPOr:5P.X;rTU\ {v+7]yRe-EzYWWs|^Pq^i`ӯt ůpׯ_sק;)YֲeR[7?k4ka^y/ d( ۉ6 +#1-(K춃BV쵠Ju-X؅"Ptn=%*l~/:픃h﫾f@i@ЍGPs֟˺8l˯s9k,kYZ~qV7?~ݵ+tu2 [!pڵ y-]e}X^x.@,J*v@htc}tE= t@-JwI:E:}_ABI6YE`y`䁣Oͯ9t0-kYZ~a?w_?~vqZֲ"uU$񅇬g쀗}__'˧sYZ>o3?2pv+e7,[\Ka]/=?6ъ_tNV^;jF;߼Cc,HA!lgq?EQZ/PQἽVݠIsբ;(s:U}>D"[=ѹywI5+>ygq?ӏ.rZ>ZR Ο}띏g^8v Ga,IJZdf~xL+gha,dfKQ8\2EL;:Svґ] %y 4;vf|.<uPk! IMJ\-i Iahq9G툽VT&;|?P_+ M͇MWvuư$LSϹ"$'M{Q vL4l2혪N7;zBw os7_⦤.8}/Ce->NևW^y|Nh1;-<3 *Zq!GGu%#ڬi^>mJtRSΓS8XU4m~/ ؀7mM=r`UXoVG0+:\HU;Z:}izq<0e =ߏyI<1&'*jv%2V3ȧA_󱫸O,e-k)]&ϮMD>_N$ K,o },H,IgpoDB˺V(#pY\~/Y>ZZfҟ׾itu>j!va0bd$ $И:wZd 8VZxIpbFkh4&Ml=srTudh=s%Bڭ`P/ ~sb~5мߘؔ]e݊1QZb{!<:zu,D'.ot"nJ+7>|ݾ|򗵬H/|]{}#m4dH8M[ؠorĈGN^ wZa$Ҙ᎒*LE';C9{EqS>4ƸvsYYN$d! Ԗ%^g1jϪ {gzz;RRY wuؖ 0X#k?= 7:yY:n*\ev;3A'Gq8}귞?/[~H/t=UO;Vz,gAw\v~ҿ]V}]hY fՙĨb#g7Yծc.#*$v`Ad[N ; A}akVMm٬975.(9=S(M@3GbXdtgB=,r#.կ}K^ֲ"[yG_tuLk;:~ٌ3Yլ8ZI'Lx8Z&'8PeJW[]vt+ySxZXYGӊ3 8]X@l.qw=k& ܬTKj窏ɽT4F`s ȬkzYg!`. N^ڋG_we-EzY- <5'tuE7xaZڝ Nf4BXZAFd]L]\sႧ3dh8PkS EZĬ4U q05m'vvnSKhZ[P75RC {5YI@qtDP@+N=}&e(ݛwV'$Ҵ&'VԴ;t?M'o>7cYZ#g?v%Y,^8--X&2Z;U6f`$49|`7xH,V"C2ޕ'G%qPAi%YvÉ>.QcGKw8hw?PN0ڱsF2b,`aXyVfi3ۚ/76ֲ8Xiw }{8(7)9m Y*=L3~q4r3kgWõ:: +vp1f(,Ȟ3T2z$q.=j7 ec_oe[#I72!f5OWֶ tJF c5_DawDŽ]@87jlzJ<_!.ߎӋ'n\y뷼ߚe-k)%Z?.?2*G'y-ĮUY@Z8 Z( h(;0bͮٵH2ͺh]DgY3fЎCK:T؀]xv!kfD cg-4L--~2ev2}՟`uu6;H8r6rqTv2s+T ֝ P Zg{^ӧ򛳬e-EzY uNf`Qf2uҵQ1(nE-[H r!fi$^Әeۉ6?änܤfMUΠ ihpqB\t0\CD׵ɴgִ P}(:˜Mv vG*ϣh%#1۲Ǘ>ǥqM~oвe"'~ٛ==?cњusZ)xFzJ`L0)(0Œ:hI84#N-ԣdV[ʖ1K$_hXYf8ցr1P>Oɭ(wcW;sncN{Ց#pҔ&uP۟7MsuF>bXiв45hR3葯kf4EUme-EzY9Ͻ| Nl& ~Q69fϞ_Q]xf^=nL trŪNݠ"7(:wD9ap>lH=W 0ƙuqWwxXUI춢_yѨrAtaEX} kyN7Γb'@_3pb$36܁<5D^M/{۴e-EzY~Wӓc:PWl] =orD/v&%ҮӹxvoB+B]ǂ"i]k#Yg `c2B!rvEJB^ MqYc,;XwBb)ZBV4\!|*m&/nx:gJͶ Pf4ØC Mh>lXK:Gv]IznjѮ8h=v8#n@n7IJ+w/ղeK~ү3qJ';cC e{ע7q`l%PܣP[3 Pĕ9QY@::(@9*SLV=Yns^=7p6nspsV@/ (YS3S~?{aZֲ"̛ğ:}c&-YI*(ii jb\ӑ]rYHX‡n-MUB/F0JOY-iGj7n4K 9Ă-|FsZt2]602#&lAzt'r@ώ.e@ڮ<33p!9Z68Kz ߁7_kYZœo'8&rt9S&8 d́g+3w,G- dd"/+~;ͬ=be܈ZabqX$ ݾrjVSe-HU.bqv^b.c;!0eD֊ۯpȢ< g֎W,++CHZ͑CqA!p"q^ "pe+_.n\}OlYZzﻇKw*+ؑXYЬ 榐6, 0 ;. oȇ"PfMHp UL 0 Ya>fSz0N!-#LqW^eFs.ZYv'[zDXL79{Cq*vB#ijE Mn7'tb󺁱L]|6ikq?kW^߶e-k餗/9mzٽ֜ߒ$=KhGrQ7 2*d3}K<ؤ9 m>u͑9B,b;:XǥxLMB0g5TfTB\2GQ9ҳ>$6ڽ1ܒ+K0k]t̠yrܸBv!o!Y-m06dpиw@ǣ 6|^ֲ"u_SgB^kvYs\:MɄQo(q g0u`עsHJ$;B!,F,;Z-xde[ArUYՊkuF*(5،YܚEzL[x+s FJk휾D?qfYlNv|vTG@\0!P8fPyԴhC,1\V+H'?ۖߺe-c-pG󿹇OqZ|zi' ZS`<ݚ6;2#$fR+%76!nKS:csBr=wԮ4mg^ ?I9@H%ՙAy %f4;tBʁϝ3.ʜ1;(`I˪٫&xG=mQbة 3+#G=0w uNYS*+U7fW#oKᗵ^ϻ~B0[r cG48sX<*tYY2=ܠ4(kiRm{YjH–YiECJmH- :vmsi{re HYجcf־jW \G sfV8&?]Lmdn"b Ҋj|_:v3;9mY [\F@(+P1#s2?v͉>}[۷e-EzY?Ϻ|׿궗4Ҭb}: P8Ou~t*Na$w Gu'3rz6xunY M-V1ѥ>]3-IXl:eQO,XL+tNm6^y0S?UKȒ窛ըPtmҀ{A0R+>ͨ.N[w|}kO9Y ~ HFˊi--b8 W_{}[e-EzY7~7'8$%Nma O{e{H2%iÞdP.@ MLq[>WJٵ92ӎ~̪6bA]B!k!tfPxf1:}';OuH'3{r]-U8SQ"ݸy&^S,$sk!+Uιk;f 5MPfival#QI#\Y99$N-_oᲖe 3]i$XX5 &k%A^FMaSTUjG ˞.1kM)[7y}ch]A65*Uf]sf5qעE`!vD_"X4>Pb w2]lb\jM(֍{jSm!}bRٞ0ŤҨs#w|L R\iѯt=&L%_u ]v6BZn(80fSx^c$6H?ZAFt%s}hC`ʎf֡h(@ś[Q4AXL(`q1o*`7Җ0>*Lq]fq>X:"3OoX&{-=&9!=*UkxF?P4O$mf>5'+2f6=_zվkܼ6qQ_`uDKPeUWߍ~_e-k)˚.͇o/FBЙr!9զvoirjNaR[S!c%(nf.dęEHc ‚n3sGYP׺0f|)LlB4K33mBYAY8ƌg9+Ea-qRءH3ua#MMGτ")oTʶ<7#i,s+ĩG]TVčDћqpOC7tYZ'z~QZiAқ5樳x_F@ IS4Ny/ęvCMUмl+JMe0uy}bq]-=]k+OJ0'[HBu禤 ni+knXp6J߼CH+ݦ͞#}yj$'?\!|MuG_8s+ڻ6C- ?+訥vNآ^ֲ"ήn=ψqjyMO’Ө7:5@-pgHΧB涱}hfGF7RK:3đet +Mw݆Ňzf¬7Olb`$agi3g]w&dQ 0s+؜v5EԮ@ MQiz>(a Q7V{iӮ6#gQ < ьilHŵ3+Q9ZFp&y(^=7uYZ'z_p7u@MudX0i*sBʹ,mנa-aae& oi2xg<*<8=h#d,Iv U.4P1ָZ`|s=9%-ey!eLEOj2yI7# JONQ@YWH" Q j`$>ǤItc3P Ejg>6DFtWpoZ~SH­'_w,nO,]3}s*H(HI@>׹HY@0KB2ڜX#FI[7pZK$MQ ewg}(3n=ݯW!,^؉ʈ5Ϡ>e-k)ҟP߾槎Q]Pz¢B<:!#>=h%쀓u Yf)S 'FeJh&#d)BY);BԯZ `HX^t蒮NhTK8hxxzlؠ̪֣`w ZV&,zރׯY+3TM n\Ҹ c`$EWҽοzN!mxfj]s"M֍l>K"7*Bf}%#rCe-Ef={O?qoFr!%*Ձ f,4)j! :X fBTcG8EM X@:jo} T!yo4*ѮVċpyMV"̥9 f%1>sĬ9ΥV0#ψbxD%|Y#1} BttG6l+7|򛻬e-E~m~pu,o:X'caNԓ-C {.|`o2dX,3JZbSXkBQA5/he(+VӠnQF$ԎYFMASRnh2RSvJ*t(Cyn4%k˹v4PK%LYyd믈TV MN7`i da$+ꎨ8%082y.S$P QUw\{~//oﲖu﬎pQVTMMVf1V˨P\zQ7S&w Ҝ6 9dYY㞳uz odLV퍱[7H\ȫח3AI8Zcڒh B!`sh3ތ]|M)0;I4OmZH cZ _lF͒ңɭںu5Rb!gwW,ʱq8ebeYhA7k@M_u2/ŅD3g֚t|c{fj7V#aL,`Gg8-7h pDl}hRq-S`RϼkNg99{f-^ֲ"qK.F9BGעEoS꠬^sJY1ȏr>dJ}-;b*K5{d"#V86˭`"dr*\0 ?ha uՕp0cO{vA75Hz-.Ra]K3|)(!q x$>W 7݊Lc`}i2GM ̲s}!)fzu8x}܊p1鯞 /8[fxm N"7E4gO|ۜϽG^=="/kYK\~&ഋԬ؍L+Y}ŕ#I*rڼ:t,yMfDD-yM6MuW2ejgY/d۲-ڵ B25iEvdF-c:'J@uV8|ةKe>XFFfazc'cHHT¬fB8֠W"I8-4f`"y1B57gB Ġf1_9x58IqN.+%uG@s^fN5Vuϝڱ=G30;1$ԴՐ (o)\G0bZ/UAm7EiDc٣]B7q㠞!j,$sjx41 F@բ*ΨE;zyoeGw}g-ZR?nV?ݓp94ǐ~=:0@$ĩ% W.4X >U:9'6i@\,+̤EOKs2iYR3L.d#QhDSY%= qӰ2cMLsu}lN lHk8OP ej̃tȖH@_88ҮH"ί=MgISB 4שǂ/,$K2ȫ}?i B|~4ؘߞ`R,qqxk3XۼρFwxLt$;x$g*ؽO;bA#+Q9 YB/ñg5;gk|؉^yF 6@A( ޹I<kU IBYz#Jy{E?-ZR?{gN;j_.U+•dV[ֲH&YG4l>"g4N6tf)@9p1i̢X5fϒiBZ:-+I;-)3 3* XFm󩶹8F۠<-zԢ/L# \eung<蚫vVX+~ShsvP|7=Q<_<)^hiRI\s8y vI)[M"oZ8c&wDNt#\o`^ֲ"u/aSMfSi:rB%<ӅwWbQBʬtʾA̓h.t(+J/I^b1m-JjRI^f]}iP#۸pOT: ^;N:u,>Oe9h1+)t{#2a0]s6ft K7ɘ K{z0].nd,4ӉF,]w}ݳׯx.ZR?fWMʸ6Q; _=a_}kκF @{%?ў1uUPU ~τ1hY]3ˁhٲN?ܬ1 3ё=9qA4P?sh9n؞kH37;Pg [7/ZR?f?qi^Ϥ$ᵐP+W dOtBq48뮳bZV [kKcazkAnl&nI]6wvPAKRMMBtLBm4_p˯6f4,kd"7U {izlQB^'a)3Q#T[yw4 G+źEZjFT6BA\xcF4&ВFj֞f:C堳C0W`!7sPu*cX!XLeiwm\PfumR ar};6:&ިX"4LGbRA%mZ:U:ywk& M‘AiY@2={:MzJ?v!~'D6ggx6lGmO ۿ5oOGψY.)IziM[x&!SaH4j?R;SDJ7Z0,T`̼#dm3 ] Za5KPJC0-~ѳ,E*q,S+th:_7,;F͈ kD9ӟKj9٬)51 >dLyFsQyRr…HDF+L5!uvшbƆ'l ]– ZprT)ͳw@b,tݭ.{Ǖe-Ez'k}ޤDw<57O LĹ`|gG+WHG!Q򔍍ko\:Q+p7[ ?jV+ }< ,`}s3\ujIg_HԮG?©Z0\¬+ݚ{7HWN9 }]x0F#ϱut( q㐘҄8Efҟ4Ȝ˚IL\e.zT6g%kYZGz[of}S0 ̐nzyTH9ޤD_欝dD 31Tc~Q$4D+ǬS6"%,5L5fa.d/d{'kQfV إ\ ] &F>! ĺx,f蠡g0\f;ičG`{r;j<6vI֪-d #S>V͝Өe JGIn1SϏ驍 }3+8t~~EW`uT}Fuu;'C?ΰe-E?z?]\}zW>!q`::xV]NCc[xݓ}:y-D8 QZa@RVrIʨPfA jKmШCV[f^evAoe߲vׁuŴ& 8lh`j,ξTbh3ggF9qLNa: y#` fЙr#LVVf#k2Sՙs~LNMD_xؑFcg_WɅF&ܐ@傉[{Gtw|W,we-k)Q?;o,Os~B4 z3͵Nʌ,%Fb*IUm0ՇHBsBhiە3TvF#r<U5+jp{lAi}Ov7}ڭ;ouL9?hH *(xW7Q p_(E A☃}ѴD:KnuW-BTwO#_͑khRe6>ߢ'ؐ 'ʩ̰A9: w~/9Ҝ+3U_!HG[ϼۍW#Z}]G@w,:jW΃ ;~rgRm&FŽ]b79We'B=Wֲ]3oE2í?-2+h3iG"ns4Yi{fхFdHS;˞΂47,)p:!ٙ8e=dbw=:f{KYřB! Q&ɯ3ѤԐ41٣%38L7Ma69 g+p;ޢ?WN<o/e-k)ҿɇVϼO;pu/Cj^xigP#7y9Nfi #$el*S2%j :ҡ*7Z%c"Z[25aIEpv6- -י<4ju漳b'3CRUp蜾A* O;>ƣrƞt,k#ƙ/mv)qTaoD kiη js菩VI:l&kJco߻1HG7|kyNbԼPG-c. MGx;Zmr|H\]A)U0Wΰmyak4pL3Z AM2K&0D9n,T'נNZ'2gYf))HdYwԖ89<7`j3 Ln| nƪ@_gR"[yαe-ENϾ5߼:Ʃ0kCȡAćBE&1ԊKᬹp9shh7wӉgle5Yq-44\s;cC뾽C.׊?g ụ.fa20Mʬ2lY59 <#3fII`1DI/Zv%n HLts. qx)͟8>u͐:B&M^u0&KgvЍhF<$mTSUt_cYZ/ztL16(A۱ٌ3yC5\U@w*ݘQ$a҉//2.B16Og,J^]aZIfIO-PkY,eR0x9=sNh`$sSe V)Gy%D*fbX7%3{u3DNzis$s%1 Z :w!̟ mV;q9B#MWPҌj Ko"8f ~ւSf \M*X{Ɲ r1J(C8 ~FZֲ".O?G:߲ ;C xCZL ̣ơ :n߹007NeǜʗVs켣E%o>2]cyrdRu72\ge)Q֙ʊEȺ2ֹ{֝A g 2gs/&vQ4ms dhc{7(0xV䐩 7iZvcԦ$ }fhD2iA_/4-l8WK37ɄLθm]li-:[VJrqf955fqh_AJyڱZriWU" de XmggCeA PQaiuaq@fg*ѻAr%+ϛ՛ 7{RyV4Dnf`%'Y7Lm#~Hߺk#ըީ Hn.w[;ɲ_UKƍ|ʱ=WVFH"[,& v敞FNN UM:$ɤF ۗi;fĺ4d4bc63/J=WmᱠK7>Z6vwpheBa0u 찮䦙b3^"іe^7<յJ+Cdx}*7]fa^,|l9=ei\AZu&n (%;kJγ]IhY≶8"*l921g(H!as ?C:"M2&3{`5dc#NJ$cFh^Gf@)d=`ùĢR[°.~:L$ͥ\jm\3=q ʀ, d>cg羟bDO F<=%rHa3dD=QZI"zJUnHkfx~(˾zhJ8V)uU Xyj΅6+dqI]y-= UNd  xtHn(8/;ʲ_{6w6JVvk'%Sq*,N8 iGv>H\uTIo>0_:7Nvϳ 9#7V\IW^(Úi8y18`X+K`u6 m QmJ3t@ 6b4 ?hFr-?9i[G<宲e-El=S}ĩLi<%i uBɱ(t-W|+\T2&ٕ?qZVFdLBmI$6KS\1١LM2:Yv60|Yvg]HHgA>6N=uj @W8}-?˲r ~uq}nu} ȆaHzjv6޷g=+LzZ2wn Sݪȩ:$*8Z%ugw-Y,'ry", !>YU gnD-nf6|]Y GzlrFnhH29dˋon*n|liRna,sҧƐ+__fYB.7=ܺv㬱^Hclx+3/rٷs #b)X>Td<{=?sx?'Y]-=uGmtm$]H3}͛s&2Yͱͣ%] Oغbӣ W+8J%\g^2lQٴnlz7zcT&+\QJT*rZ WQz捈ѕ3 ;uhH%6sd8+ Oy͝Y4KOp~}̵EsV9OdKl^{ߵd'n oP;XP@镹yٸS^BGLon{] Hl/U=mCa6Zp@>/|h:{yzfN{iz _R_2h%u) gnr`DC ߎ>@wEr")/@N$害e-Ey?~Q$ qf'YGMyeXC͙4h b g]H[Cՙd.8VT; ]R\5^P83qR$=}E fGxv 5W2[sP-ʱC?u4]bPoU,$#nUHicg{gh2깨<ɾUc GDvxAlnHtP Ը1*[[ug{H`6 |^gܞ ?=\"N]gYZ:{O>YZA!nflvmt:_gu5`{*U cA%GcVEFYYg\pCqg{c^u"z\;#A5RB4fo]3L?{}f65Z1G:qь@S3;/8 %H([ʘFK\}M@ \p.c WuVPrǙV*}%eST~iúRRݽ+ZL!"]!I߃|MB}aNw(uZ]Qm"?ߏ.zl1?"tYZs>Xf]AcER[*]# ^=0vZ~nPxG.SsRlj8ƌε`O=]Ƶ[{&#TZz"<_({ɑѕ;K~ ;phiP`3cf'02i[ǷAs;PC8.;ΝQG|NCP.Q͒Z aʅ:ˠA_Oc3uFjGA!c[_}H?5tuLz7+ I 3) Q=oJi= gֈ!b?(+`LqȊ\-Zxcbţxyzk2sk̢#EyvM}耧&$XNҖt( R)klIy8؆֤rc⬹a,͏sSfF Dšat>K#ӷYlRj 3)f/jbdWg:MP'[JM^-u] c΢Ns5+x\H ss3EX(7QG6~r.:`01J׫Q bqu^N[_}HT`[_NTEF L})+=#:󔚄Eocb_1W*NN6 w*l]\N* bȂw<"X]jw;!XaWvfsfonVeVTF3.RF(ɇY7]XYm =ߓ uF}f:٠ 1klL@6V]hId^}UF-Rߞ4 hAxHԫ>k/ܨL4ne3Sie4l&u?襥[,;}6dm#!dƲ`sE==]=7_#+5}軿|-kYK_w_6s9ka~/,޴B0-A0 aYlZ9@FT^PEoNpqA7f(>Xl2ά,ifgy*_Alta)hYZϻ]i8"D8(aHD"ӯҬi j53>KAok@B 9玕2S!a@|d0EzL(p(pdnyq>'ݣh B؝3sDXbY-bRd+C+Ik_B7؍жy{!L,.,AcV,̰́Rȴ)t$_j1z2Ζ+VdǡEPfyR}ӗ:n'ٹㆱ{ =8q@LjOsL#uD5L#^0cʎ^ o㥼P5\d``vaW+ q..p؛YBZRoWi$W  C7K_'F([k/)eTBAÀ\+|dRKfw=QG<;|=cLom3`D\sQRC$%T]xfzr~Kt_et&Zg]R;dU`56wբ(2I vs.j:bӅk !lP Os3MUD3Nn\k8=<&Z yYsa=27"塉 SxybG^h.c?3yHvF 4D'xYP u"FeK9 7W 548}0D^/m*( t~,we-k)?*2VT2;Hn aMz$}VM9  " ku= 9߷7;]ԂSi9sv|\oi6JXVaiv܊Hk^:N슚VGMD#0K BHx%N! q >:xCW<#\?ݼ6 68\Lj/P0+#+DRi]̭wzcxFڂ 2C?ӎ:# FJɫ7_DU,'-lHllY) 2wi$8 Žٜ<(BWW=7tMU,8H7r#ٮѽrQTJfzj\b&%椯){ rq;i=!kƒY$ġɨ@kJof&l}VMPidozg/e-^3\n\$R[ R")fDqj56-m ܙġOūx1^zϽHC3B N\f}jZAB Z 8G!e\7cwvC2yRIepK_|E:S؜g9ƃF&p\rQfz|I%n~~Rix79鉳ieRE dJ-we-k)m9!)dO&BrUgn󿑬cs)+{Z F`뀸_OY+G ^jvp|3rň㫿Ow|A;z+Zhʨ7xl$~svLU*t+-;LOuqmۼoERNP[ϝrz݊0ISfI*a:XCo:yAkXcI{f ޒ m@9\`XZ;a&5x>G78$YЈ)cM疶YPTn^ cy{5gR#]DŽr2!Ue-k)ҳNz #] aH#ߺ@8/ǟ3_ `zE8$7';ᴳ?fՕ+weFnX'F\ڮ QUEYlG^FW?,R \".t$y/qHf) WFvj T{&xy^y+!4wZ"e#7q*4ܤK`1fL(+kh\Vp~d&uAw%ӏ&'6ֹ8wDgr  pFc4)j}+.R `;XnZ '4q,;eeK3ipb$M1Ū'0A/Lj’)$u|Ҫ| ~Ovң va/b?oFLnB=., Tݝa_KqS b-tЛ}J捶co2#ۉX} jYcX3GЕ:+ y8gtJpuBL:Y@}&D[)rm$tvsd3Nڦdw:25Bhzb=ei!qkyfJc~uVdj L>]nZR7Z qǶn8+8E+&m*F%#-j=pk>%w<1iql^+8>|+tÓ\@E j NpsP p+w]|6"M#w~^EO"ќÄ[-|5rӖ5(|#uer-~&t\8gMs1srQd:5$yp}X/˭yYZ4jZ]xJ9;=v;㍇Ί;px:Wm%` pq5R.w=>/_s9' G 8Y9(k i¢,¬82Yׇ.dRoYInh NgGBqF'z{WʖšPjg7ݼFs 8JҴ['Z`^%BS3wI Fjr%  z9Ut8#9ʜ,"x{XЅ `wE%rΡr` 13X)g8'Qꀳ1 #`[7W`}ɘ{CA1z h B4`slD2r.;}:EC Xo}g'+<8r:?`n,SqV&W ~x뇞ǐGS8r++s;rvS0Ån+g>¯[7 AB7,L^CΈz3 s6~homY&y6D:fa* +ɓhhkDFO:^,se-5 ?T iNzNaʜAKg@A$Hӛ!xQ/X]aSZa/8:Xw݋EE*K;5v=!B>כsudr3ULZ8Ki6#\<&a]8mݖstxSQgΨ*cYu3tts\G(2&{O2Ʈuj#ϻѠvm]8piњq5*}n>-e-k)҇Յ{-lCZtP1%j^sE%;&P͐o*-t}pRC9N8>oFl>`Ap Ql.sonsHB߰{2)Ӭ+a~/3 '8}'Jl$B2:ү_dVZ}4pvzQ^A?lZoz}j!&[}x{m+ՄT3WX-E,EHjA)Tks~L"DŽ wؗ|2װ9:Ap)wy!dZoKnh$ȣWv%%ƀdIccb! n"J.~.*A? B>CgmyYZt/b_ H]XoYM"dVr}0M?lpǗwpyM>;&En`##;¸S:F{ȴ#sm @ke6NUj|좛Cg07ڜ[X' y \Fܵb-^-Lrm 4:=u2)!]xfKY:!4KsNGxڄZVZkQRщ`E}nj[g瘆Ø32cx$\3}[ItdmYI~+6"׿wXThc|O# %7IܧI@j ys搕\YB㮴p\-0ݤ7d<[e-k)ҳ"}۫_k|0,R %j>h~yCH2c0L:v l֨j7aѹ#Aː./GGI}A.#]Q}4ޏ};3PNcaVFV,ӒAag4lt-tU LVXD \D|šDM.Q.D\h. SxfoӷڱDkv5y`VaM/pRT@AA s-^teIJjvR${Pެ3~i RtPZ$@>hr@ w&`6$ `|Z߾c6Z*kf0f^7;`N$ HH˟TyCgQOu`T ԙ\cTN4&I|ouP /7Q!!C*p)0ekQNykq R1jmǨP$S(J#_b&})gqYu5Vzs| Hݲk{my6kS՗M+9 PI3:s)FXX owhU/s\AyYy>sl0ٚ`mC%L=h w}g~$QNJv`6C[2Wv 4Q! 3[K%KG+)WGȥ0NVǩM XVa{JRXW-E׻r$챻{>_D2 A2ֲ5J)ѭ"˓c]/~_gy|֗iΜ!U Db~5Ĕ$1;I\}HrDaЇ5Bj)xׄ.+u3Vz>=T f?Rߎ(_HFK8=3r[G`PT⇏YnڬM:3uLW݉tY!l*:vIЍiX),lDVc!')g>R'0]OfROdsaj5n8X=y,|+M%^%pVB(W7Uٔ2)f`;nV0QfW,'7 B6[M`re&MzHs֚uZDxiY$@}T2j23 1hXdK x OI~2kjL6Bb[)&b2>/s=zow/sr|Ɍb{K6q49O]? QT'hVRdvk}Ze?Qv"Υ{ɔhT]zݷk䠀rzoXv'ЃWKrTԛfm֦HT3֋ sE,b]Տ͔ 04>L~K9z~@.һ)~+yffq6a 3 Zk4R鷇CG$SUB*gvaf c;ΙN8NAG̳Sϥ&)֫G}X}Rti";e!V*""ê\WC%`fXyoR9i-i-ʈYI['|'oV6~Ŀ 63V݊4ΉlyoJ?c9Jf<_̴ *B&$#I:i $Sy" \K3M/nF?:a$cv|}PW^+qp<Lf.fZ[/.JK+Aѣ{+Tg'r k=fL!0p]wJ&7fm4{?u_;z\2 $F%jq.WR=8sOWr^JDxp =KHo໹?cu wZ SQ Us}~ 'JRxrDGg MmEAV(0T9ҕ(l鼲JJ'Ot:oGtN&( !FJ:0 ~NP7gy!؝qħeb{M*bd0k&96v cZq8Sck-V$,WĔú1 r&uDŽLf%Y^ 01>?1@3: +%ڙl>#*#isйhRDYmq!]GE=0.H:L%#ݠQ1u1RCF>v探 $ czq.裩''~̫y)}Ue1d 0.Mh"w ͞4"aLf3 &%VG\?n1a~&o,bEeg" Jx8 ΌbBA\bWsdZGcՎY4g岌K W/zEHv9sɮOY9y Xtt)ZmtJ |]l\(Z:r??(1+4 n}fGp(?0X3{c쥈ۢV"zfnTbЍv~k|}'f ~ ZJ$hN/% Xd#TvDM^76OW)s8kZYV۬k5W97? ,ф?"> 6`XkޓSQ}Me+R;𕧞Td񵣩=։6,A[ h=K/Q$W{vE [/h7 F$^)]<ՅJJc+xPt(жX͐>w^#3!:k3 &FP u: k6kIN*Mtc/c7Q.^+;}x,`_ AAe2V=+˕v~Gea[% )>*P:s (b`&PtĦCZRWsjKu3;)H{^W SmY>S?GM xyLT &)lY 19k"+iQT'/K#YM:st7*Ft.N^.: x-aQ}U[T4RbQ!cfE$J\W#^6㴭* q)P:QlݛY"}ػ鼺"06e⨤Wܲcp%Q%P P+~AFF}T8TR+ds / 0N Bajejavjgj"h!:=eMל bν̼R+Nc PP+8?G(vVI`pGd  :+{oa$>$zGl"ݢs|g}*Nj[[7I%-6pZ1rQ䜩l"c0T9ѧ0<ϝcg2p̧}'ήcInmڳ[Bݰvi];fMkʮ.XFN5(;$58ة!Cth(*5d}Mfm֦H9ߜ;k-N GIz z$9n01aZxl{siǮиCA񅸥iPt nP7'[`Tj1igALYtW ҧ8 5[I0y`&,ъtC"ZvfIk)Ъ*?ҟѹT@TJUn:/#.j!ٹvCU=N9n )񲗾Ü ~7a2F3LY3gC6Ƒr JD?mT9s߹moOty=|~˸s]8w3=>tlWubZN$*Ya T0)l([wCY2ꤳ$nJMZ>rm(Ae`` 2AgBXwf7ڬ[m'ělԕOHp2m[VTOm Dc9ee+{ad;0ʠR0v8Y}5P#ЧjD0EƎbg-0Xں ~Ml+4nv\J$JHVhjwF5@)Ȁ5wQ"®m|@Se֫p=b}-0+rHؐ9,U/`{KOSGTRH4H$F3[bmN]rȤ\:{5s,|*ϸZ\H:˲SmvI5yLZ =FՔ J&3f\ESc6vR'_. (҃rwJ~1M~ iMӘ߬ǩCCb?DA>VZ WILg:fw{9Dq9h\9e_܅{| /.v&G +:L 'WWlqa{ f>lwtη̷/raB S65jL'5y2z|uKLWV78ơ jZ4hXiB+._I1k霍Q}yg$r룰׊~Z$ݜ2h6kSozk>5Oa$Ӵ & !(9X6/)穸*i4؉"?yjS˿[)Je(,cVPEmc p+:n9jL;k $ }1$n5YLJdeVɒU OƬ`3hSOА j /ĦC&۴67$͉glaPM6`BrY.Xu'%)OĖb38ƵO t96fVS&~g!qC|Iove(@|gVQ藓Vi-KEHJ|M!Qv{1KAVR$w˘!+ go38cIIt:awofm(+a:[ئǒY y0R Z,9!2ln4TP:YᾑMWrU p+Y7)k=q5ʱXqv`ltmU!ϡݲqz4k$*E+^_]D=f 09YIa k%;q'#*MJ'k-fd$+#v bպ27K{1y){,<1XLl -)63u op ,iM*keޭVDü٣.\al [UxT?8 * Rɚ8nΝ p؝0':*cԙ- sD2 ,mE;8cN=$;e y* LhhoP-ߊo8Yܡ2>Kl[F9km-f(.b"Z%}0WUhzhWhD:z!=dd=LF[M!+f2) &>kj c=td_wչ^DY"{}ډ#[YJLݱv 0Rj,XIWW ?sڥҔ8dYuvxZEh{@Y"]ۻK3y ɑY{Py ^ J$2G:ssMB Sk9AbXbDl~DğvjGrvR%t.]l7u`3aT9,l=ئ&r- \E_ٲ- RR+̋yWmnݼA{fk9|7&ބOO9{@9ikQA}6958c%MO~__cy۟ezyg[?9X5P053Yiw /d޻ZHA40̐T4r!׶Ac 3m z/<ٺYrNn{gfڬ^HaILV];)Q jaQWڪ7Fe+)*USyHZgơ;/D;W?rqV+H@\go]"-Ssc}f$]c {e~Nܵ%\W*kfF7ЪܨN1>/Ւn0D}}#-Jz\a̳93TӃĪI=zsdlfmMy~/}/|E3kMej!2Sn$;4CI}?eʆ:A++ D: 7\<%1kMxFnSև;InK`M4!\=_uNvxd)g̅5_B9jxN ScT-p;5(ZDZ} zhWmB7+8^}4aY"7}g@ކ#!sUqUJjQM-,5>1Zls3zpaj|ISlC]=2i{ysF TL6J%]7#|`!%O΂RoONyzhF5@w,q~ #) ]<6JR?gMS>%8 9U8#f6{[Xl=cvsWf5-v1fA6I} O#/dkG]PfD"*рߖӟt&큡B vۑW=Ϝ=êٜzrL.>;SNᷖX,lFgnknΖF9a`,ұB<x<Voj[ 3fܐbbl@^7/T{搋QS#bPmn+-ϥ.UΦv\y:2KfwLS9ӡ* hlo!e'%oc̄vuzU~ zQRL-ЯC O~YVMkDF륳2jv­ 񓨭*jkovx۩qLih^r80(CLCF)lwC۬tҿu۟}k^͌6-b|pzbߣnX); L ׉x˒O24;x$j&rD| fFݥphHXlђ!mB3Y#L^;!_-k0D2 C$ۄ.9r4guǴ8efH~<3{x+lT,iwqT>(Iz-3gom fm֦Hyߏꙷn?LS- i.'\n0alpPl˫j#v^f7 L&ݪ0!oհe!6Ԓ9Kġ1IvitLYg<ŒJA顁|DuQp(3$LHb_mvڬ_km.|0qWO؋! a١;56Oj+P7z'y'uwC1)c,@3ޓp$5ID $jFRPo v9':sDghFZZ aQb|[HlS[R#]*f;ŦTFc3ޕ[L. f6ƻ\{s~Χdۘ: מ\=!労rO$؋ymO>GnČgJRvNpcDE҂Ȅuo^y+[ihX" )d n[- G O;"J%xؓ,Vf:G>fOwm'=SS~=<; I.95)2-yEW cktLM.4jc%nЙlqRc-0m0¶vYqp2Ʃz+݊;WҘ̰8:k6 j \f6Nu[;I(ʺ7U>jj嗽^Y%oh3" S;b32[@͎s/ fw٬ߖu̿Ղ\ט~E8>G8Edɼy+hZy{+KmB L#z~˱RXD_ Q{݄ 'd2՞ّ08Ve)-WnJ&ݵ2 ,*r_=y&d&"2NffF>Jj28"q(<:կDy9<ׄ1L[LRR6v.f%ta\xZ(aj)NXQ 9w :7Z]TNH /ı`:jVlE"^0J ytFc-z؈HڠlnE2 E;G}T7UҼu_.VMrenvڬMm[ӝ_]]6c͜j{SSi}̊vJun2 1Qi/UƖE3T C0i7U0k`*s҂kk'Sk2RX.69՞fH3%0!ׁnɖ\APt߫1{=Gt%JغøHb50ixKcH7<'Jy֑{f c^~57ØJ0[ɬ%+RڮTFa]vɕGuJ>f>]RJΌHXoISΚ OPؒPڂf/(w*:XTo3W.s~[V~nw%O͝[\{ƿc'hm[b{@s,G$ {lO7W](OPFld{2Zfawkjz)ٮ UP| ]-AOw #Y5*7bx,1>ѩtImwf'-ܙI /=v_lB>x0H^EX=ܙR_Xg'$8|}% Xi>dO Ss"JNp夃K)Bl֕ҡW_6je-XalpwU6=Z/q2UBӵ^|:ՙ;YIryG#K 1;-v,,5)Q8e,GA6뷲RwL/}ؽˈ(&^5?ͳfwá 7a%_M'o۵v.سT昔w܃k*UCrWukw)ęW#y"Ly퀻Q1.R,F0z4 lw;-95^団 ) a{ۻi KY ❖COםbĕ39 +vW)f6j̑#QbZ]rnklJDv9\(Vx\gǍS/7΃U3d5 l/5Ny2U}+UG47j5k^ͫ5m%X&A"+S \v+c dVx|_[;u `GF=1[uL7܇Ͼ/\7_xMB}k̶?||_O/m\vK.`j Re?~Wm;կIkwӂl]""v1FHk)mCf,VFk2VXZ,) 5d.9 oEFt=#/} 9sEeLvg~/P.ӠΐtM6YjF,}G'S.x}f q8rCB&qz'Px9ÙfC(Vҽ+$;ir?DϭCt+40}᧽qJ!ؗnfag{I63~Bb٥p勺k,PVAW(,ClO:jԵ[:Q;ʼ*S-v(0̩Qqv\:JwVģJ:fӫEKau-R0K+?mrb)>:Ϟ'QKФc7Deذƫ'=@:%LZd3G8'b<5R]^Ds #:* IR`2ȯnENOn:[0[wuDU>63@rs*rԍ/o6H;RP'j&<څeM^UE/^,D:wHOT+|?͎Y]!'_}<\?<3OddjYhV3zK䇓sLٯ3G~S~_=m:ߏԭ&Eo/;ɊK-oZ~>5 <… %crWla-p\C J {T'ݭ g}3&)- 3->zBׯtCQ.*({;YA{ٴ!h!kX&zRܱCOsHKݙL[QsBA-8j|='$ZcK%-٩'*U|'4ʻݮn75ͪBSh@KnFInk~N^H H'=jjjԍ4źx|I'Y%&ooޯ8nYpcw~w{k>ax@ wV[P(!~u•l_k{mI>YW6~ɳȺ)[ Vw̍G2X+E4i*z.~ kݧQS>dB]qΊ60BSׯ)_k,0>Oqζǘ)OGֹ*n.Vt0[2I[l)8sG KЫ$UCnmxbJX7u2),W:f]N )E'N:򦰤'妬ԭ0&} wR34!*7SIߊ5,ZALO4CQ?,Q!+p+?G?gSlZG.񩷼9~u}g:˵)40 dS+T6W⵿xM}ff2>}*o>䡳Sr~XPuX=HXw.q-/Gq\i&Q:@7̞jz5[vyv1tZjJI*AB9zXh>qPDj IU&َ韪YkV]J3RnF*F6Тj4K'VUg;L*2vZJXPS:L857:;c)Q6A 6 ]ioz%"U2'ktfI_4㦇t+>s~|ӛ]bNp}OcU~˾S0T3(gM4VTIꚝʿWj;قic-|?{=ڰ~@Xxj<;t '|3;;~ ޡS9Uߵ]ґ9X9ܺ7 ZQWai~#cuR&R{MuaF8 Bbk[Rj+NCA{:"wV2Bv]gqUƞɴWk fR0u(cGN XVYon&TGαtݾ":y@<^ PtK7\`%{3R~Q鱩8B3\P:?G6ͺ8w}OmMSpzHq*5uÁ%Uf5 v>>~yf;N|br7|#e9a;a/B1Ȝa?puuf9Q \fc}zfNwɖUbOj1&)6m~=8jU\Uԗt~n\o3RNTk}3!Ɗ"2#W ,ZEfWtOM'JhJMf.تN묳zlh$9U5j6~j/VRuddc5)THz . D5Zdx^hq`+13N bOzLxN4Q`+60f C w}?iWj[YmjG !ic?v^ŠZe#W@+WYau?cߋyU }2O|WI_#Og'𼇹󿠥ut%u&)MNم⨀9p?*֌8*nBkG qIDjNajyly9!e ;z=>d\Պwx l:C c5ߣ|Hf_0k6iH0mG<1Y&93[ݱer6PmI)EjF*RY)SUtV49J5aK16QmwQTDHR61z|S7سd/ zIEM Y:J\J))_V陲o/|fW,7|u||e2e70XfΦ\kI+˔{`+ ˴&>e(x {wOK7Hzyxۿ=v\y#S?RTdJQW#~ylG.e"nGs?Ө.l16IbԂaf'”`|skZTf q [|$s6:oߙGȁ\K^63 o#&Ybr2 c2`]N vΒ drHmEeJwÑS9E5jaFJF.LPޖt)kբ܏c()]1D Vr'j4y}YsT74yr':w.)ķJR91l[_ nY-~oo~oدŬNaQ_;F;^yX3 չ 8jăz[Mb{ne~o?k~ R^l /I81. RhRTNM.;Q=80lזLkRX";UVzYZ\~HX*0èv:R:t~̋26p;0tGjkR2H]wyD($&Ԉ4ħ3=ٙfM-}Rʚ*^`) tWکLXݶ$diHmL=ǻ$&9(Fh,<|5™өIB5(Gq+)Õ6{~-ldjɩPrѡf@n@ MEIr" CVd g_M#]"a ޹q~rνL_: 1ci0dʬ#ӑtZd4#~P>mikuPČΐKFh"JQZu=)ťҮ$bZV 5vcyzKy=\H)|!{T([\ݓsԁ&ꑧְy!QLwOp,XI2DꑝZtFZVl=6zY1W*(ɬ]w{_Y'9dWRl^1 ]ti!!VsRї<ΦxAɕKw~ٿG?o﮼uBzi,)LJqmU~5]ŀQ9 hs%״ɽyyknGlL+{C'oI n!]] *{xےZ));bhQ+.Hy݁ːk ooؒp 3K-fwUO'lhYɃ93q9Ώ+t#H?kuƓ+rgjC:z+=TCǭ80M8:EDŽf $x%{p T-񌕞gj&ӂݖ;uFef+nzkGF>P?UX;êmt3ua6l W^Gw|}ջ_|6zG@^up:˄VFtUє-"JgԪx9 H-r;ߩ;\zK9ySVq{ onz^b1/CNzh;>-HI 1zֆ?hl)%@&!^j[|=p/_2U:]߫1-YLy v?ԗ+&/4/IT/pE392\Jd5ݐ^퓒߶vM¾Y(ZQ c{_a]"5$1a /2-8Utq1lu2&#O@ +gzh2vLu٬p[ cT~7-I/ImC^8mGi4lR TYzҲT ;ϸb&\m;,`F;i65"t3awy$gtNc4ҏ'LF6aE1ߒdx[w(k]CY9;ͥ679R^R@0pXI}#'K3fKeэ?P#5xԄH'4z@Qk_] xX6#w U2[Rob>OWhb'TjLpjaνWZIaUMʕ io}m??Ows!Y уiv[6(٫Hʁ.w~^r7{̥RC@ sݩkYCb۞{G7ExM_'G߶߾}o}Oh#V/ RnNm2,.fBJٰ $bJ7TfEϜ3nuWZ-4 "Tc]"+]AY=jVrezp{6w\#>G7wW9{NR0;AIUA߲  kmz?TNIcnqX>:=Lk<J;&->r9sqwN[ق{.=/\&]&Zrufxc)c#$cjgB8u¸!i< 1a/{q"txM$*vi>P0G^dmqJZJ7bktro`y R̡?oz&Z #MN}%M&V-=_1}ERa~c  - cѬ~IjI^UD5;ؿ?s߱)#Յ_ƾ?ƹx;bג zh?_[DLc1u|a^Sepg)XrL,>XSq; dgGb::5*8H63>C#O*N]&NUt@ #'ų^ZaI˴(!WDj% n٪hw-6 3Q]MF1.Zփ.3T\#= !3{1FLݽ"!B. l/Md-7CvYI/y6KltVKN%tAeNE7:U C_}_D0]淽{st`HQ6\D%VN;QDx=v1.ѓqfݶcqAQFEzXmdw?o+]ӥSuDk'r~bzRN-BC(yHx>A, )Wj"a@WZ{Q~HJ(3ȳ]%;5qyC+E҄Q-ERpqbF]8і; !3*ҍ'FmBR;EE3u++0) O?w?"a9&g۳voքe$2e)ӯJ`t4;\BKpY0[+-;1C %2` Lc<ˤI&ߤq$cDQ@g0' iK NEW]\][wfn%cȝhRtwt:`WҞ`d,6Ө{Ok[Ǫup5^ѓ8x6{y 3UtaGzw+u?rIIN*Ya8ET׌B&kt_Vu2Ƿڌ(aơ:?wVKe6W.~Ggpߛn}7?zNϾb=.Z3jͨaZQfXאQ-] /3q.{j,3xP˜9E ZNBA=WO>t7Elu罀5'9Y2_nlA;<-]wKXwrf\e7U|;bIZKAnB|M",G21>Tu[ ƁٍxIܪ]TV5);\70ɰʸ֒ՎxV ,A~~$cpT1#WViI};I̬D*Ihk4!5;,2UV|{%y ڡ$X*-,D=X:dbйײZ&Bhs/?{yCxir'1pagg0!!H jY$Y8Ӓ 6KzJqe=F[])91Tx[:rp&-A}Ph[>!cNm Zjc=bLG$´ǵ`9&5[ @1 /V> 2+̲mg'֣rM5zIJQ(ɟսih5ir>Õ_o=O=/OWc ~:1)譐 Yku]AlօJu9TVbSk%͗NN`ըPӺTAM,N}_8UOǫlU]<[HPEC8p?K~ xwnMWoo.]xi!{;'Jt:UizsW% g'2 _pfr;oe&[&/}o|B7crv{BZɕ=z_o/7Itf-*U2llL703I"mqa1%[+^' 9 <o,UyY*l 4DZ8d;FTxɽܵ"*aO1Ssu )NO,343\טyx8pgnN6!9;llAOQC7S{TW?+l DU-)QC֬f[~BY%] i3^'Ѧ@_}܆|%:H[9\gV Ճ`G˽6I_Lͨ;.pȨu|Zjw˩ҩȭn|\D%F=,ז㝃ܫ;UCԮAz #?o/ǦHa=>/ٟ!n 7p=+u*9E dWdz+[^)N,}eRlΰSez4wmEzq-B!'o}/mG%Z9=v["&`[$ G1O<Đ%1iL2'҉%,Dq00 7]qzSEՍ 9UOKNӚPkܡ߷ 4^kJ\#,f-fوs\.ݱe¿Ew?<njy<v=5>'?*OiSÍ X'DE $TPF{We~^Bw+fKk7E`;'W}ag?8=yy&͜ɓ,DŽ+Ҳ#*sj _#ISr}n%/d/~4$-T5ĝ [W鞺E^0g"9gp7LN  !ު|CˈBefs;e0Wf ݚ)뒈tkxWk GOߋe~ksW^rQ9 ܥ)^#z)pE9Ϫ2M-%iw8'sە|M0UMghM'8*g['F#ATUWv_w~N=.?_o?Ǟ3Plt5A\Yҩq7OַAbNu÷] w351s|ܥ;җSo]"/cM{bX<&-aJns6h+^q]!XYHLihvvE{0;c%/Y<8S8zۻ. mcVǞ$Kßy&ae2r ᖃ Rs V\˪ޱ~)N 4 TIg[ot~\9錻(p?Ϲd&2FXR fBTȼ+>ooCwqupR5kbX&w!PB ;5*dzq7\1c>Sx !Jnٟ8̖t|cq."Oz<̨c1eϡwK;٠{=1Wꙇ.m.slL8L.gqΐewryl\cIpEnI=ڭYrJx (&KV)8^=k}G0}rXQe!iuahUR[ӌQ/nW'raySxv2 _ށ'~4av5zA`R-lR5M +- 'OJSmcҨ:Zjɛk`y+}/zlOo}?w1A>:GpXxFdBdw;8tZ19`QUcIaeQ - l3HaK,I&LbuMwVt]O>2#G&CǢ>psU%Rf0$:hI!,yi`$sօ.$=kgV#1W%Epg Nn8LYR$&$:;20p1vWcJIE2#VP;H^Xe̐$d5X1MgMJ.l*?gErfM K3@hXNr-뇑Aˡy,W.}?SӇ6ECx=}|/{Y@2[S+%>SY(ڑ(x{L5435v`e̚SEGrL,Qe1j"Eq|g{qbERqS{l7]$ɍ0MD8UƺL>g Dy9!y)ҙCnX&*sxs{1 KhIt$ w3s:398Bc9c:f$ a&eaOUnA7J+5Wi4B7U~:Ҥd:tW,Lz[k O@)/c+__ w#>@3UҨM眴Z3D[-;]f6y=o6Wҝ0X4ݙgsqͬs̬Dž93wkͩ@:t?ݩ[a8# j!, )Kp徯PH;}^86I9iF`Խ:hiL4*rd,jUP_*L[l$(})!oh#aλJ/R\|5=9 Lp\eT: c'L^zb^1Lq\X\\5aICGfIP{lՑ3vO3X(Uef&VuٌVCvY7^숹jܞ0sT,SzD=Èxw:߅{oXSO>k_ԞJ *Ċh7K(~0qrJ*SG8ȩ\s~tK*,wM* tSw?2<0q|H%QR¦V9(#^g`4NV;jZALRG6M;|+O\ӛ"!?m}gvĜH&cMOqHACORRWm$W]n G4G@G.ȃ1VjvSps\eVI SHv1k:\mpA8\[7^5,^hI8gz;U+*q%'e5{}ÇRD5 FmZan2q +sIЅjV6cd鬪`q \9+~㟶 W^6ECtk^WGȤUG2:䚖ՈDH̩Ζ+| 3z}[2a ̀H ,c'jrz?R?Oc'z4xkr5D`+ -Hamڀ=`a 6r,$hÝq Zbsi-'W7Nd"`ҤCg1|&wG瞷`ߓ'qeEΘss,+oE3Zgfb\~ZZO' D,}goi*@{i\Y߳_/9z NlY}y^_0ZHiLI(K]wC1^h%3y(aUZJʚkxNV5uN깆ꧺ3^7hNC|]|9ufPj3:t+7ug=eH¨Hw q+քT6ʸ=ϠQ7, W35]^}g_/RJzg=i1F2S<JӘD=7  Yh&j0\c$YQb>mm\^3xqd5BRѥӓ8bEFON_Q&`SUK`2&T#{ԔC ؐh%nu$Bپ'[<#DLM)nBИGCusOh;_}1ӟ)HJt)d[CBQ ?d{YF#<*DN+Ysӎќߗ">@jNͤ㩯 E:K9͟fS4Cgϣȅ.8 2&yȪP͖܋qU3ؒ__d5R榓]^7~O~\o{Y1[BX 5]؂u)6=E8VdHL#2RcS3Sy5d'#Gؒ=| [G-˺Q=fwV;Tpg:oLsL|+G?KyxTS uCOY8~G J8 ^Mj5W*|;]/9ȭ v7*`|܏Nu+6[=ơ|힣X ?̧ sۋ>Tl׃]$nĞGk|VQB;W*oL꩟gBtj(<Mo:u>I{m'r0"tR\U -v\z,KKע\v;npXcYhLgKsjڛpԖ(m;Tΐepuⱚ iaj0`m G7oqBŊHONBŋ*vfgr&rGlYD?ꜷN!%Tk[Htu >;aߗW7>QߌϦ0߮o/G;:C(48823.VYՑ]AvY ~_A + cC=S8Wj)͈fbnNVݶN'^>gS;(%wDOo3M K#;KS|ؑjMYkrAPCIHua֗7~+w&_}>үSJ`R|k"9 Gy(L%r+uvzMvpg@\eD2b%Jt_!C(" e}Bg|K²-mCM p<{2QE5η\AȺuˊ2r*Dr`zN7lZ(:i/E }'vd}4+NqjSr(Z뒜e,Ƣ! =oq,@>~w\)y*w`OLGmPa$盒mvvC؞ST=-!>Ge] MD1]JSu䯢(Ҍ"jy|oȞ7DL^QxQnǎ6wEהj8B4J֟'?AxzE 6=eo^gS{}.:'=Mk-tJno^^X>w_Y߽NEC膔76crƁ:>ʋ|r/J׿p}OCqzg?>BtbF׶e+0G:$/!Yw,snH0i-QZ˱kw`xs;@Yc}Ή VC^ax4=ISYEE ?S6[R=cArf$ͭȨՄn߬kF;e/q+̱#onUza3V?)T|κ.s:gjxJ6! $/Xf#3z5{Pe{2JhՇN 908WʻL_a_ݟ_/"! bf$29.ޥtZ0?ƴ. `Jf#LjlJD" b܉P9i9@0pnMrUs* J+ { & d?@ q8x/-PH+y[3{?}׸xiB/s7dx#P&š.a`a^.|-#ˤg1F ܇&މta(%k}|F,3rO* !"  ހyF{L2TV@-bB [tM%4 ִGw0^-5 W E!{SF7 WJMJmyku y5PAK͙>tVtisGN/'8d>JV,(D^ܖVD~{YN7#'})D %wNNwٴ=>w˺*$^SG[u!ß׆<9iag#}󩾀ڸ+MϷП}C"a<W_Ã0QJaDlʱ6s}7zGW\tIN\Ѻ#=W0; `#=rG3l<228_لYbK4`xWY30fr ^_1"Hi;d2+2^#~ 㥯{J$0Nz>X = d9B. 6&Z)#8TOi!s6 B)`x1y 3%dw(LɒXi١TseI$% 9fK̉?01VW, E6Ke,۴WMsݥW;mm1`wIزbJUV}YKLQd4C' ?'8}JkkG$CJP pϧUVptXV' )Sm:+Ucߦ87bVڽJ?m"b>@ Ŋb҂xnׯx-x n8;. ];*^/Ҋ%t,T,vF1bJtV}|2EBPc@<[ǷpΙрiע}- /;eO?a^Z ov`dX(2lFW1A0b5΃M0eB| eŮL!;qy=nN`{= X<R_o[6e&ӥwi!񬛼n$Q%ezjʞ USûZ:=[Tš|ejuOngE!(T1I$ (!=!ZYxuQV`)1 @\oDYRkN ia"#uiRk9: .vL ө7uYt[ $%N Ըtr넷כ7!RcP&c4K)OX[[[v+g02ѡx22OFL;^5M}EW)~>gYѷ3h4dϧ{u痽}fN~B^NoIIEhͪuwM_~OwO?x_b@g0?Lx ǀ]YxW=tCl#I31Ӫi%e= Ǵɼ'k'5?g%p׌i47^6iQJ|/+| L.SAk@9;po׫?$ݟNjxs1?>b{52 ..HSYq,#?+޺Nfl'v SFǼ"Gb;va;+^t`gXq@.ķLW5#&$2;}.g,L (pTkeZ]X7m uþSԼ̃I :(g,%;,f\G~ nRưsH5T>:< l1hXrR4FAP&QfezLE+: VXîTmoe9 قrgħPsy!1衼wn_a+n='O+(V6zBoߦ;i$`f8Fk ]Ix8c=&$&??u>Yt'Cۦt둳QD4n{tf+ؤ)CVM١NuCiDe6)rGw?o:2[8E/~̇?5 Gm4czY`4r]UʬlF6#O(kSC~Ŕ8Iل8},pD8$"U,x >C(cśXV !cB;(D̜3hSp ;CxXaG[ 9l;pQ'jy9D8Raq晶ƁiVHyoB7XZC+dz~gӟʊ"e`Ίl@ΆkiFB%"Y1;Xi@FzT`X$L&q2#ڥM0 :a4sVsvfPEB,TJ›уZ!$>Hf^U2N>}?/]>d<+ .le1 5Rg6Q7 ]gřthW X}!};|_ n Ys ~ʶgNǷYWƼPU6zH{ O1]QB 4G@ZuS|t 7YzT}>7#ͫ_9 &'J{Nҽ&뮏Y[{E*JVaVY_ |S~W_v(ouҿ(ewTMYa%٫BuD {܌jR:v.6tEhR@Iq#*#4].)=v-b!4pm@y"L %Wuݿx{D?\[%"3B`r'a D%َ䍁btX |5u/ϛ06Ql.(}#~Ƅk΅X4_Cv F5 wwhHPz:6|$BRɪ\Srgx;+-46=BF; D`ydߝjmvO)ۤ1i{8kдxݤvmoLd4hԤ2kWbYe 6D" {R%( :?)ҿxu0C Dg?#^Ozx/7&wKY*l@[m33VxF=P" ̶ڊ)YvFN`[^۾xjq/{("yZ9g@~U<_gµ$sBrsZ*j `ve?7e)S2 l#X!HSq9G泯/c,1:l%bxe"Uh DWHX,!=hsZ9w&``‰za]q4'Bxg^dmRm6{7'̈́t:7rmIe)_CɲNZHέpۄvS5Ҷ Ow[Wbu?I $H_8'ԫrz[=}nau۞D)r m3pWiMz3x|"?|~?o>tA4<.d_ v )EO.8Uτلa+ŽnsmVd P@'Z5`lήfcЭM6;gR22n!/'ˏBXr(fkR7uIvdl޿63_WF+L8Mg?L_s__aH 1u8$@bq>3\Dpt5Rͨ6 %ETG Bȇ${+B09IZ)fm[D3(]+1Nj4zJp'f=2[t ;4 2Z\*q{2-9A^}a9KdZZ,WF Sb6E4)ӫAOJYCOڗ3B>`ׇnRgӷI-p>zצoˀx.m U;[:i5{%][ȋ_zH6zܾWl}y~5p aG@p^G#;G^b'+ưNrd3Y;DykH UjaPWDMe1X.x* ,pܰ _Yx%V~ϱc{C_Ƈo5w<둾 ,6@|\ Uɭ Z07J;| @q-ĢL:Q _ߝMI%jEF'bREJQ1G,^ H6\80a$r$rVn#uWXQv u5#TS*JƲ1YdX 4Cpaʤ ps7V3[9)w2NN36Ac-u lBu6k.#]QU9 r;sԔ6mr[OO.m׮3"WBwk{yCO:Az ?ƀW$߭H$l+J_m؀ ?4c&7O'5IqOlԐtb̃:Wóxp"[ҿ//?=ۆ[hE`=$7Xzg;a&k5#=ƱfU2riC"-:nbِ(aSHTv /bJ2?&uX{BrKQ-}CdA5o+ǚW1C|_y s|)/^> d2-M/b_H&`J7QW`l4nXNfsny>ys\&hu (d0X0aRuDZctG V*A1sW!ԡ# K1,`9(ET"s45ҝBOĂ LP~N'JҸ.p" ŨR)s@ݬ&A{0N@7mLel͓vS^(I*V"JƷwLJU8}B'gR);+ N @)ӤXr ̀5}a]x2Gynnn6CzMv볕-@T]xlam湭Qjib4)s)ҿ_?~Ëvn[~OܯƣW;`7=~] ?qG 8y+|o.4%6$ȶiz}qnaewIWq$)&+QG۳n}Ec֟XӶuM`F‚;glY:J~WW?8ܾQ& ,wn ]\-NO]1*lg_z*1tZy8K2c%s.MW|=>N(N)4( Ct\0(3ueĐf-n(`9 K.uH2Bpwr@4mqG/ӺtDh%& #e%qRXFƟթikg]! 23?O&4t|9'-'7OROԌQp <Е |6)+L:#O]g~j$+ޔA~ݶvӾ CѯLnhz̓ZݷmwQ$7ֆnW.5253c@ o__Su͟ߔ?t/}s_ vwr/o=X:&?Ý{K$\ eP3n;U9r {I}w@P\t}92:A1ȸ*jG-[ NΡ҄d>ꖶ ㈌ _G^û~q;|Gk_.:Ӗsac^s CIQPo'uCȤL֚\I4.hԐϿ/)PRN&U)E1,j01I'rNK$+VMؒL0+$ 'p1(Ւ<#T6M(ȉX#Q=03qhPq^fu uK`KvT8Jp:Q[aJQ(ͪdmKbWd>nf]:`l>F#J꼰O}lemqig-oQ'l^Bwl'?m{n.~=jieƯ&ˮ\ \ku?ʏ|=ƒ0=o>+N}֊/^/>_ Kb3v}7vA_"שMy,w>BYmU&]F1"˜S%<J-]='L] NYq! >DD2gRLJm}F5>}G\?R&r!Il74"J\7Or#JO;Hi׺I)B&I#"59o"5LSH2E8@ ^0lqDA3]K(E #b! 4IajBØ9Br(PlA=& 0qaP7>L|44)QPr$8l&zA2I)Z]VyMn0%0OSx%Inųꝝ!O to"|Da6ԩ1vZT" -49v{ݞ˪B yMumTK q?lwsΈpښ?*7]Ԍ~^wHb$#2?g"yzZؙtS)n ߙ~o|+; x'<テpo B%7jմoă?v;_dE`}p&V3~-e,`&%X cFmky6W@DY6U"mȈH༭JnU!`̪rBz2(_{k\bAțNVk3@K]u bh0XG t;$I+3Hk2, K[BR $CPǪ!b Hq@1x(aI71(? qE8C[n4>ԉ+o QSJw2<C+ Y6fD 9}뮦'C+)L'N> x*Yj165SY+N|:`s'o>v Rs$;l|]%L'Tz:+Np=a̟<{]V}KFt}Mvsl3@z}d|{@fx*IFܯ;b$z??  A+ ~oFvHЌAڮx \}kx> [ /|LJ_ܽޏn*!ZzUJ^/qe İGQ`?w.٩ZYv$T , gqƊ#VXre\ŋό2>oƂԠ%Ay8TbH}-"=Ns)  )j/G^UX@CE-1̞,C"K3@^݁@xhTvcD WCGs+VjDCfR׆'k]"#:hgn;VJ"hLM -C18Hu:apA̯vNYIXCƲ܊{R|﫮@UN1MsCzxzyX=vSˌd*k=Gǩix5 dƓr^/=AuZq t[7R>I!&Ixq)L\wM0F`ţ"_/uy?M1lqA*eDI7P UbW~5 |1"u 8`@%VeږE}6 dW H]ݾB}c2'^s[%o[p<;COpWC锩g^t)s$Y+7aZ"$| wPg ۈN K).]*D3y80QI :]h!u`iY &$S F(*LK0iVE5D5 `GdИ G`7IQKGacpJx` I=0# uI "&!phncզTd7yC jQ\ gk{Ag">{?#えDݞT?iz+[fv10kfDp֚+PݲvM>bI9iOy"[,h(;i˔S<%[ˀG8Kg7Y*N#+)bPA >G\aMR0CBWT>AL@F{Ӊ;ЁHiA,X#.#%pW="@&$4f+-VYUZt\\j4\ 0S:<ۮZw܌3kh9a]OէM8+=zw~_x^|(Ȼ5# qVp~e' )@ț~:i<=3 uϿ~"'0##2 q,  ٖ=m]Ӡ-H^&l4)3>޺)Dc + ŌDp=wtkm,W/!mkdm Gz%N [˳o iV{K҇|kx{߂큷^-=sʑ& dv؂|-`ކNwKa\=s' yg *gqYF eO^5Ev {º CY"Lx@@fSdS$ֱ4cf Rβ7Wه'@V [XDKL lml&JS%X |dԤ1%.Z}L1\6zbFd5} 2dZ]k>UХ&`&t~A8vgZ߀eϘ}Leuݻ`vn| c(RW~-n?_`wEK7rz"^/Kc /Y %ޤ9]nxkf=_1c;_Q3pkL%\|GH&Gxm#wpa':m IL髝9qR2 O˸+2-;vQdFWPhۙkShҙJș_<,Z^#s#WZfVopcis)J˝TyVx׀jv*K*(X!CH,_(8F)SP{Ԓ6## )fӵ0iV ѷ p5zM&2\+x&TLbt N^e ]p;iHR3k1,&,ZՃ]WMTj vU[P;U؇LԢ϶wE gSɜ ?`Ȯ.?m.3;רϵJhcu׵ӖMDm+@/%Wn!t-b XlCw *Gmn#$'V'޽+c7nax $IV##C8Gb+:Q'J*ʹ܄!&%B$}8JCp%J+Pe;c"U[]r;%D+7̛$9qL#h8`iA zG ³"SkZ.a|X1 D-B\ds^ЕipB[(1[b:E{nH_1O}mzRNkwU"Ltn1R6N@Ua_`{%!]RZƆDX@?RBR+*ϑ a?q*N=˒[ z>D~ _v3BKV}{]i90^"I("| bx;~/~G!qB5 .ܾq%oENn+LPu>7Z7v7,tz78F.HZ;u x >-w~ƺrR<3 C2CPוNW?ڊm&c!5š0` сqG07{Izer?H#bd⎶LKCP 0)kӦI$jP @a0RDC CT䴃!a7-q`oc]d .6amrZ{Z89R4:p*RAjᅞݡ>Y%NaUfrBFز\BU#M n6簅3ȸ:|x!8NO4qey3HdUo>Zm`K ;ꚞvĩQJ6^h\ayjqB5Y>{p՜q?c熂cLkMeuTHeZ 魟$zSWɏ  y%|-.#ah.2:5⊰x ΰvK}JBDey(v#1Xc>k.x3 j@i΀iі.EIUO5n$zCan#biV5>O#(׀s7C;Uza.b[,r}\tMtOITTӖHncӔ2q1'#`\ 7ex`G7'E<=_p_OG{`w#<q(19=BI.p+oA."G1>q,X~nkE.iSJd2=JwExXry(HԼʺi% UZJrwT ya05XaZvJSd)%8#iӽbYͱ$#rp)` iQ0(jP5 e%Rވ  21(, Õd㊼nxʘEC P7Ke?MuP= e*c ;r ԡW/ucbׅRB ֑S:jfeSM2{cK)d2(#}Y^'¹iϊlQO cEݰ=j٤3zbE/nӆ2`H^ɏg/l+qs H5ܙ?@0 /a~SX^47#_?}>/|8"3<^vϏ?7_F3eX3Gj1a ӻÌ^(. np{z\yGn2-$yNd 62h9 dy91JƜGL2&Xq\ i)O RY"#fVpW̖0b-X,#Z~JE!+E##8.XVgV9-@fw[bP\ޡ+&IzG~{LƦ+C)`4f>Z!l= T3P.]8֜k#=GTZuoLdەj#ژu aqa67=E|.媄l7<=yʞ{Lp`s Ľi3=mMD%;Ѭe p9mfV>t6KR G&y֡S4~Kta3s H1ӿw]S5fû52[n@JI[r~ÑKɎ]g.MvxWPP Q$&/Ԇf-{?:=vx ןx;@q^cߋ3_zXe|*7{q/o_շ~#[ç~ W?Gk+p]ƫo͈ C w oWq G\vʮr΅>FCX7jԩ,-MFI2Wa4D^}?ja #pwjqSgF2•jK"?rb-Mĺg4r)6 <:'{L 73pL@ UEv(-Į&3 S4DĬXs~/1"F2at\ń1^ >W 4U ֒: U56N]FjcL̮4R>+T/QffRוIS`VM fA Fzn·rgcGLj.$,޶/=\Q8vK="u60cWbm"lo]q zݲ\Ior~[S5NG7|.^"_ND=jNsp\ވ# -9ׯ?)ҼX=yv>8;S{;M!x2$P#:^yV{ϭ#CY5~ Xwp"}>crF˩3`e MPuއO~Wj\~7!- ҧ>}W~K<~1c&#E ʱ} |c}@,eybA +: ^0튋XւXf1Fx#_?y3I /|_iy9eWWk!{1J6.N%._$( +ts!c-()( j0zP{!yllq8#`_n>n<%_Ss01:±nq+Lyd!% %*#+~qC vaBb^`ddX4Z8 : ?i3@3V1/tGk a d-:qRʹ%lQۈwo}K@$'] 77φg,Ta,֮ZAE uh%dDWCDQG`6bҵw,d۳KRheV=ե479 4*Id s#+ohI膼K ݔ{jӷT__taPצZC7-YM[)7+DCg.gҬI,> ~g8 v=޳S{z]VJk,lE:*<{k ]j MЩ}2k&'_/1a }<{9OxPr[;P)+|W{;:@HJޠR28EaPnLfrQ;} W1f7.ao a8Ȑ I"EEP0RF0g3̂<;C|O-X%M%C8#E#zq89rF7 l$10| Аךn ! 3GuUFmj>ml v9;D G8U1E 9bRUI,xCѽ 0tuV~p W>r@5)" G,pHvG:81'؉<6'`WR"vu/hBrj BhZ trGg#G~5RƶTċ6oRեk$|V֙cп6{Syަȳ4Hu;)2ӵkėX=krE/rczdqJQy`z2dw_c/"=X1F(7o(G #" tRHv }_+_epdCV8@Db I: 36O(BX4ȐTpZր ɤ`:qa StצC)b2`|H[=͚|Jc)V#Hiy:/jB"Hq@{5HP丘"lq {0|0D $nsqo#ۊ1(rR1!d)ց2d%"gbqpX; .s1r4^n89WBf\ˊAfa(a_Xsƕ@VC22J\ K}9&A-&[C j~@eDXUmZM6-ZG|n [ bts_]S $X,%gR/;#n`˩re+5н >|){DP`#۴[eT$ ּyIrAt'f+M|3-U DaZǿ0__{<hB#1#]~hױNj8>+ӞI<>aZρ{͸oBbTT03X,&4/^{ Bo2` vq]-K -e a/ ld:(bf˘luX4YPtjd)Gg$q<011Cl3D ͖2fB>TU/fN9Ws9?2#ָj֩ ЭK9wd( 7!N{P)sp!+\ haJT4d-gqcF#,K8+P"~T i0M}"g@tezdTy^W<0$H8Dmn* h85ݲ]XZ-fvip 7>NM64vNʗ2FGZѩMYb!d/dm$`Xt/R''r7ZfO. =Φ>ObS$mM^2?UY}}C&xh"<$,DKMŋj$ѐ'ٹkj]3^Q)L= S YXZPf'Z冤T5Zb_xK៾|B oRg>rCm lt(7dX6Չ wNY.Jgrܘ~{NsrT-f~;yЋc$]*K7"jp<M Gu1" H"e`D1"4`r|cGP!\i#Hr1c !07< 3|)ŷ K`Q1i: `"v͜wkyVjSr2Nt3kd6tUXSuO̙x+ W vbwd pTI:a cBF\p1 $:`k8rv\+P#&.KwҖW} 4B TkxNL~exP䦺[wxY)Qԗ[2?->ɮ@VD@˭X*!uF]5xW{jQ$~V<9Լ?[f 5= [.k*13]PujSҚ~5ي55rjښx-^$э 0ALهi u^H*׶>gƱѺ&Kf?_"w~+<Fݭwݵί 6 Bwv&2CSv#¦dv4taPCVSˀ f7R\F$pp7dr< _ 9#]qֱ2RJǔlNsvv#gdsDGCL/{(BwsL!! wg53@B-8<)$Y!S8$lY$F~5Ψvٰ`Xԝ&*:P3xbƼL‚qXRZ\L2. b <$E~wҡ #Hnî9t( ,aՀ8d,fPVyzXC)+1xSljCˉܦ g`ڑz$G[9Dni ̘vUe:FfEt[=UIb`)J']E 0蔥+''Au0)'ȡpƖ3ILs,gSAYAǙIFi픃I-v5ݳ%h9U^!OQM ܙp#qI#-GW/s'30@/ o(WѵQ_|w~^nq/]ၳ ]SmMx6 v^Ǧ?׬ 5h^d fBB a,s̔x<.;8͐&VG THY>a#1`6rD ezK8"0Q)|hX0ڑV`RpOCS~a!AaEJG`A VHi;D*ptH9Ukvy1 E2dɊ6MmǁpjP$# +' 5?Í ׍@Z[ V #f<@ %`M G!bRN9G0 TzȬX0%d*ؐV>]tbb/LS:0guaJ\톖#﯁5$ %k+栂!RK!pqhoam20uPǜZ4.s.*pXxY }:fv]q+n˹\h xV( 7vv6.eg$XѽG1sRocIws xK8s?='7(>L$dti=S7@WUZ/ޤDj9w yVS3~7*rU[‡8u0 GwG5%0{d>. ~cUOD@8AJ Ǝ,v9.ͩ(Yn1fv l3I%.*VyT:ajRSMxv y@Na\qiJܤ,G{! !)rLW 0!mw4\5q손59<)b(+>;F <@D+leB,F=0PzK(ITrsڜr"AB`j.a68p$kT𯱃)7җE#ҕB Kɫ!Ȗ; .6@`^K؅ŀDqDsYLY<##Č0$D ArL0.Ȓ5`?u dE^{P|88,{ $>%de \xqih~cO~բ3C'kje Ũ2-^r$/juIVj*Ͱ̥$5طR K"%\,bmb'jg>Z2wI`TRI=eOTvz59s 'ZզyKc{hE ;<ыn_漢?B5B­G O˜(XXw5,7l޹'ױA6s\vҁV hS x)&S; O=[=<ၣDeBD"ں1:B t<06Jߏv#iSN%{vVdpBajӶyKvk ;jq,~uR1dx ­41t̘ 8fc7'9&9' /WW TaO ȇ tzy|30'H.jZ88ڄ9;r XA2#4iaP|,Xϓ,,~8VGe:oǺ;FWjJ[/H퐰b<ӱYVFV&Q6b@kdq5Nbr"W+DVmrʘ>aԏ ;O1I!ľiN}R'ҳI٘Vh\51R(ub\)4ln*/|y)Kc@U?mle_svOd`Gh * IұXtl@$Joo[Yؘ׮CX܆jƶQߘJ6o Q#&_Q/\>Nr贬 RjfwgX]xŸws۴\SOb&VĬ ;4O-bCH(yȘC",wE.cY_!csЮc7@ݝa#w' Y>Ugm~ZѡTm ?g(7V^]@8 %-B ک{*AdX'VZPdchܴԵr'"m[x,-ڹ5N &+aY󡑿ͅ i8ܱٙn Nttd Djdjj1p2b*` X20!PF$~Pv!eC`2b*\%qT̙d(9&Vp+8a&<"`ADp# uCD`|ᒡp+]ra&H)  , UG`J L.W$sϰmI-:k)+Bx]F M+a)`@Ɂ%j+ɱcIcaf 3-˂CL#h0c*yh!fdz\ȏggU樵ql*JBraP%A.Kc!̩"[imٱtqF0N\&y[C)R[%-B΂ixed4v6-iK{c*?yߊ\I~ZWȻ Dn[s.+}+EPY][hE!]uxfzǭK7$(vl67mm_v$=6杯|0}m8;r\%s-liTMuwS|wx |E tY)+lm\AT3? Js7W綳)Leqb間==hы% /ză Pb*bWweP,Y yIKXCe-KZRX?g+YC2ҋ;9+&K R!.SxydXE lA.r[PN 0:Vb.+qhqlSVt1T3%RR2WaKg@p.(rN𩄒 QRt@ʒ0 9$y`vZ.!  pOWSǜpSbp,FS94J&68BƬ($ VfԕV t- h >1AJ&GcHhw୚9Go/oN*ҁs#GTFhjZvFdnHNԜ0$0Q;汹$bwm: }S/T2&L *+8n"Rź"8`UX.pEt-0˃*\bYyhZ&\|R@V .0/#fs̢HdqKدkVphHXI",;Cazfr=Dײ.Mw[.I;NLi}"SM@CI^ pRD΂!:aHv9tuiF&,2l;!YWV'O*L^^3gT+6`]h\X3?D6]ث~=փ}g~,G6-iV 8Ő%U#%r1A/|]w0ff4Vw"i%ܥl4Mx=4Lcמ69a׌OUxgYWwƒYr᎝^`LcDN91XT! +4"RbL@^"VR)Ώ LjX Jԥh'+s,KhXX@ܰ*.@99ȂaXaBbBbkts2N 3v6aT dL#X-Ii 6IQ~6Dmơ쩫t-Œ@hSN%3Q*+cǴ;‚#.`d*ƶݎ#0]=haZ cps$4+ZBP]6C(eB w^R{Q3K3IKӸ˶MsN~wh-a4XӶyc^̦oX♰Z5ϔ7IqSJw[AiKmUтtWrF8MtZq.r'Syg|aNd5$]%zT鼦 nijvV>v湬.eײ>ljZ]T=5M WWC$+Q6NƜ;ie^D\+'@ۯ"m;>A(ʡxjWSSj>]iY,~;sZC btvutrSNŝFfu9yF}# <؄ g̕K`e(O7(.TdL1$`Q p0+hI [h8U&3:r0,a]l ;\@C+>jkkOSq5˃#Ǽ*r1N E/$@mYV7S(axlX&a?S)P(Bu Bt!uZΠ^a*sAQ޹kse ]LhH{hSCL j6S  lrSҪjԯvD1o$a)״ [ˋ& h9'&>וIlҜ l;_1E:?wϟBe9iD涰`ru_ _kLb@JS؜|lH^ڌMjSamrھ&cB7"J0l!Ft֖u%&c6toWV3Ro2Z(Yԫˠ/Z\m>"ݚTl+]NfG}XD<3ڈa;Wtd<~:x~ dmp_DK;o]#ԏ6:Zɴ\V$ݕ.w;|MUnkՃ* o}jծZezvƪ' \D)Rqjī8ehS b n^C85OXJQ^~t"$hF?z&Dqb rd2eK9 J۽icBH4#cT7KE 9{fS(j8Yij`b&nՆ^bp])c,um"N-g'蕝Atv^3~d|n$.nZJ2 -D3I΃f׀I{Cf#aٸe-MyoF7ζR5P]*S`odkrOIL %Ԁ.ĺnxKFJ1DZllQ,ND㪇jޙoL5:u1]q?8-;2^kv<I1慼 +Di!"<#8S y@NF 4Yb5İ0OXyS'շnVkfJ(17h؅rܶ.Eqey1aEV$!8L+"e4]y'37B%2< ]}R-za{J74TPŕ:hz`YcsZrHN686khf9q,lZ\@.p`1He"ǞPB䡄 1,y.<7Ƭ\|lfugPe(w+4TƖ LR3KR9\kyFVyUbgve Wmm"ǡmV7N٬{{lpMN'ا})Nsq}Oy)MUm Gxk68T]t8k$s0f2uMDMxeფύ&mUZ}o^h*l><4e]U #%TV_Q1RYeXuנ!0s'iOqfn]ڗv.3r#au^[Ré6cugG #1× P)|H &소d2Mgn`XbP801`2jYAhZ1=쀌AY V'<`#vH)o!X:6 402q4zuQvc2I-\,4hWȸ P)=T$ѣȉp{ؓFJ"#'"&2 z18q S.ʟIݽ^ arXa&ΊQ\ԛ䊓cمuųN54Ssw#읡FfwZDVt:Mi(߻76gGL6s(+[VcgtfFn]ۚJz#itd.]fRC=j㱥M=1FYa&m'Ϸ7a;qh3L:=}^˟-CzBWqxR#NG+@yg_<Gbl{-K%u: NAh4G^s!3a\ 72ʌ| i#Diҍix  l/W;dJjQa-SU]G KKCa1CS܈0i24#z1 0̈ȫa ;WV7}#+>f!1sĆ#TvPa\eu%j.zHJ ?q4J3m[zZ}1Z{snUlcW*S]L"D?Pb) I$!$6c @x8@ďbE>.㜽ךsȏ}1.S.׽U[::ZkGo}{"/ B`88Y55"Cܟ; 0xhgk|z*0aS|M)d.aW - = q^c^1\hرWg5ó)X$.^B EBHՇxQC;Hszq Y:dV=Hp*z] KFsPw% HmΤ,2r_єmĦ|'9 Og(%a (|}JJ~џۏ 񨳦'HD를3qA"T41 + mQ2{bP$uZE30^3(% ]([ qs_q7 ΔnX^Hbqș >=rX,o=P 3"_sxi<+ SltWGe6,rr$.{kRˈM.l.6js:48q,xڏ%6|sm0KKIޓhO"I&[Sy&/2$`4uaS wgK_SE4b"P<Ȭn0*otƲÑ hh:tU`qznH&e<Ʌ27Wt?GKG><hD xX{BXebWrEǰ۸oihSt"hXW1Y.ݿW^[+&\C; ŵ$8L3ٳeFs3ֶ.K  CX v},]c X]39-%XY2p9[(:fY$=UQmzvY/HJUL$5YH.Yԇٚ&\Ĥt^&yi }7mh7r~¥scs}?}(%I/IH]Z[d/WzE,vRW_CS׺xQcN(խ"rA!Ӕ᧎%\=A0 ܜ Cl0go ǝ}6H' ;VKbݯm~ui:]#8*  :FwK/앳K)7XYjz 5owӤDwNŲ%`sc~}ۃJs-% ŋiÀ; -`s 2L:L MNhx D-2A k#w֝cT oPWn1c4]]h^7:'RɩPMV?adSr5/tY?70:7x,?~R?%H05x%'877nOOA ]]X^3zx0w1Y0~4Q cRSd|@sGN>9,g~@=#D}*}i $;䚚EX۞2ܚTgy\,uKjD#5uI#`uhSY21&֒c,ɥ$$yK.,#WK7.v9*yRzM*) UspÂ5vrb ˔v4ՋׄiMi$\]=3yhHLwjwgf~LsW0aDz!n¹ߧ&HgS&gȏ 0"1_/qLn-)wnrń^ԥ]Myݽ'=f=zk4-JmVճ`xvMdEOzhYnwob[ͯ2V:ld5,X|lib#M<ۃ=is so@5H5V݂dv 7H >^ѐ*ȏUݨŰ#I$v;ޥ||o_F!K{5ZB< v.vل5B,4tI"ƘQ P"eOdEygʄ t_+ԫtŰe@n%DZјulj4L {ncO.H1!ي$;y4*tͯ&}ϏϋIE,>"./: #0.)$T͎:Z0mgTr]VQxck !Y}W>;4얮@;DoqdLD?KSa5DY ;oFahbUEV7wO"$^,U.,M4IETddm75|ɛ5hZDŤC  #ŢPb$Sx0$*Q};-uThd;S|Uټ0 +h/Xn0+:V퀸ۆBC ċg'1CC@HT Du_=Ltc| !e2'x*/vɟ"9c)y%X@V`DK)[6e r#X'c=2o)PD"#%* {ޝEg- Q!'ܩ- Flt]?FUܥ8tB$:n"2~ɂߢjs3⒩j% t\ke:Q@|2=\򸓏 m;AU%DS"]o/pL>`nGIENY#I*]?Wa#O"uzpX^LOwvxsm% Lcݔ@ב" nk7 E 57V}ؿ6̡K&$Ť+!r/"[>֡vV5ђDդk۳hoҗ$icNe)i\I6U( ymX*s$<.zUޤ[F-KuSY8t4.c2E.>MpSry@o<.r]|]aht0ΤFI-8X(aeJ ev{R/̓$> ?)jHztJ2V{u  rPO=<ٍdaF&9uX9$ZZِYk+~0y៶[0OIyi{p Z)3yܕsS"ȭ {U hܓݐ\&1+ FNW^~qgf [W9 r/W-Wd3*4S^.q͗5H!3ՐRyhJ]G.IªKM</" wV /4= ;a&B89tn-{('f~>oZg= %\ gKjy=uG~>?ors_,tělcw.rT0+0tl+HB2"poG1a\pH~y{i"HX:p,r7ɢ&cъn556b}UAl&7ZAj3UrR.% []LtE.ڎAʇZ퐖Ҹ`Uڄdl>4L ,< V) 0"*gWd -c^O@P!A!iب9^"c3(B1dv ͵/ ar`jSJ'j_$aR).i+8)dzΆ]5؀ G|ov7c\Ie\.Ɵ7o80'`GṢv=H8In;W2bA?=3>茶64BIŪD1zQ[w \!.J>GY5g. wB] NrSwt IO_c+0v4+313 :<Ȼ:;-V_&r_|*<齊=rt~xe[ƒ(XWקrK=b4irldmx~%#K&-|O ڋh:dX(tI׳T@$}fɂmLB5 m_@3v+H6WYmtR.Ķ.y벷$UURjTjM*k7vYԛԶKh2ɚ$Ki5I]ZͲwYKJI# $e.Cqkܧ. 6ÑMXv#2r;ir^F8"E+{̳אs ع_Pn^ak;>mhݻ-#)ŎL|Y'テͫ@T_>gV3vz'a''l ,edZ#PdGS>,)gJR|M ȟ0,Wcm!jsNW4&a>b4bӂPt l>%HK7/A{Q(*݋t*kڈ1 gN>}Z Ҩ殎=ļrPMyAHs.o|}[?E?E-%Lp`knQ/["[of҆N)i vi^@fy?3T\a/Zd-N{N;NSr k bJJOޮ;0ocw^s6n"rO\vI7keۥfICfVThysQɈyiEMrJ%KښTrQneL}-5ٴSTɤhmrUeRE]T,EJUREv y&yyaGY^qRۘ AX@RC3DI*:die(~0K7pP8Y>\10y6 5w4g0$Io3O$B x$%-]݉|D {`>I*eBS=E y Ym%4LLXDvh9'+;ʪR0&tkpVA+XolA%83ޫSB8Rp|Bn7%%-`{!Í&[] s}!Nbk7ԋBxd'w]!D;g]Z}uom8ӛ;6yT/7Ίto_;f9$Ժ<4tsn;aa7{Cc,aCN'9IYt7ܟX_:fG: miWF!د@"EgdYDXD?F"U]>HwernkKA^T.EFϭ$&Euy5i5:0H!nER"ڒ%kܟ$?Tv\m'qI?'0_g=ig§ ݱVP|?r)=~tsٻar4LQ0m/Aî9@|}\^=b~.?Kp+0i57/xȐmXap881V'N_pp"F(|[!6|$qO$Yxo-`H(Fာ퍓"?hAW{HmuqfԱ[Hs/Fܥ\ATFFn%w9& ٩3wibwΟN2XssV]@.V9^_М0lFFٹDU W*RJkGc_@V87d6f۝?ջg2UQzxF_ Eai)>Aox89N."d!NE}|btQ&;i 6-ݟʀBN7|GchK)#MI9MZlcWɹ%qmXr&ȼL }}mb*&_ݓl)KCrJzMh7I9IC5ɽ\sb%K=T2DU}JC u,4䷀ kZ X(TixX2+V ZHVT "܎M/Hd hFEzK_5$szUa1*Y Ӱ9Q=ջ̽f!#M直c@z=}Bݴ=8wEdTwzX燐M .gdqb -w؀zū4Vޯ0 n3Qe YYN5B=yzj0+8$eٳ+J(<%oߝ\<}K|o/]禞DIĒ ;Y$yT@F$.0< X_K$ 0'ZLbh +I>I;6Znue8 x. *-0j ?CIMttlMά7_(RŤ*]LbҒ*Hn$*&]f]rCe7=K[l*J*Y$"G'$PT)RmrYmd?vf4Y+2a^3_[yπk*9eĄ=P1´" uhAlt =&o}%4֕vO✉UKze2\ D+DS7$< v-šW#˖ v3*6Jx6 !WLCazVNh&CO1RIFɛi]ZH*֚8o";̉a<$u vAo-a`kBigA=1&qc'~?-1}-%^S{мe2i7{6Ogy4D)zitG wr1ۻ]oob%:%XE^q{M2cA%tޘ[IMɓKN@A;lvh*k.2@݅!jZ9hl3!8<ʗ8\_܏oyI2q$ (&1l*RE"%馒sړtUѥqT>$-rU6) tQ&jrE[YVVHX5}^C%UUG&uncݑEC$(Xj\q(rMaWxyu!7S02GC.=I//>n% WxQQI YuHaʒ/(P3?3]<~k6716ړ\f:pś聋&,_=jt6r4^A᛬mώSnLG0Z *LrJA3[&3k^#'a#q-q w^# Ά0E&g^U R%@mJlό o+"hn4<3|C;ґ;`w[kޛBE)ml]hpjtS}5 k֒CDo~|'ۏYYYW_d2[Hd(cUm2|~ObJ#4ň2M~ܶ%:ixHY 3robKء# G!DOl<0Q|@^BEOa+6&+ >Q\&KV٤44EźI&RT-Es.SE.**Wbʺyzz}b%wYJ^T֥J/Ul.UROcYnih<ՙG@Zϻ. VlBޠox`W$$_"bA ZTZb:IC‚! Mr {z/ʰ(';.vUO ԫ_7ZpNcK^'Z>7'RNzYE*24PdZ4uTj0l2Q<)>⤚B+a*?VYC ȋQDNYk ~EQ=C6ݟ+ kņ ϊ}*hPb<ڎffϭMɌr-4īB gX=0MwwlF1dP(%XgR_gL5{yw=o$]}tх9 @HC;ՐCbٕtƚD d2< ݜ:waO-WCX" ?)n*ZCv"|NlS;$~U2ס.OK: s9e\ScŃuH[n+TF:U$IO tKbXpiK,^"4I}.4ݤ*) pm&**r)=Ƚ}rIȕƮ`p7їy&=%u,"++ #^1~EWqQQ==hs wיiqBeޜM\!1ndOr.L]Ɉp`dr 8?ovӹ80ӊO!$So !L<>t] %2mׄG .3Kp|udz(se5Տ2Ȱk噧>HxU:جu *uqوM~p>B1mw L.Ĩ .S{pj9h䢁ӪV̈vƹ3&[DȒ.~^b6>?P t\e; :|%q;+."C?vShT v :Gopj۰Cӽ&nQG X["8Xp;~YZj]5ǀ՚؆V7JW]E}U47MEjT)mIm*j]':n𞊨,Q*hBRLx iVO֖ ma< fy-?.f6aHp,Y7δ\ = <􎟉O ]sum*]UGqɡ.6WHCȀe-n\ۉP3Pz`vqLNo 'f{;)$_[K7Ȳ,ȉz3;v{0kb,6 `58E /xEƎߢ-˴3-4[ e,7Q:Fr8*3sq[zPpá+o[.Wސk}zA`(nj8293e#hd 95 =޽>@ٻ\6,xټط U 4Ksd>d|KfͩxT+Xb\X[hflHc s&"":ZͲ"7i֤iKUr75I*K],-Imct#kŏ~|Lq묻V@hM7@ZjqʄxSJ"WP+`J`#J:wZ"Q\_  ݋l$Kl Pph4}U\&c>Tb )gy  ~:ze)(0Od2G-옏p޳?MV\#HbVΰ5t-\]t+piR(F&vzN@taEׂc!eqJ@l0EPPl}zq딪_%iB`g|Z=rAW@4_%Io"pԻHUrM%*FP٥.]T6]jRȲv|.by 7ȫ3ɲE.O.Uas$9KH/ ޽`SٽJL<.оewXk>nnvy^(h {?W4X6͟CF%dn,bG8˒L)sv׫LMpfZȾr]$UOk1hb`_j51'.]qgN.3I:WuR= >'u$ڹ" >'zOXKvGzOs"JQW) m A"MF,lȼWI4!O"X'zv 6h`{<:XY} ߐ滾wl~}-v+NN3#}E ݐ:wn3L,hUD?u|Oma% g!뀸 3Ҧ h_Eַl&k\֤HQRI[d$[$ouUnBT٥աJ@Q:^o>lK^1]bݵpj<%*G}WaGyufo-{ij,l8U6Q[\雒v 4LPgNhZ+#gmQ߯9Lp7{6pBٔ=A:EM@4H9xC(4JI;+ wmä03P=8۸u'67-ZXIl|i}`tdž~fϘ]%=Md_٭.}.Qep_mgz._aTR;u島4Hi9>܀ /CX V韎s9 6-D*_|CgoknOoEwJ(>PBk H h _ Bi 6WO1I#9Q5+89{Ͼ./A%٩Kבa0W- lؔ$9HP(ҙ.N1 6a.yH*XS8:&5f IIX#*]]򪢒ŊHJ*Ķ2V>0{`9(D0t8 (c ::&uٻ'1aMu4'ܛRdOr`iyF\K+Ynoxɢpv9 }&Nd2mHiQC &5ȷ*XZLH9Vd- 5m؜Y`029@k P,U$pr#qt 0p>2N mD=&cD)O:MvE4>K԰z6O:!=]I85R K v;\zgJ.0Q/wrgѮ)YJ p(Vn A8[^>ߕr64S?0Y-˟CMn($w[x Cq(ՙ|@g 26,;a5fm0<> NiB̫| ab#\i &*~ 6^= 3$& QwKPG[=THȒlQz\Eti%q`Up"eYӤf]#H~]dEڱyMCĵIf8W'/t3a/q>g:ZaH =)lhdF:ش !&C\B/>TDLx9480"TJV~BB+ n@2 VY8MGR~˸O;^N *a.Ӝ;Bs1jTbwW44ZMX˂h- d(h#wQF,m1!<2-! "%~J(;@Y6͝r̒Mk)yuPS߱z)wW`%4}b=O|.1Bv Z4׷۪NC3>.D1"͒cHQl$$؏]Pr0%_gff搦C'mi>H&[j'GW`/j#$彸Qm =}gD.R8lhb"Z:v quQ D9E9\j"ws,K ΃pD8btaזq(~a5_Q)Mh$ :mY Sb*cM Hzk"kw3~Bh(}@ ;׺CV3G\Rq"8ӸnuzEE pk.ߍ"DO˫@:= fw/iD+4Zl,hs㕎HGB-2I9DkN<-4*~gވa5㽠?w:ƯtVu*7ni1>8NÆƉ~"PL: @rc.&\-I<^@d:)FKXo6Kz@aE5t uYau6}̀'Yk*RVwbxry| QKJ!Ȃ_q/t##;=X jf=4E&&=y dLZ"ܴ Ko%eKpFdΜN5=xt7Gl7j.Ab':dzK30gpla1х+U_towYhhAg834Dy*^5-~<%0G|3@ԛZ%0#4Q!+NXEDueaҀQ).Rj:{ṕTXa[ދ<_;jώXy.o߅K{s+I^Vp ~+c*+0$&D,S6Ufu&+ 4ϰFadx7l p.Bn9̟og4?g6sk-N<]+%_}=Q8tj:7G]\j#{<RR -'F9Yvn(Qy \j>#уɐzZEX aAߏg`Tjz3&xA.Y޿#>I7:].Opv7E{m",Ä-&nmag_C)k`t0^k`ɦ"#eM ')9lhNcWBl_Y/5*ww##ã Bفd~joU Eh&li HHS4v+-0FQͦr"Wę &P\``G\D^qB$d:@5Ȉ."3 T;fIl G7(խy#szup@:\ ~,Ӝ(MB{,m0а9M>:\pSk8ymq,AB$DҜ(_6.G-s}/lZߡ(i7':0=G[>[S3aτ=$q=;E V Wht9] TtP3Ç ڝlfaNPT~yjhR =(MnOYT%d`q.u7xy)~eut Iށu .]D?@.o ,r9c?7F-#1NtHLRa0woaM " _mƂln=j-X,D#?)8 ',zm̖)R\g) C.CdyYmLtsvv$MMXw7 /"+@ˆ(&%*V+<;&IujrIS;@ 3'd͜ˀݵzZOtD}o芝w\ls"t"Dm@v9D8HdFYOώX,$,wfP=)M"MS]X&t$wˀ*P.EvNIn㩗7xhZ kC#Ħi~]~%xZ0FJ |$+Ӗ7FV}{ىi-!jES@G\Rhggj EY:Icz?Ps]ai!6R@q(/p8 g'w'mNƛ5rhZQʪ%Wt I18ғ3pjXLMC/]o'y `qtaƜFsCXn(ӦX2qi$)*X~[8 G$zd ي8k8i z4cgB}vy-JIU[|Yp1%gDRcc%n9]=Fa%~ HJn B+^IHAmCγ|SZ,ߞ4QjFUQ(IhVa&%WjpBēuOZ]&݃͞n! FST zT*GsVw%4d&u4`0l VW:)n¢HcU‰|BR#Ӏ4WbJI&wF)]N|@?h^@xf!qNn]]rG;T`J6QW2շH;Cyc$Ƚo=i7k;½;SyN8ya A1K"6j@ C J}Nzttt,c)*"ҟUG!w3=3.漋l&r֜*VTK D.o c<U 5!`5/ DqN@G5=$t tJ )L*Hi4CEH {⤯ZD$pQe l| !Ӽ6$r` w\NtcSm]Qn\+A#Lzt!;Zor'pkPD3K/pUN2(uDϮ>`WסϤlzbFBBQbe"[Q{r`Df]dwAt`'ÛR9d x|gT -pbמHF$W.:K 5fK{ Ml\Ayy4|[g꯷U>oeL7Si/-x<5E k0 ‰PI"z5xqȦ;S[m[N %U]֐ MAz(haFۡ^$8ejTw8/aoWg*zy{ Q'Y k Epb]|zD/I7hKqɍ/IF3\j/El6ud[&h"򙿦2&tKVs9h{F_A6C / QS$nRHTygIaә'פ;qFN_ҵxZƵ@K/%' ځ}uhp.~7$pMg(,\[ v {VѝڋK*On0,/h!Գ):B 95U/aYJ~˟[ %L$'|-ymG݂aߚCueZPX;PP7 LʒPr 휯cs2^zǠTa: ڕSz{XQ;^Dz|y~]O~5m-.m@T~JϿDE7tcKA#gݚ[ yOa¾40Ow!((dR׬q'GՉ)pݜa:Z@r bVg3m LXCJ3Eg=l6&=xC?IpְZ\&jB(.~Ŏ\F>FK[ݦi&sB`m L? m3"| 4O?yA $a-_H]~ 7r'q[r;~s!c\#y]=X J|@Ȩ;NwK6$n 0 xƔָx (^4-dSO/ Z42k0I3+F8Q# 5pj< eCz?"?_4  )-.6;ㇽqMgC_¾GlLK魫i$ 4LQq5ܴut@]gv&F\G8jkӒ2Wy Iy'(tx=3JpN-Q:dÞt}FԎxG袅R'ZDJȻo¤3%mL PT#vt*n[ޏݍ" sADSݳ~0N r, .(bC~rw9.LJOz{uyM]JLtrsԝ :Sì^rǮ>*2OY=!T7??/^AR | ]=e|A&E> ;"wn)', UoZ3hW/D$=uH[X9YJh ȱy3.ҋ}qS{kUAJ !Kg"9aNV;'R#S(hrB >hrBc(BW "7?FS6T)x._|o?"}o'˸O=yŴ%JNZѓQVˈ%ЌlUahFwNӆנn +SlnaLk$szϠrHUۃufXWqnZ8+η2J8AGoS4Dpe65b;Vd38{vNX^HHwygzS(ioagޜЦ W6Lȟf?I^NE MDׯQV !3ljOC9[hg\c?ǘQ8<˯,_LTKdgVJ59y!Z~` >Sdeds|[).'Hp$+yP LN8AwG;Ysؓn%#>Ȃ$>y8DUPO^$}:Y|,;YѠKR;sj]3w9𒡈Su\frA寐gt7,wykq79ǎ+vke/[`KtBK3sNPv5O﹝X:tښ \) 7{I.$܃%w}CR|'l$(SKu(i½T3ptm|9,2?_0W6Mx ıT> .(ty4tr(pADpKhqV!&*O|Kׇ58M۽'N{x1a>bQadšxݜDkvq],ާ@Y}Ƥ oJZ{z̮3|77 YހmDu.G~DK13W_ ꞽ#,ӻɇQ7$V ٹ khE g ox9'2u8O83\ĕTuqMJ 8/NI\ݢqWC>8`]ߜ5ɐaRc# &pyŹ%yN*yIPP4=xً9B IV{H;9(݃3{4|~c̙ҽ{3 f›Hha: W5~%Wuyjzp+g9/(ћz&1C1>{t h^ a#18R;4Ci;IH}`e4Z;#=?NjE7ψFNчҞC_L(D$ձpRʊYV|n˳wSvoFiV p[68].BԈHXM$\7JqBb!&Ş2Mh*v85gZRSMO^C!"h|7?01;gDP~ V3,m纸Z vW֘-4qP}KB,*dn'60Hrakռx Kc-+2S>OZ\&v?| rXx3:bA=-Nc6.Z A)g.XǶ#ؤ8+(hB]˸ 1)Sfg2X5{ ?>m/wEEfPfl QH"{vpX4W#;$n2,0Pn]x0$w|Mw&F'.< eww4^>=B2~[9v}wJIdg5L{Z.jߥK<$,) -+5X0ZWtC׽+,"ɑǰ E&$Z@r D)Ε2R|v9G<5G0bq=Y'F?+0,NfN#*8tʑPG0?=Cΰdt!HOTntW#P4"ҫp"U҇~*>yLyR/Z a ,Yhwd*8`Mw܉S-@&W5H[q*Ts DA85Q0pq@vw4F2x('|]HxT4H6%nUf"X6*tϛ ayxX4ld$HGx4mX=2 9C“ P̅+[fF.A!x1:§q3g"=׸oҘto;逶'* dw~Y0ftXt"dDg!J ";#;=;ժ|4 O6ӵ,ohE}& %hF}+營ACcB$|{ۜ>Q !3=jPeK|Eӧ`ɋ< T9V=a^\&iu'3 &TQ 6QdXӈ#*EΦܦ35a:m.(X듧XȬF!B=G` I$W$>w,&܃za!G2zo"}\`CHr=0X*}XXn\5|O q}hZpr Yϔ֣Iv6e=-]߳'o΅pt8 وh>O?9knւ+lFXȮ.&ɓ=*)H1$ K|O!r/93aÂgPFMMk+9Im=ens:1πHU{ 8{\=W?GG~'֮9ch&е6 ݡVD䫠bԸv)0Jžb)݊yӵ&`1չi>K\F)A"44"%@43NVh>zr84q$i0: B6U\Okr!]2n"_pqc}ҙNXLdeB=Ҁ d쒙pR̀?[0 1jD(N`pM8" nGu6ӆ` cOOسg'HtMdܗSumZH՚`8ٛ4#Na{̌g&ֺ죖y CyO4@7+0L* 85 gJ[@ @ٖw!Ȣ{ܯjkXy.Nոr0wl9k[]#Țn9D`bogzz)lV4)2AKM,3v^P-ߥrHן]rh :N KhЖW^Yʻ1|^2kx? *縋lI$I1Rʎ~dO13 A9y<_8EcM١QB֜6w~} 2ً;ZCi7@-HX,0O|&&Zc hhH!! A:[1Giwzv^쫳6`7;0T,IOy9@eT;L#({J@Y sʂ qW2؂%˜녩uQ>{XwPwАKNyO,"|'^~: s8Y΍g7u4e.è|ҥVV+!Qǥp.7YZbN }x =L,%_yȓg%|=?|63p.M f^NZ~BD–Wo[~^7UO2aXE,(`_Ta:oEvmˮ 'j>1fNSϭySF%l"Shԙ7MWhjo59[aG"2QLc 2Eq099MB⤑&΢d?W`'FCo6Lq19d$➼Lʚ!=Ɓ(BSݑ(#`|t&#(sgZ$T/.]9 +33tvܜj?P;- Y ".?D2tfbó?< lDq87Qtm\0@>Rp-'?\kn:| >R){Ip6t l%8$Š{LhS{Iy@1lKƉ5]kY>-BȪXďgn83 N$^hNS|tc MPs c"|z[}/ۙ2MA”Iд͟8SXqnV7U%@#U$_Ir ITpb2%pTZ_?2xp bv&6 ^(#SAUaF;,[ 2 l4_A2n7z6=1teq'??Hw2yѩ8ay9QQOX`rG 'ھ #E8 #y.e#s+'s 2/`f65bXK`NP"zac&DeB.ܥz5հQl@O[Q$-[=hޖ- ”,pFNg\N64 ؕ_0 N(H\UQ~iV“{>0iw r Sc%B0]X7N'H@kGJ\ r:NƢX?/>(mN:a'#>>O[(X 9<GV-8i̛K L Yp7<0!NkId5LC9I%ALo!Ӻ߁y(>lB3^:-8bFDDD+Ѷt\KS/>dE5*ơFH1orUE /`Gm2J[hn.}y)[!pc'8Bu>_=Xla?yXQ[7όǤ,v= >1&sjgWi:nbgM0Zz9wt ;ˀhoMsȈ\^ q.;k) SHf+y '8Y$7ofN;=|u1bIR="dO9z;n>+%v6?G {kHh$@x@^qWtp hf\%W{RCTvh5SZ7vqytC\&]zXc(d".&#}]!U}Ud[Bd.h^*l 2.Ҟ:Q37?!$ڿU7cFiwɌ\іI3TC赅);nB75;wtd1m)n ac@t-L&ڇL?w@~p1QVvBܪu{ sw"`ZQ8`` g*OLwA2 k-W7HL " [%^]\7Wv~Q X޼`xDlC PQ(;_c\\9X37}\z Ԯ~'N,8H\";:D=c2#ojOM:s[C$y w ivvxcCtGc;.?Y-T]vyx%.s56zckp5?G@=/]Bbsߝ -鹦Z Zoak&*Fp՛6qj`cҮ纅54D"4rHK`6F)o=1 |kʃFY&q,ex.&U'?Kt{~ȝ~IhJF%آ^8!h|< )a_LoaZiv61,f!`)'-IwwGwah<0|B2gT,3O/TWgR-UB%MVZpG.q:3>[>Ê.8 fX<Ƚ' XT ܮmdiZ߷0CEVI.68 `;vN͂rts[۔SA{B@`' )>럓H<9-%K5M;^HrՑ/{]̆f!I‚ >.jvӖ&īVzK]-F5h>hwl1-)8*} t7Jaz&âx>X}D=9W@ m Y3a k;{DV=6 W'[w\a]>!o3"*"G/>ſ~jx>~ 繻Y5o|71͑ᛷG6æ sL=h~O wKKLɜpmņ q:F4d+|Saӥo֌53rmӛ Vk 'wn 9E@gMRPͽ< C#Xw{w)9r\CiF{_[b3ʫB:5:rׂqHѤaHa/xIw?'9~fWGsf4 vgS(@Bor.X[(5sb_GT-̿>Hb'y/|ӿ+&9#)SCv<.H$-A1 1<I It$X,D6BU])ԏ(Zxf,/a |y@@ fMsG 0ϖEDjMiT/.y5x&St-p/d32Yq5ùepDÓ; z\_"]?u3iL޷@J!wB ~Boj> ؙPBMf=<#tj?R0hHCwg>%[n&ÓФ6"b9QG 9Y+Դ ..{]`TۋO-$jŭ7gb)i ~貧%$wzYvR[ "^gӜauĴ1|U`́:2>NB@b`=efWY[/a_Ji$Duږ: ; 2Wwcf/kxϏpIE8 JbsVJ`,d ;Aiz a't YJRaG )nBT4Dz :VtԊE(ʭV>2aG Xw]$cG-,>D\i~B WX豈` R? fIs&zHLm掅^d$0_5m\-~x':6Guqf{Fh0+arY*Џa"k@Kv>@Nzh1%U]Z%9ϳ"TobFr[?@WLUEV8&W+ed7 yyu#zT$'r'R|W̃4t~S*`Kp ôľ? ը%Zr܃Vx@zsƫä`.G {r{0LijIJCPr|Tz{&LB}aP~hc$ڊ /f m _l۽X} /29I{ Idugr]h79O‘^fT='Zq$5H`TҫBE)Iplq-Z2-N(|0ͧ bÔ IEwg2s>'=H,ϭ T}EOlz~%O΁*bĔgN.2{H$ M :=RCHXc3hΎoc11PM&4s'G.sh؏ +$Hqz"r'uEjJ| C-Df*Lܕxg#֠қ?Y(kl;|4tiuulfw_&O0<*@}OD{y#o?Eoc,6CZbФzsy0wyRB x)c)$ i kOdImw1bNvz͚c(B53ƄKSg|^MZ s(nDpq%#:eXvЂǡ}SEWVexP8\w'uq@V8]P H.!Ɠ O,QQ9,]L4)Isd'% XK5/P0"IT4~MRFÚdkLr*8 );i;_^C,=ɛm2Z T|w>Ku:? 6,sMŅ(S_MX뙰.+o)a@ BdYOv2ϗW śh,Wp-X4rO D=:NJw)ʔP5PS[M'g)jhRE)Vy2l݉c7 4:)99-]勧Q >:I䗦|16Np0o:=fGN]-;g rm ? Q.xy0e0Ua-LBp,!m.C%N n1Af0w%n"9cy%Ogw(]BPt"ek2\Y!>\_Ӏ$c .W3,-aWBQr6\%؃% ZݎɩW'%d3DE>Ǐ:y~s6E[ryVyJ9[Gt֧id^*Bג3EG=-.>CcY`8Қ8s/7?L\zF={5t3` }{F` %}ScP%Cp4;z ln&Wo^'AE!9O7q=:Mlh4#'yQMdwix}7+V5sջ>"O__巣Htn֞_Zm)Τ]@VcE;)Lp, CMO}`PCc0T`_860%1DvDqǴ&L?ޅ07北4FhP^̜u95 Ns(GC" ^ $?wKt „4wS!V`ǵ- p,)fGKAJvRԩmaEc,X!y/{"fU 9bHO9榁"F]j}_,s#gL^åszh*Ș2XN\wvo, ]єUG.DXLD%"V۶-!"q:nm9 H1U<CE+, | eƎZþ?ܭD,bF1!1.0#իY77 +Ad++rw+0|/­P{BņcggfkL4GDn6sp4({6V1]~94njQ(m4[CW6c^vg$ὖ'W6r+E$/V QBaFrF":FCʘpD@ 4z=Ddk@,MNT&%'Վ")~66`n _N=!egw''swi!^z;?n`Xt¹dCٻk0pCYćeQCZ|NN]'ɹ|`"6ȳ!us~ YGqU'w>Qg]v8f|IY̎2'N&g+@ ԌNy5:춲)͢AHcE߽F#Ā!HGf}y emjo.8-ϭxSF<R,|&O .'G_M -!2O4vsg5Sy\8JIX"FsPj)vJS;ubo\kROCR~4X.ha/ڤ,l p$^Jq\`FQO/ṦgB  ͱQ{ZpnRIL܃Zbd,ksR)9︇}{ry(͇re[d-R˟\|;t_ջ?ț2G{D^N p0"y M6o+$?M{F C+y?Yϩ%JT;v D1[I4n y$玤لO| $=ap4~9YSA (As2@;0HW .zr=w, Exrg~g:F5bO03缻tM^48EI0ىf"ndQ4iy?#~>3OA 6^-2w]6 A{`t?^G@^MWD{ ݃=9k6C5Hl{jE1TLאiP}(e1tf7a\"$%q@>qxXp6I]t2M]1v45~RЍ~g c5 Xhbϵ707#'7Zg n{'u1K*]?7˷Ez^i孤l4$! ",svmjЎrb\\ŋMYutG 'WPokUi ֥[F9^8) / yv\,yˀ -wa VZQy"ؓ3|jwߘDDa`=~ hYyhθK3 " (]\1يGK#aɂ ikA$D;ˬ™`P"gH!LG=e-Mmx=<}fy i`G#2 ġ?yЀ r8 1'>(|upWժfx"r44$ 5Lۭ;3Dڛ>*"I,*?_~\~|Njt?~ׯtf2(AqHچNG=\ɡZH)MQ=^@{6R.'UQX bfsq PМ>D#.0SSDêkvyAߴ2XE7m<Ɛ|[gVIsf\O]0g -`yz$)Pp3q̊rӳfBrƽӿн|FD̔EIx9ܥ5Zd.g]CYӖHl>Jpf[CV}uSvm 0G^w~\ɯ|~tyRC/<;Y ]D9ټ[ȍu S̝ řmn_ riF-^L3榦%sҸN6i$,!!:/jn.EKj0;B/o/e@E Ѕ1`&gg[祛V' Mlu`NOb#v,A5;?T&̋<`q")CdRÙ'r iI+GCM̗N|unS{Zl?w?G`s-ntDH|}֠79LZ[|(9CyGri9te4z6wcEvpEM}'ɪ;ZnNjhRWӝCt@-.(82xаvu;zH3(blbi3l&r吚J DР*Bֺ`aßcr j*/ g/hٰV@'9'?WѫP/vH9>3d{da;+@T==nji=$I/vw=Ǝˣ* :La>]0bK4kPUD~A45ۃt)4r pi:,ȯ7\&Ϯ/A1v,{~9$/aOS.=oxX [QlTdN@@Mtɩ/}ϗۇPGZqӏ6\b;ѩ "bi3; `8.gr #=}.B=4=y*3ۙv<Gnv&Bv 2gXP>$c ~=Nbzn`򸿨NH}Դn"uIU˟u_^Uh3@?_XojE4b{} w4L2;d1 b$p!&; tf|z0gm蚦J.vB%\`ꅌ._vqggGI8;o`vtWJwإ&FA1uMf>|OS TE4Zw^,ԇ}oq3bO=4k %瘽lgN7ep!E$g֫V: dN% 5u4|WChZ(*"rf`c{MNQ'ٓr " k+4$).^Ƅ r".f'Ma|yp^s'jXK@r,^3&4p5LԸlh.b|:NմlH;Єqf'i].|Һࢱ%軙;|ìI4. ~G!b,a7nxȫ;=L H@BZ}ա\>A(o6jMQT7x=nĮ矒*4lf1GJ&>]U5hZ5͐r@g+&~}sүj(̜e8•/JR2)'_YU3{t&-zR&/R"ER^+']}FCvIVjVRT_@إ0`9~f{FNs9A9;r6a1}JV>ch-(և%L@(1+#hk݉Jɡ4mENr-ef%aaES`u HnP4H봅}COkI"r?^oվkz+ bC7~I3%a1|(vgQ_G \Nci4$/$DMN dJkD64ݬc7-[`@2-N՚>2 ;:O޽OQjt;$cFarF81kΛCЫ;o܁-NaF ḨFunmji|OmUO]CqkgļhECh zwCI}zII\,epÊNu5}naq|~>Yn]ɀheg&Uk$T5[O>k0NRtS ^Ka?kurJ^ն>Wqu`ҥKDZ?/a}r-%=XGȅwCMN1j^GבZ#Gn4G vQVWo!ln8s>Ri_s,?|?^ Ei*@X*morX8&pOOΜٽ6m0\$P .Hؚ2:d"%H /xXjРzvpĤz758Qe?h0g3wd4a" ~ =%BD Β4/av0g(tG*cI 76({h4J{U:[@JG11MZrNtg7W/LyJ͋jS|kPG w h?~OtKhnuyzuqZ)_w$3ӄ(DfDXq= oX_QBux'i~3E,gM"$qu%=&.6ŁmoaERJpŪp"czrś"n$ c@E9:cr'd/ݓ&AZ З ( w>ATLЊH*$is&G@ju1䲁STqպo~_/sZ%oB$&"ENi?^$ .?hn5ףXgWΞ[nDHt˕6 ̬H 0m]ri⁏ck"Hǔߋh+xʊhqw 3f96w2kv ԿRH5~=̈́V9{; 5Zxc ,sB,3$-H.xva' ݼiФGh\r/0Yx^[L]7[,L˧Ӗc9{SEq R16got)9a-r%mMxs:>|}`z ta_<2C\ `V[ӟ g]>ڏT>vF^_$uN SkQZcT͏-=clȗg'XmWqgB!_ z/7}K>+Hc4%PĊ*iGljy)5Hp Y̩{'~(t1SZA6k:,D@rU֒kOZzY9}<hΏiRCa;ݓKuf.wp] _r_8=?{Ʃa/s:l?jg&9%HbZ` ]opjBK-(N+&iG2X hM@U 9 ڃ/ŔX0`zE!@3SImJ478-N3~/]c:[ĝ6VY{9y3/t}+"?~"]Iߋ.q8hRA.s59;GiL:JqW"!fRk$d#zGj~@C !F?v Ot/P$Deqڂ.Z삮Iٜ0! 6~wЧm2Ri{Lϓ2h1?s2/%8m+س[{e>LѮ՜, P/A!@Mrv 1\5íE @0<{0/yB*{@ iĆ0-a0.ĮuԜr53Mp$$I_liݥc$F69hL_{{V] PR&Np,(t pL[dV?4c@} !k*Z'wPQ{I4ͻBn59АЁ#=2"ݓHPPugek'LȅA>cka!`w4)tdH?ŧ?wgSoeGZӯY@$al>S$y@ ˹ UM<9O<8oٛ'!~6iw%lT^nЉOV:GN/_wʅ JIE{0G҆ O ^qƻ3;ډ 21hQ$aI=-ע}dr{fۇ?=|8kb>Y© DpOW~8؃ a YG '`(VsrY͑o&&G&}xԔP/{BRN*]hP8,b.O.+ 꼒kQS9TXx"يۥr2n 2ݽJL>wCcKyع}_a4!xѴ7R߱Oӿ*?O~ e˿R$/Uws"LPUfx9Eۺ71!5s8HYJ!>0 ';߃5(q3f85w7UVƆauδ\Ϻy6VZz=azЋhL)$ !21)6:\dU->װcLz4sh^Xfs&8~l9eL1\qq5z7sxmNfz)PqϞiEWu%QK HCeVB'H8l>vq5?Ӧ,0O &:-X yGV%GQh`sz-1O]L-mqEF~W3HCJw}``y!NmQC۬2;QCҝf4ᄗ?=n:ĻWd#_CӀ+wO8%|%4bB9CBGD)HV}d*"U@J; }@yE7hNNKhD&V믗GHҺXbf!t_|H^${Щ”dP|4cNE4ؽb:>\!Xq|ۂFS~8@9@8bjЂ~u">I֠ $L/m4>v@^1 kH3 ܫSDV|_y@ Uk*dۆ)(?h3Tdn~uD4DC3$>AaIgI 8[ZPjN%NVϦ H}P-O|lT7$r۴ y)4'{RETI:ug=. -a궬-0 X, Zkfc 6'I6 H *U Q*HU$mI@JR*)JhJ+r)瘱 fx{su=RH|[^]su_G; Ϯzf!ͭ8l&y ty+8d&6J0iUM\ԻFOJͽ)0&L&pGqBq-0#ݾvy3遐y|5s3&qݦojh.#J?@:;zx-/I^8gZ@=boǛtj=~hL6˸.z+!9} r& Ea s" AQJ[#:aubGACmRWٌ}uoָ ^Ⱦ)$h?[sfipx]IٽT0fs.Mu!9Fj.BA\| {61q MLbR";޸)~lՑqMvnn~'F| 'y=捜b'en%_H49Uk{1{Xԣ&퉑LPe$aysr3^ Ov١RksH 2.f+PwK8INvHH(Ǟ<az3Kd3E>\"aS+͌U$a ilzϒ{T#d?w[H*͋`ܽt8VX>:_*@[8$gy.au*Y5fzdWj\3CyI+Д{ǎ^>{֏?fbgɏrG|~t tO5&3$|䐀2ܣbw̐^k ױ&f.MޒyM:-yMŊ`#]/`nw! Wr4K)Qmʇ\CuwځN|1Hwgm*M<IE[WrDX0r5kdsj*$7֝SXxbQ^8ɚFY$7_HGXdӒ鉁 '2z;X*6zϏ8\>%S۩8-sO .P0{ y{lڄ4Icx'`D[tx/ tL~fBm.ݐ% srbD\3 Ŧ@ҖΜL 19;g w d]Lc;_sd\ $|j߉ؾ?eF-Xomem i~DZV r> 9iL"P;^>?i+^һm##įC Xȋ_u= ڦkSwi{`qv!Zf0a0< LLif'wF]Y4AA-XT.ɠ$c(fR*'Kyk4̗wjuݱT+K =i?F \rjOXW3P.kKvեgcjœ%Bu7`QvW!5 P<,YٍIf><.X~xR0aG'L;56  o˓IO9C ;UM6LosHuenbut_ ] M5Zg0;iT@3y`qkg4EQ`bZl{ӏetfc_6׍e+}Z7+VDś6^`r`+RIaī8Ycw~it+ES@Vlg&69'F:9+SAfw E72=+{l559AV= H!b?}募~{<}SXs+oP.VP.;p/hqUm/|6F9O' n@N c{0=7 lRxЄ2id$d2ygøֵņĔX@ .ʻ:#+jThͫ~Gf Кk*X@ʅ+Q*)Qey7w[֒D[ZM*Tu/9]ҵv56|$τvυg^8p`c;MǤłS;./aT\x2Ooxxsm;ђf[}uM4HI蚚2iۓM ~P&POJXUDӚO3Aت yxtJ_N7i5$,S!w9 }NŞ9Yփ%•M4XZaoid#pVxSV$:Ѷț4?e<v{6.dv&IƚFyr8skJ')hB:Sz+O*T_xy|{~p֟Ez_=)xL, Gןbљ(,@tVr! j{h2ORJMxtZvRѝy:7ۗkNԜbзi"lBa21/?IDXQp~t"^lz';@xwGK!4-gR݁8-D>*%/bJ LQ #ZXÕ╾8~_ȣ4a&Oeyd#G|n|%ӌfhͶ{Oi w|n7rk`ny֝&&V95i7vyb&6sE$LSڸ e܍,-xb2lb瘮y%"l)Qev,I:2O}N\wӭem"xf"p+ߵQ6.·7ҋyV +ONV8w9%cE\XG)Df;9ajΫxf+wЫT1[CX!^~/~cY_ PΨC8`˖dlL_Siؤ}+,RfKxƂS-uB.qw@ I 9D2t4g \Pv{)!fK*NYCs Q!Z.\I$G:e0GS NWWPfrM?b+/zkOvv,d'J`%K>]'J'vE:&el21Myb0Rt_fO gOrNYEyDlS<l_NctYW;]޾s_锻힅 bm݈a!Li*2^pEMPH)aDLWt$>v<ٌ'-3P3YsvV0DdoѾvz7JeKQXJ4)mDg2cgɳ3?!iGfufqG"t}̋9wFI -F0- $a/CfvG6pg p[?__:h|Moy\pvSh^'mZdvi@@\֡s踓-|\g1½Di35bۓY;ޯ!iR'`Lr#8g!黓Rv7~ٍF%SlF"<0z6vDC4J]~ZL[au:BU|0kM)Hp'Q=ծ{hr8Xf ZĬGXaKѠ+Uul}25'<م]9"eQ3yWlD{Y3BvOb| b7NQ&Lxt P:KYD.5VVB o2 , Yxu|_nΆ!Jdt3΃}k#Lđ^ԭþ?j/Ƃn|vS̫Q +YvnY^DRj\3 e0O[q!xM"[E"zeivfF2]h*z^P//2p įW =!-#nK^9 G rJ9fEPnf$98lnOb9ww$1iT;]g˼}&Ұh4`%8`wQmi2牝(C͌vKbX>b ֎yzLWn lnW] fRK!&Qf)rn>p/dof7EG+4OSuY~q6y+U%yM>/XqgL:j,]+>WzOvOmlLR579VY M *dB4i7ʾXzyMٴ`&XdC\4fl eߐg2OM+'JgL3%C%zeZ a $n9/8՞70Q_T}(.}p/;}sffUl OUOΟ3ڳ3G h<+Besşgx;*ZhXwJv34Ialh"n믧Xoߠ_?ˀcj=F {,h%*xJF!,AWs Q;ld6b[C9rPtlfUYS+NM4{'/KB(|3 Єr% ݸd;usD-Bʐ R(790(MxS6mX&ǩM4V_gK%{4X0(|$_̚[$D݅K'[2WaS4XkΗL)08MA<Ѱ ȺFzrU6`yf5뽫f)V."M+OJsLjMe@ƯO7^/2]:Ev1ecr+5٘,RY묘9I3M|`D !.rXk4lrˆN:@i_l I>K-?9DD#s\%3^VCE ŴK4gSBbzdDw;7tg,zǮwy25/ꉸD|[yh {e\!_vŗۓA'\] ]iҟjlaoj &."6jǯ5L$cXI$zrVwxkOF,ly$jՅh-]\]8:V o0*5Nޟx8Aӽ GeXWAZ`6Ngto?4;B.9(bQVI*|JK  յlPk5[AJcs֨uB;2iiOsytq^o}|tŽF`bo?t?[+v Bx@<&Jq쁻KyC"λXm"h.#̺f{V?e{-(;j& iRl,!Tkm5_!!پW\f^swtj\BR=qIʯ9 4 yi^~bMp8ye^y9k~1{vNIڽ)eAفd$9UN.LS/k.]NW!!=P&\arFBs|=czZCn.kũޓ4Z}bv6QcR))YubswƔ}R^ =5?ձW\%Ig* ,'M/֘4HyW3Y7?Ib&rqA0d駱N'ʋZd;鐀qdMlFcF2zy}=ⲙTVWÐk}_|)<r(xx1jf;-#qB8Y}JSrӠiY`/c7W-[FB93;W;,^giR͌Û)Ib *]a$G(]\*7:SL_49SE 6 LJ.걘xJXP IiGvj$:A 18~AaUƴ^Y$ԯݙ/TGZsSۓfА g]ȥ ?DcGP֕CG bg?+q -#t|O f7!`B7𥤘FE5ٱ%x(3:Z Rg ?cXSUq _EGcrXvdiel;mnx*eSKd̲ԦV(yҎ>Zuiʷ#^]| ._mV̵ne|mYv?Sd]ݽ{!0/tmPq:VM-ch+zȴLߝ_GJP rd8ZZxYwv|JGЀGI?'d%&3"9I-/ε0Ix{J?!W,o~#~+W7hhjEkߘ-"v≈aw:~؋[ zhC;!;N;Grï)29gl4'Z|(]XXQzpnNb6-wgEؚVzǛK{JvHOޮ=]Cp3mJ&,[VR[tҶ/cgMzLql]tz&VWl䮝IRS}w/z дtmfl399'4iaUCОAt\ 05ɻU+mDbdWu31V8w@k}r&zYDGI$%wu+OmMS7׀l;n0Ly#Ovl%ښqџ3G6RAF^k*ҏIpaS59֓Mۧ#2;ai~S u캷{ublDG,q5,qɡm&t~; B1<~"3~_WBb 1MTuCJ41ͮ_װL(6y% xãr˶nu4ۏˀ7ŮO'qSWfeDK$6gWG3-*7j3vyof\^LŒ\+,RNMu֮@v~6Xِ"g6)v}^U4ni|fАP ٛrhE9}S^}-`QN*r{}QTeU>=9BRڨ(,Lhy쵓#ʯJ)`*)sGS|dJ_rਏ&QY=Nطxj%HDߊt,_ c/>ӈ+̵ڮJuIf$hEѪ /Ot،YVCg6{a n-6Sfm%4=Q4B`b!☥d0Ao$]`}AN5'|aL1=LQo$_Jځ}=#) nw o{嘕ˢՔh5'Ovot0D&jQN3(9=k_(. Q{:nM:N]t~.M"#Ɠ)E.hN_']yD1ѓ7D383黝 6w?u 8HkkQ$L5|Zsn`YQ\jPN"V vHsiZh)Lw`>h M"pe?ytb$j588]E2Z=iaaAʝ6۝t%qQ$F1Hə6ݭXJޭRhbhVA$3{>h,BG:o& 3hNMmG G}oa}% iXl* n+^]tZ_]xvȳׯޏxE .laS^lEiB"T2ND5j B=Y3P' %m}7$oL0ZO[CBN%zkl +z_D @ZFߓ_"{n۳WHh8 þK%K.i 3ub.vju+hB{1ǵσ++!'Wؼ>h&cuVlуd.S.ഇA'Nla8s49{?mWb렑tnQ{rI6aM #͈PU$4)TϓE.Ig7s$*/OD<&ޯ ?q3`12ĩ=moք'R`ym[/WC4wD;Fnnܮ0SB6@8)_P"}\b4#kA1}yԮ;%Xp)%\튉؅vB@1G.8M*hBa3桋%ߋnJq}pT0").e"?}4xuw 8nZR-r1T~9u0'aX|I[J"2<P Xa #?nCǟ~? ~ŔW֒vBIٟ^l`2V&T,aH7stv">%{%A@tr瑄5ۇRSIS'bb2#-\1W#ąv:H\TQp2:%hd%=>98M[s΢m?{8b>\ش6ݕo&VfBo5N EH,2ݚ~q09L'&+?ae63dҕkhH"U\;JIgcg#6L'. Xv&#׾7>>) :ӒcO]Fs}u/Ϲf1߸ڣNkN޴WFJf-ϱy\g# %Ky!D k3uTB2{ fE 䂜0޳9:lhy$l6MўO`ݗ@A8:$4gg\eLn|8p?k;㙭eHDF\N+2 Gigۨ3C nB#xV>v?_1-,%ꊰh< #`-1;Y=ZrrHimN#fv5 ϚbMZIyXWrHXdkOj @JCvӉa="Wԁ+\3c@CxJt@i} [{~ c:Ŧ~W͉u@jM:( N)J]ܽ7=_V͌(EwI$n?g#%#<(KM pS:k>cS o&U)AXk۝)l6;^%u*l|kIPt H!{\s`wbŁ,$WL5#ԅj?\n%{y{FB(;gveYmz?ޘy`KɻN ^LtScE"Z1=fEh~5٭ޗx1lowyԻM"pAl$6 I؝.V+o4 ׷6 [.%95ք5YB挂Tғ{(4K"BoׯX$JK`qj<#)Mt1H K{;[]^y4R߁}WcXE<Ҁ@89/ldcny|z6|F~Ukxc7UaC?1jv2G4*'ܗWV~%"Gj)uSՅb]S||%8P1r5ORf>h\:YԦvW^7wvAݟV곻=´@8KIJ@"FlOl]x9>,kɢmNniRq]lBY^ӯxud>3q0g *o(ڱ,0g6#ݴOYŘS a|bsjll[)76}p'128W䜫Y?%֔@5jÇ&cwB24ąSt8VLKFo% qBF*$HmB硴mm UC(%]ukr+۝wIJw; \ܨz%6k~{JdQxh(O)c,5 8]Xi5MmV2Inڏs"gĉ>23q}pଐՈڐng36J | HӤ`<ExOGKBJ(jڰ=|#7?_cHm~աm-~1<>(MgBQs/.@u/u|))9IV L LDKifQ#K9AIné6eNe'gs-8,jz/nMsMm 2Ma-SЎ5 IZ% U lݩZBsR5mVC!IǓ/6Mk&F56MX6t P3]HwprlTM=7@Py#e/N:$9PHY۱4߳)y rť dXG 拎fvf^-= t-R< W6|ny9Z>#Gwp3ـ=N{j39P e$)Sd<K2Qo6,Y|G& &)b( ՝_\xDPyquّ^y :ۜear2 G"7M[CS`}m9~980d)@=tx^$ R:B48N称~uF.#64џ&sH9ζgsiIex zah# /fi3ӽ+7-n߭rg>CgZ7ͺ*DHAo&S8r_x= ? /8u1\1ɉ'Q2 #9(tkjI>=szԸVzkw7gLCSæ2Hh_FA8C_7Vi c=  鿫1&}i wJ}O4xٚ 5Z %K^@34ȁ <,36?AՅvu-7Kt=Mi‰jA,7Hbmx&V&U"kADX㇀p@p]ɯW<(s 1\].XPP/hgr(`a3/8ϯnqǓ{KBzÎtym&&MkH\[9UY2Ӏc>.CVB;8bw#~q[,"LVgQLp*gwr O2bɌ$I2b? 9!k2!,#]!֭kj i{IzlRJ;@yPk'(01O֋DW}Z7o^,vLsopr+iKb%1gI;}=B!$Ʉ,O=TNۗ<{>Q36Cz)]nFSl8PNUI3DGpsk [ent޿+Cn]b$ 6FcN߿EQqq|&Wηt fNf7&%oLfΔLe2ro[6ه'ɄMnF=n=3FCV(ZT)byÂZ-Vn/RJ'i_oVAI rxeUrBMՍխ@w\!&eNXrc{>3(byt$@]Aѩ{Tf&R/[5ZA omWiٻG%+rv)t(z/t猅 gc t/gk}ap0O׳ۃ7\4 vS7zGxuڋŪF-#G"$^6@ ̔by*5~|/"G> V4t`G'˾bqiNQUrWi%-p>$7w *G4 㣓9g=Mz8d>V~.k4o<ʤDo$\Cs gDg!ƺKʒwJ̒=D'zN=1ʣiw*?&Yggkk~ɾLMxh AgWNDaR/sjʗy?`>̝$iᲉ*@ YHY>Oq!JA\ = u'5ӑ). Hn&=7ޡ+`p0W$S ~BfkB&k)R)'<=0N/,GQO\ֿ7c|UhJ}fSI܍DSVv{J4tpzrD/B5ȋÛH5K겕:8Xɚ\5^WaNnpf4i޵:y庈hoHfL`zxư i ݺ#[B%[DMydDk͡3|T+ŏjW46r9x]smu`փ[aD6u^Ek͸b]lve ș @L)lu Ը[BI1y/1[>'Eٽtig9fwgPFu[9WhjY8[rrLUb)SL`8{k"LP&<+ gl4R $ >k8jy&3mt;,4Dpϔieq~y#Ѷϻ1iwɆ13\ϐ굝 <~.5S3sw;;Ϧgil4@ jA_@NF8Z*.ϿL9~q~ۿ}Q[AK;emtHŌc5XC %:qA7Gޗ]dN&SGvF$GnV[nZ-ι LE&-"Mp6hd)Nup &|鉏nIV#yo#&׊ D3&.BZ#dŗV!p>f LiwӺXpfqwd⽫nHףˑ 488Ew7I_F+0{&>n\̧ lШ頖U>G@l$T9},R.1NV%|W)4f"ްYtc KG[#؀+Ǯ7q8!P<*;a(+g`=Mf:3eǖd]Y;B-x c.]zu}՛^(mE?Izd.vd1v4˜N,Xy+BY9]kڒ*8yx?D4"9\ji8 t%Xp4ŷz7|>Cw#F~ CoBEVCK&a#dGgϝЇޡz6Bͦ-hv0Oi IfJW>1f1NMypJ׍,yaOk&׬qAWIt@tm HQ-p JT̓$(УG660w7P,M ƚ֯fO5Ŝ$)`hAT8u$#6!?%cO5v3/ދ|,G_&!r6ŠSup+)~48n! A҂щRF}4 0@Z7l~$X>63 W|+\װ!yWD\._nw]s{bAfsun]6jn nu40h<2W')Sk׬6BGزIB !L2YS`%qNb}ehMLVlOB낹k7B~D/Rr! >~#>ٛ߃_#χ )EI@ Pʶ;Cvݘ0WHZ*dhvi3'W&  Ş7ex /dr1⿓u,2;I gYxC;939$\{ri_Bd+8]p$G04_;#[1M5!/+eJX/Q>s2DNL+ɂN&zACaFXvay[/Ge-k=5Nd!|ӳa'go` },իX7 ]W`kcʮUdE1sMܓ楝FËFVD|^.@}en5WE- bEzx7%[[^zP]!a5Upoٺru2oNy՘M: (w&!G<`OplšUWS& -"eĠ="MtvЕs\`w Eg<ἠ_쪘jv*`;rouM;G̹~$mu붧 ,)kn3ǒҀbՋӨF'p7'_tJ\e\&}|V`F8`APzG}l%>g8;HZ#}4s)x*+mU]'<5ܑ rini ) :)e"VoDpzu}Aɛ{t (XTKp:]&ڻYHX0e4y2 U-KˋD^(UA0=]~1EO7uK: K Ŕ7ė,U +X x@o#;=_~p5˸-bx6BoXl-J3KxZ4e5ݗ6I̮g9";iS_nyJG O^ܜ- 18I6cpp{d@$8ɥIIFT3QMԔyFG5&ӳW;'k 2fSq)62=Ƅ$ΛԦx%WLm:,D{0^\n칛'>NhOг$8ֵf8(YL"j釞d L4 5N,"7;~e ^U)]=@5 e~v;,/Ќ IvzK{.j(L)hѼ[/r? px.fņ]ksK1ɖqlAK i) wy6"X ىKkj}N"z=ԛ!EvFUЬ[WkhZtM\qg9tKh4-j :O"]%iR<#x67LYĻj(OvxBT1O],4FӦgjP5C :͵d]24h\E视78BNvވE)A!+Ζg sTX98 @{W1\hnL`>q fA5U͚muLgp4TgJM1]ܵN @sߍ89wg5rnە&A׭P(yqJu>vRJ 4G[1; =jIw4;7ݫ9'r`&Km/6t'.~6ދݿ]s$uiM]q/b7/ő2A,T0&ptIks:yJ\o7\\)TFZ^ۯjF-b:b/~|7YgX'䰠 ~1&`dbyF 4&dtSTs4q<D;POk N#)[U8wUlڵ=ڔ(dMbW22ZGqۍ!Nr1vNKn <.t#AVM?٦D7677> 8W` rVt ?vh=t)kЅɶR)>+DFB>~ƃ#_l8ģe( y9-r'r?nĽyMuz?Y3$O蹎9ZA4L NVOMyaTyF鋑}4Έf{5Bhnj W#$;CdZE "KAϿ?^ hnvбo/?y5tXƏCzZ[,7݌+!zTvDSDX5k9jbT\91˼>z虸ƈxE74d)NX`C^)oz_ogsp>qhv1'C4yԂ5 _WXNz'IfyJ5 lQd-,a<67wD8%!ox/o}߄_>}@ɨi\" kE;_;< -;тe* .\b:^)h颕 mFLDL}$=]Se$$xqV+iF׸bc>wx3h{`⋛0/d_x$\^ rT&kb1iۓINj\o {2{ trbk8׾ EFӊ)WdAφNWQ ELhFc}MAc% 7Z3W ܸD(':Xh3U˵oքɜٟz?!Js~A l T k9]{sY,`?\GJ0NK4$@^|0q[B}a&`8x f{vB^QNÓs&r`y9FnB>ZLmeO 4Ɓ*7lE0 {|Pu6 8|_n'}z{^p~=l[/PU[sV|U+󧍫i|'<'w O<>PR-:۲D;߶xMM^' T MtQ:` 顜Ty͎^{'5B4N½?ѴKX9DgȰClmBUrjuvSؤzx*}`*&㫋gunR-Odk;j3u7q!ھ5$\;ywr8rs@hX*h EgrAp 56^#Y] IOkH_KKRr>_|6`},/F;"nͲv?j 2ID.#ڱA{A.E/ ZyԪa)t߉hnL)fJutHTL kƁw-g6a7Dc㡦#Ke0ם0Frazh!p ]_4P"͸i"ؔAt QY9?M1. NG.(j7-6vkn5Mƙ:vmg~]GxjrITaNȟ-Xѻ^W?7X>7 Sq)r2@|3 ѕR8Ywnh";(Vz06f4,?^_Q&Lqs.6}c̠P4Bpe*E괐 Τ2.n/¡Q4K>5*0ALI0ҋY|@~fSkLEAq56w?3囃>>^.UR8 >la~U#d!>vNl<&ഐ{:(%oE\x9rK"eVOs9EvBCk\DI"}pڦF^ĝJEK|H#Ā/ǀtx;z~T?; 7?{wj3ƛQ +C@׷1eLM@ln/.F?ډLƱ)>+dF2I|Yʢ\#^iO}&WNYMi+b3Jc,'[1I_lOc7 zl S6&2Lb; 3QfҷP&d- hڟ챽(ϲR Y<-YKuV#Tc+X0xb2wwXgGtZB! bnfW%)UZ|g"V55⽄kz2ځXoV͗[EL>%˵_(_wCl`׻u H]|GF*M7sX,+#&*6 ɠ3c+c+<ygxG\1Zvy`(J^-L]]s(Ϭ/わc]쏟C;/>P#BYsBZl @^Xg' O񁭛bEBnuYɊl۝UZ,`īd_o'\Jgi&Yuw)H.g5:B61.[B(f1ѳSfuc7wȸ \nMwAG\иVzrD3&sVGlba ͂[Z$,M*rBխ,dt8\{FjSzc^$ekpIX 9$…ɹ $jWCkϩj#!Z򢳭NFj4"x-RO ~eWD+3Ϝ+ڀ]jg]1ahj.}\sq$^ԋ5B)wfQ-/~34_4&q7aqLa,Fc$/%WzKE0%z"Nȃ6 Q+:chEDDmBnfMT$%kݍ&$3R)[@,'䎐#_xf~|募?ۿ>(EXp<#g.BEE:~%2uFwtM9'Vo@U{Bۣ ᅞ1]&OOIk\5ˋ7]gpXp{jKq;ݴM@_`"FƤ}&38tqjv]r oiӒL`x} ,%CkZٞ 촋gv4d!ɪ9|^)'f }$1"}_}vfL5;tN-'r[N'D\uc,4N&iA]o,} qmƮM)d-MM _IRXcv}Ыʦfr50k=|\;O6gviI5tKzMnȆtNmKu" `Lj[f=Hl_ڴ(EA5lQǑ\^!TS 4ި CflN=xXt, //?c~PMҷCT\PQ[`۾9<&XdibIҨ@Fb-\Gŷr4w;烙퇯dSM+[]:MMS ?fXO//8oiy?3Q g*؛E,Ƃ9 z{$l48\q> lqb2v~*`AE ߣiϑM~=fV*sJ61+PEOSgGq@ t!U\JEM45YѮepq#Y_> u$Fv:fʣ rJhw QpDWOmg+Ei];'5"ϵ'8Y 1*Ff8 CS nHv!ә#qXtՕ*PkcwnhCGfiOk2.r&258SB5ioޑBG_^-"~G?|㿋" ~-![u}|^_@ReX KBxeG6Ҟ$);)w/dZSW7uF#;z;Kx=4-H3oMm6Gg J.^{X[[VH>-)*4uՈ|c[h¨v I0 A;e@π:3 ?'16]@zQ/.`en|֔X ]4mnǍ땉7|;*@Mͮi VIsBfС[Hty5ͮΤ"wvo]P<+]`ӳSQ>2Ę's*levDv /e㍽穛:$]Z ktԪZg,(\x6) V, ܅(u4}ƛr]%OmfSζ̉m0<F.B8o >Ў9%#=zw@ X_@GoA)Ij~};b~x@.{##bkSWN.GㅬܭFDO.`9f c%GK!G7%#貑L'YPj.b+.N)*}'%#atF»vj4fN&gB`d7D—8:p73iͩ=~f0嵓1y< ox@5 ܖlo{gB(٧HQ#yvtwsvBCA1Ռz&C9YCةU(ԯUI);n~uz x{I_Ъ6S^Pdl"#o<&)݌sJM-:M\LX8 ҙdk9qR^\. Se2Nhf?}(nDa4 i4؇_|56M$[FB \.nAlQUXUl@Oo! {} Rx ~-$}?;"6,et Z",_,+ӒREڍMXw3(kŋ%E.ey0Ɨr1ǃ?:ݘ= B=A(:' =9-"5%u7 as0owk_H(r"uqlŹ#ekXAŎ_Qڀc'iפqN3_Iڅ&f^NhyH)+'8i1u77ukGF]ć8g.ݣv A'ֳ$5Sؼ3< ]2Lqiis qIV3_Sr] @WAd`w'bA<,ήPVF t8 lC< OF#iҙU~ݤ_͸D;IҒ}j4w97U^:qdSݻ_ 5+SxO\LvbV^ #pQjإiYgh~L\IvU$ЋMJcjg+j -dPܭP0b1eRs82˸VlBbw:k^\ : E-c y7t8a`Ն&d?E60)> ^.AXPzrTN"AB﫴F,,F%r0D wRb;,iR6W4of|LkIdTƭ@%Ԙ!]P[MHcD*/w/^-??Np 㠷ghwpZQ56RZ.3a <\͔<'`,,dN.'CԪM/Oߚ5%>CaW5`^, ~bvtNn5Z w_j˃|E0cuջAWngՠmAݾn_F!y0dzt܄"%<5*gƌM cqhحN}+T u;Q 씳t^Rt ƃ" 2CO"~8dn+39=1eDGQI5݊oLB4BwjuPo 4-,8FR 8[^ <,R]O.?SM{2whVZϘIhtdw ezդ'i۝W F +"H+5sPjΰxdӞI/Sd4 1,HbcCIz645a[gPklo}?۟??" ;R?&D&X-} mpt^ћc®2A;\ Xxz;щz>w7잣M XIby/0*;`E)2rq6g%bX 9+S=gݭHN2GNb$KDܥZ=ґ QQjRy'OFِ$S yX+9abFW @+4yX `[7iDK5n:5f'i_A0QӦdU6= 'gX N "~I6Z>wr!m6qdLf8{q \`H3 5339r W`FZ > 6{#t{;ɪvPeX\^qͷ@~ǔ]ډh[tE1гAa#NZ0&r9Mc% vLC6s$\? . $#;JE\uD} axĀaeA8`93O2}Py~2{{,?;cH@,ߠ׏"" u $^cRNa$%צ.J,abělBAGz[#!8ɖvW ;/wRKg0!3hMb:P~8Ns`yM\ru6>(BU6# ;.Y 7lzXP>`QΠߑ+dk/++zXi|]FS˭[w#uqfC**wI:꒠d JryIfp!p/3`Lplw_0I$ﶋ9_)ϫlt W{N.$|~ rǷ9GF+& mHj 硋[vD8kbY.l|_OA!:ІƬI6:"(F*T/sѪa5T)tgL"׌e;SA16!3סoHOꃲ'~|+zx# -N  ʗ>` {c'f$ivdA_^٘6{߆!#)i6i. =Jv]B]]Isē+'P>MMk3 P&#ӷ:=R(#SZ13 9H3J=2σnNTRXXn97+HB-.V.{.1EJ(i\:d o9"jMW\ːY-j7\X@y:_I<ϡdo<;12Uj>q5jPifEHZʨ`]3~^w6BG(爸צPr *6pO)fcy`X/Pk@8$FЮz,Q`d˜\}vˇxŦfS+oVl~-7.p`vGx{IPnN;lTئM!'S\SxB/Fk&fNM#fjy_$AA tߌL4=7&Ygs)R7pp;nZY4%&G+><6eibL @q幝b!#rKDgX؞LeS=Ql>!䤧) ClHv#2 i,|q.E)N쮐ljzy;W94&j`ãT+ j'!hzƟ`O+E&S=VذaDA+),jO NY\&:3C hnsH華~/qG/~8D] S9ɑ)DLD]rS,9I.AhWd%gќQCs촷lNMz2v[i%>)2qu6M9-؁]Br.cj.[;U|ɩ v*,-4901oqkM$L%^TNY>-RWdj V{5;A;á+BN{wSq0$WB͡Y;pHNeq=i m c ;Bxl F5yt|=?AP/K?P?Z|@~{ 6lpcc#h=fjGL0e/>\ *:괜;$ӐNa vx;CN=}2ѴdQF!(LjZلȇZWt?U~n %ń3|&jgt瓾q/eq9+Y*gC) QrpmI4{d:0rPH42i482t9p:#UPʓ; \َ|Fk '~6-m>sUFM7(=SY #U )Zc9 ˃kt$=Țew4$Eq&.Eu",\rɥu*v>!XtyiσJzN) q{mzm+qmӵ^,k":!3m}0gf5aʜWeoA7g: =pȵQi$qW t߷܏?2. 2l)9pA8oHkBZVc@I~G?Ɵ}*~7xZvxAlG8X-BAiTQjZʑ l:a|xg8pf&+kTB\NH-,4Gw>],Q{|M}A{hˑFtYSMQdSVVתLsw<|ՀDȦ=FNnE>pU#274)Vev֌<,EHXiꚲdIP]Kf'| .ctNIT!gX!aPQR ݳ8RkNF02#r2Felyc{ٌ8W,GJu-*Lz2ǯx3/t+Xoxp,(jԅ61d^aG:\ 5 ?Cm-?^VpD˻;O}Pb>iHe{mHè1bj ,^biA*{~z" vK*8k%(Z! 듘BwpxFzq{$g)M^eVv΂C7#t#4d,T71ؤ&s ԞJT_m45Jaq>F)j``6 g*ׁ;0kQNdm5ݾ^2I2Y wW9FD"ظ\)rÛW|3&)ٝWY`٢0'@m,hEY)5gSƎ/V$6{Jv]Lel\Nn/,Jp!>{ҘBpXLIR]0 ' Lf$ZdT#U6mmaH7Z9.D~ucm<&fkCn|9 )±#-+=2Z:![eA}|oKKH/o?Os >1nzF/ˉ%G}(g8(EK0^1JyҠf%NKƒU ʋݬE6MG89"쒣dU\g"}nm,5Yj)v`nهv."74 :0t]af YBڅ'$'}x@syu)sL\SJ'I=Dzm#c*8Z܊?62%3y?- w&9=.gMJ^,i'{*di.;֧ͧr.#/"ʢӑPP9w%r2gn\GˊO7η8j{1.ʥ԰;J6,G{C1n( w9mƢWU}e am2ܞby#Bp]2 )q9Bw׹kJZc T33 ""ܬh"G7@OH9!p7 //?(?UEʏ|&aAHo!'ףG0^[Q,Хh$0^ PyY]V6m2B-X;d]\$y5LMhd$ӞtOco%ie3&"1_[7UӃX]Nd]^fHuJ@C]f|@2䞛T9S&+ 6"΁;9S46 gtl#Y!Bmfw7 |BAjv&ڱ:ęJ&NpՋ+hٙy]m3ɑMrjLF~GgRo@X BG䠕mw-]4]vJBqz7b\4/Zܰ-+׷<җ"6ѦvXa@s2q\71I״_}3C"N?vZ5>/OB)3׹[fra||@=Ldp& }'UgZyv 87 Зj_^c ="/zCAX^ ?;͗ǏwS\4+x{(}L] Kz\_mmJ23ƒNzGM$H|iM/=s>e9Fs3)6ef0'1N2#3@c0d^L3wgNA/נSvnB$DcE͗j+ӡlҮB1WZHIO"a٤pSy$!{)Y)Fzn@M8bNadt`S7cKoIjwYZv ~?Oj-ʶ_ ~:!btk?s]iCQp L{s.S4կZRm.Mlff6Y,r&E(g"gp Y:3%Ӿ89 ߘ# X+I'fa(xZFb @c0R.||H+}|tҞ 5,mm/,l (hV"߮DŘp|-D;[zX;Bߵ|AUԟ9vPQq )\8fMڸjvb ˡ[o.bבӵ5Jn{^ROZ{4 CBqhX@]/df;I8MoL0uLi4neSg+q Y3T0ShFtKbನ 1m429qSFZ( V8ěynH rfXh*H╮xhaHɯi۽?kH".Qpۊ@}mMB<&v=.%E0~%>y|wep/eA=)eK@E'=QlÕv G>eAb\!J=YӐsԅWJ:2"ج{l8f3, GӪtj](IMPwکV؞fF1'Y+d٤qbWCKO5=ZQ'Ѫc:kJS.󡫓ky.Pm!BgTySsՁo ,Ͽ4K\xa`1L38h>a`[[[ί-g 9%$s^̎W+(6<}R.+&V_~ǥpi\]ΩFBa{H(܇|{| gFrEo"-ߊ@|c>?(?M{'RO X2bӸ!ͳtt7Aw# #I%G uʲ %&$kDG _O WnKAW\Xh"כeI.9$#NQo]db f^7孜C+,&}u%uK%__gX25LbVtLM,y;3p L]ʽ 4s95M0U+p$Wc+yQƻP,k5pzoh1IC~N n.j?=us芉Ai WcFLsؐR "d0fƷn(]kzٜ6&4:reGcW! Xw`{ Ng1D(+쑟LCVRiwG-o !Js(NUf%'.a9jUNe}68mwN{2!w؛X֌$p%6.M:R(!9wu0\>piۓ d2'Z|3 5 XdMr'zq HwSgpMN{b鶦LA}(^Tz'SHM#|VM\5G8 M4˒xug<ӳP4u.q-h?k64iQaRv=w'?O1[I@dÅ͑29iC{HB%a r 7fX&-H0 WƗ_mHHי$X?bZɤz8OBw&pʅd6,r^MT!gs.fց 3yh-`6BVgںc] iޯ.? 4bJ!$Ժ#/ X/[[ -g` ?~;JO" ?^ppB!w!X굘M'UtTvc!1`tApg:,XO<;w7^HRC;DRp#ۯ?8x:ڡ8.pf kn(&Iɻd"(f"7+dNjwPC(8VRut49dg:ӸCm +)MDZSL749ˇm~1x tvqk=hGo 2riBrM^c>iNjhHBF o>-̜!I<\* W'7KV(2n= :7 '&#)a5y(: yZ~t2z; 3)! 0-P/鯽L_/˷/?(?ſo|6 W#! i-HSh[ÒV} 켨+ 0]tΏzbٝJCN3Ih>7Gŧgɹ;զeM8qI3ɨ  o#rlwbH6bnpHP`V§"LD-yo86]}2y #L-1KLbr;{= @yG9{~#eXH/,Ԣ9 LdH{W-1'sȮ|2R::|5h,lf>6iE񋲾R7WP 8ȆT8tZȬ=vɆOjV`h5{9 a*}X wlS@zHSfZDXCA|dvTgdjL@w0^Ъ6ǻS^z@a +JhH"iK?~hVB4[ګ5=Kh{DH C);6_ D% rAh?-^%Wq⟽]"Ԅ^ZzD'j?:AԣY83teJ"jƫ)Llظl܋.ݛ'EO+ !#'Drϫ&%=Pg,n>0Dm`0넹HL,֝;-I$tt[KVF)qfB'fB)dsQ HMz3zEz "skJ/ӥeͩX Ύ}3W( ;pX \\m>u56{9ɈfU裓ţ!d,Gx0&Ю/khUiP9*l{z PA{PBlTTO.6υTs5ӢHnqҥ8=J\QE637v[ .Pd|VMr}C8rA =RB^[K&6gszkxD =T#; XņПŀ˻oWٿAiw_gK CHX. 1 gPۊؿF:-YҠJJUYtRvxUr,Z76`3ͦF $Oe;T%P .( .Qރ/%J\"Y+I#M||ɟ{ Idv"3h(}\4UD7:L bUjX}i  tOXja| V"`CI^\І$cvqwUȔƝ`贺-@ŪE h ]t<8%3[s!SG1$PKuj0Cݸ YPi55,NJN@$oԷ]6m $w$!e5~Dއ<^hQxlh4Ov!"]ך9衐YXh2~Fլ 7Ή*ω oz{N@}" ?5 Ljxo[1>JWH N_t =<.-7 CE:J{1O߰؞֗kk 8+Ƃr⋖8PHB0xsP]O6m1Ԅ &yV+-. p&0}ެMל*!0Yʬ;/.%CSwm198Si~9kukLIy+%EQoo/" ;+M% t Tp@s^jLb{&ilvyBL©G6ԱBbcchN Sُ 5{v;>?m6 JRY[\GqMG.ho-}L~i8|lbE\nQCBѷ3rt|9 a|lctݯyE^.7VĎƩ&7N,P,IU.TjOO3[b1ee1RT<[GL +gdX:Db7yg VʫM юz6Ws;yIk'//rV\bgkլ)RTZbj Fbwg3Mv^t ləF$fڳj:Z1ak41ݡLcNމE5j&pdpw"Iü6ulKNJ"?L@z\ 7띤gtQft}go"4:ӖbڵBY@ O]X}9ʄ\k=#ЩKQ\bjSҦQzhڙD3I^w` Ohk1HQT!>_]Ke{&2^$Yig2ryg,'Qh{x{VwwCv #"W<=$by4W[C5׹<ַi+Jװ4Xb#؀6HVr CXjJ`wcJԴfW:u6ok&=`k W+Z]zmӼZ\ngK|c ?kphhh6/hNuz~GnO~PcWxowcrA9,ǁ ;Wsu{UA_MIDXN41a|Jo U}p"wEL$Y|8`!V&I#<7;Qd!w4 `;v>Á 5aHnĵ^`$]<䄔Ȝw`^8 He6l6vT!: Y)ab#$DKz'1w"U w=h}o؋VD{=LMSt:aux u?M2JJ" ))z7Y`ʊl׽c^&PV4:uL*>v)rshRh{ H !weqYMxq8zDFB(o*}+ƯIwg? 1%7gİJPk2cۨ)՘a/O[-!4"wچj?q%t L_m-(;Y rFJfV<4}0(ēE\isg|,vuO-BKvA !BlL-"X1k=^dXG;vm.:Sh.fާ{WF ]V:5gbOW5;Wr*K`IҢ $;ϼ63 ۭuDkg6;[Tf8A:G ݸz/:-Do۳<`<3߱[xg;'%V?wgQn=Am5\DZ~G6a*PڵZ Ӥ׳+1]xqrmd%kGo !48'ׂ#pvl{D/qBElw@ACAK俁=f cY+b[./<}WA}ˊGJq-@X' ?CGP7XQT^FA֞T^sՌH<4 A$F`BYSΌzN|XRPYTqepf;F})}O%LB aL19}KN8YLp@2kl,Yd,X擠\ljD/WqҵʄAecѤ&zm?WKNO$ӊ9 `dY6+&g+bk.<N-˿ձe \L+` _=@;\ZƄ7Dlwr.S.g6.Lf&#Dvbc0Q46TYqJ=l|.\=3py|ꈐzWkBO=cs 6\w}Lj,( +E;jlCVw.~J |:ж0enc_ImTpD쇡/@?";[@HH+ -_#%HkozYGpZ;"n{}ElyYQr#9QW V#w\XN:mXH5~~bbw6>͚$]q΃QOjM81u1Θ0Od3~jYz_~X@$ol]yi7$t:^ٛ\hu4Dϐ~kLc bJ+ :9$b3b:}1B@@d#^D |‹YQgsif]qV{L{ | l{X"XAQ}ZCjYE0G<3P D+ aJ/pg1 bLyɎ c!gM米ɑ `nMK9NA _2bI6Wf:cy:bHh*~%%Tȯ= --#Y3Hdžc@6o{HO ߽y}|rUVcdRl@C_Fc]>>^!.4FcxB&,X/8/H^!fP~ @47yW~mťz-SГ^g,t:GMTo{/&F[RSkqeR/O&fl WTCNX$EV_HO\1w'92XQI>=l'Q|t5p*f!gAD>)յ\5l2d&=1کA7h}gp`&@s=*%a=?9ohkUZ9@%YV-v7yHhHױ,\qG#>{!K$+P,ss%|ϖLv'}$'erQQ m^CJuHptRHD-T08Xӯ$3BLL׿!~ 1"#6 Ox?#~c>l#%xB }G+B>Sh!9h}햃3e ! 5<Ң̃1$3Nu0+/A]:lvv_io)NZ ک9@/tW]hB"4%));2^s\5`d9}&ne($)ط,k??Xt<]FM~Ŧ>A0qldՋٛk9=EP!"oun[Mz=Dմl7.Z7x}C`dzi?ϰPD׺BBISIh;edT :"JW@[m|Lր |OFrzDhbu՜"Z}}@"d/,dϯd ̀F18bk؁~": ix\Vg'`hᰘWK~?CHbOoOw/>_nh? yw b.ň= 6 AM~܃4[+0ĩP, F"x^ Feञ;8[UHWsg 2(vi&5xm̓N#L/X+K0EtT!6(H`1@Q횪Vu+X*`?ٗF3fn}9}X v+"!ȜJ9نfFSBM:դލhVB1 v}DviY׆`ĤX" '1y/bҼbuO߷-ISU,.޳rzT=3oB2X c%(2LT5@ {cA,]K Y3w65R>(.\wCv&\6,Id VR:jAB"Y#(7_v$ӝՐB:=-@ |Bx-q/?8~$ ˇk1_@iPc ~Qr@ ->GË1MֳA[4$-|[6w*(QP=w͡JҩtϠW\gE϶>> Iʙvb#O׾O0l+IWTr}|D3WfgHvbgںo_d3;#yBOv0 .dݪL]Vvӯ#q Bhs6]2qQ`=r ,I-\v!{W=~ ivӾ'[,m $h䋑U~z>φsjkS='L"}X8L,Äds$XI%}3?%BȒG,1e76ky5ž JHfw'|]+b uS?R! hϟl)| Qw5M+Ify<= PhҊ>C5 ^:V !eC!p\Pnݿp81 ?v?A*~?]P;h{3bZ.g11* WN(vl}swb)v}sdL?Vg$0Dȵ8L2Iv\Uv̌u;:r/%rXGD<+.1Äk ,;&{u0/ڴ3F LzV/u X>s]bВıu*;Гo* % r.nvqa>e1 3XhaͦՀ0RJ_zԊ.UL0H;iiLW($u$3{LՓYnM+`LaDuE\7h92kEN[6ηe !UtCB!x勨iGk?3{ky郲X` #o G)?1Q쌎C609ňۀ ;ZƤ/n 9PS9cbg+w M~M &bӟ`fI8e?nm]qDLحx"P:DZQm} {9?"{"֎xܐ !ޢ~=zPߺ|BKDGBO"PGƧzC@eyiJZ K{}[vׇ}Ƙs>Z%d(# T /cS8pPc G VU~ԒZo{<|9*vŀtVխs^k}<SsD%ʼno\(vqSFÞT\c*&) 9y7O;#oA`VdK8!ܵ[NIeڗ6~ՀVV`鲧okjB.>&0u8}},觟MG3m(ljphϩcjLiL>L]c:W ebzrj!8zqsa'|s%iQ'v Pq¢ӵDߏ/'qr*n=mI_.ob;.3q8\1K1q:Yq,\{֌AnS=; y m}^ޛªݟv!Xldlsw^ ܣWY[m+`k7,*RPos*]}[x鶾?ѐm("z* и`~fq 9m:<݋Q'^k0UEF"/Kj2kȲA!.p =zL8$2YA Uk,M϶%$۳M @:L^d$рzL}d$sr g'~ S;}Ug<?\ =nnI!kRԪeO񊜯D`.[zN uHTmB y?e+ ?i5 .(%zjޘACD)qF[1\lw '{+=IOu8dAa}Yd#FJF<`gXZFZvd513Ԉ':.dr'1F\S5Ś<'a '0voJ:IGF`ĩh?)c9s>ZWp2Ώ](BG{Pqa'fXw$18ؽ՛ BT`h$VɤMC$Cv'{8QBʉzDV r{<'V<JO9W$x%.m,46c:Ɲxٛzm4% mCϢAz/4zhZpMFNsvkk.Av ;gIm0gvEmMY1P9y[Yѝk01X =I^ۓւ R=y7i~H)d2BqqQs73?on&V};IwM7CPDn{MM_¹h0SEuj=W{gg1NZTIF54t5 vofZ'Z4O"0l;2{(k2s9}~|ԛRw^LSʉqpu^żc]> Zt6T|t's$xN[C面oȂѧ>)wycﶋGBd(F]4s\jhLv7Qu,'{k9=ދWai4\5Ns|>"7 jUO(مCw W؁Lf۩j1d?ڠ,h"#4tAH=fu.&+ 623K pjަzkVaշv{(M 5&LѦ O4 W`* :!nO'876mA]~)k4wcVd>#?r/lo{H+ k|55~1ģ4ot&P6A͓9FIN7=e.}.ծT-wL(gF}&+\*ޘ~&cQX^o4u3>Zs2.M]eXR{Ywuse9cM!?q$^5*[pfIekW-n&4s.o>}kgߖ"~guTa{&JC4#,=ha=s8Aeȥr'݌ݘGp:jfcm{#iIۓlr1ZdH{)})%@ 9!_YA=j.CjI`& ~DH8yI=[lߣk9?&t!ǼڇFsAT#֔$@RYm:gD=)C.CH挰5VD,[Gi}L]ztq[nc_jIZxԇ; _ltd.Cj26DuF( >ѠU eQ/ZxحV k5[KIIAw[.[!n{Pp*_rk( zñ 4*=+JCfu$~uEc@dK4#ó:dWF;ZFb3Tf^IJCיuk '[1]fs'dc@w֧Vɵ[JCԏj!:&Q[}=~ rn$ѴΧbԦjջ!RrM&`o¸&_J~esu2r#^/4h FP[\jNrZLSA4f"PQi҆۾n{!1D ?u3_09hPI6|` eJ/ G^}_rvK냽](/(?*|Ȇw-TԴC+\YLt@Kj2 #Y2bRo0#=XQlT%/u2Sj$`;yLjZތA^GGTvᤦK&׮QD {;A'>ɘ~:&{0޻C]!)$"X],Bgeg/}"ߞek{NS\gW[;ێcI\{y3v8ڤstoZ:SC_‡rea_"%ŝ%E6{t~_'v#}կ.}L my|0gw(]xfw|Xo0fFb*ؔbzdSm #B(=Jk!5hK/FbJ -5ݸO#kؔK] ZPÅ5ަM7HyiDW:ۭCq<쏙ih_;uSQwu2ʩ{szu]Tt̛EGOntBK~Y4ܴŲugXS[d>]Nu3&ҍsdݍUNkapDqRce!n޳ N<̫oa8)'ltm*>JQ .+}7ݣAE4\@<MO:bzevcp4E9;YCX dwiW7Oo!ڽ LbfFuWxsn+ھ'5;lW4 JRR*RRn,ZO7vm(Yp z#yyGפ(Z_{'KT-cEo_| Ȟ5+Uկԃc]6P5?s-BmMf0[@D''ɘak}wlBe?c?#1HD]lbiSp\AN'>:X|ţAgނ(5aŮ644۾mlI6~:}={Y>aIyqƠ=Jw4B8' ^擛s:~6 Ś$ZNd#BIAgbsjiqǞNTR@tk,\7uBk̀0IK]pӝ֠’dȯMfCbGlF6zš9-F&}?ZT&7Kw=Y׾O|EFJ}Zes;D~)Q#Y.p01G@D_ͩЋh/ ^1^;)]7}cǂ]¼Cp\' =}Gg ߖ[;ky?y"WDWZ ]J-5J>4Ri:!dR6ǫNsMG$'V,sbi֓G[[ii6]=wp6OwsFXj>TFq1ޚbD(iu`sIs.esRr-s%lٚGkBˉ.fO9Zv|7py> w^dtg=rھ8ᾦF?!CJ4Dx/#Ys1t.FV+ mTGqoSYQq8u 2ŽXDwq!T^A>#O>yܖ8ZQNtk+\SgDJouf]/_Fnm Pj%ntII2gigzl{@v>}fg3_g[Sڵ}!EMU /M}dy9ɹ0V!M==^;Vhʪ|gwonZ+ƒ;sCmh޶:؊hj[9 z(r^#.) tVa"Oz@=T?J2C>kkgy[n%U^Fcv8SঊZUw_"7Tܪ`dpAԮFK =e0 j٧|rk FY$љ&#TYXN! _픣=l6[WOHKc}>bqSmr7rOezk18Fͦ[,: 2/ZޏTW4#55byW)bj=jڊ~NV)I nk2|'ml+!!pau%nskc2l $*.ZlP:z3;V,+H*>q25ctc qKgv~Vĺfv8ǶlI3V|{n;o$@yjl f֙"_~]ؚ/-n65 {˷;7O5(ɍy͟ZpD_~&P-m~ وu5zXސ5!DaK /q *Z^"{i*kn0$^gOPh{qOyo -vd N/_?SdRsKPG#FaR ==Ѡ=e@~7 b)5jcBd_XUcFL KCSMBь3Aci1fah=uģl*jeylP4uM8wa.'9;=ttjALL$peL %ٲÀqFM$Pκɿ{tSiLg?o;4RzSAOr/_~qn"rl}ݗI_:_UL %dJN_q%nAXŌ!Y+0A͒GqsK¾!I=,f&l$ ~5#U , PG,c{ X`'XuC?vCX >7-= F77.J=3 UM|iӐG 6L.V)r"=]a:K}w%/a@t-V7r k29u;I2zu 5h=vO|RƂ$ÀKVH]b =-Fv2<v_6C7'f:BM0Mrvg';f]oٚj.NdoX]ά5X7)ˈ0jDoXjGedvM{ɐzv PG匚k9O%*+ZǜB| aWp)RyhwL#Lo/>#]xBZ(Zɇ'P^GCF-c* F 9/ *)-lKZ mm8`OolRݣ?w';mlsxAg RWm0{Ȅ.:*ی26o;3ʽmǫά[Ak\<0-VM)ǜ:\szI:O3Mc}L>ݛQ@$4:i'R;}B=PxJnoГBwFfr*:vԥ}fޮC;/Do!4ekԼlp55JcTFHԋa:b#nD{wھy Қm&7XvZ5Sm<*m0ʩLv^{)kZg;Zn|_ONdHp9&[7HO?_.m=ċ}w½gEnrF;Й|un'o nF}$R 7 ?vʜ*ӽ{*RCn+CӉg"c{2bVr:tj.9r6uvM뮓$h%Ej ~i?쵲 T Wnn ,vcugޣZ01$<MNT0[Ndd{V+|&~*kjm*')QȎ:n8-X -Bvs'8=lDR3qe[sЛDd.uG=vdUd}'X5lZXF={5$! %aQ=/<,htYSټɜ)lvncŵ'ږHg{7خ5?8nsx &\CHȜ/_VK$ L-nG WpC?|Ӟ}{@OJn(a"RkD5kiEﱨ͑_V=VmZ$[1XHnr"c28>= K/]-f5EC/NL /IIZZ{)}u#~mߖY:'>q.#YSW#W D_,>tΧᴆkwImD$DP,ktRJ3E&TqRUyW귤^G}s:rjoD;?GoKS@>[_go(yCՙnKlMbc;6-JC_֯/vBۗ0MN#ݘli V1y IXW~N+6;7̃-,X8Kܠ CwI``m鋳 [}igh5Q|j'ͅݑ`W('hఱVZb\uXx9uyzyb|SJ{"}Qq ȗ5M{|B*ejF{Wӂm}Gr?9+g'}zm?[ʴmWgGiʎ\Da3HS|mn;G'ec{m{tIVZQqU>{Pˏ. k6TI"5Y\d7HG;d'k9 N{ZCNη)6$%oKԵ1|Ya SnCɃܓ,_r7\X/nHRwWB{SYl+eC22:$xaڙdk.:ur',c)wuu۶"9F.'Q:V)W8jg|j' +W gep 0;3fR̹,9[κ;skàH)AU o{H Vw8 K kR\cw;dw\vT!f =|z>m?B)+ >,×~]V+H"χotT JZZt=rq &ͩ l'f)g{b,bVjnaZNLNnp:d(j`HuAHY*j8.fjzC%hb0SX߼[[^keP~ҍeJÖf嬢=l\L&fO<Q]ǵSV[jץ#.VaCIO^3q>#5ji$4dfOtjMzb媆ȵv0YȇAݜ1 {i͡Ia:}1b|#ӽ;[ ΐ_ĩ{{mghm/kvUldNn޷USʍV̎) rħěآ/MV-SI})1Pg|0)I!fn:9=iM8)O_F$~}c?;m =4}ܤTP jљ7t)yBXYEz)읅qyrW9˻dYɪJbX{0C`nV kp7Y]bzLDVN#%*/}?jKb5h߫:3-<%K-H<;2R(dӚ51k' =cjD(oT+O6}4y9cߴk1ž/tŞH)M6񻾇_FJjƢuSLNY iڄYm%El6hj1qf)$ 3y]^R]U13)H!&|bcS B;ZG`M4&F3V!!Fi706@^Y"j'ޭ1ELP5Q܄YwP_gE{5Q9 RV$}nOv~ܖ+~'B0櫿'ϿgT*[Hf@q/ݍJ8yF}cvFt0R2n~<{RTPY +#ImIYcq5Mo0n'wӒFZёPsuh뉡H&!md0$d^&㲟M9YFu'ZnlБI5-b7qr(c[]xĦ>'.o2u4mE,rZANR;flN|+<;3_wfٯuO2vgW?b ӅpljoT/2akMVGAA%Ȋ1ZK1 =D% higlَ\-24N^4B5:#~pھp"jCsg3{3ĭY>FeyO*'?1Q\T.BA$3't9Z?&'`!5DG.2 t5;,m޹dQIC阊WZ$ڦP"ԪX6 >yMޥrkoWvfɸEAXC\Xt4B9p51^Sn d+rꗢprM> "0] ӎRPYPES!8\}pCĀgܽ_oKcHɕ2XUIiE|st(-R6)Hm;Y9us3d=zjS)#޲[Vsri7uc$ S; XbWԃ0b/FS|bcz ~8 >ڟNcܓ }•!dZYwR}ySm,;|m~l .M/@Q K.}T('GYhL6Yaac(=wLxk`M5RYA:0 P5k brеPY:;PrӠmŠv?5d]ZSdm:x9q5_5݊9:8eN gNc%vwR{LtF5PpEj{ڙՍeFR۲)*^#UO-OPdvHRb J/£k{]t[nn+R55r/2/PmxfbZS+t4? o?RG'hlR<69:3k7޹XaH=ZZ R4S~d\>5(opzO"mv|]lٵxF٠Ǎ=ulEo'* n"ƖM'NUbyg@a_xKɲ]1,X&3Ѱ;waHI>׺Ƥ$uLbdFKu<{)/b͌>l&ÈX5㣙4V]zT}lLqf5-q'и5a$SѺnf%p׃_ p~h滽X0HǦCMl;do*tvX^:oڴʕ'c mEv9AnmiױxpGk$>ekLlS\-&'}`8XGe {'.:=\2\ތVkX5HlrcxͲ6{0z/0ٟX4yoMNX2Qz&#t dLpkEO\4o/k^BanLI@td2)tppyA[ %E8<3j](̨T*;0yBw@y|_/ܖm?^Oz~ j*8ά/3ebsYk"/d nӦdİ#'كhW;{=ƯyM$YN2cwK4`j6Y?J.8wN"u bݟvtf&] Qaaf4º g5Kov: ^zd5uak ug'у.8 &pxWf#I[, 7餽ݛR^Winlo}ic\0HҾgRISz=zJtXN >xIf5鬓k9%cθ]+M$`01ر1 .Pqax;}ݥU>ËNZKަ/w} 5(]N}޷x*û58cG7XGXJIL *G`CnWuDGyp'`3B\6s3ܦNf|[1*4Dn95gQ0 qd-d{br2x!iT#(pK1ߙ'~q@驭>p sOsF pqY3ۭRp:q! ?] [O78myi!û;נ7C{%yyvYߖ'TЋ=J9P9 z KMR()2.J;PmzqA:pI.ޒyn:McvrG®;vPi[NY7:;>aV#YQh.cLq{ܾ? d'MM ʀEGs4]ZǤsSg髅T[>mo!!vj|cv]!c報]n"k!';ۯ~G lYˇ=4Wd7FcF_{gXNpH p"v:&>'{O̪ K;SlIn":mrcZngڥ]fԬA=n*x'-3:iCq1o61$lZ|jZ! 3oаgk;E/hr j\prz- O~|Vl=I_q ΟV+#gZmT~ڑ&|9bvF.jڏ8ZU5OgV3V5vhw*dLh7ѫka1HAbs +O$FJQS t 1;u[E}|-aT}h5WO-˥I4IueH̔Yhf>tfxd=};]yӎvd#qj3 ~bnjI9r* е]@F+~S8ߠݸb1,;0xG|B Ho,67-P9\Fc[N$ZnyrF},GvgjЖ;_.:}̊_G.mҷW5ONV*)hrH`a]vd(T\p3D֫*8*U/qzA)H)=r?w-%O" }oB~}qJBdF@&Re9O 3yuFrL8J>šњIh:&ĚdA2RҙJħeL^&;-07r}kʉlb5#pqMr[lyq]s26fdĬ=!XZ3t?ъ90Yw#6I@[TkZUqgzX >#i}n;0Ri's)&`:AgM[v!P}`,fU*V Af+=٘yIպLOXꑐr׮5..au$lM4WLfJV> r^u2,zhb,/cUQ }tMfMmܸ =+aҭ6 miCK^=IԱvƧ=tnN}׍i _vunwۧ puFwB|?/aQg'b7 |B5nMm whjtW9QGjZWτ9ܡH7?BZ %s.Q_z=v?m-m+ϼ:Sj?Y:ϔ(1E-Ƚ\q7dT]4BPWzM*Ѷ&iڔEɹigJ[!Vbuтη[xj>Am0g  4(YN6θHk:3C{l<v'+%,.<ŻkF!vLRnF RF6pYA={y=IIN_ 'lu4H9/¨vy$aSa{tKUiSgM,'&3=?j{;cgkeWS,{j\۵&C7ƪp 8\/}`XoWX 3.lI>|B"n"^7x7rGZ,=) ~;#Փmr LP󄆌Dq|[#?cpN-j{}sլ0OWArMP}R lg'6eMnFĜmZ4j0M(_O"idӢDFqN=ksꤦlq _-z˘{d3AiLO tKw[W;wfxTr0z6fy4!m w}rž^uH1-iuH>bg N Mx֥j3у"$=7~Wm+@k@s:waG,ٙOt( y#p mnxV4q{z,im 25M D Ww=k-2N.#aOp5Di%ą3tz*/+)|n{g~dkݏ7wfQ&j̈.Z.n{g%%t-=HuT^s8](5jcH3slP.I9ZPfFO1i={д~Ar'#@wkI1S5rIcVMޠRoPyؕ7#m;PN0L=Ts_{u^$ Oc[׳cRnho^-9l`F2+Mx6 w5"b:7F{g k{H]hDuLW(HHMk]iuԭ5V5ֈm.MgɎ"c<=.TG?s[*n"7z3}͟'W}/~W ʆp1r9 !d_ D4)\~$!EG*jA N)6Ѕ'xmf]ʅMәuiСYK&pܒHNsx+?-Qͺ5iLj.+~67L$i*E+ЅcTnĂyJ+0 y kUD/m*bcBh RR+53m4.lٴ>N6ݵjzih/Ɩ[%e1baBl.Id^}z#A׶{f5pҩ\C24\h{VbYjkj tRMr+ΐЉgoA}'1[5GCoy>{ :&;_k#q5ᲑoA#7 L:^PqSj` wQ⦌KW^R)/]鞅\=}OqmbQQ(Ooi_d&[S&O]f4<%wԈF/` Ԛ)钜_ nFSKq˸dStFhcmsD0ɏXPgW#(m`.Ҧ\ڳ$~n+J$NQ` Tڛ'kپӬ=v]MeiBTK!jNnSp8f$+Y-:(KhIm$M}o.kⲜ4 XMSGubnMԢ)%5Jw5O! [,ZAEOӓ.r䯶 IX p9U álݼB?YcGq'iP2HZ4L3yɋH}(;+f%gtxJ%. WghúK4 ((s"SK5l!/#ۄf&>d6}vc D*mr6ML ,4nI#;;C/٪\GO=7`E#p k#.m82b#gy8xڎt6<^֨t,.fi15vGL/DLVTgM$!$]hF'Π+Zcc Y c~5aC(U Q71m[EhO2fW;!8 rٽkO;Pkdi q]'#! jԺg}rC6ȵ"MkE%\x_Y{of5+!R"l-Ҟa2}QVySw>5Yj@c"G?Orp{鿝:]q?dn~$/CB*WDJZwwBwB=P ?Ą;33h2irqI]ic$$c'-і&ҵV`r"*W*M"cWg#0dXIHM|raSX>y@-=8zD޴G[x'&i]f#;h L5ݑakZ\22]0ƑIZO:_;Y[J\09k3ݳKhEy1#fLk{e+mﴂ^ԝҰ- ,brcl>$j-c- lMBQO{pC:ru {= 넍OxBwp11 Z<Ǽ."8ݰ=n1{DU/ˤMg( 9S\=&>YTcPHhpoݷݫ]N)CIMa5i謏iRʕ=21Yti"BR,ՃKiэl:{NPƞ뉥k8D j!iHG6:#Ɲ긝mee@l1Wk4ݵbp˾5B]~8u0$|-AvT_lO'5XRвEk2uoRH8R[3Ut\آzI[#,;(KQɮ$PYqG}AU:q.7"_ɤ-G(9H;}#_0ݖv;|'7'7VxԸ5% SrdA}lk&l9EC]XQCpOqK[JNb$=tuSg6un%.[·G|Vd;Ӷr'<Vйn`nWkK۪X-B=x}u 0 ZpsIpu2ݮ8컑b{{F5Ѥ>bَيzL MK%!+dύ{gNԤC#kĻhdV5ؾ:@r4kېb;nygPN,c {x^as!> MphoY,;)qFyjE 7IfJK/CAHSa:dvHvs#h}D%<k&˛}#߸}E+Hﰾ__˜SR,/uw)gh&fG5RP1y=n>Ca VErA1_@L?Bw?nǏD;a}kw}7ԜDw҉f*zObRIk$n[)iC[tE\W&ԟCGI*?΁Zy*Or8ph^"^(;xYt"SM.Yr-rN")DM cP`Mހ\gLXDgKs1ԴK,^R}yz/ gY]oG3ERMK&]-c̶3=odeϱͰPnc wo m[ԊFZߟ.% %i$N^ߘ=jvd[[QHC,m4$ŨO96 snSĵ0g,v:0ޯ3y1/u=bu'%&"YޜY#R]s*L/5 fxԦ3L{:rQY :O$yFz/-dn܈ņPk\RZ R7wV֙Ror@cl!ngq[~ϯ"E_'XQ+j:uK{ϐ<!\AyN͎CFK?g]ϘjqQ@%Pc=-x^4>zˤT.P`Di-MM=BW:C\O[Ϯ\v:fmn}Vە$m&z&כL[MjB _l'ݙ=8Iw-϶ҚdEz W6-44P }qw|ֶk?s:;˪6QY m-.-z2f_6B PR=Z^ߴN&%RTnGwu'n*S,ro[&z p Pwp3t~xR3%_&=>wmw(9i3wpsĉffݐ9O^_} CrX=n#=%};kok\$⪧ȺYIu_f8j|e˿͊*-u/A*a/C9#T}0ML{R8yX5@;|Mі{6瓸T#6nST=Ż=m~6G+:X=җVDt=C# flڽ9_I̴?Vym$d,ӛɕfz C1Xھ7bd;C$y]3=}nm'V#'u'|5j[$ssgJ =w!uĴ;;7Y_4xV9ih:AoÖU!" "3RY_~)HWoGnSIuGϑ!bPĴIK~h}zh}F>c~kWoeǏǭNoQE?"_J^768IjTĵ@yOԵjFԲ!G:d7S uEtG^'\P3ʺ"u@2퀽"8OGFXQT4nMт+v ,bl:}- Wo{ݵҝLZԙg#s1cNh&l6'D/mGU(H T HfXr,VK#G+8\ɾK=:ҲZId6t$,䊷7#)Ub"3Hm8RGzT+|X-2rA»iPW'_ 0UwiI)G 7™kh$,h |>Cj8&KФy+8uWH:y /Og?9}Oc}NW?qCgwԁր+ ^o2:=A3 []-i]ӽ.;?B3)Gd%g?N^?H35) B|mpxmъj:nV أ1~zVMQS<͋]KA]m.{A=+דeooQi=R=e$cvfJf׹6W5nM ݁,r\hzms۵4_8IӰAdMhy{=mɼf' /7*Ұ~Oɋu#L62AU+zFQ9޽[ukDr{韰LZ_9u=G}) 34 =tjL,RQuOI(;-y%kߐ7 r~F^!Cj~R=ZGl=5ARrHZ&A`ЭiT+wWAJE,ΦM"Уt.ۣ&c{W8;eR)ߣ 6(ζ?ɚV8km0۔M2ͤ $j~'nz_(H8_#Tu+s# y7)JN} 9@l`yU9m]ܲTMAnsB`faѨۆV'\Ԋo5 dSo1]e`C'"f,b4қ:M9)г낫;S6FAœ[+6z#^1<,3]7]K\Tר'SsCQ PNuHFX@R~",KK2٘C$lO urUTrV,#*iI$Saq/q!<&=?k"lLhVj 5Mt}_t{/˯_xu/_ZvdR⊺\t]yDJYR^B!ك"5@h )QM 'GgkD:RyNɯuA$4# 72s*c clk!9? Ml78ߦB#E+MϤ5gq ̞cTwB[XRČ6h J+2˪ ^rs2oTd+9ইԜ(zZ(keGo9 ,ϑ`%I;TGSJ*|ޒ8hh>R:<"^ݴ"j _ `Okq?h%9AVCU`ݛƂN@;ʲ!"NdwL:~vnF'kGqha/Q*y)D,F L#>5)Q(Ui&+-[ڴ^H]XkeFnYJe3, f\/4)xom{Ue-ְڦXVRນ|MX&,s޷|l t5ou .P{p(:65[#(l O'kd.xwn,̡|Gyn_@߿+ԽO0#HHztѠddR2-3twwxE (L[yKí_kAnn&C TWgh*_uY? O8!_7n^$EqJ-;s)BHB H~=~֟vw>zй=nmc/)@z%e>}@M_K V1 "/ 91 ]P5&TO77Mb BTMUZ`2+Clĭgzj.-ŦLH~ݽ/^-#7˿;ݧUXH J\Pȣ@*q|X~8k )U!rR 5ȧ1epvP׈#̞PKzBPxhDB(W\ꁣW2ViNWR1(%.d7&jecH{pvga纅z,'eG-/(EiD wm¦n=m_= .Hs ZB/*\r3#=eJƗBP~]snwsӄK]̞u= 77i R3EkK\Hp5NKcj r2(4N%y _!n)oD܁޴V {G'{JNatB茓;,劢#n9PdzYw3]#7}SsIo-PKU}C*i?s+>BjAzjfg\ɲaVI9?7Y%CI^1X=<1N;)qz &_@q,)bkNG[ymLa,q x 7ާ KCoQim^C ,m\xڠ,Pk/ @&#/+JKM{%fj5맘JJWC?U|_}jm{D|[u}~iT>tv{Nu%VʊFB^@y|M[l@I{TWtq"wдc/ixE/4nY[x-ej=c]]\dJRTK;rs?}ɟ,#'>%)!XQ\srVx;ˤQ(Bz[caegRIX  O\A-RH݅."隲м!|&56PtB]+*B)MoS}RBk*1k?+\|+&&*5pCCbGwG^Z_V*UyIj"r;8}oP+{Z5w|"^@ݏ~A~w˽rq{z!>2]W??=s7(yO.Zw91 UǔH HuO] e}NRZ EbzF [4>~:ut~LW?!$RoG=:%\?(;ri;^e^=J+QI2}t6kym_]䣬=x,kZ35(QeK PV_8H(󇁷u"7xtjhMմitr7)}27(*DP_Z^P4r8 1: ~K7TQeM=ʡR+Ίeb&S[vaZ`i$rchncV(3(J8FuJy ٚkҒqk>[kυ-_YGM+tsEn{r*%+NI)O?׷Q9+~qoOtn 1f _65]x4,on)hyR\S.[G -K%Qaׂ yW2P57')zɺ nHB @wkt*C ]nADlR/*w=C6'GfOtM;(;ԽG؜UR|3OJ''4TJɰDܼAk"H~ g}kJ0K3H LWA75.p |rNX_kzU621R9f,/,&aCDz27f2ඤ"LA1YV'Z@uyN_@QxJqx |b)^HeONe9OVj]  Y 20WȱD4m;PPo D?$#»f/Ϙ6yM[=LY~[-'@ §{mo¹c&E}E3(2ύϐ"w)r@7T} WwL/q{źPǷUo.z| ]D aLO))k&.J8)'rT@AB\RVb@C eNVSjރ9Z5*1ψVD=C<"e.)_}Ӽn%<8<W)Z4f<;OuQ[h"Ew;{Hp=νn+iLJHE)i \3RA# c* encS}z7R9/BK1P)pC5,rwwKpE>I~~u=5:ՇxϨ ^,ĵ=%(VʚdA&zN"QpZ6bw*ϩԬPq#7鋭^P.I-=:}ꇑ7Za "7,52fn97Tu@_R*5͔WxR%տ+34qS(P]T/gգ+-bh*,GMl2?W!+Dn\M;B)-Hnޫ W߅ M:ۂO}WsT)5Z=w)l†_ŇX O&$L">lg~!-Wߣ۾O=nOt,??G{*g9R+ʴmn#.d6 Sa@JՌHGZyA- ZnRnntko)-ZгRA/>EV$dzInX^ q u}ki;h6z c].Xpy"hyJ\1 ey ԼmyCՂWw_)qwQK)_=R=1]wn?ee~wwk{948`!x$@ 7&$FHAfJA:==UUkoQ#?P|_~{l!)foY~BuS%com~(eRGtyS\^ XׂJF1C,he9Pt;['ZAR:;,;1UupjE,{3DEe:v M"(vshץIo se Fߠ:Nz1u̕@Io S(, GVtAhV2 cv\.ﻚm1PAJD9Y/01Q6wh#r B=Wut1MPO0NnTA‚퐪z: $릐 #DA lĩQv5+HWI)\Bl3G#z Y(rޢr_U(-l~(0I~]Izh-U0@?M{BRY*ճ=W?y``mx(|>i/~JʕFd70C\M|Ƽ4Nz'vsBzl0k8G \`tXO;xG`{8s Mb L!/{Uw*J9K>Q(A}L,B!%:PmF3vEݹq V #d1y kGu9ʼ79{i,_ A e l0\ k1[\hlE=G f[)/3GoE/Wz1@߀f>d v yhzw q?'_M쁁!NyW_dPvކu1hrA2!arbʐn 4h)]5P.Id]Ay0#rN6! A>*Tf}Y6qI臫".ZMEкr3s?j]cH;\Wl| H|q9xT<.p?FuKд@ e}FJ@,9'ƫN;B=B^#Ю`E MerTr>StʚN{1 avAdC}2~ïIv != Ol֯޶_v?x>HBF4!{$jK;4c$JY![6Új}J(lk %rH(Ȫ-$V%Pa2^GtK׬AIbvcavT@"]&4TxhQAtƀoe0V1 yB#OhZsᐒdfCWm}XW(Vᢿ5;Yjw?>%׫_yUv_xG{7wit#p=XL{k [ϡ M ~K'd؞ilhk1+o~\ nG aԀIhۂqAio zϠvLю:a㧠١1\c |IEJzq ԮC'amB= 'h]e5 ׈D_y^THaK.K"4ғ9 ķ@)yS0u?@i) qٹ#sO}1}×```_Cҋɗ?N'E60@fN.o^>l#_An>Z NP( 3$$ 1>FCVcA@0,ڱ_wb_|sLd CH?o˯}D,7-^9Z)`%ϴ".+*J*_u7}vTƓtY eVO\%(..B z8$ .$j8,t$[cLB#BtT?Cc뾿[@x~ =Ghz*r1"ks, =H-t(1v05w6-_(tQɏ^2OQ6٠iƪ, XM{&g$y"t)i4q< ^kZ-qu Ei8R,zr&K M?P֝io-!*JuX#PC-tX)jSt˟@*Biz(X51D qo-^z|Bzr^?_5k|ɯS[u}[j-P< $#s :auLPm' %a Z=BXomRwn#Ї%6 8Ļ;r@yӟazv+LW5*-K~Ek熾zo woP5ҳweץVxKx*nkcc~yUg]_-#Ah6] L.{xԳvd4mQ*P&hVha/+Gd Bc ꘵BoPφiKpTVw2`h}2لG6z~HR!~75uvY}j^߻)x+,ǠoɁ_ 6B;#% IENDB`(uuay)pixbufs/^Z71background.jpgVJFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"8!1AQ"a2q#BR3rbC1 ?T[C GzFh ʎ^h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T#[M*n@)Ҥ:Ivs)P'FbΦ˾D.8ԽhDT)OHKAƝL|Q=*i0 vMf[4" EbqT,,xb!x[aP;%?!-ROv'1G0Y/i5nFg#G _ @'zk2V6;_@a,kĚ/̷Qw7&Z FFPAb-j4@b;^f1Vjjl^^ ~sEGӴ0R:q:WL¬€2 X7fAjı8vbnԅ!53ж"<RT Umo6cڵ7oV`|df"džMJ9 Ub9=-r֡)`)0&55<5@]D=kpl? -rZDRPpuUM#`lsk m7ʆkV@5HΪ 1<$P"LGv(Iv,< 2+9lڊ>p@WC)"KhwUIk,1se[P; KK;d 5U7L[NA^.L)Gi2$p/ AUE(ñ:2.kvRfL6&IX80$ʑW׹E۷Qvy[iQӲ-[>3?5Q4:v&&A|ǦO5y"B0[ĝE⵷gkPa1+{ ds ip]GTy>h[Li(~Y'T q588*4H>Kmq@I3?PIi8QdyDS"*+N"`ڀ$YĒq$qYR촋kwnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPhj`chTA rA>&Icj}GC@#7sN s^bm#gt1O4Taʏ$UCV䝘nР(9:8Q.oLs!Ar#u%dVwOg7ٮ{6LY().ZN4&>*a 梪O4 +@Y?]#Hb&!'Fnx NLDOsA*\')BvQJ}(hB/;$@ؖhl@$a@@UBAk-솝"c(arFB{&rV:QHRn(2N5飻!Mh@qAD1}o` 4$R]Ndn>*_='@J;gm753ikǓiDYLfO}TSnB! Nк!bL;UwpKiPPKr@ :pf}ܓM)wA;m-#tm#(w{xp o\ޟfw'@*S6[ޙY\E(UTJ2Di46 {UF V ʼnf*:IHM1gGu5l"FB0Ŷ8&GbPJj&fh vbp5!*1\CR}G$tfi d4cftwQMsV)9d*Nc [cM2l4v 4ffH`'f)\Rn0=y4='rI'C+cjq'z'f6'>")[;i[eN "-y1bFTT3DA&h}CB(aR5kV`~$$p?4PỸfPT!Ʃ`" >hYsm4IOdIX ?zP$ (ղ@?+*ǙQ2i~4V.C\=D*# @1X;k"2mРF̬@S}SNŷ1ʠP"a@;a.޳΢M *b?ZկF%}dɬTO H*, !j'SL>#ǓAmEQZiK*O>!mL Dl(S:קҪɮvMr?yuO&uC7aAzt-xdž2-4 M%3ykV}DZIf 9KjGjqp8xJ)LAuv"~yn(#{e*P*O 4~Xk Z`+hjSB?P`8 ,fALd(AfcrcTH4, $觲O$I(fcj LIcj(b4H!݀ Ѭ[L5I6hP#fVw)SbۈYeP(|@LD\|zYQJ&PD±fڭjףhHvvqo'Qm D9a#q+*;z4Ŧp 9'B椑!w{رPI[lG"!tI<T$ߚY>h| lFT{(v4 TQ|Q ¡KHylmUw$"G4dvEL C1H2;ށY $=3Y4pVM'UDkYR#B@X㘧X"A8$rB Kиd֩1`Np˛MTDL~)oϊ%%FQ"-ó<P \(@E/zg[}ST-ɌpD* $EV$~7U ` {U-yZTꍻk :ԃD!7@`5{~(1`vֲ0ݤ}N[ͰPb"7"1 rfV $Oo~Pe5'HqTfڠXEgU27?)7fW]ۉ?mos9 hb$CYQG-3]:sRH;սXf$}YڶB[Pr$G N,T4hx>iFER*@=sb;k|*(O>(P$S aN<2UpXK&v^*=Fse{]t߭e-胯WeqM@~t{ u-ҳqmAjX&O5@W ڝyp*ʾ;hrI =C!9g(ǚ 3X:46P c h46P1:Hd{ EDnH:XE; Pn- OZxB2Ց1#>H1Hӏ(3b]0H:TɽԶ(L#ɥZùa{im-ZKPm?.ucʁRKT-[npX3 k-9\x CSnDSڣNrQ(~(`K UuQv)aseTI2)e+a{$W>৐;U ߎi+P꣰t= :{p8ULZ*k$My N_q&^MFy:N嶽Ř0PtUBuH=Ywz̈%)PzpX!\\'jt9 W\*i$ ' WOhl/K{@`d~h`@2y)K,-UB} ) c梳gdbDH)B@M>GYh -剃<^e{ZgMm-HU'Pfh P#9g; 'GH؊e]V._%DkTobvh:` cMs\`Ph99 ~ᕰ@=A[%Ǹ:*)>cE lF܍H2'4l<:+^%m9ƷLtU@QIJ) r?={. ?[p9-7Mmn:b].ۻY!wU ˃ <]zFڤ*2'B2cnRދ9b7ⅲ}H=sxs@m*-W[;1 ~p *ΉhX悳75,4$x5FPg114 1ދLS.:> Pˤvu9"t4Od|ċi,H"=1K2R{οXu2OĞ>k)!8wTPd yb`5^S[rqgg4[CkԎ2vڨ+dL FKb*=v*YXD I~@A}R΢V٠mȂb5qU@}5VcځllKx@U@-r7'g$h?5 ˘S\zxxs3UhQDe&vf1(HCl6Si@8("o[캤KxUn[Sy`椷K=5%pvhnUd hB TsZ+'.40LcwGqjȝ ,nط[>ªbuAඡ@&;P"1P@*"I<,CL~GuInkF -S)wü zfڵZv ?W0Xb}؏hIKVГ6>dOl@#Ku h?{HDH #E@*K 11As Y v,VmP fl(]*?o\[}: P;-KKA ?;eFIրImRAPǽrݫCI~5pYeK}g@ v ӕB$w!| e r1 S1v3(* #=b'KSIrNKyTnތfU"u:~( [H/RI2I317)ڏbOo`L{(i3tk J+;!Ҵq*!yـLB+cڟ#&c*& РGQ@B'Qa0=I6t&d 䊨,nط[>ªbuAඡ@&;TR*I$)}21dy~T>6:Tkx0`2|; ~nͫ]5`p>jLn &*)݈DTo 0+0#cDH6̴9P̶aT@D 9 Tx[;bN eJb`vlU2 ~Ojnbq۲31F5ŷӮ ð^ jAszFThĝh E$ { -ڴ?`q?Q 6^'{b 9T,NZqojXֹ`m< v!m+;zmw$UXȘR[{ i.9Z:nap+q#KGdx^=EИT\׮qz{Nxaڼuze6Ŷq֦ rO›*qle5\(UQu|Q޵K\r} A(83,g[;GޑWӑ8 ==:M$GP)v(@sW SG$=C1ԁ$fi_UMmVDӺgp-dDk5' A(=TqY$ַm3  U fv"qS*`Bݏ?OyZP=c&g3h LE Ŏ,s1kY N(6*< 7X sO>ɓ'A- EIv o+ DLbk7S 3LAQLWitτ! >aIڃ*=T5[ ?K([f{P)9?jֹ`m< v!m+;zmw$U)%[`5ȗ bz_{4xN] Omz hyW W]gSl[i'jj*^ w$)|Gk0Pc\P͜}QUh0']η=\@T G42; A2ɌuHKaTxqM9P܃ڭcJ )A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1ոu=O4ޡԨ{J81{'k*CNF 􂋬ξcܚA$F5UFpX7Hf׶\6vKq>)A m>P f {(^>PH>)L<9ղXAYE_VITT̘biQQ=z|,2P*P\dR[y$N⢂(Y$qvE-?޶6n\8}^womc Ѵ{y1\EtonsEZ*?UGlbR.w :W%D&1Q{z MHwwn8^Z l)$5 Z|S?4!-+V( \ĉ1Y%wi-ALU]axX-+r}6UOj RVia*JݲOrP% Yై5@팪b;H@2\" e(PHzWp"ډ1t8;,++\c5O4 t6B:4Urv(qU<- r>;QM'<_IϨ lg( $ncof6ӥ*e B^~hP:f5QqSݸ.3l QBTsFtœ f9WPyEk :'&OmtzyLXzS>N;iReUq/En~ہ@үQY-qL3q2k/\ A⹺wf׻q&893,H␲Rg,4UWP\P@B2b`KF_oimP/к#gAUSXˀ<8fŲI&gj Gڎ0YV  UP{2a汶 2y 5T[]?LL3$r; j95PPX2Z3q'PҰiR/{{@Ы@H9l* @TfX !e)ɢ2ϘXi@*d1YP0,>f_u$# F` yrN>ؤg%R~)U 2ۍNPlG n2,]V!)R.NG~ G:ɊtLkY_$*[v$h a=iF. @'02IcX$ӥ@ ?j5`ANyWǸ`a-)N⋹!f{M#x۞Oڛ ,dyB[9?4WrA#T(uuay)modelbutton/tree_store.cA/* Tree View/Tree Store * * The GtkTreeStore is used to store data in tree form, to be * used later on by a GtkTreeView to display it. This demo builds * a simple GtkTreeStore and displays it. If you're new to the * GtkTreeView widgets and associates, look into the GtkListStore * example first. * */ #include /* TreeItem structure */ typedef struct _TreeItem TreeItem; struct _TreeItem { const gchar *label; gboolean alex; gboolean havoc; gboolean tim; gboolean owen; gboolean dave; gboolean world_holiday; /* shared by the European hackers */ TreeItem *children; }; /* columns */ enum { HOLIDAY_NAME_COLUMN = 0, ALEX_COLUMN, HAVOC_COLUMN, TIM_COLUMN, OWEN_COLUMN, DAVE_COLUMN, VISIBLE_COLUMN, WORLD_COLUMN, NUM_COLUMNS }; /* tree data */ static TreeItem january[] = { {"New Years Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, {"Presidential Inauguration", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, {"Martin Luther King Jr. day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem february[] = { { "Presidents' Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Groundhog Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Valentine's Day", FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, NULL }, { NULL } }; static TreeItem march[] = { { "National Tree Planting Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "St Patrick's Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem april[] = { { "April Fools' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Army Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Earth Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Administrative Professionals' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem may[] = { { "Nurses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "National Day of Prayer", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mothers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Armed Forces Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Memorial Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem june[] = { { "June Fathers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Juneteenth (Liberation of Slaves)", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Flag Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem july[] = { { "Parents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Independence Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem august[] = { { "Air Force Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Coast Guard Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Friendship Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem september[] = { { "Grandparents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Citizenship Day or Constitution Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Labor Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem october[] = { { "National Children's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Bosses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Sweetest Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mother-in-Law's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Navy Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Columbus Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Halloween", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem november[] = { { "Marine Corps Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Veterans' Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Thanksgiving", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem december[] = { { "Pearl Harbor Remembrance Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Christmas", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Kwanzaa", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem toplevel[] = { {"January", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, january}, {"February", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, february}, {"March", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, march}, {"April", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, april}, {"May", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, may}, {"June", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, june}, {"July", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, july}, {"August", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, august}, {"September", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, september}, {"October", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, october}, {"November", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, november}, {"December", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, december}, {NULL} }; static GtkTreeModel * create_model (void) { GtkTreeStore *model; GtkTreeIter iter; TreeItem *month = toplevel; /* create tree store */ model = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the tree store */ while (month->label) { TreeItem *holiday = month->children; gtk_tree_store_append (model, &iter, NULL); gtk_tree_store_set (model, &iter, HOLIDAY_NAME_COLUMN, month->label, ALEX_COLUMN, FALSE, HAVOC_COLUMN, FALSE, TIM_COLUMN, FALSE, OWEN_COLUMN, FALSE, DAVE_COLUMN, FALSE, VISIBLE_COLUMN, FALSE, WORLD_COLUMN, FALSE, -1); /* add children */ while (holiday->label) { GtkTreeIter child_iter; gtk_tree_store_append (model, &child_iter, &iter); gtk_tree_store_set (model, &child_iter, HOLIDAY_NAME_COLUMN, holiday->label, ALEX_COLUMN, holiday->alex, HAVOC_COLUMN, holiday->havoc, TIM_COLUMN, holiday->tim, OWEN_COLUMN, holiday->owen, DAVE_COLUMN, holiday->dave, VISIBLE_COLUMN, TRUE, WORLD_COLUMN, holiday->world_holiday, -1); holiday++; } month++; } return GTK_TREE_MODEL (model); } static void item_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GtkTreeIter iter; gboolean toggle_item; gint *column; column = g_object_get_data (G_OBJECT (cell), "column"); /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, column, &toggle_item, -1); /* do something with the value */ toggle_item ^= 1; /* set new value */ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, column, toggle_item, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { gint col_offset; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for holiday names */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Holiday", renderer, "text", HOLIDAY_NAME_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* alex column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)ALEX_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Alex", renderer, "active", ALEX_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* havoc column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)HAVOC_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Havoc", renderer, "active", HAVOC_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* tim column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)TIM_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Tim", renderer, "active", TIM_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* owen column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)OWEN_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Owen", renderer, "active", OWEN_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* dave column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DAVE_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Dave", renderer, "active", DAVE_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); } GtkWidget * do_tree_store (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox; GtkWidget *sw; GtkWidget *treeview; GtkTreeModel *model; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Tree Store"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); g_object_unref (model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); add_columns (GTK_TREE_VIEW (treeview)); gtk_container_add (GTK_CONTAINER (sw), treeview); /* expand all rows after the treeview widget has been realized */ g_signal_connect (treeview, "realize", G_CALLBACK (gtk_tree_view_expand_all), NULL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } (uuay)cursors/0j. p Fw+&_gG)W:5messages.txt1|GTK+ and friends|GTKtoolkit|@breizhodrome yeah, that's for the OpenGL support that has been added recently|1416751697|0||2|1 2|Emmanuele Bassi|ebassi|RT @ebassi: embloggeration happened: http://t.co/9ukkNuSzuc — help out supporting GL on windows and macos in GTK+ 3.16.|1416086824|0|GTKtoolkit|0|9 3|Matthew Waters|ystreet00|RT @ystreet00: .@GTKtoolkit + @gstreamer integration using the new #gtk #opengl support https://t.co/IeBpFjbjes http://t.co/WptPHCfFIb|1416086780|0|GTKtoolkit|0|13 4|Emmanuele Bassi|ebassi|RT @ebassi: embloggeration happened — OpenGL integration lands in GTK+ — http://t.co/sUGwcvZhRg|1413214719|0|GTKtoolkit|0|8 5|Allan Day|allanday|RT @allanday: New Human Interface Guidelines coming for @gnome and @GTKtoolkit . http://t.co/SMNndyo6rl|1408615736|0|GTKtoolkit|0|12 6|Christian Hergert|hergertme|RT @hergertme: being able to set opacity on an individual widget in gtk ... you've come a long way since 2.x days.|1408601183|0|GTKtoolkit|0|2 7|Richard Brown|sysrich|RT @sysrich: hmm, good thing Iike eating with chopsticks #GUADEC http://t.co/7aG9CYpdZg|1406543731|0|GTKtoolkit|0|82 8|Javier Jardón|jjardon|RT @jjardon: #GNOME 3.13.4 has just been released from Strasbourg, this year #GUADEC city. Enjoy! https://t.co/hgHDVOWvRC|1406303072|0|GTKtoolkit|0|6 9|GNOME|gnome|RT @gnome: This year's @guadec schedule has been published. Lots of great talks on there, as usual. https://t.co/rpGPxIRCuB|1405929795|0|GTKtoolkit|0|20 10|GTK+ and friends|GTKtoolkit|New features of GtkInspector : http://t.co/EOgcv1lh8D #gtk #gtk3|1402076874|0||2|3 11|The Valeyard|breizhodrome|RT @breizhodrome: @GTKtoolkit and his multipoint gesture, good thing for mobile applications :) #Gtk|1402076810|0|GTKtoolkit|0|1 12|GTK+ and friends|GTKtoolkit|@Gin_Cheng sorry about that, should be fixed now|1402076785|0||0|0 13|GTK+ and friends|GTKtoolkit|@teadriven sorry about that, should be fixed now|1402076751|0||0|0 14|Javier Jardón|jjardon|RT @jjardon: #GNOME 3.13.2 (developer version) released! Try it, brake it, file bugs! https://t.co/cyCLBCtqKo|1401318926|0|GTKtoolkit|0|2 15|GTK+ and friends|GTKtoolkit|Gtkparasite has been integrated in #GTK+: Introducing gtkinspector: http://t.co/dP3DzgPNM3 #gtk3|1400231807|0||8|11 16|GTK+ and friends|GTKtoolkit|GTK+ 3.12 released! Improvements in Wayland, Broadway, OSX ... New widgets: GtkFlowBox,GtkActionBar and GtkPopover: https://t.co/5hBIlfrxc3|1395842503|0||5|8 17|Javier Jardón|jjardon|RT @jjardon: Second beta of #GNOME 3.12 just released! https://t.co/8oTfZaatVr|1394147916|0|GTKtoolkit|0|3 18|Javier Jardón|jjardon|RT @jjardon: First beta of GNOME 3.12 (3.11.90) has just been released. Enjoy! https://t.co/d5wzYWXUnv #gnome|1393006697|0|GTKtoolkit|0|4 19|GTK+ and friends|GTKtoolkit|Some thoughts on portability by @desrt : http://t.co/zyFT6i4we3 #glib|1392903834|0||1|0 20|GTK+ and friends|GTKtoolkit|Popovers support merged in master: http://t.co/5JE0RLhEDo Thanks @garnacho for getting this done! #gtk3|1390500627|0||5|7 21|GTK+ and friends|GTKtoolkit|The continuous build environment now generates 64-bit #GTK+ Windows bundles! Read the announcement from @tarnyko : https://t.co/wXVOAzCYTt|1386169565|0||6|10 22|GTK+ and friends|GTKtoolkit|GTK+ 3 packages for Windows available! Thanks for the hard work of @tarnyko to make this possible!\nhttp://t.co/U9JgsGoBLm|1382633636|0||7|23 23|GTK+ and friends|GTKtoolkit|Status of support of high resolution displays in #GTK+ (and #GNOME ) http://t.co/SPQN2E6Qxo Thanks to Brion Vibber for the donation!|1372531560|0||2|3 24|Javier Jardón|jjardon|RT @jjardon: Firefox GTK+3 port ready for testing https://t.co/onpxJaTKO5 #gtk #gtk3|1371557291|0|GTKtoolkit|0|22 25|GTK+ and friends|GTKtoolkit|GTK+ 3.8.0 (STABLE) released: wayland, Multi-application Broadway, improved CSS support and more ... http://t.co/RlLmrNPyYs #gtk #gtk3|1364435230|0||0|5 26|Daniel Svensson|dsvensson|RT @dsvensson: Bringing an application up to the new features in GTK 3.x = tons of negative diffs, awesome work by @GTKtoolkit devs <3|1352906611|0|GTKtoolkit|0|3 27|GTK+ and friends|GTKtoolkit|GLib status update and a warning: http://t.co/quQP8dLf #glib|1352905826|0||1|1 28|GTK+ and friends|GTKtoolkit|GProperty status: http://t.co/Nk28V2Rh #glib|1352905797|0||1|1 29|GTK+ and friends|GTKtoolkit|GTK+ 3.6.2 (STABLE) available: http://t.co/ah87o7cC #gtk #gtk3|1352905768|0||1|2 30|GTK+ and friends|GTKtoolkit|GLib 2.34.2 (STABLE) available: http://t.co/yavkTJwr #glib|1352905722|0||2|1 31|GTK+ and friends|GTKtoolkit|GTK+ 3.6.0 (STABLE) released: http://t.co/3NDAT5K9 #gtk #gtk3|1350075620|0||0|4 32|GTK+ and friends|GTKtoolkit|GLib 2.34.0 (STABLE) released: http://t.co/eWRD7hNy #glib|1350075583|0||0|6 33|GTK+ and friends|GTKtoolkit|GLib 2.33.10 (UNSTABLE) released: http://t.co/3BCdOPDy #glib|1347299317|0||2|2 34|Javier Jardón|jjardon|RT @jjardon: GnomeGoals status update: https://t.co/q5j7mJ1c #gnome|1342143404|0|GTKtoolkit|0|1 35|Emmanuele Bassi|ebassi|RT @ebassi: Saturday, 28/07, 11:45 - I'll be talking about Rainbows and Unicorns @ GUADEC https://t.co/WOiF6QU6|1341984820|0|GTKtoolkit|0|2 36|Harvey|cd0|RT @cd0: According to the sourcecode zipball the browser in the samsung smart tvs (UNxxES8xxx) is webkit-gtk 20120109. Not bad. @GTKtoolkit|1341712733|0|GTKtoolkit|0|3 37|Claudio Saavedra|csaavedra|RT @csaavedra: Accelerated compositing in WebKitGTK+: http://t.co/yxl0BooF #webkit #gnome|1341712291|0|GTKtoolkit|0|2 38|GTK+ and friends|GTKtoolkit|GTK+ 3.5.6 (UNSTABLE) released, now featuring GtkSearchEntry and GtkMenuButton http://t.co/adHtm2OA #gtk #gtk3|1341689740|0||0|3 39|GTK+ and friends|GTKtoolkit|GTK+ 3.4.0 (STABLE) released: http://t.co/KPSfJQSg #gtk #gtk3|1332870781|0||0|17 40|Javier Jardón|jjardon|RT @jjardon: GTK+ 2.24.9 (STABLE) released: https://t.co/OgcL5jnR #gtk|1327437929|0|GTKtoolkit|0|2 41|GTK+ and friends|GTKtoolkit|Multitouch is near… by @garnacho http://t.co/68iK8m9S #gtk #gtk3|1327090575|0||1|7 42|GTK+ and friends|GTKtoolkit|@dylanmccall Follow this bug: https://t.co/9vCpBVSm|1326802580|0||0|0 43|GTK+ and friends|GTKtoolkit|@cd0 Nice. Please, report any issue next time ;)|1326802460|0||0|0 44|GTK+ and friends|GTKtoolkit|RFC: new features http://t.co/uiqYWx4O #gtk #gtk3|1326802266|0||1|2 45|GTK+ and friends|GTKtoolkit|@cd0 Did you file a bug?|1326776652|0||0|0 46|GTK+ and friends|GTKtoolkit|@dylanmccall You mean this? http://t.co/BXbocqE9|1326776459|0||0|0 47|GTK+ and friends|GTKtoolkit|@trufae https://t.co/xlq75hDL|1326776153|0||0|0 48|GTK+ and friends|GTKtoolkit|RFC: UI design: http://t.co/Lu8Gnnfg #gtk #gtk3|1326305191|0||2|2 49|GTK+ and friends|GTKtoolkit|#win32 users: GTK+ 2.24.8 bundles available here: http://t.co/WhuY2XoN It not needed to use 2.16 anymore #gtk|1323190462|0||1|4 50|GTK+ and friends|GTKtoolkit|RFC: Model-View-Controller http://t.co/Lmw4lW9V #gtk #gtk3|1321546108|0||1|1 51|GTK+ and friends|GTKtoolkit|RFC:boxes http://t.co/eZABFgTp #gtk #gtk3|1321546061|0||2|1 52|GTK+ and friends|GTKtoolkit|GTK+ 2.24.8 (stable) released: update of the win32 backend, it now works at least as well as the old 2.16.x http://t.co/6wrhs7hm #gtk|1321297367|0||0|2 53|GTK+ and friends|GTKtoolkit|GTK + #Clutter next step(s): http://t.co/UDIezbyW #gtk #gtk4|1318265984|0||3|4 54|GTK+ and friends|GTKtoolkit|Tutorial for #Python, #GStreamer and #GTK 3: http://t.co/hvfRx18E #gtk3|1317781925|0||5|0 55|GTK+ and friends|GTKtoolkit|@jonobacon nice, but pyGTK is deprecated, use pygobject instead|1317353873|0||1|0 56|GTK+ and friends|GTKtoolkit|GTK+ 3.2 (STABLE) released: http://t.co/EqHjTmol #gtk #gtk3|1317043650|0||0|11 57|GTK+ and friends|GTKtoolkit|New D-Bus features in GLib 2.30: http://t.co/rzHui2Q2 #gtk #glib|1316732697|0||3|4 58|Lanedo GmbH|LanedoTweets|RT @TimJanik: New #GTK+ building instructions for #Mac OS X now up in the #GNOME wiki: http://t.co/lLt2fb1B|1316646621|0|GTKtoolkit|0|3 59|GTK+ and friends|GTKtoolkit|GTK+ 3.1.90 (UNSTABLE) released: http://t.co/KRz34jp #gtk #gtk3|1315961535|0||0|3 60|Lanedo GmbH|LanedoTweets|RT @TimJanik: There's a Win32 security advisory for Gtk+, it's recommended to upgrade to latest Gtk+ (2.24.6) if you haven't yet: http:/ ...|1315914861|0|GTKtoolkit|0|5 61|GTK+ and friends|GTKtoolkit|GTK+ 4.0 and #Clutter 2.0: rainbows and unicorns: http://t.co/SKbl0vQ #gtk #gtk4|1314883483|0||2|14 62|GTK+ and friends|GTKtoolkit|Some #Glib plans for the next cycle: http://t.co/a6YybK0 #gtk|1314883427|0||0|3 63|Nat Friedman|natfriedman|RT @natfriedman: Any Gtk+ experts who want to make some consulting money fixing bugs in Gtk/Mac, email me: nat@xamarin.com.|1314355269|0|GTKtoolkit|0|28 64|Kristian Rietveld|krietvel|RT @krietvel: Blog post: 'Merged “treemodel-fix” branch into GTK+: call for testing, blog post series' http://t.co/yAUnneo #gtk|1314096198|0|GTKtoolkit|0|2 65|GTK+ and friends|GTKtoolkit|@ArcherSeven Help improving the patch here: http://t.co/r74hP79|1313493595|0||0|0 66|GTK+ and friends|GTKtoolkit|GTK+ 3.1.12 (UNSTABLE) released: http://t.co/3iPAlNq Try the new Font Dialog! #gtk #gtk3|1313493256|0||0|4 67|GTK+ and friends|GTKtoolkit|@cimi @DanielFore Patches always welcomed!|1313493010|0||0|0 68|GTK+ and friends|GTKtoolkit|a11y branch was merged into master: http://mail.gnome.org/archives/gtk-devel-list/2011-July/msg00004.html #gtk #gtk3|1309962425|0||0|2 69|GTK+ and friends|GTKtoolkit|Another update in the effort to improve #a11y in #gtk: http://mail.gnome.org/archives/gtk-devel-list/2011-June/msg00057.html #gtk3|1309606597|0||0|0 70|GTK+ and friends|GTKtoolkit|@cd0 What is wrong in that page? freetype already appears as a required dependency. Anyway patches always welcomed ;)|1307359139|0||0|0 71|GTK+ and friends|GTKtoolkit|Of course, everyone is welcomed to improve the #gtk website. git repo: http://ur1.ca/4bwbw bugzilla: http://ur1.ca/4bwc1|1307038767|0||0|1 72|GTK+ and friends|GTKtoolkit|Check out the new #gtk website!!: www.gtk.org|1307036644|0||0|4 73|GTK+ and friends|GTKtoolkit|@jikri Take a look to http://live.gnome.org/action/login/GTK+/Roadmap and http://developer.gnome.org/gtk3/stable/gtk-migrating-2-to-3.html|1306673774|0||0|0 74|GTK+ and friends|GTKtoolkit|Introducing Cossa, a GTK+ theme previewer for gedit, by @garnacho http://ur1.ca/4ate8 #gtk #gtk3|1306672611|0||1|5 75|GTK+ and friends|GTKtoolkit|#GProperty, new API for Property and Accessor declaration, by @ebassi : http://ur1.ca/47lgk #gtk #glib|1305717028|0||0|2 76|GTK+ and friends|GTKtoolkit|GLib 2.29.4 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-May/msg00012.html #gtk #glib|1304593138|0||0|2 77|GTK+ and friends|GTKtoolkit|RT @acruiz: Gtk+ FontSelection progress http://bit.ly/iikP2f #gtk #gtk3|1303089979|0||0|1 78|GTK+ and friends|GTKtoolkit|RT @krietvel: New blog post: CoreText backend now in Pango master http://bit.ly/dTE0a1 #gtk #pango #osx|1303089938|0||0|0 79|GTK+ and friends|GTKtoolkit|GTK+ 3.0.9 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00087.html #gtk #gtk3|1302883958|0||0|0 80|GTK+ and friends|GTKtoolkit|GLib 2.28.6 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00074.html #gtk #glib|1302780112|0||0|3 81|GTK+ and friends|GTKtoolkit|GTK+ 3.1.2 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00072.html #gtk #gtk3|1302737279|0||0|2 82|GTK+ and friends|GTKtoolkit|GLib 2.29.2 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00071.html #gtk #glib|1302702936|0||0|3 83|Kristian Høgsberg|hoegsberg|RT @hoegsberg: yay, merged the Wayland GTK+ backend to the master branch - no, it's still not compete.|1302621000|0|GTKtoolkit|0|9 84|GTK+ and friends|GTKtoolkit|Someone willing to help with the client side decorations branch? http://git.gnome.org/browse/gtk+/log/?h=client-side-decorations #gtk #gtk3|1302620918|0||1|1 85|GTK+ and friends|GTKtoolkit|#Wayland GTK+ backend merged in master: http://git.gnome.org/browse/gtk+/commit/?id=c7514e8f0d19a833257497caff413bb4dfae6eb4 #gtk #gtk3|1302620838|0||1|9 86|GTK+ and friends|GTKtoolkit|gtkmm 3.0.0 (STABLE) released: http://mail.gnome.org/archives/gtkmm-list/2011-April/msg00025.html #gtk #cpp|1302355894|0||0|3 87|GTK+ and friends|GTKtoolkit|RT @alex_igalia: WebKit2 MiniBrowser for the GTK+ port running! http://ur1.ca/3t3ov #gtk #webkit|1302261488|0||1|0 88|GTK+ and friends|GTKtoolkit|#GNOME3 is out, using all the power of #gtk3 , congrats everyone! #gtk #gnome|1302219444|0||0|2 89|GTK+ and friends|GTKtoolkit|HTML5 backend update, now with real toplevel windows!! http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/ #gtk #gtk3|1302218981|0||2|10 90|GTK+ and friends|GTKtoolkit|Glade 3.10 (STABLE) released: With support for GTK+3, pygobject and all the new stuff: http://ur1.ca/3s8wk #rad #gtk|1302032523|0||0|6 91|GTK+ and friends|GTKtoolkit|GTK+ 3.0.8 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00009.html #gtk #gtk3|1301878240|0||0|4 92|GTK+ and friends|GTKtoolkit|GTK+ latest performance improvements (with video): http://blogs.gnome.org/otte/2011/03/30/the-book-was-better/ #gtk #gtk3|1301594293|0||1|6 93|GTK+ and friends|GTKtoolkit|Benjamin Otte is improving GTK+ performance with some impressive results, check latest commits #gtk #gtk3|1301409776|0||1|2 94|Javier Jardón|jjardon|RT @jjardon: Also nice to see that a firefox GTK+3 port was started: https://bugzilla.mozilla.org/show_bug.cgi?id=627699 #gtk #gtk3 #fi ...|1301166992|0|GTKtoolkit|0|8 95|GTK+ and friends|GTKtoolkit|RT @krietvel: Oh yea, I still have to upstream the CoreText backend I wrote for Pango. Completely forgot about that. #gtk|1301149034|0||0|0 96|GTK+ and friends|GTKtoolkit|GTK+ 3.0.5 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00099.html #gtk #gtk3|1300925808|0||0|1 97|GTK+ and friends|GTKtoolkit|Nice article of @cgwalters about analyzing memory use in #glib with #SystemTap: http://ur1.ca/3m0ak #gtk|1300672197|0||2|1 98|GTK+ and friends|GTKtoolkit|GLib 2.28.3 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00065.html #gtk #glib|1300374677|0||0|2 99|GTK+ and friends|GTKtoolkit|GTK+ HTML backend merged: http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/ #gtk #gtk3|1300334447|0||3|4 100|GTK+ and friends|GTKtoolkit|GTK+ 3.0.3 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00059.html #gtk #gtk3|1300151113|0||0|5 101|GTK+ and friends|GTKtoolkit|PyGObject (new gobject introspection-based bindings) 2.28.0 (STABLE) released: http://ur1.ca/3fcsp #python #gtk|1299620983|0||0|1 102|GTK+ and friends|GTKtoolkit|GTK+ team meeting now in #gtk-devel on irc.gimp.net #gtk|1299615099|0||0|1 103|GTK+ and friends|GTKtoolkit|REMINDER: GTK+ Team IRC Meeting - 2011-03-08 at 20:00 UTC: http://ur1.ca/3ezpn Agenda: http://ur1.ca/3ezpp #gtk|1299517986|0||0|0 104|GTK+ and friends|GTKtoolkit|GTK+ 3.0.2 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00010.html #gtk|1299517909|0||1|3 105|GTK+ and friends|GTKtoolkit|PyGObject, the new Python introspection based bindings almost ready for the 2.28 stable release: http://ur1.ca/3dfaj #python #gtk|1299081554|0||0|5 106|GTK+ and friends|GTKtoolkit|GTK+ 3.0.1 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00088.html #gtk|1298379744|0||0|4 107|GTK+ and friends|GTKtoolkit|More features/ideas for gtk+ 3.2: pictures: https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00038.html #gtk|1297815657|0||1|2 108|GTK+ and friends|GTKtoolkit|New features/ideas for gtk+ 3.2: Translucent TextViews : http://blogs.gnome.org/tvb/2011/02/14/translucent-textviews/ #gtk|1297707521|0||1|2 109|GTK+ and friends|GTKtoolkit|Blog post of our tireless maintainer, Matthias Clasen: http://blogs.fedoraproject.org/wp/mclasen/2011/02/10/gtk-3-is-here/ #gtk #gtk3|1297378021|0||0|5 110|GTK+ and friends|GTKtoolkit|Highlights: Cairo-based, XI2, new theming API, Flexible geometry management, Multiple backend support for GDK, easy application support ...|1297373117|0||0|3 111|GTK+ and friends|GTKtoolkit|GTK+ 3.0 released!! : http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00020.html gtk!|1297372977|0||1|20 112|GTK+ and friends|GTKtoolkit|GLib 2.28.0 (stable) released: https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00014.html #gtk #glib|1297196093|0||0|2 113|GTK+ and friends|GTKtoolkit|GTK+ 2.99.3 released: latest beta before GTK+3 http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00004.html #gtk|1296609072|0||1|1 114|GTK+ and friends|GTKtoolkit|Glade 3.9.2 released: off screen, workspace new look, GtkComboBoxText, GtkFileFilter, GtkApplication and more! http://ur1.ca/335is #gtk #rad|1296608221|0||1|0 115|GTK+ and friends|GTKtoolkit|GTK+ 2.24 ( STABLE ) released: This will be the latest 2.x release. http://ur1.ca/32cft #gtk|1296438857|0||2|0 116|GTK+ and friends|GTKtoolkit|More progress on #Glade, the GTK+ #interface #designer: http://ur1.ca/2uzpa Note that Glade 3.8 -> #gtk2 and Glade 3.10-> #gtk3 #gtk|1295186227|0||0|2 117|GTK+ and friends|GTKtoolkit|RT @prcutler RT @fcrozat: First shot at GNOME3 evaluation usb stick : http://bit.ly/i1wM8X #gnome #gnome3 #gnome-shell #opensuse #gnome|1295186033|0||1|0 118|GTK+ and friends|GTKtoolkit|If you want to try the #wayland backend, checkout this branch: http://git.gnome.org/browse/gtk+/log/?h=gdk-backend-wayland #gtk|1294739562|0||1|5 119|GTK+ and friends|GTKtoolkit|GTK+ 2.99.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00005.html #gtk|1294738413|0||0|0 120|GTK+ and friends|GTKtoolkit|GTK+ 2.99: It is now possible to include multiple GDK backends in a single library. Use --enable-{x11,win32,quartz}-backend #gtk|1294344201|0||0|0 121|GTK+ and friends|GTKtoolkit|GTK+ 2.99: The removal of GSEALEd struct members has been completed in this release #gtk|1294344070|0||0|1 122|GTK+ and friends|GTKtoolkit|GTK+ 2.99.0 (unstable) released http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00001.html #gtk|1294344044|0||0|2 123|GTK+ and friends|GTKtoolkit|GLib 2.27.90 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00000.html #glib|1294343933|0||0|0 124|GTK+ and friends|GTKtoolkit|Glade 3.9.0 (unstalbe) released: snapshot leading up to Glade 3.10 that will depend on GTK+3 http://ur1.ca/2rir0 #gtk #rad|1294343894|0||0|1 125|GTK+ and friends|GTKtoolkit|Glade 3.7.3 (unstable) released: snapshot leading up to Glade 3.8 that\nwill depend on GTK+ 2.24 http://ur1.ca/2riqg #gtk|1294343835|0||0|0 126|GTK+ and friends|GTKtoolkit|RT @hoegsberg: Multi-backend support in GTK+: http://bit.ly/gDwugJ - switch between #Wayland and X11 by setting GDK_BACKEND #gtk|1294201849|0||0|0 127|GTK+ and friends|GTKtoolkit|RT @krietvel Blog post \"GDK 3.0 on Mac OS X\" http://bit.ly/ihr9kH or how GDK became awesome in GTK+ 3.0. #gtk #osx|1293728637|0||0|1 128|GTK+ and friends|GTKtoolkit|RT @krietvel Blog post \"Refactoring GtkTreeView using GtkCellArea\" http://bit.ly/g9aArE #gtk|1293728607|0||0|0 129|GTK+ and friends|GTKtoolkit|Also, the treeview-refactor branch has been merged too|1293036166|0||1|0 130|GTK+ and friends|GTKtoolkit|New in GTK+ 2.91.7: gdk-backend branch have been merged: the goal is allowing to build a single gdk library that contains multiple backends|1293036118|0||0|0 131|GTK+ and friends|GTKtoolkit|GTK+ 2.91.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00155.html #gtk|1293035980|0||1|2 132|GTK+ and friends|GTKtoolkit|GTK+ 2.23.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00156.html #gtk|1293035865|0||0|2 133|GTK+ and friends|GTKtoolkit|GLib 2.27.5 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00152.html #gtk #glib|1293035786|0||0|0 134|GTK+ and friends|GTKtoolkit|Glade 3.7.2 (unstable) released: http://lists.ximian.com/pipermail/glade-devel/2010-December/001853.html #gtk #RAD|1292589571|0||0|0 135|Andrea Cimitan|cimi|RT @cimi: reading migration docs, later Murrine will start to be ported over GtkStyleContext (so CSS fun :))|1291813590|0|GTKtoolkit|0|1 136|GTK+ and friends|GTKtoolkit|Work to building multiple backends on the same system started: http://ur1.ca/2ieid #gtk|1291614285|0||0|2 137|GTK+ and friends|GTKtoolkit|RT @garnacho : gtk-style-context landed in GTK+ master, if gnome3 looks temporarily uglier that was me :) #gtk #gnome|1291613819|0||0|0 138|Stormy|storming|RT @storming: Anyone know of any call centers that use GNOME? Potential funding for a11y work if we do ...|1291387291|0|GTKtoolkit|0|4 139|GTK+ and friends|GTKtoolkit|Final part of the Benjamin Otte GTK3 rendering\ncleanup has landed: http://ur1.ca/2hrc9 #gtk|1291375493|0||0|0 140|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.5 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-December/msg00000.html #gtk #bindings #cplusplus|1291212942|0||0|0 141|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm 2.27.4 (unstable) released: http://ur1.ca/2h77z #glib #bindings #cplusplus|1291212883|0||0|0 142|GTK+ and friends|GTKtoolkit|GtkAppChooser landed in master: https://bugzilla.gnome.org/show_bug.cgi?id=582557#c10 #gtk|1291212784|0||0|0 143|GTK+ and friends|GTKtoolkit|larger changes in GTK+ soon: GtkStyleContext, rendering-cleanup, app-chooser branch, GtkRadioGroup branch, http://ur1.ca/2gs5u #gtk|1291211812|0||2|0 144|GTK+ and friends|GTKtoolkit|New widget: GtkSwitch http://blogs.fedoraproject.org/wp/mclasen/2010/11/29/onoff/ thanks to @ebassi and Matthias Clasen for the review #gtk|1291211711|0||2|1 145|GTK+ and friends|GTKtoolkit|GTK+ html backend (broadway branch) landed: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00103.html #gtk|1291211452|0||0|1 146|GTK+ and friends|GTKtoolkit|GTK+ 2.91.5 (unstalbe) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00109.html #gtk|1291211337|0||0|1 147|GTK+ and friends|GTKtoolkit|GLib 2.27.4 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00108.html #gtk #glib|1291211331|0||0|0 148|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.4 released: http://mail.gnome.org/archives/gtkmm-list/2010-November/msg00095.html #gtk #cplusplus #bindings|1290451737|0||0|0 149|GTK+ and friends|GTKtoolkit|Introducing GtkCellArea: height-for-width geometry management for GtkTreeViews http://ur1.ca/2e5pe #gtk|1290310899|0||1|2 150|Javier Jardón|jjardon|RT @jjardon: gtk+3 packages landed in #Debian experimental: http://packages.debian.org/experimental/libgtk3.0-0 #gtk|1290036413|0|GTKtoolkit|0|2 151|GTK+ and friends|GTKtoolkit|WIP Porting guide to migrate from GTK+2 to GTK+3: http://ur1.ca/1xbzs #gtk #xfce #lxde #gnome|1290036396|0||4|6 152|GTK+ and friends|GTKtoolkit|#GSettings is fast (really): http://blogs.gnome.org/desrt/2010/11/15/gsettings-is-fast/ #gtk #glib|1289853926|0||1|2 153|GTK+ and friends|GTKtoolkit|Help making Glade ready for GTK+ 3: http://blogs.gnome.org/johannes/2010/11/15/help-making-glade-ready-for-3-0/ #gtk|1289853600|0||1|0 154|GTK+ and friends|GTKtoolkit|Anyone up to fix it? RT @vwduder: I wish #gtk wouldn't actually show the window until all of the contents have been rendered to the drawable|1289434823|0||0|0 155|GTK+ and friends|GTKtoolkit|PyGObject 2.27.0 (unstable) released: http://mail.gnome.org/archives/python-hackers-list/2010-November/msg00013.html #python #bindings #gtk|1289431671|0||0|0 156|GTK+ and friends|GTKtoolkit|glibmm 2.27.3 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-November/msg00058.html #glib #cplusplus #bindings|1289387769|0||0|0 157|GTK+ and friends|GTKtoolkit|GLib 2.27.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00043.html #gtk #glib|1289322725|0||0|1 158|GTK+ and friends|GTKtoolkit|GTK+ 2.91.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00010.html #gtk|1288758787|0||0|1 159|GTK+ and friends|GTKtoolkit|GLib 2.27.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00002.html #gtk #glib|1288758720|0||0|0 160|GTK+ and friends|GTKtoolkit|Gtk 3.0 motto: \"We are fixing it!\"|1288630204|0||1|4 161|GTK+ and friends|GTKtoolkit|Recent Openismus contributions to @GtkToolkit http://bit.ly/amuAdX Thank you guys!|1288343314|0||0|0 162|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.2 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00058.html #gtk #cplusplus|1288098381|0||0|0 163|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm (unstable) 2.27.1 released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00059.html #gtk #cplusplus|1288098335|0||0|0 164|GTK+ and friends|GTKtoolkit|GTK+ 2.91.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00230.html #gtk|1288058960|0||0|0 165|GTK+ and friends|GTKtoolkit|GLib 2.27.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00222.html #gtk #glib|1288049934|0||0|1 166|GTK+ and friends|GTKtoolkit|@garnacho shows off 3.0 CSS awesomness as a result of his work at #gtkhackfest http://bit.ly/aV99F|1288015424|0||0|0 167|GTK+ and friends|GTKtoolkit|GtkGrid landed:new container similar to GtkTable without unnecessary restrictions.It does height-for-width geometry management. #gtkhackfest|1287759681|0||0|1 168|GTK+ and friends|GTKtoolkit|RT @bertogg: The GTK+ artillery: http://flic.kr/p/8M16nu http://flic.kr/p/8M16d7 #gtkhackfest #gtk|1287744902|0||0|0 169|GTK+ and friends|GTKtoolkit|GtkScrollable interface landed in master: http://git.gnome.org/browse/gtk+/commit/?id=55196a705f00564a44647bfc97981db0a783369a #gtk|1287744793|0||0|0 170|Kristian Rietveld|krietvel|RT @krietvel: Blogged on \"Optimizing legacy code\". Or \"Color space conversion is more expensive than you might think\". http://bit.ly/duA ...|1287711819|0|GTKtoolkit|0|1 171|GTK+ and friends|GTKtoolkit|Rounded corners in GtkEntry (thanks Boram Park!) http://ur1.ca/257f0 #gtk #gtkhackfest|1287711709|0||0|6 172|Berto Garcia|bertogg|RT @bertogg: Ryan and Benjamin discussing GtkStyle at the Hercules Tower #gtkhackfest http://twitgoo.com/1pw774|1287708209|0|GTKtoolkit|0|1 173|GTK+ and friends|GTKtoolkit|RT @bertogg Working late at night #gtkhackfest http://twitgoo.com/1pvw46 #gtk|1287602614|0||0|0 174|GTK+ and friends|GTKtoolkit|WIP docs of the new theme API : http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00134.html #gtkhackfest #gtk|1287564745|0||0|0 175|GTK+ and friends|GTKtoolkit|GtkApplication landed in master: http://ur1.ca/24fhe Feedback welcome #gtk #gtkhackfest|1287564609|0||0|0 176|Emmanuele Bassi|ebassi|RT @ebassi: lots of discussions at the #gtkhackfest - it's great to see the roadmap for 4.0 take shape|1287564383|0|GTKtoolkit|0|2 177|Berto Garcia|bertogg|RT @bertogg: Update from the GTK+ Hackfest 2010: http://blogs.igalia.com/berto/2010/10/19/gtk-hackfest-2010/ #gtkhackfest|1287564380|0|GTKtoolkit|0|3 178|Berto Garcia|bertogg|RT @bertogg: Photos from the #gtkhackfest in Coruña: http://www.flickr.com/photos/tags/gtkhackfest2010/ #igalia #gnome|1287564365|0|GTKtoolkit|0|2 179|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.1 released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00033.html #gtk #cplusplus|1287478956|0||1|0 180|GTK+ and friends|GTKtoolkit|The #gtkhackfest started today. Thanks a lot to the event sponsors: #igalia, #lanedo, #codethink and the #GNOME foundation.|1287447826|0||0|2 181|GTK+ and friends|GTKtoolkit|#gtkhackfest started today at the #igalia offices in A Coruña http://live.gnome.org/Hackfests/GTK2010 #gnome #gtk|1287422775|0||0|0 182|GTK+ and friends|GTKtoolkit|libnotify, gtk API changes in 2.91.1: http://mail.gnome.org/archives/desktop-devel-list/2010-October/msg00193.html #gtk #gnome #xfce #lxde|1287324866|0||0|0 183|GTK+ and friends|GTKtoolkit|GTK+ 2.91.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00127.html #gtk|1287324761|0||0|1 184|GTK+ and friends|GTKtoolkit|GTK+ 2.23.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00128.html #gtk|1287324697|0||0|1 185|GTK+ and friends|GTKtoolkit|RT @bratschegnome: Backported gtk window resize grips to 2.x and posted to ppa:bratsche/gtk for any #ubuntu people who want to use/test it.|1287156390|0||0|1 186|GTK+ and friends|GTKtoolkit|Resize grip in all the GtkWindows now: http://blogs.fedoraproject.org/wp/mclasen/2010/10/09/getting-a-grip/ thanks to @bratschegnome #gtk|1286600672|0||0|1 187|GTK+ and friends|GTKtoolkit|@judsontwit You have some tips for porting here: http://live.gnome.org/PyGObject/IntrospectionPorting No many changes needed #python|1286298188|0||0|0 188|GTK+ and friends|GTKtoolkit|@UstunOzgur take a look here: http://live.gnome.org/PyGTK and here: http://live.gnome.org/PyGObject|1286297979|0||0|0 189|Kristian Rietveld|krietvel|RT @krietvel: Just pushed the last patch that finishes the transition of the OS X backend to the new rendering goodness. #gtk|1286297494|0|GTKtoolkit|0|1 190|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.0 (#C++ bindings) released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00000.html #gtk|1286128646|0||0|1 191|GTK+ and friends|GTKtoolkit|GTK+ 2.91.0 (unstable) released: http://ur1.ca/1xbzr The rendering cleanup work has landed. Porting guide here: http://ur1.ca/1xbzs #gtk|1286073059|0||0|0 192|GTK+ and friends|GTKtoolkit|Anyone up to the challenge of writing a WebP gdkpixbuf loader?|1285950573|0||0|3 193|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: Clutter 1.4.0 - new stable release! grab it while it's hot, on www.clutter-project.org|1285731448|0|GTKtoolkit|0|10 194|GTK+ and friends|GTKtoolkit|We strongly recommend not using PyGTK for new projects and to port existing applications from #PyGTK to #PyGObject #python #gtk|1285721997|0||5|39 195|GTK+ and friends|GTKtoolkit|ANNOUNCE: PyGObject 2.26.0 released:http://mail.gnome.org/archives/python-hackers-list/2010-September/msg00019.html #gtk #python #bindings|1285721968|0||0|0 196|GTK+ and friends|GTKtoolkit|ANNOUNCE: GLib 2.26.0 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00284.html #glib #gtk|1285721379|0||0|0 197|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.22.0 (STABLE) released: http://mail.gnome.org/archives/gtkmm-list/2010-September/msg00095.html #gtk #c++ #bindings|1285721312|0||0|0 198|GTK+ and friends|GTKtoolkit|PyGTK 2.22.0 released: http://ur1.ca/1sc2n Note that new and existing PyGtk applications are recommended to use PyGObject|1285596826|0||0|0 199|GTK+ and friends|GTKtoolkit|GTK+ 2.22.0 ( STABLE ) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00263.html #gtk|1285286958|0||2|5 200|GTK+ and friends|GTKtoolkit|Last call for the people interested in attending the #GTK+ hackfest in A Coruña: Please sign up at latest tomorrow! http://ur1.ca/1r2gt|1285255897|0||0|2 201|GTK+ and friends|GTKtoolkit|#GLib status update: GLib 2.25.17 and 2.27.0 released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00232.html #gtk|1285245997|0||0|0 202|GTK+ and friends|GTKtoolkit|Thoughts about #GtkTreeView refactoring: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00260.html #gtk|1285245546|0||0|1 203|GTK+ and friends|GTKtoolkit|GTK+ 2.21.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00204.html #gtk|1284485086|0||0|0 204|GTK+ and friends|GTKtoolkit|New GObject API added: g_object_class_install_properties(), an efficient way to install properties: http://ur1.ca/1mh3s #gobject #glib #gtk|1284484816|0||0|0 205|GTK+ and friends|GTKtoolkit|legacy-free grid container proposed by @havocp: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00089.html #gtk|1283965732|0||0|1 206|GTK+ and friends|GTKtoolkit|Minutes of the #GTK team meeting - 2010-09-07: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00115.html|1283965715|0||0|0 207|GTK+ and friends|GTKtoolkit|New work to get #DirectFB backend in a good state, thanks Lionel Landwerlin! #gtk http://ur1.ca/1k0hx|1283965546|0||0|0 208|GTK+ and friends|GTKtoolkit|GTK+ 2.21.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00291.html #gtk|1283198533|0||0|0 209|GTK+ and friends|GTKtoolkit|GObject Introspection status: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00254.html #gtk #glib|1282939837|0||1|2 210|GTK+ and friends|GTKtoolkit|GDateTime, the new time & date API just landed in Glib: https://bugzilla.gnome.org/show_bug.cgi?id=50076#c85 #gtk #glib|1282699797|0||0|1 211|GTK+ and friends|GTKtoolkit|CSS-like styling for #GTK+ thanks to Carlos Garnacho: http://blogs.gnome.org/carlosg/2010/08/23/css-like-styling-for-gtk/ #gtk|1282602303|0||0|3 212|GTK+ and friends|GTKtoolkit|RT @migueldeicaza: Gtk+ getting cascading stylesheets: http://blogs.gnome.org/carlosg/2010/08/23/css-like-styling-for-gtk/|1282594548|0||0|1 213|andreasn1|andreasn1|RT @andreasn1: ♺ @hbons: thanks to gtk+ maintainer mclasen we can now ditch icon-naming-utils :)|1282356193|0|GTKtoolkit|0|2 214|GTK+ and friends|GTKtoolkit|GTK+ schedule: glib 2.26 and #gtk+ 2.22 for #GNOME 2.32 (Sep'10). glib 2.28, gtk+ 2.24 and gtk+ 3.0 for Dec'10 http://ur1.ca/16o49|1282256544|0||0|0 215|GTK+ and friends|GTKtoolkit|@thomasvs I saw someone with an N900 in my lift yesterday, had the same thought|1282217985|0||0|0 216|Simón P.|spenap|RT @spenap: GObject Introspection has landed in Grilo! http://bit.ly/9f4DAa #mswl #igalia #pygobject #gobject-introspection|1282166595|0|GTKtoolkit|0|4 217|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ Team Meeting - 2010-08-17: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00155.html #gtk|1282094165|0||0|0 218|GTK+ and friends|GTKtoolkit|GTK+ 2.90.6 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00146.html #gtk|1282061092|0||0|0 219|Emmanuele Bassi|ebassi|RT @ebassi: http://bit.ly/9gabxR - @cluttertoolkit + gobject-introspection + pygobject. say goodbye to pyclutter!|1282043493|0|GTKtoolkit|0|3 220|GTK+ and friends|GTKtoolkit|GTK+ 2.21.6 (unstable) Relased: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00127.html #gtk|1282006494|0||0|0 221|Stormy|storming|RT @storming: Novell is looking for a GNOME developer to work on SUSE Linux. http://linkd.in/bEAUUj|1282001084|0|GTKtoolkit|0|19 222|Tommi Komulainen|tko|RT @tko: I want my libglib-gslist.so and libglib-glist.so .. and some popcorn. maybe just popcorn|1282000936|0|GTKtoolkit|0|1 223|GTK+ and friends|GTKtoolkit|GLib 2.25.14 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00123.html #gtk|1282000398|0||0|0 224|Emmanuele Bassi|ebassi|RT @ebassi: I'm pretty pleased with the API that landed in json-glib for 0.12|1281810990|0|GTKtoolkit|0|1 225|GTK+ and friends|GTKtoolkit|The @ebassi implementation to support common licenses in about dialog has been added to #GTK: http://ur1.ca/11u5a|1281436699|0||0|0 226|GTK+ and friends|GTKtoolkit|Web inspector support lands in #WebKitGtk+ check the screencast demo http://blog.kov.eti.br/?p=118|1281376660|0||1|0 227|GTK+ and friends|GTKtoolkit|#GTK+ #Python developers are recommended to use the\nGObject-Introspection features available in PyGObject. http://live.gnome.org/PyGObject|1281362391|0||0|0 228|GTK+ and friends|GTKtoolkit|PyGTK 2.21.0 (unstable) released: http://ur1.ca/11gse . 2.22 will be the last release in the PyGTK series.|1281362089|0||0|0 229|GTK+ and friends|GTKtoolkit|#GTK+ Hackfest, October 18-22, A Coruña, Spain. http://ur1.ca/11f6u . Add yourself if you are interested in attending http://ur1.ca/11f6v|1281350218|0||0|4 230|GTK+ and friends|GTKtoolkit|Benjamin Otte's proposal for GTK+ drawing API: gtk_widget_draw(): http://ur1.ca/11f5m #gtk|1281350013|0||2|0 231|GTK+ and friends|GTKtoolkit|Some drawing APIs have been deprecated in GTK+ 2.22. Start porting your drawing to Cairo! http://ur1.ca/11f4t|1281349855|0||0|0 232|GTK+ and friends|GTKtoolkit|GLib 2.24.2 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00057.html #gtk|1281349547|0||0|0 233|GTK+ and friends|GTKtoolkit|glib (unstable) 2.25.13 released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00052.html #gtk|1281201884|0||0|0 234|GTK+ and friends|GTKtoolkit|glib 2.25.12 is here! http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00052.html There have been many API changes in GDBus.|1280601329|0||0|0 235|Chema Casanova|txenoo|RT @txenoo: Dispoñible a foto de grupo de #guadeces2010 http://www.flickr.com/photos/davizin/4822344878/ gracias a David Cabrero|1280002637|0|GTKtoolkit|0|2 236|Andrea Cimitan|cimi|RT @cimi: Gtk+ 3.0 theming engines... let's start the discussion :)|1279678340|0|GTKtoolkit|0|1 237|Alberto Ruiz|acruiz|RT @acruiz: Marker support in GtkScrollbar http://bit.ly/cKUTeW|1279580539|0|GTKtoolkit|0|2 238|GTK+ and friends|GTKtoolkit|RT @ebassi: today I moved #clutter-gtk to depend on #gtk3; tomorrow w I'll fix the double-events bug; on wednesday I'll rework the API|1279561116|0||0|0 239|Sandy Armstrong|sandyarmstrong|RT @sandyarmstrong: @awafaa gconf is obsolete, fool|1279301600|0|GTKtoolkit|0|1 240|Jonh Wendell|jwendell|RT @jwendell: #vinagre ported to GtkApplication :) !gtk|1279228583|0|GTKtoolkit|0|1 241|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: #clutter 1.3.8 is the first snapshot with cally, the accessibility library for clutter apps and toolkits|1278972910|0|GTKtoolkit|0|4 242|GTK+ and friends|GTKtoolkit|GTK+ 2.90.5 released: http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00021.html #gtk|1278952963|0||0|0 243|GTK+ and friends|GTKtoolkit|Glib 2.25.11 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00019.html #gtk|1278952925|0||0|0 244|Johan Dahlin|johandahlin|RT @johandahlin: New blog post: Using LLVM to speed up function invocation in a dynamic language binding http://bit.ly/dA6IjH|1278620689|0|GTKtoolkit|0|4 245|GTK+ and friends|GTKtoolkit|GTK+ bindings for #Falcon announced: http://mail.gnome.org/archives/gtk-list/2010-June/msg00183.html #gtk|1278000421|0||0|0 246|GTK+ and friends|GTKtoolkit|#GSettings / #dconf is ready: http://mail.gnome.org/archives/desktop-devel-list/2010-June/msg00226.html . Please port your modules! #gtk|1277909398|0||0|1 247|GTK+ and friends|GTKtoolkit|More work in height-for-width layout system for GTK+ : http://blogs.gnome.org/tvb/2010/06/30/gtk-learns-height-for-width-episode-ii/ #gtk|1277909313|0||0|0 248|GTK+ and friends|GTKtoolkit|GLib 2.25.10 (unstable) released: http://ur1.ca/0ee7o WARNING: There have been API changes in GDBus. #gtk|1277685452|0||0|1 249|GTK+ and friends|GTKtoolkit|gdk-pixbuf is now a standalone package: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00172.html #gtk|1277685365|0||0|1 250|GTK+ and friends|GTKtoolkit|GTK+ 2.90.4 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00182.html #gtk|1277685274|0||0|0 251|GTK+ and friends|GTKtoolkit|GTK+ 2.21.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00183.html #gtk|1277685237|0||0|0 252|GTK+ and friends|GTKtoolkit|We are open to fix API that make the life of #bindings harder but only by addition+rename, or addition+deprecation. File bugs, please #gtk|1277312749|0||0|0 253|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-06-22: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00155.html #gtk|1277312445|0||0|0 254|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting 2010-06-22. In #gtk-devel on irc.gnome.org at 20:00 UTC. Agenda: http://ur1.ca/q6jh #gtk|1277226823|0||0|0 255|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: the new #clutter website is now live: http://www.clutter-project.org|1276948072|0|GTKtoolkit|0|5 256|GTK+ and friends|GTKtoolkit|Proposed #GNOME goal: Port your #PyGTK to the new #PyGI bindings http://bit.ly/cvfzO8|1276941335|0||1|2 257|Christian Hergert|hergertme|RT @vwduder: im sad because @ebassi doesn't like my in/out param comments :-)|1276904611|0|GTKtoolkit|0|1 258|Guillaume Mazoyer|gmazoyer|RT @gmazoyer: ♺ @GTKtoolkit: #java bindings version 4.0.16 released: http://article.gmane.org/gmane.comp.gnome.bindings.java/1796 #gtk|1276889421|0|GTKtoolkit|0|1 259|GTK+ and friends|GTKtoolkit|#java bindings version 4.0.16 released: http://article.gmane.org/gmane.comp.gnome.bindings.java/1796 #gtk|1276885917|0||0|0 260|GTK+ and friends|GTKtoolkit|RT @cwiiis: MxIconTheme and MxIcon respect system's icon theme (and changes) now in #mx master :) Made possible by @thosw's XSettings work|1276883019|0||0|0 261|GTK+ and friends|GTKtoolkit|#javascript mailing list just created. Discuss its usage in GObject libraries: GTK+, Glib ... http://ur1.ca/08lwz by @jwendell #gtk|1276842639|0||0|0 262|GTK+ and friends|GTKtoolkit|Note fot Win32 users: XP theming is back in 2.90.3 . Please test. #gtk|1276829697|0||0|0 263|GTK+ and friends|GTKtoolkit|GTK+ 2.90.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00137.html #gtk|1276829633|0||0|0 264|GTK+ and friends|GTKtoolkit|GLib 2.25.9 (unstable) released: http://ur1.ca/08hrl WARNING: API changes in GDBus, GSettings and GApplication #gtk|1276829581|0||0|0 265|scaroo|scaroo|RT @scaroo: #SeedKit does RGBA window with css shadows and stuff : http://dl.dropbox.com/u/5746554/seedkit-does-rgba.png|1276734086|0|GTKtoolkit|0|1 266|scaroo|scaroo|RT @scaroo: Great #SeedKit showcase from @cldx3000 : http://bit.ly/cRDosJ :D|1276734071|0|GTKtoolkit|0|1 267|Lluis Sanchez Gual|slluis|RT @slluis: MonoDevelop 2.4 released! http://monodevelop.com/Download/MonoDevelop_2.4_Released|1276699438|0|GTKtoolkit|0|35 268|GTK+ and friends|GTKtoolkit|RT @bertogg: GNOME Developer Training at GUADEC, with Claudio Saavedra, Fernando Herrera, Dave Neary and me: http://is.gd/cPkpJ|1276687240|0||0|0 269|SparkleShare|SparkleShare|RT @sparkleshare: Let's start sparkling!|1276619215|0|GTKtoolkit|0|7 270|Haakon Sporsheim|haaspors|RT @haakonsporsheim: I built my first app for #android today using jni and #glib :P Sweet :)|1276472258|0|GTKtoolkit|0|4 271|GTK+ and friends|GTKtoolkit|Converting libraries and plugins to use GTK+3: http://mail.gnome.org/archives/desktop-devel-list/2010-June/msg00142.html #gtk|1276390360|0||1|0 272|GTK+ and friends|GTKtoolkit|Call to GNOME maintainers: #GNOME 2.31.4 to ship GTK+ 2.90: http://bit.ly/bnuk3e #gtk|1276390311|0||0|0 273|GTK+ and friends|GTKtoolkit|API changes in GLib master: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00079.html #gtk|1276390197|0||1|0 274|GTK+ and friends|GTKtoolkit|GLib 2.25.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00036.html #gtk|1276390151|0||0|0 275|Johan Dahlin|johandahlin|RT @johandahlin: is adding introspection support for GstMiniObject and other weird instantitiable GTypes. Still left: gjs/pygi support.|1276384704|0|GTKtoolkit|0|3 276|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: So, yes: we dropped the copyright waiver on Clutter and Cogl. Contributions welcome!|1276281694|0|GTKtoolkit|0|12 277|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm (C++ GTK+ bindings) 2.90 (unstable) released: http://ur1.ca/06nhn #gtk|1276182909|0||0|0 278|Juanje Ojeda |juanjeojeda|RT @juanjeojeda: Progress on Gtk+ multitouch support: http://bit.ly/amIUiL #gtk #multitouch /via @garnacho|1276158728|0|GTKtoolkit|0|2 279|GTK+ and friends|GTKtoolkit|GTK+ 2.90.2 (unstable) released: http://ur1.ca/06k6o Feedback about GtkApplication apreciated #gtk|1276141907|0||0|0 280|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-06-08: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00044.html #gtk|1276040191|0||0|0 281|GTK+ and friends|GTKtoolkit|RT @bratschegnome: @federicomena http://mzl.la/9PoFhD is nice I used to have CSD whr you can drag gtk+ from anywr in a window|1276038852|0||0|0 282|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting 2010-06-08.In #gtk-devel on irc.gnome.org at 20:00 UTC.Agenda: http://ur1.ca/q6jh Everyone is invited to attend|1276010278|0||0|0 283|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm (C++ Glib bindings) 2.25.1 (unstable) released: http://ur1.ca/067ff #gtk|1276007921|0||0|0 284|GTK+ and friends|GTKtoolkit|GLib 2.25.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00036.html #gtk|1276003038|0||0|1 285|GTK+ and friends|GTKtoolkit|New version of #pygi (the new #python bindings based in #GObjectIntrospection) released: http://ur1.ca/0623c|1275945620|0||0|3 286|GTK+ and friends|GTKtoolkit|RT @ebassi: aaaand GBinding (a libexo-like binding between object properties) is mostly done: http://ur1.ca/05fz1 #gtk #glib|1275653238|0||1|0 287|GTK+ and friends|GTKtoolkit|RT @ebassi: plus, I have a GIO branch with GController and friends|1275653044|0||0|0 288|GTK+ and friends|GTKtoolkit|RT @ebassi submitted my patch for creating a GObjectController and get bulk notification #gtk|1275653008|0||0|0 289|GTK+ and friends|GTKtoolkit|GTK+ 2.21.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00157.html #gtk|1275271768|0||0|0 290|GTK+ and friends|GTKtoolkit|#dtrace and #systemtap support added to #Glib. Enjoy! https://bugzilla.gnome.org/show_bug.cgi?id=606044 #gtk|1275056183|0||0|2 291|GTK+ and friends|GTKtoolkit|GTK+ 2.90.1 (unstable) released: http://ur1.ca/03hbv . Multiple input device support, flippable widgets and more ...|1274845319|0||1|0 292|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-05-25: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00147.html #gtk #meeting|1274826674|0||0|0 293|GTK+ and friends|GTKtoolkit|[REMINDER] GTK+ team IRC meeting 2010-05-25 at 20:00 UTC. Join us in #gtk-devel on irc.gnome.org. Agenda: http://ur1.ca/q6jh #gtk #meeting|1274801128|0||0|1 294|GTK+ and friends|GTKtoolkit|Gtk2Hs 0.11.0 (Haskell bindings) released: http://haskell.org/gtk2hs/archives/2010/05/25/gtk2hs-0110-released/ #gtk #haskell|1274800929|0||0|0 295|GTK+ and friends|GTKtoolkit|dconf 0.3.1 released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00145.html #gtk|1274800819|0||0|0 296|GTK+ and friends|GTKtoolkit|GLib 2.25.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00144.html #gtk|1274800611|0||0|0 297|GTK+ and friends|GTKtoolkit|XI2 @garnacho 's branch ready for review (xi2-for-master): http://mail.gnome.org/archives/gtk-devel-list/2010-May/thread.html #gtk|1274472793|0||0|0 298|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtk-doc 1.15 released: http://mail.gnome.org/archives/gtk-doc-list/2010-May/msg00000.html #gtk|1274446357|0||0|0 299|GTK+ and friends|GTKtoolkit|Ryan Lortie (@desrt) just released #dconf 0.3: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00128.html #gtk|1274311034|0||0|0 300|GTK+ and friends|GTKtoolkit|GLib 2.25.6 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00127.html #gtk|1274310863|0||0|0 301|GTK+ and friends|GTKtoolkit|GLib 2.25.6 (unstable) released:|1274310818|0||0|0 302|GTK+ and friends|GTKtoolkit|GLib 2.25.5 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00078.html #gtk|1273891783|0||0|0 303|GTK+ and friends|GTKtoolkit|Glade 3.7.1 released with lot of improvements: http://ur1.ca/011bc Thanks to #Openismus who helped sponsor this release #gtk|1273885948|0||0|0 304|GTK+ and friends|GTKtoolkit|GDBus merged in Glib master http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00066.html #gtk|1273837079|0||0|1 305|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-05-11 : http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00047.html #gtk|1273636581|0||0|0 306|GTK+ and friends|GTKtoolkit|[REMINDER] GTK+ team IRC meeting - 2010-05-11 at 20:00 UTC. Join us in #gtk-devel on irc.gnome.org. Agenda: http://ur1.ca/q6jh #gtk #meeting|1273606386|0||0|0 307|GTK+ and friends|GTKtoolkit|GTK+ 2.90.0 (unstable) released. This is the first development release leading toward 3.0. http://ur1.ca/006p2 #gtk #gtk3|1273553873|0||0|5 308|GTK+ and friends|GTKtoolkit|Changes in GTK+ master that affect third parties: http://mail.gnome.org/archives/devel-announce-list/2010-May/msg00001.html #gtk #gtk3|1273531549|0||0|0 309|GTK+ and friends|GTKtoolkit|Have dark themes is more easy now thanks to Bastian Nocera work: http://bit.ly/dBJzgn #gtk|1273531264|0||0|2 310|GTK+ and friends|GTKtoolkit|GTK+ 2.21.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00026.html #gtk|1273285878|0||0|0 311|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ IRC team meeting - 2010-05-04: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00010.html #gtk|1273024620|0||0|0 312|GTK+ and friends|GTKtoolkit|GTK+ 2.20.1 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00004.html #gtk|1272983158|0||0|0 313|GTK+ and friends|GTKtoolkit|GLib 2.24.1 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00005.html #gtk|1272983138|0||0|0 314|GTK+ and friends|GTKtoolkit|Next GTK+ team meeting: 2010-05-04 at 20:00 UTC. More info and agenda: http://ur1.ca/q6jh . As always, everyone is invited to attend. #gtk|1272848781|0||1|0 315|GTK+ and friends|GTKtoolkit|#Perl bindings: Gtk2 1.230 (unstable) available: http://mail.gnome.org/archives/gtk-perl-list/2010-April/msg00120.html #gtk|1272341271|0||0|0 316|Emmanuele Bassi|ebassi|RT @ebassi: for the first time in ages I was able to work a bit on #gtkperl and add missing 2.16 and 2.18 wrappers|1272139155|0|GTKtoolkit|0|1 317|GTK+ and friends|GTKtoolkit|GLib 2.25.3 (unstable) released with more #GSettings fixes: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00090.html #gtk|1272118354|0||0|1 318|GTK+ and friends|GTKtoolkit|GLib 2.25.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00079.html|1272028911|0||0|0 319|GTK+ and friends|GTKtoolkit|GTK+ Learns height-for-width geometry. Thanks Tristan Van Berkom and #Openismus for sponsoring him! http://ur1.ca/wiz3 #gtk|1271969484|0||1|2 320|GTK+ and friends|GTKtoolkit|#GSettings porting guide available: http://ur1.ca/w2xl . Feedback welcomed!: http://ur1.ca/w2xn #gtk|1271777672|0||4|4 321|GTK+ and friends|GTKtoolkit|Major change in Glib 2.25.0: #GSettings framework has been merged. This provides the API to replace #GConf.|1271715090|0||0|0 322|GTK+ and friends|GTKtoolkit|GLib 2.25.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00066.html #gtk|1271714608|0||0|1 323|GTK+ and friends|GTKtoolkit|GSettings status update by Matthias Clasen: http://blogs.fedoraproject.org/wp/mclasen/2010/04/17/gsettings/ #gtk #gsettingshackfest|1271519572|0||0|0 324|GTK+ and friends|GTKtoolkit|GNOME Python Hackfest: Day 1 (by John (J5) Palmieri): http://www.j5live.com/2010/04/14/gnome-python-hackfest-day-1/ #python #pythonhackfest|1271291950|0||0|1 325|GTK+ and friends|GTKtoolkit|Colin Walters: PyGTK, PyGI and PyGTK-on-PyGI #python #pythonhackfest http://ur1.ca/v5kw|1271291792|0||0|0 326|GTK+ and friends|GTKtoolkit|Python Hackfest started.Ttwo concrete goals: porting PyGObject to #Python 3.x and giving a push to PyGI. http://ur1.ca/v5jc|1271291075|0||0|0 327|GTK+ and friends|GTKtoolkit|GSettings Hackfest: Day 1 (by Vincent UNTZ) http://www.vuntz.net/journal/post/2010/04/13/GSettings-Hackfest:-Day-1 #gtk|1271290824|0||0|0 328|GTK+ and friends|GTKtoolkit|GSettings Hackfest started. Thanks to #Novell for sponsoring.Also to #RedHat, #Codethink and #Lanedo for sending people! http://ur1.ca/v5i4|1271290481|0||1|0 329|GTK+ and friends|GTKtoolkit|Xan Lopez from #Igalia attends the WebKit Contribution Meeting at the Apple HQ in Cupertino http://bit.ly/bHCqcC|1271247431|0||0|2 330|GTK+ and friends|GTKtoolkit|Kristian Rietveld advances the #GTK+ Quartz/Mac OS X backend http://bit.ly/cJzV2o|1271247006|0||2|0 331|GTK+ and friends|GTKtoolkit|#Openismus sponsors Tristan Van Berkom to complete the work on #GTK+ Natural Layout http://bit.ly/9FD3JC|1271246851|0||0|1 332|GTK+ and friends|GTKtoolkit|RT @bilboed Having trouble reading GObject or GStreamer code ? Here's a small step-by-step rundown : http://is.gd/bk7mD|1270738689|0||0|1 333|GTK+ and friends|GTKtoolkit|Colin Walters shares his thoughts about the new #GTK+ application class and its relationship with #GNOME 3 http://bit.ly/cvcHIG|1270482931|0||0|0 334|Lucas Rocha|lucasratmundo|RT @lucasratmundo: GNOME Shell has been officially proposed as a GNOME module: http://bit.ly/d1yKE2|1269993362|0|GTKtoolkit|0|3 335|Johan Dahlin|johandahlin|RT @johandahlin: New blog post http://blogs.gnome.org/johan/2010/03/30/bridging-the-development-gap-between-desktop-and-web/|1269993352|0|GTKtoolkit|0|1 336|GTK+ and friends|GTKtoolkit|New Glib STABLE release: 2.24 http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00149.html #gtk|1269892314|0||0|0 337|GTK+ and friends|GTKtoolkit|Help the GNOME Foundation to hire a sysadmin for GNOME! http://www.gnome.org/friends|1269658993|0||0|1 338|GTK+ and friends|GTKtoolkit|Our friends from #Openismus sponsor #Glade 3 improvements http://bit.ly/9GqLDl|1269656334|0||0|0 339|GTK+ and friends|GTKtoolkit|♺ @johandahlin: just commited the last remaining piece for cairo support in #gjs. World domination here we come|1269646821|0||0|0 340|FedericoMenaQuintero|federicomena|RT @federicomena: Yay, the patch for glade is done - https://bugzilla.gnome.org/show_bug.cgi?id=594231|1269616128|0|GTKtoolkit|0|1 341|Jorge Castro|castrojo|RT @castrojo: Become a Friend of GNOME: http://wp.me/poAPi-da|1269616083|0|GTKtoolkit|0|2 342|Johan Dahlin|johandahlin|RT @johandahlin: just commited the last remaining piece for cairo support in #gjs. World domination here we come|1269616001|0|GTKtoolkit|0|2 343|Jono Bacon|jonobacon|RT @jonobacon: New Acire and Python Snippets website! http://is.gd/aZGnF - still a work in progress, working on it as we speak! #pythons ...|1269615964|0|GTKtoolkit|0|5 344|GTK+ and friends|GTKtoolkit|Python Snippets: project to gather an archive of simple Python (with GTK+) examples http://ur1.ca/rru1 !gtk @jonobacon|1269555086|0||0|2 345|GTK+ and friends|GTKtoolkit|#yorbafoundation is hiring #Vala/#Gtk+ developers and summer interns in California to create multimedia apps http://yorba.org/jobs|1269479714|0||0|1 346|GTK+ and friends|GTKtoolkit|♺ @ploum: now that I have to use Qt and Qt documentation, I've only one word : #gtk rocks ! ( yeah for #gnome people)|1269441827|0||0|2 347|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ Team Meeting: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00134.html #gtk|1269391167|0||0|0 348|GTK+ and friends|GTKtoolkit|New GTK+ STABLE release: 2.20 http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00132.html #gtk|1269374138|0||1|1 349|GTK+ and friends|GTKtoolkit|Reminder: GTK+ meeting today at 20:00 UTC. Where: #gtk-devel on irc.gnome.orgAgenda: http://live.gnome.org/GTK+/Meetings|1269358583|0||0|0 350|GTK+ and friends|GTKtoolkit|GLib 2.23.6 (development branch) released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00131.html #gtk|1269264623|0||0|0 351|GNOME|gnome|RT @gnome: RT @rubenv GNOME was accepted for Google Summer of Code 2010! Looking for an IT student job that earns a lot? http://bit.ly/c ...|1269106193|0|GTKtoolkit|0|5 352|FedericoMenaQuintero|federicomena|RT @federicomena: Untested code is broken code, even if it compiles. #yay #me|1269106077|0|GTKtoolkit|0|1 353|Summer of Code|gsoc|RT @gsoc: Mentor organizations for #GSoC have been announced! http://bit.ly/bVMPWe|1268956782|0|GTKtoolkit|0|31 354|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: just released clutter-gtk 0.10.4 - depending on clutter 1.2 and gtk+ 2.19|1268956726|0|GTKtoolkit|0|1 355|GTK+ and friends|GTKtoolkit|Support for Class private data will be available in Glib 2.24: https://bugzilla.gnome.org/show_bug.cgi?id=521707|1268848373|0||0|2 356|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting: March 23, at 20:00. http://ur1.ca/q6jg . Agenda: http://ur1.ca/q6jh #gtk|1268845861|0||0|1 357|GTK+ and friends|GTKtoolkit|GTK+ 2.18.9 (stable branch) released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00115.html #gtk|1268844918|0||0|0 358|GTK+ and friends|GTKtoolkit|GLib 2.22.5 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/thread.html #gtk|1268748183|0||0|0 359|GTK+ and friends|GTKtoolkit|GTK+ 2.18.8 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00078.html #gtk|1268700945|0||0|0 360|GTK+ and friends|GTKtoolkit|@chrisblizzard There's a .zip bundle indeed http://bit.ly/9ZkQCM|1268698714|0||0|0 361|Alberto Ruiz|acruiz|RT @acruiz: libmodel and GTK+ from Codethink Labs! http://aruiz.synaptia.net/siliconisland/2010/03/libmodel-and-gtk-from-codethink-labs.html|1268698629|0|GTKtoolkit|0|3 362|GTK+ and friends|GTKtoolkit|New version of the User Interface Designer #Glade released: 3.7.0 http://ur1.ca/phww #gtk|1268458482|0||0|0 363|GTK+ and friends|GTKtoolkit|GTK+ 2.19.7 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00044.html #gtk|1268174602|0||0|0 364|GTK+ and friends|GTKtoolkit|#GTK + future idea: automatic composite widgets using #GtkBuilder under the hood http://ur1.ca/oxly|1268157762|0||0|0 365|GTK+ and friends|GTKtoolkit|GLib 2.23.5 is released, congrats to @desrt for his first release http://bit.ly/a3th6S|1268070995|0||0|1 366|GTK+ and friends|GTKtoolkit|The first #PyGTK hackfest ever has been announced, 3.0 and Introspection are the major themes http://bit.ly/9Bd31g|1267875279|0||1|1 367|GTK+ and friends|GTKtoolkit|Kristian Rietveld gives an update of the GTK+/Quartz MacOSX native port http://bit.ly/cZ84VN|1267832356|0||2|0 368|Jono Bacon|jonobacon|RT @jonobacon: Merged in more python-snippets: desktop widget, drag and open in PyGTK, GStreamer video playback, and a bunch of fixes! h ...|1267831925|0|GTKtoolkit|0|3 369|GTK+ and friends|GTKtoolkit|#Openismus is looking for C/C++ GTK+/Qt trainees http://bit.ly/c16WEp|1267831840|0||0|0 370|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: clutter 1.2.0 - first stable release, with lots of new API - http://bit.ly/ckdS6R|1267561885|0|GTKtoolkit|0|9 371|GTK+ and friends|GTKtoolkit|#Lanedo is hiring GTK+/GNOME hackers! http://bit.ly/d6fTWQ|1267560392|0||0|1 372|GTK+ and friends|GTKtoolkit|You can help to make a difference too, help the #GTK+ maintainers to improve the documetnation infrastructure! http://bit.ly/dmJifE|1267538283|0||0|1 373|GTK+ and friends|GTKtoolkit|Designers bring back excitement around the #GNOME project http://bit.ly/9Zcx8c|1267202696|0||0|1 374|GTK+ and friends|GTKtoolkit|#webkit #gtk gets ARGB support, allowing it to set a transparent background! http://bit.ly/cBeouj|1267146282|0||0|2 375|GTK+ and friends|GTKtoolkit|Follow GNOME TV on Vimeo http://is.gd/96PlT|1267050829|0||0|1 376|GTK+ and friends|GTKtoolkit|Extensive article on the state of #WebKitGtk http://is.gd/95En2|1267031517|0||0|0 377|GTK+ and friends|GTKtoolkit|@ploum Are you hitting !PyGTK or !GTK+ bugs? Are they already reported upstream?|1267029810|0||0|0 378|GTK+ and friends|GTKtoolkit|#GNUStep gets #GTK+ theming http://is.gd/95vHl more at http://is.gd/95wt8|1267029498|0||0|1 379|GTK+ and friends|GTKtoolkit|GTK+ 2.19.6 released: http://mail.gnome.org/archives/gtk-devel-list/2010-February/msg00050.html #gtk|1266966985|0||0|0 380|GTK+ and friends|GTKtoolkit|Did you know that #GTK+ is the official toolkit for the #LiMo software stack? http://bit.ly/cuEdHx|1266925406|0||0|0 381|GTK+ and friends|GTKtoolkit|@lmedinas publishes a #javascript #example on how to put an status icon with #Gtk+ http://bit.ly/9py1uC Thanks a lot Luis!|1266886644|0||1|1 382|GTK+ and friends|GTKtoolkit|♺ @ebassi: I should really finish up the GDom API as well|1266880653|0||0|0 383|GTK+ and friends|GTKtoolkit|♺ @ebassi: I hope to work on this for the next GIO release, and the GTK+ side for 3.0|1266880641|0||0|0 384|GTK+ and friends|GTKtoolkit|♺ @ebassi: just updated the ApplicationClass design wiki page with the stuff @Cwiiis did for Mx - http://bit.ly/cfAOJk|1266880559|0||0|0 385|GTK+ and friends|GTKtoolkit|#GTK+ Kick Start tutorial for #Vala http://www.vimeo.com/9617309 OGG: http://bit.ly/czegmp|1266874471|0||0|1 386|GTK+ and friends|GTKtoolkit|@migheldeicaza shows off #monodevelop on #macosx deploying and debugging #gtk sharp apps on a #MeeGo device http://bit.ly/9XR0Pg|1266874171|0||1|1 387|GTK+ and friends|GTKtoolkit|#GTK+ is the first toolkit to expose the #Xorg multitouch stack through #XI2 http://bit.ly/9tniKu - Nice work @garnacho!|1266863259|0||0|1 388|GTK+ and friends|GTKtoolkit|This is the official GTK+ first micropost!|1266856657|0||0|1 (uuay)cssview.css/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } (uuay)move_cursor.pngAPNG  IHDR szzsBIT|d pHYsttfxtEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Steiner/5tEXtDescriptionInverted variant of the DMZ cursor theme.hu[<3tEXtSourcehttp://jimmac.musichall.cz/themes.php?skin=7P3IDATXOSgǿ,9d@+!%qbwq ,bI Ue43lم3fJ^?T#@-==JZhe[<ﳋrRؠžys<`S,z={&|R+łХ7o6:td&P'ﵴ֭[,-׉DW3555oGLFjmm}i0 J`uuu&[(p @& <FǝN'39"|`0lzz:dX< aG\Jjy~,NKg3011ALF*++?&W .Y4:KZvO___޽7 8pd2Jԉ59x3d4WuRcμD ޹9i޽+755Q2|>_h%^T*~,N/ {nJ$R Ohڋ/PT&?>77',ڵ$BDVм^j-xggg%@ $A;v8-)xDCCþ`0Hx\F/lll/b GZmѕC)^---rB"9UX Qϫd`^\5?:!o !IENDB`(uuay)blends.pngPNG  IHDR/bKGD pHYs  tIME$}TiTXtCommentCreated with GIMPd.exIDATx D=c_--!L$ /$,fIz{ ux+ @@ @ @@ @ @@ @@ @@ @@ @@@ @@@ @@ @@ @@ I甩@@ @@ @@ @@ @@Cet[awj= @@ @@ @@ @@ @@ @@ @@  @@  @@  @ @@ @@ `cFsIENDB`(uuay)bversiongtk3-demo %d.%d.%d destroyappmenu/ui/appmenu.uiThe GTK+ Team3.22.24%s, Running against GTK+ %d.%d.%dAbout GTK+ Demotitlegtk3-demologo-icon-nameauthorsProgram to demonstrate GTK+ widgetscommentshttp://www.gtk.orgwebsitelicense-type(C) 1997-2013 The GTK+ TeamcopyrightGTK+ Demoprogram-namestatic if const while */comment/*preprocessorfunctiontypecontrolstringmonospacefontsourceDodgerBlueforegroundForestGreenweightRosyBrownpurpleburlywood4styleDarkGoldenrod4/bottom-margintop-marginright-marginleft-margin.cDon't know how to display resource '%s'tab-expandpixels-below-linesSans 18/sources/Cannot open source for %s: %s bytesmain.cstrlen (p) >= q - pstrlen (p) >= len/ui/main.ui%swindownotebookinfo-textviewsource-textviewheaderbartreeviewsource-scrolledwindowStartactivateEndpopup-menurow-activatedtreeview-selectionchanged&srunautoquitlist%s ../../modules/input/immodules.cacheGTK_IM_MODULE_FILEorg.gtk.DemoShow program versionEXAMPLERun an exampleList examplesQuit after a delaystartupcommand-linehandle-local-optionsaboutquitadd_data_tabload_file else do for ?:return goto YYRYXY]YcYeYgYoYvoidgint int char gchar gfloatfloatdoublegint8gint16gint32guintguint8guint16guint32gucharglonggbooleangshortgushortgulonggdoublegldoublegpointerNULLGListGSListFALSETRUEFILE GtkColorSelection GtkWidget GtkButton GdkColor GdkRectangle GdkEventExpose GdkGC GdkPixbufLoader GdkPixbuf GErrorsize_tGtkAboutDialog GtkAction GtkActionEntry GtkRadioActionEntry GtkIconFactory GtkIconSet GtkTextBuffer GtkStatusbar GtkTextIter GtkTextMark GdkEventWindowState GtkActionGroup GtkUIManager GtkRadioAction GtkActionClass GtkToggleActionEntry GtkAssistant GtkBuilder GtkSizeGroup GtkTreeModel GtkTreeSelection GdkDisplay GdkScreen GdkWindow GdkEventButton GdkCursor GtkTreeIter GtkTreeViewColumn GdkDisplayManager GtkClipboard GtkIconSize GtkImage GdkDragContext GtkSelectionData GtkDialog GtkMenuItem GtkListStore GtkCellLayout GtkCellRenderer GtkTreePath GtkTreeStore GtkEntry GtkEditable GtkEditableInterface GdkPixmap GdkEventConfigure GdkEventMotion GdkModifierType GtkEntryCompletion GtkToolItem GDir GtkIconView GtkCellRendererText GtkContainer GtkAccelGroup GtkPaned GtkPrintOperation GtkPrintContext cairo_t PangoLayout PangoFontDescription PangoRenderer PangoMatrix PangoContext PangoLayout GtkTable GtkToggleButton GString GtkTreeView GtkTextTag GdkEvent GdkEventKey GtkTextView GdkEventVisibility GdkBitmap GtkTextChildAnchor GArray GtkCellEditable GtkCellRendererToggle YYYYYYYYYYYYYYYYY YYY!Y(Y0Y7Y?YHYQYVY\YcYiYnYtYYYYYYYYYYYYYY!Y6YFYRYaYoY|YYYYYYYYY YY(Y:YFYQY\YlYwYYYYYYYYYY YY&Y7YDYRY\YiYYYYYYYYYYYY$Y.YAYRY\Y~YYYYYYYYYYYY YY*Y5YIYQYbYapplication_demoApplication Classapplication_demo.cassistantAssistantassistant.cBenchmarkbuilderBuilderbuilder.cbutton_boxButton Boxesbutton_box.cchangedisplayChange Displaychangedisplay.cclipboardClipboardclipboard.ccolorselColor Choosercolorsel.ccomboboxCombo Boxescombobox.ccursorsCursorscursors.cdialogDialogs and Message Boxesdialog.cdrawingareaDrawing Areadrawingarea.cEntryexpanderExpanderexpander.cflowboxFlow Boxflowbox.cforeigndrawingForeign drawingforeigndrawing.cgesturesGesturesgestures.cHeader Barheaderbar.cIcon ViewimagesImagesimages.cinfobarInfo Barsinfobar.clinksLinkslinks.clistboxList Boxlistbox.cmenusMenusmenus.cmodelbuttonModel Buttonmodelbutton.cOffscreen WindowsglareaOpenGL Areaglarea.cOverlaypanesPaned Widgetspanes.cPangopickersPickerspickers.cpixbufsPixbufspixbufs.cpopoverPopoverspopover.cPrintingrevealerRevealerrevealer.cscaleScalescale.cshortcutsShortcuts Windowshortcuts.csizegroupSize Groupssizegroup.cspinbuttonSpin Buttonspinbutton.cspinnerSpinnerspinner.cstackStackstack.csidebarStack Sidebarsidebar.cText ViewThemingtoolpaletteTool Palettetoolpalette.cevent_axesTouch and Drawing Tabletsevent_axes.cTree Viewrotated_textRotated Textrotated_text.ctextmaskText Masktextmask.cfont_featuresFont Featuresfont_features.cprintingprinting.coverlayInteractive Overlayoverlay.coverlay2Decorative Overlayoverlay2.ctransparentTransparencytransparent.coffscreen_windowRotated Buttonoffscreen_window.coffscreen_window2Effectsoffscreen_window2.ciconviewIcon View Basicsiconview.ciconview_editEditing and Drag-and-Dropiconview_edit.chypertextHypertexthypertext.cmarkupMarkupmarkup.ctabsTabstabs.ctextviewMultiple Viewstextview.ctextscrollAutomatic Scrollingtextscroll.cfishbowlFishbowlfishbowl.centry_bufferEntry Bufferentry_buffer.centry_completionEntry Completionentry_completion.csearch_entrySearch Entrysearch_entry.csearch_entry2Delayed Search Entrysearch_entry2.ceditable_cellsEditable Cellseditable_cells.cfiltermodelFilter Modelfiltermodel.clist_storeList Storelist_store.ctree_storeTree Storetree_store.ccss_accordionCSS Accordioncss_accordion.ccss_basicsCSS Basicscss_basics.ccss_blendmodesCSS Blend Modescss_blendmodes.ccss_multiplebgsMultiple Backgroundscss_multiplebgs.ccss_pixbufsAnimated Backgroundscss_pixbufs.ccss_shadowsShadowscss_shadows.ctheming_style_classesStyle Classestheming_style_classes.c(Z %ZTBUnknown error_matherr(): %s in %s(%g, %g) (retval=%g) Argument domain error (DOMAIN)Argument singularity (SIGN)Overflow range error (OVERFLOW)The result is too small to be represented (UNDERFLOW)Total loss of significance (TLOSS)Partial loss of significance (PLOSS)ZZZ$Z\ZZMingw-w64 runtime failure: Address %p has no image-section VirtualQuery failed for %d bytes at address %p VirtualProtect failed with code 0x%x Unknown pseudo relocation protocol version %d. Unknown pseudo relocation bit size %d. ??cossinGCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20160211GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20151207GCC: (GNU) 5.3.1 20160211ZfY6(024Ⱦ $<Tl̿,<Tp(D\(p  ` @q2P-papb"p0`6=E@MPS`X]bg@nu`}p`@$@P`0 0`(@ / 59 I@VX\Pd0gppu|ЅPpИpХ@ @ `4 p`  T VFPHpH$`-P"@hE$( 220``(666N6k6666666747N7h777777828L8j888888 9-9@9N9Z9a9h9o9v9}99999999999:0:D:W:f:x::::::::::;;,;;;J;U;_;n;;;;;;;;;;<<<*<7<C<T<^<i<r<<<<<<<<<<<= ==#=/=?=H=X=i=v===========>>#>1>;>V>m>>>>>>> ??8?L?f?q???????????@@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~gtk3-demo.exe_nm__epoxy_glAttachShader_nm__epoxy_glBindBuffer_nm__epoxy_glBindVertexArray_nm__epoxy_glBufferData_nm__epoxy_glClear_nm__epoxy_glClearColor_nm__epoxy_glCompileShader_nm__epoxy_glCreateProgram_nm__epoxy_glCreateShader_nm__epoxy_glDeleteBuffers_nm__epoxy_glDeleteProgram_nm__epoxy_glDeleteShader_nm__epoxy_glDetachShader_nm__epoxy_glDisableVertexAttribArray_nm__epoxy_glDrawArrays_nm__epoxy_glEnableVertexAttribArray_nm__epoxy_glFlush_nm__epoxy_glGenBuffers_nm__epoxy_glGenVertexArrays_nm__epoxy_glGetProgramInfoLog_nm__epoxy_glGetProgramiv_nm__epoxy_glGetShaderInfoLog_nm__epoxy_glGetShaderiv_nm__epoxy_glGetUniformLocation_nm__epoxy_glLinkProgram_nm__epoxy_glShaderSource_nm__epoxy_glUniformMatrix4fv_nm__epoxy_glUseProgram_nm__epoxy_glVertexAttribPointer_nm__g_ascii_tableallow_changesblend_modeschild0child1child2child3child4child5child6child7child8child9colorscopy_button_clickedcreate_combo_boxcreate_completion_modelcreate_display_framecreate_fancy_attr_list_for_layoutcreate_glarea_windowcreate_pane_optionscreate_search_menucreate_toolbardemo_get_resourcedo_application_demodo_assistantdo_builderdo_button_boxdo_changedisplaydo_clipboarddo_colorseldo_comboboxdo_css_accordiondo_css_basicsdo_css_blendmodesdo_css_multiplebgsdo_css_pixbufsdo_css_shadowsdo_cursorsdo_dialogdo_drawingareado_editable_cellsdo_entry_bufferdo_entry_completiondo_event_axesdo_expanderdo_filtermodeldo_fishbowldo_flowboxdo_font_featuresdo_foreigndrawingdo_gesturesdo_glareado_headerbardo_hypertextdo_iconviewdo_iconview_editdo_imagesdo_infobardo_linksdo_list_storedo_listboxdo_markupdo_menusdo_modelbuttondo_offscreen_windowdo_offscreen_window2do_overlaydo_overlay2do_panesdo_pickersdo_pixbufsdo_popoverdo_printingdo_revealerdo_rotated_textdo_scaledo_search_entrydo_search_entry2do_shortcutsdo_sidebardo_sizegroupdo_spinbuttondo_spinnerdo_stackdo_tabsdo_textmaskdo_textscrolldo_textviewdo_theming_style_classesdo_toolpalettedo_transparentdo_tree_storedrag_data_getgtk_demosgtk_fishbowl_get_animatinggtk_fishbowl_get_countgtk_fishbowl_get_typegtk_fishbowl_newgtk_fishbowl_set_animatinggtk_fishbowl_set_countgtk_message_get_typegtk_message_row_get_typegtk_mirror_bin_get_typegtk_mirror_bin_newgtk_rotated_bin_get_typegtk_rotated_bin_newgtk_rotated_bin_set_angleicon_namesleft_align_button_newload_filemainmask_entry_get_typen_icon_namesparentparse_charspaste_button_clickedpaste_receivedtexttoggle_resizetoggle_shrinkup_button@Q`TZ|i[`j[pkh\(k\ l]ld^m_n _,nP_n_8o_Lo_TXo0`o@pXptpppppq qPqpqqqqqr rDr`rrrrrr ss0sHsds|sssst(tHtdtxttttttu4uLuluuuuu v,vPvpvvvvvw0wPwlwwwwwx x@x\x|xxxxxy gtk_text_buffer_get_iter_at_offset@ gtk_text_buffer_get_markD gtk_text_buffer_get_selection_boundsG gtk_text_buffer_get_start_iterI gtk_text_buffer_get_textK gtk_text_buffer_insertP gtk_text_buffer_insert_markupQ gtk_text_buffer_insert_pixbufT gtk_text_buffer_insert_with_tagsU gtk_text_buffer_insert_with_tags_by_nameV gtk_text_buffer_move_markX gtk_text_buffer_new_ gtk_text_buffer_remove_all_tagsf gtk_text_buffer_set_textw gtk_text_iter_backward_chars gtk_text_iter_forward_char gtk_text_iter_forward_chars gtk_text_iter_forward_line gtk_text_iter_forward_word_end gtk_text_iter_get_child_anchor gtk_text_iter_get_offset gtk_text_iter_get_tags gtk_text_iter_get_text gtk_text_iter_set_line_offset gtk_text_view_add_child_at_anchor" gtk_text_view_get_buffer+ gtk_text_view_get_iter_at_location= gtk_text_view_get_windowE gtk_text_view_newF gtk_text_view_new_with_bufferJ gtk_text_view_scroll_mark_onscreenP gtk_text_view_set_bufferQ gtk_text_view_set_cursor_visibleR gtk_text_view_set_editableW gtk_text_view_set_left_marginZ gtk_text_view_set_pixels_above_lines[ gtk_text_view_set_pixels_below_lines] gtk_text_view_set_right_margin^ gtk_text_view_set_tabs` gtk_text_view_set_wrap_modeb gtk_text_view_window_to_buffer_coords gtk_toggle_button_get_active gtk_toggle_button_new_with_label gtk_toggle_button_new_with_mnemonic gtk_toggle_button_set_active gtk_tool_button_get_icon_name gtk_tool_button_new gtk_tool_button_set_icon_name gtk_tool_button_set_label gtk_tool_button_set_use_underline gtk_tool_item_get_type gtk_tool_item_group_get_drop_item gtk_tool_item_group_get_item_position gtk_tool_item_group_get_type gtk_tool_item_group_insert gtk_tool_item_group_new gtk_tool_item_group_set_item_position gtk_tool_item_group_set_label_widget gtk_tool_item_new gtk_tool_item_set_is_important gtk_tool_item_set_tooltip_text gtk_tool_item_set_visible_horizontal gtk_tool_item_set_visible_vertical gtk_tool_palette_add_drag_dest gtk_tool_palette_get_drag_item gtk_tool_palette_get_drop_group gtk_tool_palette_get_group_position gtk_tool_palette_get_type gtk_tool_palette_new gtk_tool_palette_set_group_position gtk_tool_palette_set_style gtk_tool_palette_unset_style gtk_toolbar_insertgtk_toolbar_new#gtk_tree_model_filter_convert_iter_to_child_iter%gtk_tree_model_filter_get_model'gtk_tree_model_filter_new)gtk_tree_model_filter_set_modify_func+gtk_tree_model_filter_set_visible_func.gtk_tree_model_get1gtk_tree_model_get_iter2gtk_tree_model_get_iter_first5gtk_tree_model_get_path;gtk_tree_model_iter_has_child=gtk_tree_model_iter_nextWgtk_tree_path_freeYgtk_tree_path_get_indices`gtk_tree_path_new_from_indicesbgtk_tree_path_new_from_stringvgtk_tree_selection_get_selected~gtk_tree_selection_select_itergtk_tree_selection_set_modegtk_tree_sortable_set_default_sort_funcgtk_tree_sortable_set_sort_column_idgtk_tree_store_appendgtk_tree_store_newgtk_tree_store_setgtk_tree_view_append_columngtk_tree_view_collapse_allgtk_tree_view_column_add_attributegtk_tree_view_column_new_with_attributesgtk_tree_view_column_set_cell_data_funcgtk_tree_view_column_set_clickablegtk_tree_view_column_set_fixed_widthgtk_tree_view_column_set_sizinggtk_tree_view_column_set_sort_column_idgtk_tree_view_expand_allgtk_tree_view_get_columngtk_tree_view_get_cursorgtk_tree_view_get_modelgtk_tree_view_get_selectiongtk_tree_view_insert_column_with_attributes gtk_tree_view_new!gtk_tree_view_new_with_model)gtk_tree_view_set_cursor4gtk_tree_view_set_headers_visible8gtk_tree_view_set_model=gtk_tree_view_set_search_columnygtk_widget_add_accelerator{gtk_widget_add_events}gtk_widget_add_tick_callbackgtk_widget_class_bind_template_callback_fullgtk_widget_class_bind_template_child_fullgtk_widget_class_set_template_from_resourcegtk_widget_create_pango_contextgtk_widget_create_pango_layoutgtk_widget_destroygtk_widget_destroyedgtk_widget_get_allocated_heightgtk_widget_get_allocated_widthgtk_widget_get_allocationgtk_widget_get_clipboardgtk_widget_get_displaygtk_widget_get_eventsgtk_widget_get_frame_clockgtk_widget_get_mappedgtk_widget_get_pango_contextgtk_widget_get_parentgtk_widget_get_parent_windowgtk_widget_get_preferred_height_and_baseline_for_widthgtk_widget_get_preferred_sizegtk_widget_get_preferred_widthgtk_widget_get_realizedgtk_widget_get_screengtk_widget_get_state_flagsgtk_widget_get_style_contextgtk_widget_get_toplevelgtk_widget_get_typegtk_widget_get_visiblegtk_widget_get_visualgtk_widget_get_windowgtk_widget_grab_defaultgtk_widget_grab_focusgtk_widget_hidegtk_widget_init_templategtk_widget_insert_action_groupgtk_widget_is_sensitivegtk_widget_is_toplevelgtk_widget_is_visiblegtk_widget_path_append_typegtk_widget_path_append_with_siblingsgtk_widget_path_copy"gtk_widget_path_iter_add_class+gtk_widget_path_iter_get_state6gtk_widget_path_iter_set_name7gtk_widget_path_iter_set_object_name9gtk_widget_path_iter_set_state;gtk_widget_path_new?gtk_widget_path_unrefBgtk_widget_queue_allocateDgtk_widget_queue_drawGgtk_widget_queue_resizeIgtk_widget_realizeNgtk_widget_remove_tick_callbackWgtk_widget_set_allocationXgtk_widget_set_app_paintableYgtk_widget_set_can_defaultcgtk_widget_set_eventsggtk_widget_set_halignigtk_widget_set_has_windowjgtk_widget_set_hexpandmgtk_widget_set_margin_bottomngtk_widget_set_margin_endqgtk_widget_set_margin_startrgtk_widget_set_margin_topsgtk_widget_set_nametgtk_widget_set_no_show_allugtk_widget_set_opacityvgtk_widget_set_parentwgtk_widget_set_parent_windowxgtk_widget_set_realized{gtk_widget_set_sensitive|gtk_widget_set_size_requestgtk_widget_set_support_multidevicegtk_widget_set_tooltip_textgtk_widget_set_valigngtk_widget_set_vexpandgtk_widget_set_visiblegtk_widget_set_windowgtk_widget_showgtk_widget_show_allgtk_widget_size_allocategtk_widget_unparentgtk_window_add_accel_groupgtk_window_newgtk_window_presentgtk_window_set_default_size gtk_window_set_modal gtk_window_set_positiongtk_window_set_resizablegtk_window_set_screengtk_window_set_titlegtk_window_set_titlebargtk_window_set_transient_forcairo_arccairo_clipcairo_clip_preservecairo_close_path cairo_create cairo_curve_tocairo_destroy#cairo_fill%cairo_fill_preserveGcairo_get_current_pointRcairo_get_matrixmcairo_line_toncairo_maskpcairo_matrix_initwcairo_matrix_rotatexcairo_matrix_scale{cairo_matrix_translatecairo_move_tocairo_new_pathcairo_new_sub_pathcairo_paintcairo_paint_with_alphacairo_pattern_add_color_stop_rgbcairo_pattern_add_color_stop_rgbacairo_pattern_create_linearcairo_pattern_create_radialcairo_pattern_destroycairo_rectanglecairo_rel_line_tocairo_rel_move_tocairo_restorecairo_rotatecairo_savecairo_scalecairo_set_dashcairo_set_line_capcairo_set_line_widthcairo_set_matrixcairo_set_sourcecairo_set_source_rgbcairo_set_source_rgbacairo_set_source_surface#cairo_show_text'cairo_stroke/cairo_surface_destroy^cairo_text_extentsdcairo_transformecairo_translategdk_cairo_rectanglegdk_cairo_set_source_pixbufgdk_cairo_set_source_rgba-gdk_cursor_new_from_name5gdk_device_get_axes6gdk_device_get_axis@gdk_device_get_n_axesBgdk_device_get_nameFgdk_device_get_seatKgdk_device_get_window_at_position_gdk_device_tool_get_serial`gdk_device_tool_get_tool_typeggdk_display_beephgdk_display_closeogdk_display_get_default_screenygdk_display_get_name}gdk_display_get_typegdk_display_manager_getgdk_display_manager_list_displaysgdk_display_opengdk_drag_statusgdk_event_freegdk_event_get_coordsgdk_event_get_devicegdk_event_get_device_toolgdk_event_get_event_sequencegdk_event_get_source_devicegdk_flushgdk_frame_clock_get_frame_timegdk_gl_context_get_use_esRgdk_offscreen_window_get_surfaceSgdk_offscreen_window_set_embedderjgdk_rectangle_intersectqgdk_rgba_parsetgdk_screen_get_defaultugdk_screen_get_displaygdk_screen_get_root_windowgdk_seat_grabgdk_threads_add_timeoutgdk_window_coords_to_parentgdk_window_create_similar_surfacegdk_window_destroy gdk_window_geometry_changedgdk_window_get_device_position$gdk_window_get_height6gdk_window_get_user_data9gdk_window_get_widthAgdk_window_invalidate_rectOgdk_window_move_resizePgdk_window_newbgdk_window_set_cursorgdk_window_set_user_datagdk_window_showepoxy_glAttachShader-epoxy_glBindBufferXepoxy_glBindVertexArrayepoxy_glBufferDataepoxy_glClearepoxy_glClearColor-epoxy_glCompileShaderepoxy_glCreateProgramepoxy_glCreateShaderepoxy_glDeleteBuffersepoxy_glDeleteProgramepoxy_glDeleteShaderepoxy_glDetachShaderepoxy_glDisableVertexAttribArrayepoxy_glDrawArraysYepoxy_glEnableVertexAttribArrayepoxy_glFlushepoxy_glGenBuffersepoxy_glGenVertexArraysepoxy_glGetProgramInfoLog1epoxy_glGetProgramivSepoxy_glGetShaderInfoLogWepoxy_glGetShaderivepoxy_glGetUniformLocation|epoxy_glLinkProgramepoxy_glShaderSource* epoxy_glUniformMatrix4fv> epoxy_glUseProgramq epoxy_glVertexAttribPointergdk_pixbuf_compositegdk_pixbuf_copy_area!gdk_pixbuf_fill9gdk_pixbuf_get_height@gdk_pixbuf_get_typeAgdk_pixbuf_get_widthBgdk_pixbuf_loader_closeEgdk_pixbuf_loader_get_pixbufGgdk_pixbuf_loader_newKgdk_pixbuf_loader_writePgdk_pixbuf_newZgdk_pixbuf_new_from_resource[gdk_pixbuf_new_from_resource_at_scaleg_action_map_add_actiong_action_map_add_action_entriesOg_application_add_main_optionYg_application_command_line_get_options_dictrg_application_quitug_application_rung_bus_get_syncg_bus_watch_name*g_dbus_connection_call_syncg_file_icon_get_typeg_input_stream_closeg_input_stream_readg_resources_enumerate_childreng_resources_lookup_datag_resources_open_stream~g_simple_action_group_newg_simple_action_newg_simple_action_new_stateful@g_static_resource_finiAg_static_resource_get_resourceBg_static_resource_initg_themed_icon_newg_themed_icon_new_with_default_fallbacksg_array_append_vals g_array_remove_indexg_array_sized_new!g_ascii_strup"g_ascii_table+g_assertion_message_exprg_build_filenameg_bytes_get_datag_bytes_get_sizeg_bytes_unref)g_date_time_format?g_date_time_new_from_unix_utcKg_date_time_unrefVg_dir_closeXg_dir_openZg_dir_read_namehg_error_freeig_error_matchesug_file_testg_filename_to_utf8g_freeg_get_home_dirg_hash_table_addg_hash_table_destroyg_hash_table_insertg_hash_table_iter_initg_hash_table_iter_nextg_hash_table_lookupg_hash_table_new_fullg_hash_table_removeg_intern_static_stringZg_list_appendcg_list_freeeg_list_free_fullrg_list_prependvg_list_remove_linkxg_list_sort}g_logg_main_context_iterationg_mallocg_malloc0g_memdupg_once_init_enter!g_once_init_leaveDg_path_get_dirnameRg_print\g_ptr_array_add`g_ptr_array_freebg_ptr_array_newrg_quark_from_static_stringg_random_double_rangeg_random_int_rangeg_regex_match_simpleg_return_if_fail_warning&g_setenv-g_slice_alloc0/g_slice_free1=g_slist_freecg_source_removemg_source_set_name_by_idxg_spawn_command_line_asyncg_str_equalg_str_has_suffixg_strchompg_strcmp0g_strconcatg_strdelimitg_strdupg_strdup_printfg_strfreevg_string_appendg_string_append_printfg_string_freeg_string_newg_strndupg_strnfillg_strsplitg_strv_lengthMg_timeout_addNg_timeout_add_fullOg_timeout_add_secondsg_utf8_collateg_utf8_get_charg_utf8_pointer_to_offsetg_utf8_validateg_variant_dict_lookupg_variant_get_doubleg_variant_new<g_cclosure_newmg_object_add_weak_pointerng_object_bind_propertyog_object_bind_property_fullrg_object_class_install_propertieswg_object_connect|g_object_freeze_notify}g_object_get~g_object_get_datag_object_get_qdatag_object_newg_object_notify_by_pspecg_object_refg_object_ref_sinkg_object_setg_object_set_datag_object_set_data_fullg_object_set_qdata_fullg_object_thaw_notifyg_object_unrefg_object_weak_refg_param_spec_booleang_param_spec_uintg_signal_connect_datag_signal_emit_by_nameg_signal_handlers_disconnect_matchedg_signal_lookupg_signal_override_class_closure g_type_add_instance_privateg_type_add_interface_staticg_type_check_instance_is_ag_type_class_adjust_private_offset g_type_class_peek_parent*g_type_ensure,g_type_from_nameEg_type_nameTg_type_register_static_simplelg_value_get_booleanog_value_get_double~g_value_get_uintg_value_set_booleang_value_set_intg_value_set_uintg_value_take_string'libintl_gettextChb_face_destroyrhb_font_get_facehb_ft_font_createhb_language_to_stringhb_ot_layout_language_get_feature_tagshb_ot_layout_script_get_language_tagshb_ot_layout_table_get_script_tagshb_ot_tag_to_languagehb_script_from_iso15924_taghb_tag_from_stringhb_tag_to_stringpango_attr_foreground_newpango_attr_list_insertpango_attr_list_newpango_attr_list_unref"pango_attr_shape_new_with_dataBpango_context_get_font_mapGpango_context_get_metricsopango_font_description_freeppango_font_description_from_stringpango_font_description_set_sizepango_font_map_load_fontpango_font_metrics_get_ascentpango_font_metrics_unrefpango_layout_get_contextpango_layout_get_font_descriptionpango_layout_get_pixel_size0pango_layout_new2pango_layout_set_attributes4pango_layout_set_ellipsize5pango_layout_set_font_description>pango_layout_set_text?pango_layout_set_widthpango_tab_array_freepango_tab_array_newpango_tab_array_set_tabpango_cairo_context_set_shape_rendererpango_cairo_layout_pathpango_cairo_show_layout pango_cairo_update_layoutpango_fc_font_lock_facepango_fc_font_unlock_faceDeleteCriticalSectionEnterCriticalSectionGetCurrentProcessGetCurrentProcessIdGetCurrentThreadIdGetLastErrorGetModuleHandleAEGetProcAddressdGetStartupInfoA{GetSystemTimeAsFileTimeGetTickCountInitializeCriticalSection&LeaveCriticalSectionQueryPerformanceCountergSetUnhandledExceptionFiltertSleepTerminateProcessTlsGetValueUnhandledExceptionFilterVirtualProtectVirtualQuery7__dllonexit:__getmainargs;__initenvD__lconv_inith__set_app_typek__setusermatherry_acmdln_amsg_exit_cexit_errno_fmode0_initterm4_iob_lock2_onexitFcallocPexit`fprintfgfreerfwritemallocmemcpysignalsprintfstrchrstrcmpstrlenstrncmpstrpbrkstrstrstrtol_unlock;abortDatoiWvfprintfPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPlibgtk-3-0.dllPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPlibcairo-2.dll(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(P(Plibgdk-3-0.dll0I0N0p0u0z000000141<1D1L1S1X1]11122(262?2U2222222233/343V33333333334414B4I4V4f4u444444555,555E5N5r555555555Q6Y6a6i6v6666666667C7P7Z77848B8O8]8q899*9F9j9999O:W::::.;9;@;;;;;;;;<>+>3>;>K>c>w>>>>>>>?7?D?s?????? '040c0p00000001u11122)2:2R2g2t2|22222222c333 4_444>5z555.6g66n7z7778889::;;;Q??N?q?y???0.060w000000011/1G1O1W1f111G2O2Y2h23385h5p5555h6{66666666777Q7d7 8[8c8o89f9n9z99q:y::::;%;-;A;;;;;; >">/>7>D>\>d>l>y>>>>/?7???I?f?o?~????@0'000111122(20282@2H2S2^2i2t2222222222222333$363A3L3W3b3m3x3333333333333444(434>4I4T4_4j455'5;5[5k5555555656M6Z6b6o6666666j7r7z777777777@888+9O9o99W:::A;V;f;v;;;6R>j>>>>>>>???P00 1161R1Z1l1y111111122J222233#343Y3p333 4&454B4X4f4~444444 55E5T5555m6t6M8h8{888888899&9.9R9k9999|::::;;<;;;;;] >>)>F>^>f>n>>>>? ?t?|???`00$000142n2222 3&3B3J3\3i333333 4444<4444/575D5U5p666 77K77777778 8838K8S8[88888 99#9-999G9S9_9k9u999999999999:::+:7:C:O:[:g:s:::::::::::: ;;0;K;;2 >.>G>Z>i>z>>>>>>>>>>?%????p000S111162@2Z223q3w33334W44555 66*6B6W6d6l6y66666 777788889 939;9a997:J:x:;;;<<<<="=h={========>&>.>6>a>p>*?7?Q?t??????050000111112)212I2j2r22222 33;3X3d33 44G4j4r4444455)5:5R5g5t5|5555555667N7~777777888&8;8S8[8c888Z9999 :F:&;<;c;j;~;;==>0>R>{>>I00U112Q223,3=33333L4h444535X5g5t5556x8888888899&9.9F99999: :":2:::I:u::::;&;H;p;;;;;;<"`>x>>>>>>? 0|001H1[1j111111112 22+2=2h2222222 30383E3U3~333333 44'4H4U444455+5T5a55555566X666688 9959T9d9l9y999999999 ::?:h::-;=;;;;<,<==>>Xr0011p333333h4p4666 7|77889(9V9x99999:d<+=\=> >,>j?~????H]2i2u2222!5+575E5U5a5q5}555558899X:k:;;n<<8>D>?'?b0|0000222 3=4E4t4}555F7Y7h7x77777777888889"969@999999:H:k::;;$;;;; <<<<<==$=1=I=Q=Y=q===== >0><>b>j>>>>>>??@?n?v?~?????? 0$0.080>0D0\000011 121Z111111222L3T3\3a3v33334R4Z4h4s44444445J5Q5h5q5555556P6666666"7e7v77777777A888889989@9M9m9u9999:J:Z:::;C;S;;; <9$>1>I>Q>Y>f>>>"?@?s????g0q000000%1/191a1i1q111D2p2222223.3O33g5z5555555556696Q6Y6a6n6667 757=7777777789L999::::;;F;Y;i;n;y;;;;;;"<<u>> ?&?.?R?Z???????000*0>0F0V051282K2Z2v2222222222$3,343<34@4d4l4444$5-5F5T5]5o5555/6866666666$7E7{7777777788+8W8_8k888888889K9S9q999999 ::::::;;;);A;I;Q;^;~;;;;;<:>>? ??_?g?t?????80K0Z0v0000000011@11112]22222)3D3L3334 4c444465555526666<7D7e7x77777777788!808g8o8|888889E9f9999999999:!:2:E:V:i:z:::::::: ;;.;A;R;e;v;;;;;;;;;<<<=b====>>?!?*?6?F?[?k????????? $0)030H0[0j000000001$1<1D1L1s11$2\2d22234455-5F5b5z55555555g66671777A7]7r77788889959L9]9b9999999999":1::#;0;a;, >L>\>g>>>>>>?S??????0 0060O0g0t000000000 1'1/1h1y1111112.2:2W2a2v222233R333345(5;5J5f555555555560666&77778"8:8B888899(989E9R9_9|999999999::):/;N=>@344Q5Y5556666667#737N7\777777777778#8-878A888(9;9J9f9999999999:(:P::::;K<<.=O=}==P0^2f23 3038333C44444455,5S5X5d5s5z55555555566H6[6j6666666666 7777888 9&9R9\9d99 ::: ;:;K;c;k;s;;;;<.<=1>I>Q>Y>h>>?E?M??`0^0f01&1=2222 33Y33331494X4k4z44444444555J55666666!777J7Y7j7777777777*8M8899C:y::;;;;;;;<<"j>r>>>>>???'?A?G?a???????0 00&0E0R0g0t0000000"111112E22$3D33334,4C4444&5[555556646A6I6V6s666666(707<7U77777778"8/8D8Q8i8q8y888889,9H9k999999999:+:D:`:u:::::::U;;;;;;;<3<;<<<<=V=k=x========= >!>)>1>X>>55556 6d6667)717U7]77777858:8U8Z8w888888888 9&929C9T9n9v9~9999999999999::":::B:J:_:x::::::::::::;*;4;h;y;;;;;;&<<< ==>>>>>???&?;?S?[?c??????T0[0q0x00111$1011111'2@222k333m4]5j5555566/676?6G6O6W6_6g6o6w666666666677%757E7r7777777788>8N8Z8g8w88888889!9G9Z9i9z9999999 :$:,:4:A::8;D;o;w;;;;;;;<(<7> ?>?J?m?z?D0@0n0000O1111111122,242<2N2W2d222233C3V3333334P4444555556+6>6N6i666666667 77L7!81898Y8a888888888899%9-9E9M9U9m9u9}9999999::=:E:e:m:::::::;;;=;E;e;m;;;;;;;;<%<5$>@>\>x>>>>>>??4?P?`?|???????000@0\0l0000000141D1`1|111111<2X2h2222222233 3<3X3h33333334$444P4`4|44444455,5H5d5t5555606X6{66666 77777 848v888889L9U99999: :\:h:::::::::; ;;Z;;;;;;;;< <<+<@>>>"?+?a?z???K0W0_0o00002222223 3v55C66667.7>7Y77777777788C88819993:s::;;;%;>u>>>>>>>-?=?M?n????"070|0000011111e2m22222e3333333333344589:o;H<[1>r>>+?>?M?f?????????0.01123'3r33333334`4|444444>5Z5~555555,6H6l6t6666 7#7G7O7o777788.88888888829f999999!:;;8;>;;;;;; <<<<<<<=,=====*>C>c>>>>>7?A?H?s?B1W1111122223 3Q3333333333344&4.4>4F4V4^4n4v44444444444 555'545<5I5Q5^5f5p5555555566G6666666666777"7,767N7V7]77777777\88 9(:v:::::`;j;;;<^z>>>>>>>??N?V???6000011k111112)2i223-3533333;4M5U5%7x777)8X8_888888888888889 9A9a9999:F:K:::: ;(;c;h;m;;;< |n222213F3^334444|5556 666M667777!8v9~99:; <<e>m>}>>>!?1?A?F?V?[?k?p????????00*020F0s0{00011112'242Y22233&3.3F3N3v33$44I555555555555555556 666"6*626:6B6J6R6Z6b6j6r6z666666666666666667 777"7*727:7B7J7R7Z7b7j7r7z777777777777777778 888"8*828:8B8J8R8Z8b8j8r8z888888888888888889 999"9*929:9B9J9R9Z9b9j9r9z99999999999999999: :::":*:2:::B:J:R:Z:b:j:r:z:::::::::::::::::; ;;;";*;2;:;B;J;R;Z;b;j;r;z;;;;;;;;;;;;;;;;;< <<<"<*<2<: >>>">*>2>:>B>J>R>Z>b>j>r>z>>>>>>>>>>>>>>>>>? ???"?*?2?:?B?J?R?Z?b?j?r?z?????????????????@0 000"0*020:0B0J0R0Z0b0j0r0z000000000000000001 111"1*121:1B1J1R1Z1b1j1r1z111111111111111112 222"2*222:2B2J2R2Z2b2j2r2z222222222222222223 333"3*323:3B3J3R3Z3b3j3r3z333333333333333334 444"4*424:4B4J4R4Z4b4j4r4z444444444444444445 555"5*525:5B5J5R5Z5b5j5r5z555555555555555556 666"6*626:6B6J6R6Z6b6j6r6z666666666666666667 777"7*727:7B7J7R7Z7b7j7r7z777777777777777778 888"8*828:8B8J8R8Z8b8j8r8z888888888888888889 999"9*929:9B9J9R9Z9b9j9r9z99999999999999999: :::":*:2:::B:J:R:Z:b:j:r:z:::::::::::::::::; ;;;";*;2;:;B;J;R;Z;b;j;r;z;;;;;;;;;;;;;;;;;< <<<"<*<2<: >>>">*>2>:>B>J>R>Z>b>j>r>z>>>>>>>>>>>>>>>>>? ???"?*?2?:?B?J?R?Z?b?j?r?z?????????????????P0 000"0*020:0B0J0R0Z0b0j0r0z000000000000000001 111"1*121:1B1J1R1e11111 2A2S2_2v22222223&3;3L3T3\3k333333333334 444+444444$5u55555606M6x66667'7D7Q7f7m7{77777788 8"8/8=8B8O8d8u8{8888888888 99=9T9n999999(:>:R:: <<<<%>!>+>C>I> ?!?/?6?;???????`0!0/060F0a0o0u0|00000111"1(1w1111112e4s44444G55 6W6667777&7.767>7F7N7V7^7f7n7v7~777777777777778&8Z8s8z8888888949T9l999999::D:L::::p 0$0@0D0`0d000000000000000000000000000000000L1P1`1d1t1x1111111111111111111222 2 2$2(2,2024282<2@2D2H2L2P2T2X2\2`2d2h2l2p2t2x2|222222222222222222222222222222222333 33333 3$3(3,3034383<3@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|333333333333333333333333333333333444 44444 4$4(4,4044484<4@4D4H4L4P4T4X4\4`4d4h4l4p4t4x4|444444444444444444444444444444444555 55555 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5d5h5l5p5t5x5|555555555555555555555555555555555666 66666 6$6(6,6064686<6@6D6H6L6P6T6X6\6`6d6h6l6p6t6x6|666666666666666666666666666666666777 77777 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|777777777777777777777777777777777888 88888 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|888888888888888888888888888888888999 99999 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|999999999999999999999999999999999::: ::::: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:::::::::::::::::::::::::::::::::;;; ;;;;; ;$;(;,;0;4;8;<;@;D;H;L;P;T;X;\;`;d;h;l;p;t;x;|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<< <<<<< <$<(<,<0<4<8<<<@> ><>@>\>`>|>>>>>>>? ?@????0 0@0`00001 1@11112 2`22223 3@3`33334@4`4444 5@5`55555566 6$6(6,64686<6@6L6X6\6`6d6h6p6t6x6|666666666666666666666666667777 7$7(7,70787<7@7D7L7P7T7X7`7d7h7l7t7x7|777777777777777777777777888 88$8(8,80848@8L8P8T8X8\8h8t8x8|888888888888888888888888899 9999 9$9,9094989@9D9H9L9T9X9\9`9l9x99999999999999999999:: :::@:D:H:L::::::::::::::::::::; ;$;(;,;4;8;<;@;`;d;h;l;t;x;|;;;;;;;;;;;;;;;;;; <$<(<,<4<8<<<@>>>>>>> 888 88888 8$8(8,8 5(50585@5H5P5X5`5h5p5@6H6P6X6`6h6p6x6666666666666666677777777777888 88888 8$8(8,8084888<8@8D8H8L8P8T8X8\8`8d8h8l8p8t8x8|8555555555;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<< <<<<< <$<(<,<0<4<8<<<@ `QB @RB G  RB RB SB7 _ @TB W  UBI UB UB VBK  `ZB \Bj   p^B9 dB+ @dBp! " dB% peBP' eB&( eB* fB, fB&z- fB+9. gB "GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/crtexe.c@charsize_t%unsigned intintuintptr_tMwchar_tbshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charo_EXCEPTION_RECORDP ExceptionCode ExceptionFlags H iExceptionAddress N NumberParameters ExceptionInformation S! _CONTEXTContextFlagsDr0Dr1 Dr2  Dr3 Dr6 Dr7 FloatSaveSegGsSegFsSegEsSegDsEdiEsiEbxEdxEcxEaxEbpEipSegCsEFlagsEspSegSsExtendedRegisters WINBOOLBYTEXWORDDWORDCfloatLPBYTEsigned charshort intlong long unsigned intLONG_PTR6ULONG_PTR7CPVOID CHAR LONG[ LPSTRIu PLONGh HANDLE ULONGLONG EXCEPTION_ROUTINE  i N  N PEXCEPTION_ROUTINE_FLOATING_SAVE_AREApControlWordStatusWordTagWordErrorOffset ErrorSelectorDataOffsetDataSelectorRegisterAreaCr0NpxStatel 7O FLOATING_SAVE_AREA ,7 CONTEXT!! PCONTEXT#M, =c7 EXCEPTION_RECORD o PEXCEPTION_RECORD c_EXCEPTION_POINTERS H |ContextRecord <Next=prev=_EXCEPTION_REGISTRATION_RECORD=CmHandlerhandlerFiberDataNVersion_NT_TIB1ExceptionList=StackBaseNStackLimitNSubSystemTibN mArbitraryUserPointerNSelf1 NT_TIB PNT_TIBV7_IMAGE_DOS_HEADER@ e_magice_cblpe_cpe_crlce_cparhdre_minalloc e_maxalloc e_sse_spe_csume_ipe_cse_lfarlce_ovnoe_res e_oemid$e_oeminfo&e_res2 (e_lfanewh<  7  7 IMAGE_DOS_HEADER\ PIMAGE_DOS_HEADER \_IMAGE_FILE_HEADER& Machine'NumberOfSections(TimeDateStamp)PointerToSymbolTable*NumberOfSymbols+ SizeOfOptionalHeader,Characteristics- IMAGE_FILE_HEADER. _IMAGE_DATA_DIRECTORYb7 VirtualAddresscSized IMAGE_DATA_DIRECTORYe _IMAGE_OPTIONAL_HEADERi Magicklymnop qBrBaseOfDatastpu &v$ w(}x*y,kz.{0|2}46~8<@ DXFUHLPhTX4\ ` 7 ! 7 IMAGE_OPTIONAL_HEADER32T PIMAGE_OPTIONAL_HEADER32b T _IMAGE_OPTIONAL_HEADER64Magicy Bp &$ (}*,k.02468<@ DXFUHPXh`h4l p PIMAGE_OPTIONAL_HEADER644h _IMAGE_NT_HEADERSSignatureFileHeader OptionalHeader!  PIMAGE_NT_HEADERS32: PIMAGE_NT_HEADERS PIMAGE_TLS_CALLBACK N  N h HINSTANCE__AunusedHINSTANCERPTOP_LEVEL_EXCEPTION_FILTERLPTOP_LEVEL_EXCEPTION_FILTERX_STARTUPINFOADcb lpReserved!{lpDesktop"{lpTitle#{ dwX$dwY%dwXSize&dwYSize'dwXCountChars( dwYCountChars)$dwFillAttribute*(dwFlags+,wShowWindow,0cbReserved2-2lpReserved2.4hStdInput/8hStdOutput0<hStdError1@STARTUPINFOA2STARTUPINFOI+(double long doubleLStagCOINITBASE COINITBASE_MULTITHREADEDVARENUM VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_PVFV F_PIFV " Knewmode _startupinfo 2 __uninitialized__initializing__initialized _ _TCHAR  __readfsdwordDC!OffsetDC"retDC _InterlockedExchange4!Target4!Value:# _InterlockedCompareExchange$4!ExChange$%_TEB&NtCurrentTeb'InterlockedCompareExchange )InterlockedCompareExchange@12h ( ) )Exchange )h( )h&#h'InterlockedExchange #InterlockedExchange@8h})Target # )Value #h*duplicate_ppstrings!ac!av"avl"i"n+"l,__mingw_invalidParameterHandlerq@o-expressionqM-functionrM-filesM-linet -pReservedu.check_managed_app]"pDOSHeader_ "pPEHeader`"pNTHeader32aA "pNTHeader64b/pre_c_init~@0o@612333@4b@%!J5t24n@0!_5t 6@;!4@%!|5t17 @F!8t,pre_cpp_init0@>7j@Q!5t Z5t Z5t Z5t Z/__tmainCRTStartupp@C9lpszCommandLineU:StartupInfo 9inDoubleQuote; 9lock_free9fiberid9nested"<@=@>c?@20@@ >w>@A?@@ *>w>t@hB}=@XC>>1X333[;p36o@\!4z@m!5tw7@!5tw7O@m!5tv2$#C+d@ >o@aDd@ $>%@E@5t Ev@05tv5t25tv6~@!E@G8t4@!_5t@6@!6@!6@!6@!40@!5tO4R@!8t8t4@!8t8t6@!Fy@5tuGWinMainCRTStartup@(Hret6@"I@GmainCRTStartup@kHret6@"I@:argcK Z:argvQ Z:envpR ZJargretU:mainretV Z:managedappW Z:has_cctorX Z:startinfoYK ZK__globallocalestatusLK_imp___fmode-1K_dowildcard4K_newmode nK_imp____initenv vK_imp___acmdln {K__native_startup_state #K__native_startup_lock LK_image_base__' K_imp___commode21K_fmode1 %MK__xi_a: K__xi_z;  ;MK__xc_a<0K__xc_z=0K__dyn_tls_init_callback@vK__onexitbeginBK__onexitendCKmingw_app_typeEN__mingw_winmain_hInstanceGA(ZN__mingw_winmain_lpCmdLineH(ZN__mingw_winmain_nShowCmdIpBK__mingw_oldexcpt_handlerZ{Nmingw_pcinitf%ZNmingw_pcppinitgZK_MINGW_INSTALL_DEBUG_MATHERRiOmingw_initltsdrot_forceWOmingw_initltsdyn_forceXOmingw_initltssuo_forceYOmingw_initcharmaxZP P Pgg PP22 Qstrlenstrlen6RmallocmallocSmemcpymemcpyPMM\PP)Q__main__mainLQmainmain Q_cexit_cexit9P@@ PKK6Rexitexit2Ptm AGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden application_demo.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demop@Tcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerM&GQuark$GError)M_GError +domain-1code.message/+GData$ _GData B$ G_FILE_TEST_IS_REGULAR G_FILE_TEST_IS_SYMLINK G_FILE_TEST_IS_DIR G_FILE_TEST_IS_EXECUTABLE G_FILE_TEST_EXISTS? 5 G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@ G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK| GType ~ GTypeClass _GTypeClass ?g_type  GTypeInstance U_GTypeInstance g_class _GObject g_type_instance ?ref_count qdata GInitiallyUnowned  K G_BUS_TYPE_STARTER G_BUS_TYPE_NONE G_BUS_TYPE_SYSTEM G_BUS_TYPE_SESSION GDBusConnection !c _GDBusConnectionK -F GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GtkWidget.W_GtkWidgetparent_instancepriv GtkWidgetPrivateB _GtkWidgetPrivateFon_name_vanished uname on_name_appearedp@ f uname name_owner  @9@ @ do_application_demo1@ toplevel1watch3 Z@ command? error@$l!@ b"t$B"t8! @ w"tl!4@ "t0"t@"tdB@@! !L@, "tgBY@7 !@C "tmB"thB"t0"t 0!!@O  "t2"t0"t0!u@Z s "tVB"tB"t B"txB"ts"t0"t0"t  "t$0"t(0#@e "t2"tVB"t0"t p@"t@"t0"t0name_seen$ Zplaceholder Z$k$AA %55Q%&g_logg_logf%C%[$PP $''%bb2%qq%E<@GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden assistant.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demop@doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatgdouble:gpointerM0GData$>_GData1 GType~ GTypeClassm _GTypeClass g_typeL GTypeInstance _GTypeInstance g_classZGCallbackV*  "G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObjectF_GObject g_type_instanceref_countqdataFGInitiallyUnownedF -tGDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST  JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE V"GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget .3_GtkWidget _   GtkWindow 0p_GtkWindow 5bin 7M 9GtkWidgetPrivate B_GtkWidgetPrivate"GtkContainer-_GtkContainer13"6GGtkContainerPrivate.1_GtkContainerPrivateGtkBin-[_GtkBin136GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivateGtkBox/_GtkBox358<GtkBoxPrivate0,_GtkBoxPrivateGtkEntryFR_GtkEntryJ}M"OGtkEntryPrivateG_GtkEntryPrivate} GeGTK_ASSISTANT_PAGE_CONTENTGTK_ASSISTANT_PAGE_INTROGTK_ASSISTANT_PAGE_CONFIRMGTK_ASSISTANT_PAGE_SUMMARYGTK_ASSISTANT_PAGE_PROGRESSGTK_ASSISTANT_PAGE_CUSTOMGtkAssistantPy_GtkAssistant TparentV_YGtkAssistantPrivateQ_GtkAssistantPrivateeGtkProgressBar,_GtkProgressBar02 parent2"5g GtkProgressBarPrivate-O _GtkProgressBarPrivate2 on_assistant_close_cancel,p@ ,data, v. @on_assistant_prepare5@d 5page5data5 7/n_pages7Xtitle8$w@n ts@ ts@ tBtv@ tstw@ tw@on_assistant_apply%@#@ %data% @ tdt0@t0apply_changes_gradually0@Z data fraction@@[@@"t ?on_entry_changedJ@j JdataJ vLMpage_numberNtextO%@W ts@-l ts@8 t@D tstvt0@Dtstvt1create_page4 vcreate_page3 v labelcreate_page2tQ vt boxv checkbuttonvcreate_page1\ v\ box^ label^ entry^!do_assistant@do_widget"Q @#f C$%q V%| t% @O#t0t<@Z>tst<@eVtB@p}tst0t 0t0@{@twt1@twt37@ptstwt1t 1t0c@&twtBt@t vt0t0k@;tsw@Wtvts@}tvtstB@tvtst1" @#' $%2 %= @Ot1t<@Ztst<@tB@pDtst0t 0t0@Yts@utvts#@Dtvtst17@tvtst>B& =@^# '=@^% I@etHBS@ts_@2tvtss@Ttvtst2@Dvtvtst1@tvtstB& @W# @@t3@t3@@ts@ tst4 @?tstB9@Dtst0@(@E@V@s@t t ,@'t@3n@tBtp@t , Zt0t0@'tBtp@t , Zt0t0@[tBt@t 0t0t0 @tBt@t 0t0t0(v , Z)progress_bar ( Z* k++++ ,g_freeg_freeG+$$*-->+XX\+``O+99*++TTP+~~+44[+T++  * 9** x++;;++J* r+BBG* 2*WW S+*nn * * ?GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden builder.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo @L charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1guint7floatdoublegpointerM GData$_GDataGVariant"/_GVariant  GType~ GTypeClassg _GTypeClass g_typeF GTypeInstance _GTypeInstance g_classTGCallbackV  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject @_GObject g_type_instance ref_count qdata @GInitiallyUnowned @GActionMap 4_GActionMapGActionGroup 5_GActionGroupGSimpleAction 7_GSimpleActionGActionEntry )$_GActionEntry 7name 9activate ;parameter_type ?state A change_state Cpadding H:)  GDK_SHIFT_MASKGDK_LOCK_MASKGDK_CONTROL_MASKGDK_MOD1_MASKGDK_MOD2_MASKGDK_MOD3_MASK GDK_MOD4_MASK@GDK_MOD5_MASKGDK_BUTTON1_MASKGDK_BUTTON2_MASKGDK_BUTTON3_MASKGDK_BUTTON4_MASKGDK_BUTTON5_MASKGDK_MODIFIER_RESERVED_13_MASK GDK_MODIFIER_RESERVED_14_MASK@GDK_MODIFIER_RESERVED_15_MASKGDK_MODIFIER_RESERVED_16_MASKGDK_MODIFIER_RESERVED_17_MASKGDK_MODIFIER_RESERVED_18_MASKGDK_MODIFIER_RESERVED_19_MASKGDK_MODIFIER_RESERVED_20_MASKGDK_MODIFIER_RESERVED_21_MASK GDK_MODIFIER_RESERVED_22_MASK@GDK_MODIFIER_RESERVED_23_MASKGDK_MODIFIER_RESERVED_24_MASKGDK_MODIFIER_RESERVED_25_MASKGDK_SUPER_MASKGDK_HYPER_MASKGDK_META_MASKGDK_MODIFIER_RESERVED_29_MASK GDK_RELEASE_MASK@GDK_MODIFIER_MASK\ -GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST  :% GTK_ACCEL_VISIBLEGTK_ACCEL_LOCKEDGTK_ACCEL_MASKGtkAccelGroup B: _GtkAccelGroup ]m parent _1c ` GtkAccelGroupPrivate D _GtkAccelGroupPrivate% m GtkBuilder# _GtkBuilder] _1caS GtkWidget. _GtkWidget( c GtkWindow09 _GtkWindow5e bin7 c9  GtkWidgetPrivateB _GtkWidgetPrivate k GtkContainer- _GtkContainer1 widget3 c6 GtkContainerPrivate. _GtkContainerPrivate GtkBin-- _GtkBin1\ container3 c6 GtkBinPrivate.q _GtkBinPrivate\ GtkWindowPrivate. _GtkWindowPrivate GtkDialoga _GtkDialog k m( cp GtkDialogPrivateb _GtkDialogPrivate GtkBuilderPrivate)? _GtkBuilderPrivate& quit_activate @  \ -| :   -@:help_activate"0@ # \"A|#: $=@FȑBabout_activate@@? \|:  buildere Uabout_dlg h X@Z ttܑB h@f tB r@q ts!@|"do_builder0 @#do_widget0 2 0 Ztoolbar3 actions4 accel_group5 item6 $@Mbuilder:e L @tB @tst0 @ftstB @t%@ G@Ot B&tt 0 Zt0t0 W@fntstB%_@ o@tB%t@ @tvt pBt3 @t+Btv%@ @tv @ftst/B @Kt8Btvt nt4t1 @fjtstAB @@t8Btvt ot4t1 P@ftstKB |@t8Btvt st4t1 @f tstUB @>t8Btvt qt4t1 @f]tst_B @t8Btvt ct4t1  @ftstiB 0 @t8Btvt xt4t1 @ @ftstrB l @1t8Btvt vt4t1 | @fPtst}B @t8Btvt  t0t1 @ftstB @t8Btvt  t0t1'!@tܑBts&t %@*%@:%@6!)(win_entries) pB)hhk*g_printg_print)JJ 6++)t+CC+)){{)  ))G+))K+ X)/+ +)aa)33 =)S)x GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden button_box.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo!@g charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7floatdoubleGData$_GDataGType~GTypeClass%_GTypeClassK g_typeGTypeInstancea_GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags _GObject 9g_type_instanceKref_countqdataGInitiallyUnowned V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget . _GtkWidget parent_instance 9g O GtkWindow 0 _GtkWindow 5bin 7g 9_GtkWidgetPrivate B6_GtkWidgetPrivateGtkContainer -i _GtkContainer 1widget 3g 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin1 ] 3Ug 6.GtkBinPrivate._GtkBinPrivate GtkWindowPrivate .L_GtkWindowPrivate4  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkBox/ _GtkBox3] 5Ug 8GtkBoxPrivate0_GtkBoxPrivateGtkButtonBox- _GtkButtonBox1@box3g 6qGtkButtonBoxPrivate.[_GtkButtonBoxPrivate@ ] GTK_BUTTONBOX_SPREAD GTK_BUTTONBOX_EDGE GTK_BUTTONBOX_START GTK_BUTTONBOX_END GTK_BUTTONBOX_CENTER GTK_BUTTONBOX_EXPANDcreate_bbox I!@horizontal jtitle ,spacing layout frameIbboxI;buttonId"!@StR8!@^t1J!@itst5V!@ttvtsf!@%tstr!@Atstw~!@YtB!@!@twts!@tB!@!@tts!@tB!@!@tts!@^t0do_button_box-I"@Sdo_widget-Iwindow/I4 Zmain_vbox0Ivbox1Ihbox2Iframe_horz3Iframe_vert4I"@("@9"@Q"@ t0b"@ ts"@"@ tB"@8 tBtt 4 Zt0t0"@iL t:"@ f t1t0"@t{ tv#@S tȒB+#@ tvtwt1t 1t:?#@  t1t0Q#@i tst:]#@t twtsx#@: P1RBQ(t1#@a tst1t 1t0#@ P1RBQ(t2#@ tst1t 1t5#@ P1RBQ(t3$@ tst1t 1t55$@' P1RBQ(t4Y$@N tst1t 1t5t$@v P1RBQ(t5$@ tst1t 1t5$@ P1RBQ0t6$@ tst1t 1t5$@S tB%@1 tvtwt1t 1t:%@ K t0t0,%@if tst:8%@t twtsP%@ P0RBQ:t1t%@ tst1t 1t0%@ P0RBQ:t2%@tst1t 1t5%@EP0RBQ:t3%@ltst1t 1t5&@P0RBQ:t4(&@tst1t 1t5@&@P0RBQ:t5d&@tst1t 1t5y&@/P0RBQ0t6&@tst1t 1t5 U jl l K K   n6 6 f % % bJ J S kw w x a a    ? ? P T44d GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden changedisplay.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo&@ ,charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8}signed charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatgdouble:doublegpointerM?PGData$^_GDataGSList%t _GSList' data)) next*fQ GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstance2 g_class2GCallbackVJG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsN/G_SIGNAL_MATCH_IDG_SIGNAL_MATCH_DETAILG_SIGNAL_MATCH_CLOSUREG_SIGNAL_MATCH_FUNCG_SIGNAL_MATCH_DATAG_SIGNAL_MATCH_UNBLOCKED GSignalMatchTypeGObject V _GObject  g_type_instance  ref_count I qdata GInitiallyUnowned VGGdkCursor _GdkCursorGdkDevice _GdkDeviceGdkDisplayManager #_GdkDisplayManagerGdkDisplay I_GdkDisplayGdkScreen g_GdkScreenGdkWindow _GdkWindow Z GDK_GRAB_SUCCESSGDK_GRAB_ALREADY_GRABBEDGDK_GRAB_INVALID_TIMEGDK_GRAB_NOT_VIEWABLEGDK_GRAB_FROZENGDK_GRAB_FAILEDGdkEventButton 6 _GdkEventButton@  type  i   send_event p time  x  y  axes  state $: ( device  , x_root 0 y_root 8 6 GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventType js 4 GDK_SEAT_CAPABILITY_NONEGDK_SEAT_CAPABILITY_POINTERGDK_SEAT_CAPABILITY_TOUCHGDK_SEAT_CAPABILITY_TABLET_STYLUSGDK_SEAT_CAPABILITY_KEYBOARDGDK_SEAT_CAPABILITY_ALL_POINTINGGDK_SEAT_CAPABILITY_ALL7 V JB GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL  GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE b GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUT ( GTK_SIZE_GROUP_NONEGTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTHGtkWidget. _GtkWidget  } GtkWindow0  _GtkWindow5L bin7 9GtkWidgetPrivateBd_GtkWidgetPrivate L GtkContainer- _GtkContainer1 3  6GtkContainerPrivate._GtkContainerPrivateGtkBin- _GtkBin1: 3 6_GtkBinPrivate.O_GtkBinPrivate:GtkWindowPrivate.}_GtkWindowPrivateetGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPPGTK_WIN_POS_NONEGTK_WIN_POS_CENTERGTK_WIN_POS_MOUSEGTK_WIN_POS_CENTER_ALWAYSGTK_WIN_POS_CENTER_ON_PARENT0GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARJGTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialoga _GtkDialog ki m p GtkDialogPrivateb_GtkDialogPrivateGtkMisc.$ _GtkMisc2N 4  7uGtkMiscPrivate/d_GtkMiscPrivateNGtkLabel. _GtkLabel4 misc6 9GtkLabelPrivate/_GtkLabelPrivateGtkBox/ _GtkBox3 5 8BGtkBoxPrivate02_GtkBoxPrivateGtkTreeIter'[ _GtkTreeIter] stamp_ user_data`) user_data2a) user_data3b) GtkTreeModel*_GtkTreeModelGtkTreeViewColumn) _GtkTreeViewColumnT- V Xn GtkTreeViewColumnPrivate+M_GtkTreeViewColumnPrivate-GtkEditable+_GtkEditableGtkListStore( _GtkListStore, .G 1  GtkListStorePrivate)_GtkListStorePrivateGtkEntryF _GtkEntryJJ M  OsGtkEntryPrivateGa_GtkEntryPrivateJGtkTreeView= _GtkTreeViewC E H4GtkTreeViewPrivate?_GtkTreeViewPrivateGtkTreeSelection@ _GtkTreeSelectionK4 NG PR GtkFrame.J _GtkFrame2u bin4 7GtkFramePrivate/_GtkFramePrivateuGtkSizeGroup& _GtkSizeGroup* ,G / GtkSizeGroupPrivate'_GtkSizeGroupPrivateGtkScrolledWindow -7 _GtkScrolledWindow 1k 3 5GtkScrolledWindowPrivate ._GtkScrolledWindowPrivatek GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkTreeSelectionPrivate%2_GtkTreeSelectionPrivateChangeDisplayInfo%q _ChangeDisplayInfo'i )w size_group*  display_model, current_display. 5,DISPLAY_COLUMN_NAMEDISPLAY_COLUMN_DISPLAYDISPLAY_NUM_COLUMNScreate_frame'@'title() *o+l-Lscrollwin.whbox/wXwfind_toplevel_at_pointerEwE pointer_windowG  Hwwidget_ptrR)query_change_display`@screen  wresponse_cb dialog@query_for_toplevelhw= screenh promptik popuplwlabellwlwcursorm  nwdeviceo clicked!button_release_event_cb[&@" [w#event\#clicked]$display_changed_cb&@rR%lL%@&model\&iterH`'&@0(&@0,)t)t\)tv*,'@0)tv)t1)t s)t $close_display_cb@'@+: w#%@,T'@0-open_display_cb`'@j": w"@Ǭ. wC/dialogwa/display_entryw/dialog_labelw/new_screen_nameD /result U 0V. 1(@,/error_msgD ((@0)tdB)tu((@1)tw)t\*(@1)t\(J(@!1)tv)t0)t (Y(@,1)ts(x(@71/)tu((@1D)tu*(@1)tu(w'@B1n)tB('@B1)t B('@M1)t(B)t1)t )tv)t )t0('@X1)ts)t ''@c1('@n1)tv)t1('@y1)t8B('@1,)ts( (@1H)tu)tw((@1d)tu)tv( (@1y)tv(((@1)ts'0(@1,n(@1,(@1destroy_info@l c$destroy_cb(@B!2object%@B!3(@4 5(@6 6 6 '(@1((@1 )tu(")@1 )tu)tH)t0)t 0)t0)t*@)tv(f)@1 )tH)t0)t 0)t0)t)@)tv(y)@1!)t0')@0')@0')@0*)@1)tv$display_closed_cb)@y>"% 2is_error%@&iterHP7valid* 1)@8"&tmp_display L(*@0 ")tv)t1)t w)t *1*@1)tv()@24")tv')@ 2$add_display@*@6#+@H + t 7name9 &iterHP(W*@2")ts(h*@$2")tw(*@/2")tw)t0)t u)t1)ts)t **@:2)ts)tB)t)@)t v)t0)t0$display_opened_cb*@ #%l % %@8*@>")P)R9`*@z(:t::0':t;{:<+@:;:;=6F >T?+@'4 4 =68 6W 6 6 6 6 6 19,@%@,X?,@(%A=(6F 6Y 1,@$@ \*,@F2)t\',@R2(,@]2%)t0)t0',@h2(q,@:2Z%)ts)tB)t&@)t X)t0)t0(,@t2t%)t0)t1*,@2)tv(+@2%)tv(*+@2%)t1(8+@2%)ts)tv(H+@2%)ts)t1(X+@2&)ts)t1(d+@2&)t0(v+@20&)tw)t2(+@1L&)ts)tw(+@y1d&)tB(+@2&)tu)tѓB)t:)t 0(+@1&)tw)tu(+@1&)ts(+@2&)tL)tؓB'+@R2(+@2&)ts(+@2')tL(1,@2N')tu)t7)t 0)tw)t0)t0)t0(,@0c')tw(,@1x')ts'-@ 3(8-@0')tw(@-@1')ts'E-@ 3'+@3'-@ 3(-@2')tu(M-@2')tv'U-@+3**@1)tBleft_align_button_newSw`-@E(2labelSC: Uwx 7childVw (q-@63()t({-@1()ts(-@A3()tv)t1*-@M3)tv)t3Bcreate_display_frameaw-@a-%@aCcw C dw Coew 7columnfhG ClgLZ C: hwm D,-@@j+4N 4B 4t 4h4\C=@6k6~6(-@2))tB(-@Y3))t0)t8(-@d3*)tu)t8(-@15*)ts)tu(.@o3O*)t0)t0(-.@z3p*)tw)t2)t1(=.@3*)tw)t1(a.@3*)tu)tw)t1)t 1)t0'f.@3(x.@3*)ts)t0(.@1*)tw)ts(.@3+)ts(.@3"+)t2(.@Y3<+)t1)t5(.@3j+)tu)tw)t0)t 0)t0(.@3+)tw*\0@3)t1(.@(+)tB('/@:2+)tu)tB)t`'@)t v)t0)t0(K/@3,)tw)tu)t0)t 0)t0(W/@(+,)tB(/@:2g,)tu)tB)t@'@)t v)t0)t0(/@3,)tw)tu)t0)t 0)t0'/@3(/@3,)t2)t@(/@3,)ts'/@3(0@ 4-)tB)tB)t 0)t0(0@4-)ts(0@3/-)ts*B0@:2)t!B)t&@)t v)t0)t0initialize_displays-@l cBdo_changedisplaywp0@02do_widgetwE@8 Z10@0C w7vboxwC w10@.7__n 7__s (7__p )<*0@ 4)t@Fa-1@a$J/4~-Z51@a6-m6-6-'1@1(2@1.)tw(2@>".)Pv(,2@1/)t0*X2@:2)tw)tVB)t*@)t v)t0)t0(0@M1/)t6B)t)t0)t 0B)t )t)B)t )t0(0@+4/)t ,)t (.1@:2/)tEB)t*@)t0)t0(e1@:20)tNB)t(@)t 8 Z)t0)t0't1@1(1@Y3?0)t1)t5(1@d3Z0)ts)t8(1@30)tv)ts)t1)t 1)t0'1@((1@30)ts)t1)t 1)t0'g2@1'2@1G HGlH]]!SH"H _Ig_freeg_free.GH. . gHH  !0H--#HH_ _ H H H  [H HGb b HOGYYxGPPkH" " $/HG G $6GH 2H cGA A BGPH,,!3H HUGG %HE E &Hvv'GEEG@@(IH)6H GAAGWWNHHUH kG Hx x *GG'H XH+|GH !;H!LH ,iG**2G9HPH H H  H H==TH HHHttnHmmMH{{AH !.HCH((H-EHp p oG  H.PG+ + BBGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden clipboard.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo2@ Fcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8Rgint16 short intguint16!guint32&long long unsigned intgsize;gchar.gshort/gint1gboolean2guint7floatgdouble:ZdoublegpointerMzGData$_GData 5i G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@ G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK| GType~ GTypeClass _GTypeClassg_typeo GTypeInstance _GTypeInstanceg_class}GCallbackV5 E G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject i_GObject g_type_instance ref_count qdata iGInitiallyUnowned i _cairo_rectangle_int  x y width height  cairo_rectangle_int_t  cairo_region_t U_cairo_regionGdkRectangle ] GdkAtom f_GdkAtomGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkWindow _GdkWindow  9 GDK_SHIFT_MASK GDK_LOCK_MASK GDK_CONTROL_MASK GDK_MOD1_MASK GDK_MOD2_MASK GDK_MOD3_MASK GDK_MOD4_MASK@ GDK_MOD5_MASKGDK_BUTTON1_MASKGDK_BUTTON2_MASKGDK_BUTTON3_MASKGDK_BUTTON4_MASKGDK_BUTTON5_MASKGDK_MODIFIER_RESERVED_13_MASK GDK_MODIFIER_RESERVED_14_MASK@GDK_MODIFIER_RESERVED_15_MASKGDK_MODIFIER_RESERVED_16_MASKGDK_MODIFIER_RESERVED_17_MASKGDK_MODIFIER_RESERVED_18_MASKGDK_MODIFIER_RESERVED_19_MASKGDK_MODIFIER_RESERVED_20_MASKGDK_MODIFIER_RESERVED_21_MASK GDK_MODIFIER_RESERVED_22_MASK@GDK_MODIFIER_RESERVED_23_MASKGDK_MODIFIER_RESERVED_24_MASKGDK_MODIFIER_RESERVED_25_MASKGDK_SUPER_MASKGDK_HYPER_MASKGDK_META_MASKGDK_MODIFIER_RESERVED_29_MASK GDK_RELEASE_MASK@GDK_MODIFIER_MASK\  : GDK_ACTION_DEFAULT GDK_ACTION_COPY GDK_ACTION_MOVE GDK_ACTION_LINK GDK_ACTION_PRIVATE GDK_ACTION_ASK GdkEventAny | _GdkEventAny V  XG Y$ ZrGdkEventExpose } _GdkEventExpose$ l  nG o$ prarea qd region r$count s GdkEventVisibility ~ _GdkEventVisibility   G $ r b GdkEventMotion  _GdkEventMotion@   G $ r  x Ky Kaxes $  5$is_hint ( $, K0: K8GdkEventButton _GdkEventButton@   G $ r  x Ky Kaxes $  5$Y 5( $, K0: K8GdkEventTouch _GdkEventTouchH !u  #G $$ %r & x 'Ky (Kaxes )$  *5$sequence +$(emulating_pointer ,%, -$0 .K8: .K@GdkEventScroll _GdkEventScrollX Ql SG T$ Ur V x WKy XK Y5 direction Z$ [$( \K0: \K8delta_x ]K@delta_y ^KHis_stop _5PGdkEventKey  _GdkEventKey( F G $ r   5keyval 5length string hardware_keycode   "is_modifier 5$GdkEventFocus [ _GdkEventFocus  G $ rin  GdkEventCrossing  _GdkEventCrossingH  G $ rsubwindow $  x Ky K  K(: K0mode !8detail  <focus %@ 5DGdkEventConfigure  _GdkEventConfigure  G $ rx  y width height GdkEventProperty 6 _GdkEventProperty  G $ ratom x   5GdkEventSelection  _GdkEventSelection H G $ r  x target x x requestor $GdkEventOwnerChange c _GdkEventOwnerChange & (G )$ *rowner +$ reason ,$  -x .selection_time /GdkEventProximity  _GdkEventProximity Eq GG H$ Ir J  K$GdkEventDND  _GdkEventDND  G $ ry $    :  GdkEventWindowState  _GdkEventWindowState m oG p$ qrchanged_mask r# new_window_state s#GdkEventSetting  _GdkEventSetting Y [G \$ ]raction ^A$ name _+GdkEventGrabBroken  _GdkEventGrabBroken  G $ rkeyboard % implicit %grab_window $GdkEventTouchpadSwipe  _GdkEventTouchpadSwipeH y G $ rphase r & r   x Ky Kdx K dy K( K0: K8 5@GdkEventTouchpadPinch  _GdkEventTouchpadPinchX  G $ rphase r & r   x Ky Kdx K dy K(angle_delta K0scale K8 K@: KH 5PGdkEventPadButton  _GdkEventPadButton  G $ r   5Y 5mode 5GdkEventPadAxis ) _GdkEventPadAxis( * +G ,$ -r .  /5index 05mode 15value 2K GdkEventPadGroupMode  _GdkEventPadGroupMode E< FG G$ Hr I  J5mode K5GdkEventSequence T_GdkEventSequenceGdkEvent w_GdkEventX . any  expose  visibility  motion  Y  touch  scroll u key lcrossing focus_change Fconfigure    owner_change Hproximity dnd qwindow_state setting grab_broken touchpad_swipe touchpad_pinch ypad_button pad_axis pad_group_mode  6 GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_DOUBLE_BUTTON_PRESS GDK_3BUTTON_PRESS GDK_TRIPLE_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY GDK_SELECTION_CLEAR GDK_SELECTION_REQUEST GDK_SELECTION_NOTIFY GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_ENTER GDK_DRAG_LEAVE GDK_DRAG_MOTION GDK_DRAG_STATUS GDK_DROP_START GDK_DROP_FINISHED GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_SCROLL GDK_WINDOW_STATE GDK_SETTING! GDK_OWNER_CHANGE" GDK_GRAB_BROKEN# GDK_DAMAGE$ GDK_TOUCH_BEGIN% GDK_TOUCH_UPDATE& GDK_TOUCH_END' GDK_TOUCH_CANCEL( GDK_TOUCHPAD_SWIPE) GDK_TOUCHPAD_PINCH* GDK_PAD_BUTTON_PRESS+ GDK_PAD_BUTTON_RELEASE, GDK_PAD_RING- GDK_PAD_STRIP. GDK_PAD_GROUP_MODE/ GDK_EVENT_LAST0 GdkEventType j. ub GDK_VISIBILITY_UNOBSCURED GDK_VISIBILITY_PARTIAL GDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState y  GDK_SCROLL_UP GDK_SCROLL_DOWN GDK_SCROLL_LEFT GDK_SCROLL_RIGHT GDK_SCROLL_SMOOTH GdkScrollDirection }  GDK_NOTIFY_ANCESTOR GDK_NOTIFY_VIRTUAL GDK_NOTIFY_INFERIOR GDK_NOTIFY_NONLINEAR GDK_NOTIFY_NONLINEAR_VIRTUAL GDK_NOTIFY_UNKNOWN GdkNotifyType   ! GDK_CROSSING_NORMAL GDK_CROSSING_GRAB GDK_CROSSING_UNGRAB GDK_CROSSING_GTK_GRAB GDK_CROSSING_GTK_UNGRAB GDK_CROSSING_STATE_CHANGED GDK_CROSSING_TOUCH_BEGIN GDK_CROSSING_TOUCH_END GDK_CROSSING_DEVICE_SWITCH GdkCrossingMode   # GDK_WINDOW_STATE_WITHDRAWN GDK_WINDOW_STATE_ICONIFIED GDK_WINDOW_STATE_MAXIMIZED GDK_WINDOW_STATE_STICKY GDK_WINDOW_STATE_FULLSCREEN GDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@ GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState +! 7A$ GDK_SETTING_ACTION_NEW GDK_SETTING_ACTION_CHANGED GDK_SETTING_ACTION_DELETED GdkSettingAction ;# F$ GDK_OWNER_CHANGE_NEW_OWNER GDK_OWNER_CHANGE_DESTROY GDK_OWNER_CHANGE_CLOSE GdkOwnerChange JZ$>K<GdkPixbuf%_GdkPixbuf$ % GTK_ICON_SIZE_INVALID GTK_ICON_SIZE_MENU GTK_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_BUTTON GTK_ICON_SIZE_DND GTK_ICON_SIZE_DIALOGGtkIconSize%V(& GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkClipboard$<&_GtkClipboardGtkSelectionData)c&_GtkSelectionDataGtkWidget.&_GtkWidget&#!' GtkWindow0&_GtkWindow5&bin7'9:(GtkWidgetPrivateB'_GtkWidgetPrivatev&& K&GtkContainer-G'_GtkContainer1v'C3v&6'GtkContainerPrivate.'_GtkContainerPrivatev'GtkBin-'_GtkBin1'33'6 (GtkBinPrivate.'_GtkBinPrivate'GtkWindowPrivate.'(_GtkWindowPrivate( tv( GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMisc.(_GtkMisc2(C4v&7(GtkMiscPrivate/(_GtkMiscPrivate(GtkMenuShell,(_GtkMenuShell0)23'5P)GtkMenuShellPrivate.:)_GtkMenuShellPrivate)GtkMenu-e)_GtkMenum)menu_shello(r)GtkMenuPrivate/)_GtkMenuPrivate)GtkBox/)_GtkBox3)53'8*GtkBoxPrivate0*_GtkBoxPrivate)GtkImage/5*_GtkImage[a*misc]v(`5+GtkImagePrivate0x*_GtkImagePrivate J5+ GTK_IMAGE_EMPTY GTK_IMAGE_PIXBUF GTK_IMAGE_STOCK GTK_IMAGE_ICON_SET GTK_IMAGE_ANIMATION GTK_IMAGE_ICON_NAME GTK_IMAGE_GICON GTK_IMAGE_SURFACEa*GtkEntryFK+_GtkEntryJv+#Mv&O+GtkEntryPrivateG+_GtkEntryPrivatev+GtkMenuItem-+_GtkMenuItem1+bin3'6,GtkMenuItemPrivate/,_GtkMenuItemPrivate++(& >, GTK_DEST_DEFAULT_MOTION GTK_DEST_DEFAULT_HIGHLIGHT GTK_DEST_DEFAULT_DROP GTK_DEST_DEFAULT_ALLGtkIconTheme5,_GtkIconThemeD,#GZI- GtkIconThemePrivate7,_GtkIconThemePrivate,, 0. GTK_ICON_LOOKUP_NO_SVG GTK_ICON_LOOKUP_FORCE_SVG GTK_ICON_LOOKUP_USE_BUILTIN GTK_ICON_LOOKUP_GENERIC_FALLBACK GTK_ICON_LOOKUP_FORCE_SIZE GTK_ICON_LOOKUP_FORCE_REGULAR GTK_ICON_LOOKUP_FORCE_SYMBOLIC@ GTK_ICON_LOOKUP_DIR_LTRGTK_ICON_LOOKUP_DIR_RTL%*get_image_pixbufD%.imageD0.icon_nameFtsizeG%icon_themeH-widthIbutton_press%.C'Y''dmenu'item'drag_data_received{l/C{'y|$x}y~-'info5d %!copy_button_clicked2@=0"Y'"d#'#!,$2@@/%ts%tE$2@@/%ts&2@@%tv%t !paste_received"2@0'"!,(text#t'$d8#&'W)2@@%%!paste_button_clicked02@1%1"Y0'"1d#3'v#4!,$3@@ 1%ts%tE&3@@%t2@%ts*paste_image03@F1+item,"d#!,#%$E3@@1%tE,M3@A$_3@A1%tv%ts-m3@A.6.3@3/S.0`.0q.0}.0.13@n2/S.N23@n3`.d3q.h4}.o3.l$3@+AT2%ts%td%th$3@6Ai2%ts,3@BA$4@MA2%tl%t0&>4@XA%ts%t 8%t0$3@cA2%ts$3@cA2%ts$3@nA2%t0%t@%thB$K4@}A3%ts,S4@A!drag_data_getl`4@.3"Cl'"ym$"n-'+infoo5 "p5"qd#s%$r4@6.3%P$4@A3%tv%ts-4@A*copy_image4@:}4+item,"d#!,#%$4@@C4%tE$4@6.W4%Ps$4@As4%tv%ts-4@A*drag_begin`4@>5"C`'"ya$"bd#d%$4@6.4%P$5@A5%tv%ts%t %t  -5@A..5@65.5.5.0.0.6`/.)/.=/.Q6`4.d4.,55@A$C5@A5%tB,K5@A$}5@A5%tw%tB%t4@%t %t0%t0$5@A6%tw$5@A6%tv%tw$5@A76%tB,5@A$5@A}6%tw%tB%t03@%t %t0%t0$5@A6%tw$5@A6%tv%tw&5@A%tv%ts..6@F75 /5/5!/5*/ 53/5>/5J/5U/0`/7x7/ ////!//*//>//J//U/./3/M6x4`/l$16@B7%ts$?6@A7%tv%ts-M6@A&%6@B%ts8do_clipboard'`6@I@+do_widget'9G'< Z16@@:vbox':hbox':label'#''#Y'[:ebox':image'#!,$6@B8%t0$6@6A8%t,6@%B$6@1B8%tB$*7@A9%tB;t%t < Z%t0%t0$>7@%ts%t7%t0%t 0%t2$:@B/>%ts$ ;@Ak>%ts%tB%t6@%t w%t0%t0$6;@A>%ts%tB%t5@%t w%t0%t0$J;@B>%tB%t4,Q;@B$_;@RB>%ts%tw$k;@RB?%tv%ts$;@B5?%ts%t %t0%t 0%t2$;@BJ?%ts$;@A?%ts%tpB%t4@%t w%t0%t0$;@A?%ts%t{B%t`4@%t w%t0%t0$<@B?%ts%t7%t0%t 0%t2$#<@B@%ts$O<@A@@%ts%tB%t6@%t w%t0%t0${<@A|@%ts%tB%t5@%t w%t0%t0$<@@@%tE&<@B%t0%t0,x6@B,6@B,6@B<``<=00==AA=<=< =<==o=@@=^^>g_logg_logf=@ t0>@ t.>@C>@ tԕBx>@T% tBtt  Zt0t0>@9 t8>@S t1t8>@n tvt8>@ tv>@ t0>@ t1?@  tvt1t 1t0?@H?@TtBtp=@t 0t0t0e?@!+tt{?@?@-LtB?@8gtst2?@Dtst3?@ tvtst0t 0t0?@TtstBt<@t 0t0t0window  Zda  Zcolor ` Zframe@ Z ?!``N EEE!!x!55k B *! !vvS !FF! HH  uuP  U \\k T  H! i!//2!009:mGGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden combobox.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@@ charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8~signed charguint8Qgint16 short intguint16!guint32&gint64,guint64-long long unsigned intgsize;gchar.gshort/glong0 gint1gboolean2Bgulong6<guint7gfloat9floatgdouble:doublegpointerMGPtrArray' _GPtrArray5 pdata7 len8l+ GData$9 _GDataGSList%O _GSList'z data) next*zAB, GType~  GValue _GValuejm dataz GTypeClass_GTypeClass GTypeInterface&_GTypeInterfacefg_instance_type GTypeInstance|_GTypeInstanceg_class# GInterfaceInfo_GInterfaceInfo 6#interface_init8vinterface_finalize9interface_data: GClassInitFuncn GInstanceInitFuncZ`ppf GInterfaceInitFunc GInterfaceFinalizeFuncG_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlagspv_intqBv_uintrlv_longs5v_ulongt^v_int64uv_uint64vv_floatwyv_doublexv_pointery0 G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICK@G_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFY@G_PARAM_DEPRECATEDxGParamFlags GParamSpec  _GParamSpec( ѝ f name  flags  value_type ג owner_type ؒ _nick  _blurb  qdata ݆ l param_id l$GCallback V%l G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject H  f  qdata _GObjectClassD <a g_type_class >construct_properties Azconstructor Ej set_property I get_property M dispose Q: finalize R: dispatch_properties_changed T notify X constructed \: $flags _ (pdummy b ,GInitiallyUnowned  GInitiallyUnownedClass H GObjectConstructParam _GObjectConstructParam m pspec ovalue p   l  :  l @ K   d ld  K   l p     0 `% G_BINDING_DEFAULTG_BINDING_BIDIRECTIONALG_BINDING_SYNC_CREATEG_BINDING_INVERT_BOOLEANNPangoAttrListt@ _PangoAttrListcairo_t|_ _cairo_cairo_rectangle_int xywidthheight cairo_rectangle_int_tg P cairo_region_t _cairo_regionGdkRectangle] GdkAtomf( . _GdkAtomGdkDeviceI _GdkDeviceGdkDragContextk _GdkDragContextGdkScreen _GdkScreenGdkWindow _GdkWindowGdkEventAny| _GdkEventAny VX"0Y(ZqGdkEventExpose}_GdkEventExpose$ln"0o(pqareaq regionr(countsB GdkEventVisibility~_GdkEventVisibility"0(qk# GdkEventMotion _GdkEventMotion@"0(q$ xyaxes( l$is_hint(J(,J08GdkEventButton_GdkEventButton@"0(q$ xyaxes( l$l(J(,J08GdkEventTouch_GdkEventTouchH!t#"0$(%q$& x'y(axes)( *l$sequence+((emulating_pointer,N,J-(0J.8.@GdkEventScroll_GdkEventScrollXQkS"0T(Uq$V xWyXYl directionZ#$J[((J\0\8delta_x]@delta_y^His_stop_lPGdkEventKey~_GdkEventKey(E"0(q$ lkeyvalllengthBstringhardware_keycode "is_modifierl$GdkEventFocusZ_GdkEventFocus "0(qin GdkEventCrossing_GdkEventCrossingH"0(qsubwindow( $xy J(0mode%8detail$<focusN@lDGdkEventConfigure_GdkEventConfigure"0(qxB yBwidthBheightBGdkEventProperty5_GdkEventProperty"0(qatom $lGdkEventSelection_GdkEventSelection G "0 ( q  target  $requestor(GdkEventOwnerChangeb_GdkEventOwnerChange &("0)(*qowner+( reason,(- $.selection_time/GdkEventProximity_GdkEventProximityEpG"0H(Iq$J JK(GdkEventDND_GdkEventDND"0(qcontext( $J''GdkEventWindowState_GdkEventWindowStatemo"0p(qqchanged_maskr' new_window_states'GdkEventSetting_GdkEventSettingY["0\(]qaction^J( name_*GdkEventGrabBroken_GdkEventGrabBroken"0(qkeyboardN implicitNgrab_window(GdkEventTouchpadSwipe_GdkEventTouchpadSwipeH|"0(qphaseq q $ xydx dy(J08l@GdkEventTouchpadPinch_GdkEventTouchpadPinchX"0(qphaseq q $ xydx dy(angle_delta0scale8J@HlPGdkEventPadButton_GdkEventPadButton"0(q$ llmodelGdkEventPadAxis,_GdkEventPadAxis(*+"0,(-q$. /lindex0lmode1lvalue2 GdkEventPadGroupMode_GdkEventPadGroupModeE?F"0G(Hq$I JlmodeKlGdkEventSequenceW _GdkEventSequenceGdkEventz_GdkEventX1" any expose visibility motion touch scrollt keyk crossing focus_changeE configure owner_changeG proximity dndp window_state setting grab_broken touchpad_swipe touchpad_pinch| pad_button pad_axis pad_group_modej6"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventTypej7uk#GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityStatey##GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection#$GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType $%GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode$'GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSED!GDK_WINDOW_STATE_TILED!GDK_WINDOW_STATE_TOP_TILED!GDK_WINDOW_STATE_TOP_RESIZABLE!GDK_WINDOW_STATE_RIGHT_TILED!GDK_WINDOW_STATE_RIGHT_RESIZABLE!GDK_WINDOW_STATE_BOTTOM_TILED !GDK_WINDOW_STATE_BOTTOM_RESIZABLE@!GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState+%7J(GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction;'F(GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChangeJc(  8 ?U | )GTK_DELETE_CHARSGTK_DELETE_WORD_ENDSGTK_DELETE_WORDSGTK_DELETE_DISPLAY_LINESGTK_DELETE_DISPLAY_LINE_ENDSGTK_DELETE_PARAGRAPH_ENDSGTK_DELETE_PARAGRAPHSGTK_DELETE_WHITESPACEGtkDeleteType)]*GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType)*GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirectionu*,+GTK_MOVEMENT_LOGICAL_POSITIONSGTK_MOVEMENT_VISUAL_POSITIONSGTK_MOVEMENT_WORDSGTK_MOVEMENT_DISPLAY_LINESGTK_MOVEMENT_DISPLAY_LINE_ENDSGTK_MOVEMENT_PARAGRAPHSGTK_MOVEMENT_PARAGRAPH_ENDSGTK_MOVEMENT_PAGESGTK_MOVEMENT_BUFFER_ENDSGTK_MOVEMENT_HORIZONTAL_PAGES GtkMovementStep7*V\,GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationY,-GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSED GtkStateTypes,-GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERROR GtkDragResult+-9u.GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZE GtkSizeRequestMode=-c 0GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@GTK_STATE_FLAG_DIR_LTR!GTK_STATE_FLAG_DIR_RTL!GTK_STATE_FLAG_LINK!GTK_STATE_FLAG_VISITED!GTK_STATE_FLAG_CHECKED!GTK_STATE_FLAG_DROP_ACTIVE GtkStateFlagsr.GtkSelectionData):0 _GtkSelectionDataGtkStyle+]0 _GtkStyleGtkTooltip-z0 _GtkTooltipGtkWidget.0 _GtkWidget0Ra ]F GtkWindow00 _GtkWindow51 bin7`M]9Ml;ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREE@ATK_ROLE_TREE_TABLEAATK_ROLE_UNKNOWNBATK_ROLE_VIEWPORTCATK_ROLE_WINDOWDATK_ROLE_HEADEREATK_ROLE_FOOTERFATK_ROLE_PARAGRAPHGATK_ROLE_RULERHATK_ROLE_APPLICATIONIATK_ROLE_AUTOCOMPLETEJATK_ROLE_EDITBARKATK_ROLE_EMBEDDEDLATK_ROLE_ENTRYMATK_ROLE_CHARTNATK_ROLE_CAPTIONOATK_ROLE_DOCUMENT_FRAMEPATK_ROLE_HEADINGQATK_ROLE_PAGERATK_ROLE_SECTIONSATK_ROLE_REDUNDANT_OBJECTTATK_ROLE_FORMUATK_ROLE_LINKVATK_ROLE_INPUT_METHOD_WINDOWWATK_ROLE_TABLE_ROWXATK_ROLE_TREE_ITEMYATK_ROLE_DOCUMENT_SPREADSHEETZATK_ROLE_DOCUMENT_PRESENTATION[ATK_ROLE_DOCUMENT_TEXT\ATK_ROLE_DOCUMENT_WEB]ATK_ROLE_DOCUMENT_EMAIL^ATK_ROLE_COMMENT_ATK_ROLE_LIST_BOX`ATK_ROLE_GROUPINGaATK_ROLE_IMAGE_MAPbATK_ROLE_NOTIFICATIONcATK_ROLE_INFO_BARdATK_ROLE_LEVEL_BAReATK_ROLE_TITLE_BARfATK_ROLE_BLOCK_QUOTEgATK_ROLE_AUDIOhATK_ROLE_VIDEOiATK_ROLE_DEFINITIONjATK_ROLE_ARTICLEkATK_ROLE_LANDMARKlATK_ROLE_LOGmATK_ROLE_MARQUEEnATK_ROLE_MATHoATK_ROLE_RATINGpATK_ROLE_TIMERqATK_ROLE_DESCRIPTION_LISTrATK_ROLE_DESCRIPTION_TERMsATK_ROLE_DESCRIPTION_VALUEtATK_ROLE_STATICuATK_ROLE_MATH_FRACTIONvATK_ROLE_MATH_ROOTwATK_ROLE_SUBSCRIPTxATK_ROLE_SUPERSCRIPTyATK_ROLE_FOOTNOTEzATK_ROLE_LAST_DEFINED{ AtkRoleg1{$<ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOW AtkLayer|; AtkObjectG<_AtkObject$< description nameaccessible_parent(=rolel;relation_set.=layer$< AtkRelationSet< _AtkRelationSet+(=- relations/ 5<<1x=GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType44=GtkWidgetPrivateB= _GtkWidgetPrivateGtkWidgetClassC="_GtkWidgetClassjZF_lz activate_signalplDdispatch_child_properties_changedsFHdestroyxFLshowyFPshow_allzFThide{FXmap|F\unmap}F`realize~FdunrealizeFhsize_allocateFlstate_changedGpstate_flags_changedGtparent_set4Gxhierarchy_changed4G|style_setPGdirection_changedfGgrab_notify|Gchild_notifyGdrawGget_request_modeGget_preferred_heightGget_preferred_width_for_heightGget_preferred_widthGget_preferred_height_for_widthGmnemonic_activateHgrab_focusFfocus0Hmove_focusFHkeynav_failed0Hevent`Hbutton_press_eventHbutton_release_eventHscroll_eventHmotion_notify_eventHdelete_eventHdestroy_eventHkey_press_eventIkey_release_eventIenter_notify_event Ileave_notify_event Iconfigure_event@Ifocus_in_event`Ifocus_out_event`Imap_eventHunmap_eventHproperty_notify_eventI#selection_clear_eventI#selection_request_eventI#selection_notify_eventI#proximity_in_eventI #proximity_out_eventI#visibility_notify_eventI#window_state_eventJ#damage_event J#grab_broken_event@J #selection_getfJ$#selection_receivedJ(#drag_beginJ,#drag_endJ0#drag_data_getJ4#drag_data_deleteJ8#drag_leaveJ<#drag_motionK@#drag_drop KD#drag_data_received/KH#drag_failedNKL#popup_menucKP#show_help#}KT#get_accessible(KX#screen_changed*K\#can_activate_accel,K`#composited_changed0Fd#query_tooltip2Kh#compute_expand8 Ll#adjust_size_request<,Lp#adjust_size_allocation@VLt#style_updatedGFx#touch_eventIvL|#get_preferred_height_and_baseline_for_widthLL#adjust_baseline_requestRG#adjust_baseline_allocationUL#queue_draw_regionWL$]\L$_%$ `%GtkWidgetClassPrivateDwF _GtkWidgetClassPrivateGtkAllocationS 0=FFl FFFFFFFFFGF-FGF 0G4GFF$GJGFJGM0:GfGF*VG|GFNlGGFGNGF Gu.GFGGFGGFBGNHFNHN0HF]*HFHF]*6HN`HF1LHNzHFzHfHNHFHtHNHFHHNHFH HNHFHkHNIFIIN:IF:I&INZIFZIEFINzIFzIfINIFIINIFIINIFIINIFIINJFJJN:JF:J&J`JF`Jll"0FJJF`JllJJF(JJF(`JllJJF(lJNKF(BBlJ/KF(BB`JllKNNKF(-5KNcKFTKN}KFx=iK(=KFKKF(KNKFlKNKFBBNKh0K LF% % K,LF\,LVLF\,2LNpLFpL\LLFB|LLFLLFLL LZFGtkContainer-L _GtkContainer1)M widget30]6ZMGtkContainerPrivate.DM _GtkContainerPrivate)MGtkBin-nM _GtkBin1M3L]6MGtkBinPrivate.M _GtkBinPrivateMGtkWindowPrivate.M _GtkWindowPrivateMt)NGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/7N _GtkBox3`N5L]8NGtkBoxPrivate0uN _GtkBoxPrivate`NGtkTreeIter'N _GtkTreeIter]N stamp_B user_data` user_data2a user_data3b GtkTreePath( O _GtkTreePathGtkTreeModel*/O _GtkTreeModelONNGtkCellRendererPgO _GtkCellRendererUORWa ]ZO GtkCellRendererPrivateQO _GtkCellRendererPrivateOPOGtkEditable+O _GtkEditableGtkEditableInterface,P _GtkEditableInterface0.'Q base_iface0 insert_text3GQ delete_text7bQ changed:sQ do_insert_text=GQ do_delete_textAbQ get_charsEQ set_selection_boundsHbQ get_selection_boundsKQ$ set_positionNQ( get_positionPQ,AQAQBO'QbQAQBBMQsQAQhQQAQBByQNQAQQQAQBQBQAQQ+ GtkListStore(Q _GtkListStore,+R. ]1\R GtkListStorePrivate)FR _GtkListStorePrivate+RGtkEntryFrR _GtkEntryJRRM0]OTGtkEntryPrivateGR _GtkEntryPrivateGtkEntryClassHR%_GtkEntryClass|T_~=&populate_popupT&activateT&move_cursorT&insert_at_cursorU&delete_from_cursor.U&backspaceT&cut_clipboardT©_clipboardT&paste_clipboardT&toggle_overwriteT&get_text_area_sizeSU&get_frame_sizeSU&_gtk_reserved1%&_gtk_reserved2%&_gtk_reserved3%&_gtk_reserved4%&_gtk_reserved5%'%' %RTTFbRTTTTTT+BNTUTU.UT)BUSUT4UGtkComboBox &lU _GtkComboBox *UR ,`M] /UGtkComboBoxPrivate (U _GtkComboBoxPrivateUGtkCellLayout!%U _GtkCellLayoutUGtkComboBoxText"%V _GtkComboBoxText ")CVR",YU]".zVGtkComboBoxTextPrivate"&aV _GtkComboBoxTextPrivateCVGtkTreeStore#)V _GtkTreeStore#-V#/ ]#1V GtkTreeStorePrivate#+V _GtkTreeStorePrivateVQV.WICON_NAME_COLTEXT_COLMaskEntry?W _MaskEntrylWbR maskMaskEntryClassW%_MaskEntryClassW_R(mask_entry_class_init"W)klass"WlW*mask_entry_init@@ X+X.W*mask_entry_editable_init' @@ QX,iface'QXO-mask_entry_set_backgroundX.X/0attrsQ*mask_entry_changed0@@Y,editableAQ1WX9@@2yX3cY4X5@@|j6@@j(Y7t 7t 7t 6@@j=Y7tv6@@jYY7ts7tv8@@j6H@@jxY7ts6g@@jY7t07t 09{@@j7ts7t0:mask_entry_class_intern_init@@.Z;klass6@@jY7ts9@@j7ts7t Z:is_capital_sensitiveA@EZ<U;cellO<>Ois_separator`NPA@>u[;model`>OOcreate_capital_storeo>OA@]@q\r capitalsAcapitalst]|BtN{Aiter2N|?storeW?iB6{D@"k]7t17t@6D@-k>]7tv7tw7t06D@8kn]7tv7tw7t07t u7t 6D@-k]7tv7t|7tw9D@8k7tv7t|7t07t u7t \]08Cmask_entry_get_typeE@B_Ag_define_type_id__volatileB_ Z3H^DE@90E@Ck7t ZE8E@?g_define_type_id3^Ag_implement_interface_infoG_d5E@Nk9E@Yk7ts7tdFE@^9E@ek7t Z7ts6DE@pk^7tB5KE@{k9E@k7ts7t 7t @@7tH7t@@7t0 -fill_combo_entrys_Gcombo֤FHcreate_icon_store>O_Iicon_names_Ilabels_Jt'NIstore(VIi)B_0Kdo_combobox.FE@7j,do_widget.FL00F ZMvbox1FMframe1FMbox1FzMcombo1FN1FVMmodel2>OMrenderer3OMpath4DOLt5NHOs_)F@PaPQ_Q_HQ_4_4_26G@k/a7t27t@7t@5G@k5G@k6H@kya7ts7tv7t07t 7t17t 64H@ka7ts7tv9hH@k7ts7tv7t07t 07t17tB7t OL_=K@hb2e_Q6OK@kb7ts7tϘB6_K@k-b7ts7tӘB6oK@kLb7ts7tטB9K@k7ts7tۘB5E@k5E@k5F@k64F@kb7tu6HF@kb7t5YF@l6nF@lb7t*B6F@lc7t6BRt7t  Z7tu7tu6F@'lc7t:6F@2l1c7t17t26F@=lFc7tw6F@Hl^c7t>B6G@Slc7tw7ts7tu7t u7tu6)G@2lc7t17tu6?G@'lc7tw7t56OG@=lc7ts7t6xH@^lc7ts6H@il d7ts6H@=l+d7t7tv5H@ul6H@lVd7tv7ts7t06H@ld7tv7ts7tB7t 07t06H@ld7tv7ts7tA@7t 07t05H@l6I@ld7tv7ts7t164I@le7tv7ts7tB7t 17t06XI@lIe7tv7ts7tA@7t 07t06xI@lte7tv7tPA@7t07t 06I@le7tv7t06I@Hle7tB6I@Sle7tu7ts7t07t 07t06I@2le7t17t06I@'l f7t7t56I@=l*f7ts7t5I@`\6J@^lHf7tv6J@il]f7tv6J@=l{f7t7ts5$J@l6N@b ^ tst3ON@n s ts[N@y trBgN@n tssN@y twBN@n tsN@y tzBN@n tsN@y  t|BN@n ' tsN@y ? tBN@n T tsN@y l tBN@n tsN@ N@ tstBO@ tsUM@ fM@ uM@ !@ @ " " "a a  " #! ! ! "!! "!!!" " P"h!h! 2"=!=! 9!. . !  b!S!S!\!!!p"~!~! S" k" x`{GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden css_basics.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo O@{&charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGBytes$._GBytesGQuark$GError)Y_GError +domain-=code.message/7 GData$_GData  GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceE g_classEGCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags gGObject _GObject g_type_instance ref_count bqdata GInitiallyUnowned ' ΰPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORGtkWidget ._GtkWidget^"<" GtkWindow 0_GtkWindow5*bin7<"9GtkWidgetPrivateBB_GtkWidgetPrivateGtkCallback]hn~~*GtkContainer-_GtkContainer1widget3<"6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1>$3<"6cGtkBinPrivate.S_GtkBinPrivate>GtkWindowPrivate._GtkWindowPrivateitGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTextIter@_GtkTextIter8Fdummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB_GtkTextBufferN^"P<"R GtkCssSectionN*_GtkCssSection4 GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@& _GtkCssProviderDW ^"F<"G GtkCssProviderPrivateBt _GtkCssProviderPrivateW   KGtkStyleProviderZ _GtkStyleProvider GtkTextBufferPrivateK _GtkTextBufferPrivate GtkTextViewq, _GtkTextViewuZ ^"w<"{ GtkTextViewPrivatert _GtkTextViewPrivateZ show_parsing_error O@ E# section error buffer  start~endtag_name!Q@O@= tsJO@R tsbO@n tvtwjO@ tsxO@ tO@ tvtst uO@O@ tt4O@tvtwt scss_text_changed%O@H buffer% E#& start(end(text),dP@ tstv P@ tstwP@ tstvtw5P@ tstvtwt 0ZP@ ttst t 0bP@5 tsgP@/oP@:apply_css7P@l.widget7~E#7 P@ __inst:K__t:__r:P@FP@QtsP@] tsP@i tvt P@utstP@tvdo_css_basics?~P@Mdo_widget?~windowA~ ZBQ@m$E~childE~E#F textG 8bytesHVNQ@t0cQ@t™BxQ@tQ@6t t ,Q@ht͙B tt  Zt0t0Q@|t0R@tstBtՙBt 1t0(R@tstBtՙBt 4t0-R@CR@ t0t0VR@tw^R@3tslR@OtwtuR@tstߙBtO@t vt0t0R@tBt0t0R@twR@twt0R@tst\R@)twR@4&tu"S@[tvtBt O@t0t03S@H tvQ@?Q@K5Q@W!'%'%a!##_"n"n"}!]%]%e!B$B$c!##>!##H"!!\"N#N#"##"%%f"%%! $ $b#g_freeg_freeG!+$+$k"~#~#!_$_$"$$"%%""" "$$#!""!~%~%!A"A""$$""" ! # #"%%o!""\!%%!$$!""!$"$"j!m#m#>!4#4#:!""!""D!$$"v$v$S"J%J%k"##xrJGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden css_blendmodes.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@S@u*doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1guint7floatGBytes$_GBytesGData$)_GDataGType~GTypeClass^ _GTypeClass g_type=GTypeInstance _GTypeInstance g_classKGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject 7_GObject g_type_instance ref_count qdata 1GInitiallyUnowned 7 -e GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GtkBuilder #w_GtkBuilder ]N& _(<& a GtkWidget ._GtkWidget N& <& U GtkWindow 0_GtkWindow5bin7<&9keGtkWidgetPrivate B<_GtkWidgetPrivate$GtkContainer-o_GtkContainer1widget3<&6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1container3[<&6:GtkBinPrivate.*_GtkBinPrivateGtkWindowPrivate.X_GtkWindowPrivate@GtkBuilderPrivate )_GtkBuilderPrivateqGtkCssProvider@_GtkCssProviderDN&F(<&G  GtkCssProviderPrivateB_GtkCssProviderPrivateGtkStyleProviderZD_GtkStyleProvider,GtkListBox)o_GtkListBox/N&1[GtkListBoxRow,_GtkListBoxRowbN&d] nameidupdate_css_for_blend_mode(G&(&')bytes+7css,row_activated=@S@ listbox=row>&?&'At]S@(E #t(.;yS@H  tBt0t0S@S  tvt0S@^ A tstst sS@i j twtst t 0S@t  tv S@ !VS@ tsetup_listboxI "builderI&JWnormal_rowLOlistboxMOiN#labelYOrowZO$do_css_blendmodessOS@ do_widgetsO%windowuO Z&2T@ &yW'builderz( T@O  @ ^)T@ |  &0U@k   *5U@ hU@ B t\tBt }Bt t0tU@ W tsU@ s twts!U@ tB*T@ T@ tvt`BT@ tw U@  twtoBt@S@t st0t0U@  twtvU@ < tvtB!U@tv>T@g t3BPT@ tvtQBeT@ tT@ tXB+tt  Zt0t0*T@$*T@/!T@:tst X*S@F* T@R*%T@^*U@j,/ -:.blend_modes pB/^&^&j/&&:/&&/K'K'b/&&D0g_freeg_freeG/0'0'/;(;(1A&A& /''/''{1&&2/'' 1&&/v&v&1''G1&& /'' / ( (/'&'&\/k'k'k1&&1'' S1(((( k1'' x/&&YGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden css_multiplebgs.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoU@-doubleintfloatcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7gpointerMGBytes$3_GBytesGQuark$GError)^_GError +domain-Bcode.message/< GData$_GData% GType~ GTypeClass _GTypeClass  g_type GTypeInstance  _GTypeInstanceJ g_classJ GCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags lGObject _GObject g_type_instance ref_count gqdata GInitiallyUnowned , εPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERRORcairo_t |_cairo}GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASK@GDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASKGDK_LEAVE_NOTIFY_MASK GDK_FOCUS_CHANGE_MASK@GDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASKGDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASK GDK_TOUCH_MASK@GDK_SMOOTH_SCROLL_MASKGDK_TOUCHPAD_GESTURE_MASKGDK_TABLET_PAD_MASKGDK_ALL_EVENTS_MASKJGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEV+GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkStyleContext,B_GtkStyleContext+~parent_object-P(. GtkWidget._GtkWidget( P(R GtkWindow0_GtkWindow5bin7 P(9_ GtkWidgetPrivateB _GtkWidgetPrivateGtkCallback]6 < L L ~GtkContainer-l _GtkContainer1 f)3~P(6 GtkContainerPrivate. _GtkContainerPrivate GtkBin- _GtkBin1 (3X P(6. GtkBinPrivate. _GtkBinPrivate GtkWindowPrivate.L _GtkWindowPrivate4 t GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTextIter@ _GtkTextIter8F dummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB _GtkTextBufferN (PP(R GtkCssSectionN _GtkCssSection4 GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@ _GtkCssProviderD" (FP(GW GtkCssProviderPrivateB? _GtkCssProviderPrivate"   o PGtkStyleProviderZ _GtkStyleProvidert GtkStyleContextPrivate) _GtkStyleContextPrivate +GtkOverlay' _GtkOverlay+*parent- P(/WGtkOverlayPrivate)C_GtkOverlayPrivate*GtkTextBufferPrivateKy_GtkTextBufferPrivate] GtkTextViewq_GtkTextViewu(wX P({ GtkTextViewPrivater_GtkTextViewPrivateshow_parsing_error U@>, ] section c error i buffer start ~end tag_name&V@^ts V@its"V@ttvtw*V@ts8V@tLV@t?tvtst uQV@lV@dtt4V@tvtwt scss_text_changed%V@buffer%>,&] start( end( text)D)V@tstvV@-tstwV@PtstvtwV@ytstvtwt 0W@ttst t 0"W@ts'W@/W@ drawing_area_draw7@W@.f)7L cr8context: GVW@5ts`W@'JtslW@3_tsW@?tvtwt lt lt ht dW@'tsW@3tsW@Jtvtwt lt lt ht dapply_cssIW@lf)IL >,I !X@__instLPe__tL__rLX@U8X@`tsX@tsX@ltvt VX@xtstW@tv"do_css_multiplebgsQL `X@n^do_widgetQL windowSL  Z!X@BpanedWL #(WL childWL #>,X itextYbytesZX@t0X@t›BX@tY@/t t ,:Y@atכB$tt  Zt0t0?Y@QY@tvt 0bY@tvgY@yY@tstߛBY@tstBt@W@t 0t0t0Y@tvtsY@Y@Atst 0Y@]tvtsY@|tstBY@ tst3Z@tst3 Z@$tsttT,Z@0t1:Z@tvtwNZ@;t1t0ZZ@4twfZ@FHt0Z@Q}tstBtBt 1t0Z@QtstBtBt 4t0Z@]Z@ht0t0Z@twt\Z@stsZ@$t\tu)[@`tstBtV@t vt0t0E[@~t Bt0t0O[@twc[@twt0w[@tst\[@tw[@tu[@0tvt1BtU@t0t0[@.tvxX@X@X@%++a%((_&**}%m+m+e%**c%z-z->%((H&--\&],],&5)5)&++f&#*#*%**b'g_freeg_free'G%&-&-k&n*n*&<*<*&M+M+&))%j(j(8%((H%++&((&[-[- &U(U(#%))%++%,,&))&++ %++R&7+7+%|,|,%Y*Y* H&,,1%++!`% * *T&,,2&G,G,9&))%')')"Q%--#P%,,& ) )o%++\%,,$%=-=-%&,&,%j%m)m)&>%,,&:%~)~)%))&D% - -&((S&**k&R)R)x0!GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden css_pixbufs.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo[@]2charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGBytes$/_GBytesGQuark$GError)Z_GError +domain->code.message/8 GData$_GData! GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceF g_classFGCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags hGObject _GObject g_type_instance ref_count cqdata GInitiallyUnowned ( αPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERROR VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget._GtkWidget48. . GtkWindow0E_GtkWindow5qbin7N.9GtkWidgetPrivateB_GtkWidgetPrivateGtkCallback]qGtkContainer-_GtkContainer1widget3.6HGtkContainerPrivate.2_GtkContainerPrivateGtkBin-\_GtkBin103.6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivatetGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTextIter@*_GtkTextIter8Fdummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB,_GtkTextBufferN\8.P.RT GtkCssSectionNq_GtkCssSection4W GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@m _GtkCssProviderD 8.F.G GtkCssProviderPrivateB _GtkCssProviderPrivate W \ LGtkStyleProviderZ _GtkStyleProvider GtkTextBufferPrivateK= _GtkTextBufferPrivate! GtkTextViewqs _GtkTextViewu 8.w.{ GtkTextViewPrivater _GtkTextViewPrivate show_parsing_error [@H -/ section error buffer Z  start~endtag_name"[@C ts[@N ts\@Y tvtw\@e ts(\@p t<\@Y tvtst uA\@{\\@( tt4\@tvtwt scss_text_changed$\@ buffer$Z -/% start'end'text(-\@ tstv\@ tstw\@ tstvtw\@= tstvtwt 0 ]@g ttst t 0]@| ts]@]@apply_css60]@luwidget6-/6 Y]@!__inst9L__t9*__r9=^]@x]@ tsE]@6tsY]@#Rtvt ]@/tst0]@tvdo_css_pixbufs>]@Cdo_widget>window@ Z]@;'panedDP 0DnchildD -/E textFZ bytesG]@;Ct0^@F[tNB(^@QqtE^@\t t ,z^@htcB!tt  Zt0t0^@tt1^@tw^@t1t0^@tw^@-t0^@btst@BtkBt 1t0_@tstHBtkBt 4t0_@2_@t0t0B_@twt\J_@ts\_@ t\tu_@hEtstuBt\@t vt0t0_@it}Bt0t0_@~tw_@twt0_@tst\_@tw_@tu`@htvtBt[@t0t0#`@ tv]@]@]@'"11a"//_#H.H.}"Q1Q1e"6060c"//>"..H#--\#B/B/#//#11f#11"//b$g_freeg_free!G"00k#r/r/"S0S0#00#11#.. #00#".."r1r1"..#00#.. "..Q"00"6/6/P"//#11o"--\"11".."--j"a/a/ >"// :"o.o."-- D"00#j0j0S#>1>1k#//x#GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden css_shadows.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo0`@.6charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGBytes$/_GBytesGQuark$GError)Z_GError +domain->code.message/8 GData$_GData! GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceF g_classFGCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags hGObject _GObject g_type_instance ref_count cqdata GInitiallyUnowned ( αPANGO_UNDERLINE_NONEPANGO_UNDERLINE_SINGLEPANGO_UNDERLINE_DOUBLEPANGO_UNDERLINE_LOWPANGO_UNDERLINE_ERROR JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE V_GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget.p_GtkWidget5 T23 GtkWindow0_GtkWindow5bin7T29CGtkWidgetPrivateB_GtkWidgetPrivateGtkCallback]--_GtkContainer-M_GtkContainer1widget3_T26GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1c539T26GtkBinPrivate._GtkBinPrivateGtkWindowPrivate.0_GtkWindowPrivatetGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTextIter@_GtkTextIter8Fdummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB_GtkTextBufferN5PT2R GtkCssSectionN_GtkCssSection4 GTK_CSS_PROVIDER_ERROR_FAILEDGTK_CSS_PROVIDER_ERROR_SYNTAXGTK_CSS_PROVIDER_ERROR_IMPORTGTK_CSS_PROVIDER_ERROR_NAMEGTK_CSS_PROVIDER_ERROR_DEPRECATEDGTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUEGtkCssProvider@ _GtkCssProviderD 5FT2G; GtkCssProviderPrivateB# _GtkCssProviderPrivate  S LGtkStyleProviderZp _GtkStyleProviderX GtkToolItem) _GtkToolItem- parent/T22 GtkToolItemPrivate+ _GtkToolItemPrivate  GtkToolButton' _GtkToolButton +P parent- T20 GtkToolButtonPrivate)l _GtkToolButtonPrivateP GtkTextBufferPrivateK _GtkTextBufferPrivate GtkTextViewq _GtkTextViewu 5w9T2{8 GtkTextViewPrivater# _GtkTextViewPrivate GtkToolbarBP _GtkToolbarF} c5H9T2J GtkToolbarPrivateC _GtkToolbarPrivate} show_parsing_error 0`@"3 A section G error M buffer  start~endtag_name" P`@^ tsZ`@s tsr`@ tvtwz`@ ts`@ t`@ tvtst u`@`@tt4`@tvtwt scss_text_changed#`@ibuffer# 3$A start&end&text'-# a@tstva@tstw-a@tstvtwEa@tstvtwt 0ja@Attst t 0ra@Vtswa@.a@9apply_css5a@lOwidget5-35 a@__inst8LA __t8w __r8 a@Ea@Ptsa@\tsa@h,tvt a@ttsta@tvcreate_toolbar=-b@toolbar?- item@  b@b@tst30b@t0t0Bb@tvtBVb@tstvt jb@0t0t0|b@OtvtBb@rtstvt b@t0tœBb@tvt1b@tstvt do_css_shadowsU-b@~do_widgetU-windowW- Z2c@,lpaned[-! c5[-.!child[-M! 3\ v!text] !bytes^!>c@t0Sc@tΜBhc@tc@t t ,c@t֜B!tt  Zt0t0c@+t1c@@twc@Oc@^twc@rt0 d@tstBtޜBt 1t0Hd@tstBtޜBt 4t0Md@)cd@4t0t0sd@twt\{d@?1tsd@Nt\tud@tstBt`@t vt0t0d@JtBt0t0d@Utwd@`twt0e@ktst\e@vtwe@%tuCe@ZtvtBt0`@t0t0Te@itvb@ c@%c@"\3\3a",4,4_#22}"v2v2e"44c"_4_4>"33H#11\#33#|4|4#^6^6f#55"44b$g_freeg_free#G"44k# 4 4"55#m5m5#66#66 #55#"55e#229"55Q"22f"44h"33|"/3/3".6.6"Y2Y2#G5G5#33 "22Q"55"33#C6C6o"'2'2\"~6~6 ">3>3"<2<2!j"33">"33":"22"22"D".5.5#55S#55k#K4K4x%GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden cursors.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo`e@L;floatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.guint7doublegpointerMGData$_GData GType~ GTypeClass@ _GTypeClassf g_type GTypeInstance| _GTypeInstance g_class-GCallbackV  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags_GObject Tg_type_instancefref_countqdataGInitiallyUnowned GdkCursor ~_GdkCursorGdkDisplay _GdkDisplayGdkWindow _GdkWindowm  J@GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE  GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOG V>GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLEGtkWidget ._GtkWidget parent_instance T6 _ GtkWindow 0_GtkWindow 5.bin 76 9oGtkWidgetPrivate BF_GtkWidgetPrivate.GtkContainer-y_GtkContainer1widget366GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1Y93e66>GtkBinPrivate.._GtkBinPrivateGtkWindowPrivate .\_GtkWindowPrivateD  tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkMisc._GtkMisc2widget467GtkMiscPrivate/_GtkMiscPrivateGtkLabel.$_GtkLabel4Pmisc669yGtkLabelPrivate/g_GtkLabelPrivatePGtkBox/_GtkBox3Y95e68GtkBoxPrivate0_GtkBoxPrivateGtkFlowBox,_GtkFlowBox2 Y94eGtkScrolledWindow-- _GtkScrolledWindow1a Y9365 GtkScrolledWindowPrivate. _GtkScrolledWindowPrivatea  GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALadd_sectionY`e@ boxY!heading!labelY"u9Y;"oe@*| tRe@5 tste@@ tst:e@L tst:e@X tvtst0t 1t0e@ce@n& tst1e@zA tst0e@\ tst2 f@w tstD0f@Xtvtst0t 1t0add_button*@f@ u9*Yd"css_name+"image-Y"button-Y"display.#cursor/-#if@> path7a#yf@e t"Btvf@ tst9Bt_f@ tsf@tsSf@ tw_f@ tvf@ t\t t f@f@& tst\f@; tsf@S t;Bg@ tstHBt`g@t ut0t0*g@* tstv6g@ twtsTg@6tBt1set_cursor`g@-buttonYdatatoplevel Y#cursor #window #tg@Alt|g@Mg@Y do_cursorsIYg@n*do_widgetIY!windowKY Zg@,swOY#boxPY#u9QY$g@et0g@p*th@|h@KtPB2h@it t gh@tXB"tt  Zt0t0{h@t0t0h@tst2t1h@tsh@t1t0h@PtvtyBtDt nBtDt`Bt:t0i@ltstvi@ PvRB i@ PsRB,i@ PsRB8i@ PvRBDi@ PsRBPi@ PsRB\i@ 7PsRBhi@ TPsRÝBti@ qPsR̝Bi@ PvRѝBi@ PsR۝Bi@ PsRBi@ PsRBi@ PsRBi@ PvRBi@ <PsR Bi@ YPsRBi@ vPsRBi@ PsRBi@ PsR!Bj@ PsR-Bj@ PsR2Bj@ PvR;B(j@ $PsRNB4j@ APsRYB@j@ ^PsRdBLj@ {PsRoBXj@ PsRxBdj@ PsRBpj@ PsRB|j@ PsRBj@ PsRBj@ )PsRBj@ FPsRBj@ cPsRBj@ PsRŞBj@ PsRϞBj@ PsR۞Bj@ PvRBj@ PsRBj@ PsRBg@g@g@#88[#77$77 R$G7G7 W#7979T#88$66 2#66#77# 7 7#77#,8,8h#99v%g_freeg_freeG$q8q8 #}9}9$9898 #J9J9`#c9c9$:: $U8U8G$d7d7$99 #88$66 $77 $88#z7z7 $88 $77 #99 $99 #::#77# 8 8P$99$99 S$99 k$88 x'GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden dialog.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demok@I>charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7floatdoublegpointerMGData$_GDataGType~GTypeClass- _GTypeClassS g_type GTypeInstancei _GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject Ag_type_instanceSref_countqdataGInitiallyUnowned -% GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST   GTK_ICON_SIZE_INVALID GTK_ICON_SIZE_MENU GTK_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_BUTTON GTK_ICON_SIZE_DND GTK_ICON_SIZE_DIALOG S GTK_MESSAGE_INFO GTK_MESSAGE_WARNING GTK_MESSAGE_QUESTION GTK_MESSAGE_ERROR GTK_MESSAGE_OTHER V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget ._GtkWidget O: A8: D GtkWindow 0_GtkWindow 5bin 78: 9TGtkWidgetPrivate B+_GtkWidgetPrivateGtkContainer-^_GtkContainer1widget38:6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1<3J8:6#GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .A_GtkWindowPrivate)  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUP 0 GTK_DIALOG_MODAL GTK_DIALOG_DESTROY_WITH_PARENT GTK_DIALOG_USE_HEADER_BAR JGTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialoga_GtkDialog k! windowm8:pL GtkDialogPrivateb9 _GtkDialogPrivate! GtkMisc.a _GtkMisc2 widget48:7 GtkMiscPrivate/ _GtkMiscPrivate GtkLabel. _GtkLabel4 misc6R 8:9 GtkLabelPrivate/ _GtkLabelPrivate GtkBox/4 _GtkBox3] <5J8:8 GtkBoxPrivate0r _GtkBoxPrivate] GtkEntryF _GtkEntryJ O:M8:O GtkEntryPrivateG _GtkEntryPrivate GtkButton. _GtkButton2/ bin58:7Z GtkButtonPrivate/G _GtkButtonPrivate/  GtkGrid(u _GtkGrid, </J8:1 GtkGridPrivate) _GtkGridPrivate GtkMessageDialog- _GtkMessageDialog$1 O:38:6P GtkMessageDialogPrivate.6 _GtkMessageDialogPrivate V GTK_BUTTONS_NONE GTK_BUTTONS_OK GTK_BUTTONS_CLOSE GTK_BUTTONS_CANCEL GTK_BUTTONS_YES_NO GTK_BUTTONS_OK_CANCELinteractive_dialog_clicked"k@N<"` :#content_area%>$dialog&>$hbox'>$image(>$table)>%local_entry1*>.%local_entry2+>W%label,>%response-%k@ tBTk@*t Bt3t tBt t0`k@@tXvk@Zt0t8k@utvt8k@tstvt0t 0t0k@tBt6k@tvt0t 0t0k@ k@ tst4 l@#'tst4/l@Utvtst1t 1t0;l@.mt/Bil@9tstwt0t 0t1t1nl@D}l@Ol@[tul@9tstut1t 0t1t1l@ftwtul@.0t8Bl@9etst\t0t 1t1t1m@Dm@Om@[twIm@9tstwt1t 1t1t1Ym@ft\twam@qtvmm@}tXm@m@O&tum@[m@ODtwm@[message_dialog_clickedm@h#<` :dialog>%i qBn@t3t0t 5tDBn@tstB$n@}ts,n@tsdo_dialoga>@n@ do_widgeta>framec>%vboxd>&vbox2e>-&hboxf>K&<g>&tableh>&labeli>&Wn@hn@yn@qn@t0n@tn@n@/tBn@atBtt  Zt0t0o@ut8o@tB1o@tvEo@t1t8Wo@tst8co@tvtswo@ t0t8o@;tstvt0t 0t0o@StBo@twtğBtm@t 0t0t0o@tvtwt0t 0t0 p@t0/p@tst0t 0t0Cp@t0t8ip@?tstvt0t 0t0}p@Yt1t0p@qt̟Bp@twtğBtk@t 0t0t0p@tvtst0t 0t0q@tstwt0t 0t0 q@ q@,tst4,q@#Gtst4Pq@utvtst0t 0t0\q@.t/Bq@9tstvt0t 0t1t1q@Dq@9tst1t 0t1t1q@f tvq@.$t8B r@9Qtst0t 1t1t1r@D?r@9tst1t 1t1t1window > Zentry1 > Zentry2 > Z {:{: << << ;;P #;#; ;;T ;; /</<K B;B;t t<t<~ _:_:] [;[;M ::!:: <<<< ;;!k;k; x ;;!a<a< k ::c <<~!;; S :: !;; !::  << !:: !<!<U O<O< ;;i =:=:HA#])GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden drawingarea.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoPr@JBdoubleintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed chargint16 short intguint32&long long unsigned intgsize;gint1gboolean2guint7floatgdouble:gpointerM>GData$L_GData?GType~GTypeClass{ _GTypeClass g_typeZGTypeInstance _GTypeInstance g_classhGCallbackV8  0 G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject g_type_instanceref_countqdataTGInitiallyUnownedEcairo_t |_cairocairo_surface_t _cairo_surface_cairo_content {NCAIRO_CONTENT_COLORCAIRO_CONTENT_ALPHA CAIRO_CONTENT_COLOR_ALPHA0 _cairo_rectangle_int  x  y  width J>  cairo_rectangle_int_t NGdkRectangle ]GdkDevice _GdkDeviceGdkWindow _GdkWindow  X GDK_SHIFT_MASK GDK_LOCK_MASK GDK_CONTROL_MASK GDK_MOD1_MASK GDK_MOD2_MASK GDK_MOD3_MASK GDK_MOD4_MASK@ GDK_MOD5_MASKGDK_BUTTON1_MASKGDK_BUTTON2_MASKGDK_BUTTON3_MASKGDK_BUTTON4_MASKGDK_BUTTON5_MASKGDK_MODIFIER_RESERVED_13_MASK GDK_MODIFIER_RESERVED_14_MASK@GDK_MODIFIER_RESERVED_15_MASKGDK_MODIFIER_RESERVED_16_MASKGDK_MODIFIER_RESERVED_17_MASKGDK_MODIFIER_RESERVED_18_MASKGDK_MODIFIER_RESERVED_19_MASKGDK_MODIFIER_RESERVED_20_MASKGDK_MODIFIER_RESERVED_21_MASK GDK_MODIFIER_RESERVED_22_MASK@GDK_MODIFIER_RESERVED_23_MASKGDK_MODIFIER_RESERVED_24_MASKGDK_MODIFIER_RESERVED_25_MASKGDK_SUPER_MASKGDK_HYPER_MASKGDK_META_MASKGDK_MODIFIER_RESERVED_29_MASK GDK_RELEASE_MASK@GDK_MODIFIER_MASK\GdkModifierType   GDK_EXPOSURE_MASK GDK_POINTER_MOTION_MASK GDK_POINTER_MOTION_HINT_MASK GDK_BUTTON_MOTION_MASK GDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASK@ GDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASKGDK_LEAVE_NOTIFY_MASK GDK_FOCUS_CHANGE_MASK@GDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASKGDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASK GDK_TOUCH_MASK@GDK_SMOOTH_SCROLL_MASKGDK_TOUCHPAD_GESTURE_MASKGDK_TABLET_PAD_MASKGDK_ALL_EVENTS_MASK - GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventMotion  _GdkEventMotion@  type @ Q> x time  x  y  axes  state $ is_hint ( device , x_root 0 y_root 8GdkEventButton _GdkEventButton@  type @ Q> x time  x  y  axes  state $ button ( device , x_root 0 y_root 8GdkEventConfigure _GdkEventConfigure ) type @ Q> x x  y  width J>  6GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_DOUBLE_BUTTON_PRESS GDK_3BUTTON_PRESS GDK_TRIPLE_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY GDK_SELECTION_CLEAR GDK_SELECTION_REQUEST GDK_SELECTION_NOTIFY GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_ENTER GDK_DRAG_LEAVE GDK_DRAG_MOTION GDK_DRAG_STATUS GDK_DROP_START GDK_DROP_FINISHED GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_SCROLL GDK_WINDOW_STATE GDK_SETTING! GDK_OWNER_CHANGE" GDK_GRAB_BROKEN# GDK_DAMAGE$ GDK_TOUCH_BEGIN% GDK_TOUCH_UPDATE& GDK_TOUCH_END' GDK_TOUCH_CANCEL( GDK_TOUCHPAD_SWIPE) GDK_TOUCHPAD_PINCH* GDK_PAD_BUTTON_PRESS+ GDK_PAD_BUTTON_RELEASE, GDK_PAD_RING- GDK_PAD_STRIP. GDK_PAD_GROUP_MODE/ GDK_EVENT_LAST0GdkEventType j) VR GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL  GTK_SHADOW_NONE GTK_SHADOW_IN GTK_SHADOW_OUT GTK_SHADOW_ETCHED_IN GTK_SHADOW_ETCHED_OUTGtkWidget ._GtkWidget parent_instance = GtkWindow 0_GtkWindow5Hbin7  =9GtkWidgetPrivateB`_GtkWidgetPrivateGtkAllocationSH   GtkContainer-_GtkContainer1>3 =6GtkContainerPrivate._GtkContainerPrivateGtkBin-._GtkBin1W3>3 =6|GtkBinPrivate.l_GtkBinPrivateWGtkWindowPrivate._GtkWindowPrivate t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMisc._GtkMisc2">4 =7IGtkMiscPrivate/8_GtkMiscPrivate"GtkLabel.__GtkLabel4misc6 =9GtkLabelPrivate/_GtkLabelPrivateGtkBox/_GtkBox33>5 =8GtkBoxPrivate0_GtkBoxPrivateGtkFrame.,_GtkFrame2Wbin4  =7GtkFramePrivate/n_GtkFramePrivateWscribble_button_press_event]>]event^data_(draw_brushBPr@>B&xCyDupdate_rectF`crG&'r@! r@!_!ts!tv r@!t!ts r@!!ts r@!!tw"r@!!tv!t0#scribble_motion_notify_eventls@pr$>leventmdatan(xpdyphstateqXl Cs@!`!td!t h!tl"is@!Pclose_windowps@;s@!#scribble_configure_events@$>eventdata(allocations`crD's@! s@!=!ts!t` s@!R!ts t@ "v!t !tv!t wt@! (t@"!ts!t ?!t ?!t ? 0t@#"!ts"8t@!!ts#scribble_draw6Pt@2$>6cr7data8( st@/"r!ts!t !t "{t@#"!ts#checkerboard_drawt@Ndacrdata(ib'j'xcount'ycount'width(%J>D( t@;"G!ts t@G"\!ts u@"!tw!t !t !t @ŊL? => ->>8,\?\? ,@@ ,>>,>>,<=<=Y,>>  ,"="=,??,== ,>> ,$@$@ ,\>\>,==,== ,??S,??k,>>x-==,8?8?,{>{>-??,==->>-==P-??-N?N?[-q=q=n-??T-??U-g?g?k-??H,??,[=[=\,==#+GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden editable_cells.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demopy@ Echarunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGArray%(_GArray)Q@+Q len,] GData$k _GData^ GType~ GTypeClass _GTypeClassg_type GTypeInstance _GTypeInstanceg_classGCallbackVWUG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags"GObject y_GObject  g_type_instance  ref_count  qdata sGInitiallyUnowned y -GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST  VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL \GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkWidget ._GtkWidget A =@ w GtkWindow 0_GtkWindow5F bin7=@9GtkWidgetPrivate B^ _GtkWidgetPrivateFGtkContainer-_GtkContainer1 widget3=@6GtkContainerPrivate. _GtkContainerPrivateGtkBin-_GtkBin11@3}=@6VGtkBinPrivate.F _GtkBinPrivate1GtkWindowPrivate.t _GtkWindowPrivate\tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/_GtkBox3@5}=@8GtkBoxPrivate0 _GtkBoxPrivateGtkTreeIter'8_GtkTreeIter] stamp_ user_data` user_data2a user_data3b GtkTreePath( _GtkTreePathGtkTreeModel* _GtkTreeModel%GtkCellEditable# _GtkCellEditableGtkCellRendererP0 _GtkCellRendererUb AW=@Z GtkCellRendererPrivateQ _GtkCellRendererPrivateb  GtkTreeViewColumn) _GtkTreeViewColumnT AV=@X3 GtkTreeViewColumnPrivate+ _GtkTreeViewColumnPrivate  GtkListStore(M _GtkListStore,| FA.j=@1 GtkListStorePrivate) _GtkListStorePrivate| GtkTreeView= _GtkTreeViewC FAE}=@Hn GtkTreeViewPrivate? _GtkTreeViewPrivateGtkTreeSelection@; _GtkTreeSelectionKn FANj=@P   GtkComboBox& _GtkComboBox* A,=@/ GtkComboBoxPrivate( _GtkComboBoxPrivate GtkCellRendererText' _GtkCellRendererText+A FA- =@0 GtkCellRendererTextPrivate(c _GtkCellRendererTextPrivateA  GtkScrolledWindow- _GtkScrolledWindow1 @3=@5 GtkScrolledWindowPrivate. _GtkScrolledWindowPrivate { GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkTreeSelectionPrivate% _GtkTreeSelectionPrivate# { 9   number productQ yummyItem gCOLUMN_ITEM_NUMBERCOLUMN_ITEM_PRODUCTCOLUMN_ITEM_YUMMYNUM_ITEM_COLUMNS"COLUMN_NUMBER_TEXTNUM_NUMBER_COLUMNSremove_itempy@~widgetq@D%PAt c)D)selection )y@=i)path)y@Z!atvtsy@f!vtwy@q!tvtsy@|!tuy@!twy@!tsy@!ty@!t0tsseparator_rowy@;DD@path)idx* z@Z!ttz@f!tsz@!tsadd_item0z@buttonq@foo Dcurrent%PD%`path@D*column- >*At ^* B̡B!@{B@*@!tBz@!tDt1z@!tst@t0z@!tsz@!tvtw"z@!z@!-tvtwtP*{@!btvtwt0t1t2t  6{@Z!~tvtwJ{@!tst0f{@"tst 0"r{@!{@"t0t̡BtxB{@"tvtwt #$0editing_started{@%%cell *%editable *%path*&@+'{@&"y@0 0cell_edited{@kcell path_stringnew_text@ D&+path\+D%Pcolumn+D|@(i+)old_text QLh|@1"tvtwt1t Lt "t|@="||@f!ts"|@="|@!t|@!tvtwt1t |@Yni+|@f!2ts}@N"HtK}@!tvtwt0t  |@\"t!|@g"ttB3|@!tvtwts|@!tsS}@!ts*add_columns9+At +:A+@,renderer  -create_numbers_modelm.ip/Dq /Dr%0.strz#$0-create_items_modelK.iM/DN /DO%1D*.foo, 2BD0/B@.#$0 3do_editable_cellsNq`}@D!4do_widgetNq)windowPq Z}@C(!(vboxTq+(hboxUq",(swVq@,5AWq,(buttonXq,6:AYV6@ZW7@Xt$8X9,9-:P;'@pT8p:P:B!]96-L@!utYBq@!tst1@!tiB@!tst1@!tB@!tst1@!tB@!)tst10@!AtBU@!\tst1@"t0tBtxB'@s"t0t0t<t 1@~"t3tHt@t HtD@"tvts@!tvtst0t1t2t  <9@qu=@q9ZV-9cj-:nP%@::zN?@"twts_@!twtst0t ut @~"t1t@tH<@|>>?-=@9'-"@"ށ@"vtutBtwt Bt0tBt0tBt 1t$0 @"tutBt{@t vt0t0:@"tut Bt{@t 0t0t0R@"tutBt0@"Utst t!Bt utBt0t0"@"@"tutBt1t 0ق@"tutBt{@t vt0t0@"tutBt1%@"-tst t(Bt utBt1t0"*@"D@"[tutBt2x@"tst t6Bt ut0Bt2t0}@"t0}@"t"}@"}@#tB ~@#t5B~@"-tB@tt  Zt0t0V~@#Gt1t5m~@)#\twy~@4#ttB~@?#twt0t 0t0~@J#t0t0~@U#tst3~@`#tst1t1@?#twtst1t 1t0q@k#4tv{@!Its@v#]t1@#rtw@#tv@)#tts@#t0t4@#tvt1@?# ttvt0t 0t0@#" t _GdkDeviceGdkDragContext` _GdkDragContextGdkWindow _GdkWindow9 GDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASK@GDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASKGDK_LEAVE_NOTIFY_MASK GDK_FOCUS_CHANGE_MASK@GDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASKGDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASK GDK_TOUCH_MASK@GDK_SMOOTH_SCROLL_MASKGDK_TOUCHPAD_GESTURE_MASKGDK_TABLET_PAD_MASKGDK_ALL_EVENTS_MASK- GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST L GDK_AXIS_FLAG_XGDK_AXIS_FLAG_YGDK_AXIS_FLAG_PRESSUREGDK_AXIS_FLAG_XTILTGDK_AXIS_FLAG_YTILT GDK_AXIS_FLAG_WHEEL@GDK_AXIS_FLAG_DISTANCEGDK_AXIS_FLAG_ROTATIONGDK_AXIS_FLAG_SLIDER GdkAxisFlagsV GdkDeviceTool# _GdkDeviceTool5GDK_DEVICE_TOOL_TYPE_UNKNOWNGDK_DEVICE_TOOL_TYPE_PENGDK_DEVICE_TOOL_TYPE_ERASERGDK_DEVICE_TOOL_TYPE_BRUSHGDK_DEVICE_TOOL_TYPE_PENCILGDK_DEVICE_TOOL_TYPE_AIRBRUSHGDK_DEVICE_TOOL_TYPE_MOUSEGDK_DEVICE_TOOL_TYPE_LENSGdkDeviceToolType>GdkEventAny|;_GdkEventAny VyIXZ$LY@*gMZGdkEventExpose}_GdkEventExpose$lInZ$Lo@*gMpareaq regionrF*counts< GdkEventVisibility~_GdkEventVisibilityiIZ$L@*gMJ$ GdkEventMotion_GdkEventMotion@6IZ$L@*gMOP xeyeaxesL* JX$is_hint(LR*,PJe0Ke8GdkEventButtonL_GdkEventButton@IZ$L@*gMOP xeyeaxesL* JX$IX(LR*,PJe0Ke8GdkEventTouch_GdkEventTouchH!I#Z$L$@*gM%OP& x'ey(eaxes)L* J*X$L+X*(emulating_pointer,H,L-R*0PJ.e8K.e@GdkEventScroll_GdkEventScrollXQISZ$LT@*gMUOPV xWeyXeJYX directionZV%$L[R*(PJ\e0K\e8delta_x]e@delta_y^eHis_stop_XPGdkEventKey_GdkEventKey(IZ$L@*gMOP JXkeyvalXlength<stringhardware_keycode J"is_modifierX$GdkEventFocus_GdkEventFocus IZ$L@*gMin GdkEventCrossing+_GdkEventCrossingHIZ$L@*gMsubwindow@* OPxeye PJe(Ke0mode'8detail &<focusH@JXDGdkEventConfigure_GdkEventConfigureIZ$L@*gMx< y<width<P<GdkEventProperty_GdkEventProperty IZ$L@*gMatom OPJXGdkEventSelection#_GdkEventSelection I Z$L @*gM FJ  targetJOPrequestor@*GdkEventOwnerChange_GdkEventOwnerChange &cI(Z$L)@*gM*owner+@* reason,)*FJ-OP.selection_time/GdkEventProximity|_GdkEventProximityEIGZ$LH@*gMIOPJ LKR*GdkEventDND_GdkEventDNDcIZ$L@*gMcontext^* OPPJ.K.GdkEventWindowState~_GdkEventWindowStatemIoZ$Lp@*gMqchanged_maskr9) new_window_states9)GdkEventSetting _GdkEventSettingYhI[Z$L\@*gM]K^) name_?GdkEventGrabBroken_GdkEventGrabBrokenIZ$L@*gMkeyboardH implicitHgrab_window@*GdkEventTouchpadSwipe_GdkEventTouchpadSwipeHIZ$L@*gMphase J OP xeyedxe dye(PJe0Ke8JX@GdkEventTouchpadPinch_GdkEventTouchpadPinchXIZ$L@*gMphase J OP xeyedxe dye(angle_deltae0scalee8PJe@KeHJXPGdkEventPadButton_GdkEventPadButton|IZ$L@*gMOP JXIXmodeXGdkEventPadAxis_GdkEventPadAxis(*I+Z$L,@*gM-OP. J/Xindex0Xmode1Xvalue2e GdkEventPadGroupMode7_GdkEventPadGroupModeEIFZ$LG@*gMHOPI JJXmodeKXGdkEventSequence _GdkEventSequenceGdkEvent_GdkEventX IZ$any(exposeyvisibilitymotioniI6touchscrollkeycrossingfocus_changeconfigureJFJ owner_changeproximitycdndwindow_statecsettinggrab_brokenhtouchpad_swipetouchpad_pinchpad_buttonpad_axis|pad_group_mode6Z$GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventTypej u$GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityStateyo$V%GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection$ &GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyTypeq%'GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode!&9)GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState+''7)GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction;P)F)*GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChangeJ)q ~e- J GtkWidget.u* _GtkWidget*}LuI$+ GtkWindow0* _GtkWindow5* bin7+I9=,GtkWidgetPrivateB* _GtkWidgetPrivateGtkAllocationSd** +GtkContainer-D+ _GtkContainer1s+K3d*I6+GtkContainerPrivate.+ _GtkContainerPrivates+GtkBin-+ _GtkBin1+ container30+I6 ,GtkBinPrivate.+ _GtkBinPrivate+GtkWindowPrivate.*, _GtkWindowPrivate,ty,GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkMisc., _GtkMisc2,K4d*I7,GtkMiscPrivate/, _GtkMiscPrivate,GtkLabel., _GtkLabel4- misc6y,I9D-GtkLabelPrivate/2- _GtkLabelPrivate-GtkPadController'b- _GtkPadControllerGtkPadActionEntry)- _GtkPadActionEntryE-IFC. indexG< modeH<MI action_nameJ3C.GTK_PAD_ACTION_BUTTONGTK_PAD_ACTION_RINGGTK_PAD_ACTION_STRIPGtkPadActionType7-@. last_sourceR* last_tool. axesL* color x e0 y!e8 AxesInfo"[.$/ pointer_info%+ touch_info&+EventData'. draw_axes_info0!crr!info0"M*+#pressuree#tilt_xe#tilt_ye#distancee#wheele#rotatione#slidere#axes $/%patternx$/%dashes 0%extents!U&%pattern[x%mask[x.'-0(E)tool_type_to_string[0*K+update_label_text0*M+,text%markup render_arrow0!crr!x_diffe!y_diffe"Mի-draw_device_infop@3.K+'//crr^/.LX*/0y0info01layout/1string/2P<\324K1serial#05@P5@Q6"@Q17tw7tB7tL8H@Q7tw7tB6@Q27ts6@*Q027t05@5Q6@QX27tw7tȢB6Ӊ@Q27tw7tӢB7tD6W@@Q27ts7t D6e@LQ27tu6s@XQ27ts7tu6{@cQ27ts6@oQ 37tu7t07t\6@{Q&37ts7tv6@QI37ts7t D6ˊ@@Ql37ts7t H6@Q37ts7t H7t D6@cQ37ts6@Q37ts6 @Q37tu8@Q7tw7t19axes_info_newR0P@V4:infoT0_0;T@m4<__nV<__sV@:__pVt_08`@Q7t@8}@Q7ts update_axes_from_eventu45!eventu !datav45=LxR*#source_devicexR*=LyX*#toolz.#x{e#y{e#info|0&#_pp#_pt#_destroy/9event_cbH@v7>K+?eventɘ >VIt@4@c7A40A40BC40C40C41C4C1D4PD4XC51;9@6C 5'2C5I2E"55O@Q6Ë@Q.67ts6ϋ@QC67ts6ً@RX67ts6@ Rm67ts6@R67tv6@#R67ts7tP7tX6ƌ@/R67tH6Ռ@:R67tw5@ER6@/R67tv6@/R77tH66@R77tH5I@36e@QR@77tH7tu5u@38@QR7tv7tu8@\R7tFevent_data_freem@*7?datam455@hR5@hRGʍ@Q-update_label_and_timeoutЍ@k8.M+\2/text2H[0@,!8A02Av02I@,C026@sRe87tB7tw6@~R87tv7ts8@Q7ts5@R8/@R7t7t@7tv-on_action_activate&@@o9JK&]0parameter'JVI(tKM*+21result+/31str,n36b@Rk97t7tB6p@R97ts6@sR97t#B7tw6@797Pv7RsG@QL@77PMreset_label_text_timeout_cbH@3:JVIt2M+N[0@ A03Av03I@ C036ǎ@~Rt:7t7t08ӎ@Q7t0O/@HA(/3A2/4P>/>/P>/>/DI/~DY/Dg/Du/D/D/D/C/G4;%@<C/{46G@R>;7t37t ~6q@R;7t ~7t ~7t ~7t ~7t ~7t( ~6@R;7tu7t ?7t ~7t ~6@R<7tu7t ?7t$ ~6ɐ@R;<7ts7tu6@R<7ts7t ~7t ~7t ~7t ~7t$ -DT!@6@R<7ts8@R7tuQ0Y@;>A04A04A04A046s@Q=7ts6@ SS=7ts7t ~7t ~7t ~6@Sh=7ts6@@Q=7ts7t ~7t ~6@Q=7ts7t~7t ~6ɑ@cQ=7ts6@@Q >7ts7t~7t ~6@#S)>7ts7t+B8@Q7ts;@`L@D/D/6:@Rv>7t77t 6B@Q>7ts6h@@Q>7ts7t ~6@ S>7ts7t ~7t ~7t ~6@/S#?7ts7t7t27t ~6Ӓ@RX?7ts7t ~7t$ -DT!@6ے@cQm?7ts6@@Q?7ts7t ~7t ~6@;S?7ts7t0B7t69@GS?7ts7t ~6I@#S@7ts7t0B6]@@Q:@7ts7t ~7t ~8e@Q7ts;@EC/4C0 56 @R@7t97t 6@Q@7ts61@@Q@7ts7t ~7t $6K@SSA7ts7t ~7t I6e@SS;A7ts7t $@7t ~6@SSrA7ts7t 7t I@6@_SA7ts6@kSA7ts6@wSA7t $7t $7t ~7t ~6ٕ@SAB7tv7t ?7t ?7t ?7t ~6@SB7tv7t ?7t ?7t ~7t ~6@RB7ts7tv6 @RB7tv6-@wSC7t $7t $7t ~7t ~6Q@RwC7tv7t ~7t ~7t ~7t ~7t$ ?6z@RC7tv7t ~7t ~7t ~7t$ ?6@RD7tv7t ~7t ~7t ~7t$ ~6Ö@R}D7tv7t ?7t ~7t ~7t ~7t$ ~6ϖ@SD7ts7tv6ז@RD7tv6@ SD7ts7t ~7t ~7t ~6@cQE7ts8@Q7ts5 @S6@Q5E7ts6"@Q[E7ts7t ?61@{QwE7ts7tv6J@@QE7ts7t ~6`@QE7ts6w@@QE7ts7t ~6@QE7ts6@cQE7ts6@SF7ts6@Q(F7ts62@RDF7t47t 6S@R`F7t57t 6@R|F7t67t 6@QF7ts6@QF7ts7t $@6Г@S G7ts7t ~7t ~7t ~7t ?6ؓ@SG7ts6 @RTG7ts7t Y@7t ~6@cQiG7ts6@Q~G7ts6J@RG7t87t 6f@QG7ts6x@SG7ts7t -DT!6@SG7ts7t16@QH7ts7t @6@S+H7ts6͔@RbH7ts7t Y@7t 6Ք@cQwH7ts8ݔ@Q7tsMdraw_cbH@ZJJK+0crrJVItRdata452M +1info0*5RiterHRkeytRvaluetRy<6C@SbI7t7t6U@SwI7ts6r@:I7Pu7Q@7twS>/6@SI7ts7t07tv6@SI7ts6@:J7Pu7Q@7twS>/6ɗ@S$J7ts7t07tv6@S9J7ts6@0`J7P7Ru7Q07tw6@SJ7ts7t07tv6,@SJ7ts6N@0J7P7Ru7t8^@S7ts7tw7tv+init_pad_controller;RK*L;+*M<+%pad_controller>RK%action_group?4K@]%iA<J-Tevent_data_new_45K#dataa45&#__nc#__sc#__pctUdo_event_axese+p@BAP0toplevele+2Lg+ Z%event_datah451boxi+b5KMi+5HXKr@[LIr@[CsK53uLVKVKCK58~@Q7t86@TL7t07t07t0Wt 8ʙ@T7t07t07t0Wt HJ@3eNPKTAJ5I@3CK)6C&KH6C;Kg6CGK65@T6@T:M7tX7tP7t06Ú@&TNM7t06@1TM7ts7trB7t@@7t T7t07t06 @=TM7ts7tB7tw6@ITM7tP7ts6$@QM7ts6W@TTN7tpB7t06|@_T&N7tv7t@qB7t86@jTQN7tX7t{B7tvWt 8@Q7tP5@vT5@T5@T6Ә@TN7t06@TN7t=B6@TN7t 7t 6:@1TN7tHBWt7t  Z7t07t05?@T6R@TO7ts6b@T5O7ts7t16r@TTO7ts7t 36@jTO7ts7tPB7tv7t @6@1TO7ts7tdB7t@7t v7t07t06F@1TO7ts7tjB7t@7t07t06R@T P7toB6h@T(P7tw7t18t@T7ts7tw'u-QP(EXpad_actions8AP@qB'zP(EXpad_action_resultsCPBjPXcur_colorNX ZXpad_action_timeout_idOX Z'P(E Ycolors)PqBZPPJZ+J+JDZNN[PPZII1ZMM[NNW[0P0PZeLeL[#P#P[JJ1ZKLKL*[CMCM[OOOO][LL[XMXM Z N N8ZKK PZNN>\g_freeg_free G[II[qOqO[NN[ O O#ZjJjJX[MMZOONZKK[PP!ZJJC[IIZKKAZLL!ZOOn[rMrM"/[II">[NN 6Z:O:OZKK[JJ [ K K [MM[6N6Nf[cKcK[&L&L [PNPN[TKTKT[@N@N[LL*[WJWJ[LLz[JJ}[ P P[eNeN[MM [NN [JJ[]O]O [MM3[yNyN[NNZ[II9[nKnK[KKZPP}ZIIZnPnP tw@I;twt0@UVtwt2@a}t\t4Bt '@ltstw3@ltvtsW@wtutvt1t 1t0_@tv@-tvtBt0@t0t0Ş@tBt@t 0t0t0 window  Z!SS "bQbQ!hShS k"2R2RX!QQ!RR S!oRoR x!+Q+Q "QQk"{S{S~"QQ"RR"LRLRP"SS"RR"zQzQ"RR"]R]R"RR!1S1Su!SSp"QQ"VSVS"RRZ!QQG8GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden filtermodel.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoО@Ycharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intgint64,guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong69guint7gfloat9/floatgdouble:GdoublegpointerMmGData${_GDatanGType~GValue _GValuej g_typem datazGTypeClass _GTypeClass  g_typeGTypeInstance" _GTypeInstanceL g_classL pv_intqv_uintrv_longsv_ulongtv_int64uv_uint64vv_floatw!v_doublex8v_pointeryQX-GCallbackVgAG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject e _GObject  g_type_instance  ref_count  qdata GInitiallyUnowned eGtkBuilder # _GtkBuilder ]T _VS ay GtkWidget .# _GtkWidget OT S  GtkWindow 0` _GtkWindow 5 bin 7FS 9GtkWidgetPrivate B_GtkWidgetPrivateGtkContainer- _GtkContainer1 widget3S6@GtkContainerPrivate.*_GtkContainerPrivateGtkBin-T _GtkBin1 container3S6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivateGtkTreeIter' _GtkTreeIter]N stamp_ user_data`Q user_data2aQ user_data3bQ GtkTreePath(a_GtkTreePathGtkTreeModel*_GtkTreeModeloNGtkCellRendererP _GtkCellRendererUTWSZ$ GtkCellRendererPrivateQ _GtkCellRendererPrivateGtkTreeViewColumn)I _GtkTreeViewColumnT}TVSX GtkTreeViewColumnPrivate+_GtkTreeViewColumnPrivate0}GtkListStore( _GtkListStore, -U.VS18 GtkListStorePrivate)" _GtkListStorePrivate GtkTreeModelFilterKX _GtkTreeModelFilterO -UQVST GtkTreeModelFilterPrivateM _GtkTreeModelFilterPrivate > GtkTreeView= _GtkTreeViewC -UESHF GtkTreeViewPrivate?1 _GtkTreeViewPrivate GtkBuilderPrivate )e _GtkBuilderPrivateL GtkCellRendererText' _GtkCellRendererText+ -U-S0 GtkCellRendererTextPrivate( _GtkCellRendererTextPrivate GtkCellRendererSpin$0 _GtkCellRendererSpin(f -U* S- GtkCellRendererSpinPrivate& _GtkCellRendererSpinPrivatef    WIDTH_COLUMNHEIGHT_COLUMNAREA_COLUMNSQUARE_COLUMNvisible_funcJО@= }VJiterKdataLQwidthNl@ttt0t lt filter_modify_func#@,u}V#iter$value%R4U& data'Qfilter_model) w7width*Hheight*Lchild_model+7child_iter,P__func__(B+@ twA@ twtvtu@ tutvt0t Ht1tLt @tɟ@t@-t@ bt0tBtEt (Bt04@t-ucell_editedX@@ycellX path_stringYnew_textZstore[  val]8path^-8iter_` 4U`K8Z@Btl@#etstvtwt@/ztw@:ttB@Ft@Ttstvtwt format_number@scolcell*}Viter dataQnumltextai8@tt tt lt @_tB&@jttBtst 0.@vts!do_filtermodeln@@do_widgetnwindowp Ztreeq8storer 8 }Vs8 4Ut 9cellu*9typesvP"@-builderz;:@tB@tst0@tstէBѡ@t#@@VtݧB$tt  Zt0t0'@utstB9@tstBK@tstBq@tutwt@t 0t0@ twtBt0@FtwtBt@@t vt0t0Ţ@etstBע@tst)B@tutwt@t 1t0@twtBt1A@twtBt@@t vt0t0Q@6tst;Bc@UtstKB@twt@t 0t0@tst]B@tstmBͣ@twt@t 1t0ݣ@tstB@'tstB@Rtwt@t 2t0#@qtstB5@tstBQ@twtŨBt 3a@tstͨB@tvt0Ť@'twt4tPt @t0t0Ѥ@Ctutw@btstרB@tstB@twt@t 0t0'@tstB9@tst B]@twt@t 1t0m@4tstB@Otvt0@ztvtО@t0t 0@twtv@ts#X@&#i@2#@>-%TTl&TT&TT&\V\V&nUnU%JTJT1&,T,T%UU7&yTyT%UU 6'atoiatoiZ&TTU&;U;U%pVpV (g_freeg_freeG&UU &SS &EVEV %UU %~U~U %cTcT&VV%UU 9&KUKU}&TTo&VVw&UU&VVr%SS %.V.V S%VV k%UU x9 ;GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden fishbowl.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@c\doublelong long intcharunsigned intintshort unsigned intlong intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&gint64,long long unsigned intgsize;gint1 gboolean2guint7floatgpointerMGQuark$3GData$A_GData4GType~GTypeClassv _GTypeClass g_typeUGTypeInstance _GTypeInstance g_classcGCallbackV-  + G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject O_GObject g_type_instance ref_count qdata OGInitiallyUnowned O -} GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GdkFrameClock +_GdkFrameClock}GtkBuilder #_GtkBuilder ]W _@V a GtkWidget ._GtkWidget$WV GtkWindow 05_GtkWindow5abin7V9GtkWidgetPrivateB_GtkWidgetPrivategGtkContainer-_GtkContainer1X3V6GtkContainerPrivate._GtkContainerPrivateGtkBin-&_GtkBin1OX3V6tGtkBinPrivate.d_GtkBinPrivateOGtkWindowPrivate._GtkWindowPrivatezGtkMisc._GtkMisc2X4V7 GtkMiscPrivate/_GtkMiscPrivateGtkLabel.!_GtkLabel4Mmisc6V9vGtkLabelPrivate/d_GtkLabelPrivateMGtkBuilderPrivate )_GtkBuilderPrivate|GtkButton._GtkButton2bin5V7GtkButtonPrivate/_GtkButtonPrivateGtkToggleButton-4_GtkToggleButton 1ibutton4V6GtkToggleButtonPrivate._GtkToggleButtonPrivateiGtkFishbowl _GtkFishbowl#X%Stats_StatsH last_statslast_framelast_suggestionframe_counter_maxstats_indexframe_counter item_counter 0 :get_stats! ! Xstats_quark!stats"!  _g_boolean_var_$ __n*__s*__p* @=  Y: !Z :ǥ@ n  :  : : !Z@  ; +; : @!tH"+@" !tv!ts#t "3@. !tv$;@:"ܥ@E+ !t@!tSB"P@!ts!t0"`@!ts!tiB"u@!ts!tpB"@>!ts!tuB"@]!ts!tB"@s!t$@"@!tB#t!t !Z!t0!t0$@ @ !tv!tP@!tw!t 0$@$@$$@01allow_changes (Z2WWP3XX 3WW2:W:W O2WW+3QXQX 2WW2WWi4g_freeg_freeG2YWYW12"Y"YY2WW22XX-3WW+2zXzX 2VV 2XX 3dXdX3WW3pWpW3 X X34X4X63XXS3XXk3$X$XrP[=GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden foreigndrawing.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo0@.`doubleintfloatcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned chargint16 short intguint16!long long unsigned intgsize;gchar.gint1gboolean2guchar4jguint74?GData$M_GData5# G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@ G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|@( G_ASCII_ALNUM G_ASCII_ALPHA G_ASCII_CNTRL G_ASCII_DIGIT G_ASCII_GRAPH G_ASCII_LOWER G_ASCII_PRINT@ G_ASCII_PUNCT G_ASCII_SPACE G_ASCII_UPPER G_ASCII_XDIGIT GType~ GTypeClass  _GTypeClass1g_type GTypeInstanceG _GTypeInstanceqg_classqGCallbackV9!  G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags GObject _GObject .g_type_instance 1ref_count qdata #GInitiallyUnowned MGPangoLayout k_PangoLayoutXcairo_t |_cairoGdkPixbuf _GdkPixbufV GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALc GTK_STATE_FLAG_NORMAL GTK_STATE_FLAG_ACTIVE GTK_STATE_FLAG_PRELIGHT GTK_STATE_FLAG_SELECTED GTK_STATE_FLAG_INSENSITIVE GTK_STATE_FLAG_INCONSISTENT GTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@ GTK_STATE_FLAG_DIR_LTR GTK_STATE_FLAG_DIR_RTL GTK_STATE_FLAG_LINK GTK_STATE_FLAG_VISITED GTK_STATE_FLAG_CHECKED GTK_STATE_FLAG_DROP_ACTIVE GtkStateFlagsrGtkBorder%_GtkBorder3left5right6top7bottom8GtkStyleContext, _GtkStyleContext+Eparent_object-a[. GtkWidget.V_GtkWidget[.a[ GtkWidgetPath/_GtkWidgetPathGtkWindow0_GtkWindow5bin7 a[9. GtkWidgetPrivateB_GtkWidgetPrivateEGtkContainer-/ _GtkContainer1^ [3Ea[6 GtkContainerPrivate.y _GtkContainerPrivate^ GtkBin- _GtkBin1 container3 a[6 GtkBinPrivate. _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate tj GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkStyleContextPrivate) _GtkStyleContextPrivatej GtkIconInfo3 _GtkIconInfoGtkIconTheme5 _GtkIconThemeD [Ga[IB GtkIconThemePrivate7, _GtkIconThemePrivate   draw_horizontal_scrollbar& [ crxy[[_Y^Uscrollbar_context ] +[ ^ slider_widthdraw_progress [ crxy[[_^Ubar_context +[ progress_context draw_scale [ crxy[[_^Uscale_context ] +[ ^ highlight_context zZZZ]trough_heightslider_heightdraw_notebook[ crxy[[^notebook_context header_context tabs_context tab1_context tab2_context stack_context header_heightzZZZ]draw_menubar[ crxy[[^Uframe_context border_context menubar_context hovered_menuitem_context :[ zZZZ]item_widthdraw_checkG[G crHxIyJYK[[LU^MU^O \P zZQZQZQ]Qdraw_radiohg[h crixjykYl[[mU^nU^p \q zZrZrZr]rget_style_with_siblings $[ k_Gf[R_path siblings_path i!draw_comboboxB[ crxy[[has_entry^Ucombo_context box_context ^ button_box_context ^ arrow_context zZZZ] ]]\]^3f[Bf[RGRIGbI draw_menu}[ !cr!x!y[[^Umenu_context ":[ hovermenuitem_context hoveredarrowmenuitem_context arrowmenuitem_context checkmenuitem_context disabledarrowmenuitem_context disabledcheckmenuitem_context radiomenuitem_context disablemenuitem_context disabledradiomenuitem_context separatormenuitem_context menuitem1_heightmenuitem2_heightmenuitem3_heightmenuitem4_heightmenuitem5_heightzZZZ]menu_xmenu_ymenu_widthmenu_height]\]^toggle_xtoggle_ytoggle_widthtoggle_heightdraw_text!8[! cr"x#y$[[%^&text'.Y(label_context* selection_context+ \, layout-y#append_element0@4$path R=%k_G=&nameGstate_flagw'pseudo_classesB(next$G>(name%C~>(type& ?(i'!(?)__func__B*h(gtype0F?+@XA,tw+@XV,tu+D@X,t0,t8,tB,t w-L@X,tw+K@X,ts,tB+e@X,ts,tvs+@X,tw+@X,tu,t4+Ԫ@X$,tu,t ,tw+ܪ@X9,tw+@XX,tw,tB+@Xw,tw,tvw+M@X,t0,t©B,tf,t B,t0+d@X,tu,t ,tw+@X,tu,t ,tw+@ Y,tw+߫@X2,t0,t8,tөB,t w+@YG,tw+@&Yc,tu,t +@1Y,tu,t -\@Y,tsI MI.create_context_for_patho p@V$patho d?%$[p ?/\r ?0@%$[ ?%k_G2@(path t@+@wY,ts0@Y+@8,Pv,Rw1@4,RP0@Y#query_size @%\է @%[[U@%^UA'marginٗX'borderٗ`'paddingٗh2\P2^T+4@Y,ts+H@Y,ts,tX+P@Y,ts+d@Y9,ts,t`+l@YN,ts+@Yj,ts,th+@Y,ts-@Y,ts,tB,t P,tB,tT,t0#draw_style_common@@3 %\ ,A$crXA$xA$yA%[[A%^A3zZU 3ZU3ZU3]U'marginH'borderP'paddingX2\@2^D+X@Y,tw+l@Y,tw,tH+t@Y,tw+@Y,tw,tP+@Y0,tw+@YL,tw,tX+@Ya,tw+@Y,tw,tB,t @,tB,tD,t0+x@Y,tw,tu,t,t,t,t -@Y,tw,tu,t,t,t,t 4`@1"5/B5:8B5DWB6N6Z6f6##7rvB7~B8P8T8X8\+@ ,P0,RB+@ ,Pu,R B+@`Y !,ts,t+@>-!,Pu,Rv,Qw+ǰ@>M!,Ps,Rv,Qw+ @!,Pu,RD,QH,tL,t 0,t0,t0,t0+M@!,Ps,Rv,QH,tw,t P,tT,tX,t\+y@Y!,ts,tv+@Y",ts-@Y,tu4@1#5B5B5B66667C7*-C86P8BT8NX8Z\+DZ@",P0,RB+ӱ@",Pu,RB+@`Y",ts,t+@>#,Pu,Rv,Qw+@>0#,Ps,Rv,Qw+I@r#,Pu,RD,QH,tL,t 0,t0,t0,t0+@#,Ps,Rv,QH,tw,t P,tT,tX,t\+@Y#,ts,tv+@Y#,ts-ɲ@Y,tu4g@{$5KC5C5C67D7QD7oD+@wYc$,tw0@Y0 @Y+@8$,Pv+:@Z$,tu,tv,t\+B@lY$,tv1R@$,RP0W@Y4`@#8,5D5D5D6$606B67NE7d5E7xiE7E7E7E8@8D8H8L7/F8P8 T7NF9@;&8&T+̳@#%,Pu,Rw,Q0:JB-޳@#,Pu,Rw,Q1:\B9@G&84T-@#,RT,Q0:\B+@c&,P0,R%B+@&,P,R4B+@&,P,RiB+@&,P,RxB+@>&,P,R0,Qs+@>',Pu,R0,Qs+'@>!',P,R0,Qs+4@>B',P,R0,Qs+A@>c',P,R0,Qs+L@>',Pw,R0,Qs+T@Y',tw+@Y',tw,tB,t P,tB,tT,t0+@!(,P,Rv,Q,t,t,t 0,t0,t0,t0+'@l(,Pu,Rv,Q,t,t,t 0,t0,t0,t0+p@(,P,Rv,Q,t,tu,tu,t 0,t0,t0,t0+@),P,Rv,Q u",t,tu,t @,tD,tH,tL+@N),P,Rv,t 0,t0,t0,t0+C@),Pw,Rv,t 0,t0,t0,t0+@ Z),tw,tv,t -DT!?,t ,t s+@Y),tw+@Y),t+ɶ@Y *,t+ն@Y#*,t+ @B*,P,RiB+@a*,P,RxB+,@>*,P,R0,Qs+7@>*,Pu,R0,Qs+D@>*,P,R0,Qs+Q@>*,P,R0,Qs+\@>+,Pw,R0,Qs+d@Y+,tw+@YT+,tw,tB,t P,tB,tT,t0+@+,P,Rv,Q,t,t,t 0,t0,t0,t0+7@+,Pu,Rv,Q,t,t,t 0,t0,t0,t0-~@,P,Rv,Q,ts,t,t @,tD,tH,tL4}@5.5F5F5F6667 G75G7IG7(G;; +@,,P0,R~B+˸@,,Ps,RB+۸@`Y-,ts,tv+@Z -,tu,t\+5@Yq-,tv,tw,t $@,tH,tH,t \+c@Y-,tv,tw,t $@,tH,tP,t \+@$Z.,tv,tw,t $@,tH,tu+@Y.,tu+@Y+.,tv<@Y4T @315 G5 G5 G6 6 6 6w w 7 H7 .H7 MH7 kH8 \; +ӹ@.,P0,RB+߹@.,Pu,RB+@/,P@,RB+@-/,Pw,RB+ @`YJ/,tu,t+@`Yh/,t@,t+/@`Y/,tw,t+?@`Y/,tv,t+P@>/,Pu,R0,Qs+]@>/,P@,R0,Qs+h@>0,Pw,R0,Qs+s@>0,Pv,R0,Qs+{@Y40,tv+@Y`0,tv,tB,t \,t0+@0,Pu,RD,Q:,tH,tL,t 0,t0,t0,t0++@0,P@,RD,Q:,tH,tL,t 0,t0,t0,t0+p@91,Pw,RD,Q:,tH,tL,t 0,t0,t0,t0+@|1,Pv,RD,Q# ,ts,t 0,t0,t0,t0+@Y1,tv+ǻ@Y1,tw+ӻ@Y1,t@-ۻ@Y,tudraw_spinbutton33[3 cr4x5y6[[7^8Uspin_context: ^; up_context< down_context= icon_theme>H icon_info?N pixbuf@icon_widthAicon_heightAicon_sizeA ]BzZCZCZC]C=draw_cbu@EJV>[u ?crv@panewidthxHA[[xA^x@xyH@yy IB& @55T I5t I6= 5 I5h JJ5^ _J5I rJC7 J7 J7 J+@84,P0,RܪB++@U4,Pv,RB+7@r4,Pw,RB+V@>4,Pv,R0,Q+f@>4,Pw,R0,Q+x@>4,P~,R0,Q+@5,Pv,Ru,Q:,ts,t~,t 0,t0,t0,t0+@b5,Pw,Ru,Q:,ts,t~,t 0,t0,t0,t0+F@5,P~,Ru,Q:,ts,t2,t 0,t0,t0,t0+R@Y5,t~+Z@Y5,tw-b@Y,tvB i@95 J5 J6 5 J5 K5 K5 KC7) K7? K7K L7W -L7c KL8} H8 L8 P8 T8 X8 \+}@6,P0,RB+@6,P~,RB+@6,P~,RB+@7,Ps,RB+@07,Ps,RB+ҿ@>R7,P~,R0,Q+@>t7,P~,R0,Q+@>7,Ps,R0,Q+@>7,Pw,R0,Q+@>7,Pv,R0,Q+j@#8,P~,Ru,Q:,t~,t~,t H,tL,tP,tT+@[8,P~,Ru,t H,tL,tP,tT+@>z8,Ps,R0,QX+@>8,Pw,R0,Q\+@>8,Pv,R0,Q\+x@8,Ps,Ru,t H,tL,tP,tT+@ 9,Pv,Ru,t 0,t0,t0,t0+@R9,Pw,Ru,t 0,t0,t0,t0+)@Yi9,t~+5@Y9,t~+=@Y9,ts+E@Y9,tw-M@Y,tvD \@>5iL5(}L6 5L5L5 LE\@74L7ML7d M7y6M7KM7`M8L8P8T8X8\+h@:,P0,R B+t@:,Pw,R/B+@:,P~,R:B+@:,Ps,R?B+@:,Ps,RKB+@;,Pw,RUB+@>;;,Pw,R0,QL+@>\;,P~,R0,QL+@>{;,Ps,R0,QL+@>;,P~,R0,QL+@>;,P~,R0,QL+X@ <,Pw,Ru,Q:,tv,ts,t,t 0,t0,t0,t0+@P<,P~,Ru,Q:,tv,ts,t 0,t0,t0,t0+@<,P~,Ru,Q:,tv,ts,t 0,t0,t0,t0+7@<,P~,Ru,Q:,tv,ts,t P,tT,tX,t\+y@@=,Ps,Ru,Q~O%~"1&# ,tv,t ~O%~"1&,t 0,t0,t0,t0+@=,Pv,Ru,Q:,t~,t 0,t0,t0,t0+@Y=,tv+@Y=,t~+@Y=,t~+@Y=,ts+@Y=,t~-@Y,twBb@I5uM5M5M5M5M5tNC7N72N7PN7pN7N7.N7KN7pN7N7N7"O77O8828K8d8}8888888@8D8 H8L7#LO8/P8@T8QX8f\+ @/Z?,t+*@?,R[B+6@?,Pv,R`B+D@?,P~,RoB+T@?,Pv,RB+`@ @,Ps,RB+p@)@,Pv,RB+|@F@,Pw,RB+@c@,Ps,RB+@@,Pw,R B+@@,Pv,RB+@@,Ps,RϫB+@@,P~,RB+@>@,Pv,R0,Q+@>A,P~,R0,Q+$@>=A,P~,R0,Q+O@>]A,Pv,R0,Q+a@>}A,Ps,R0,Q+u@>A,P~,R0,Q+@>A,P~,R0,Q+@>A,Pv,R0,Q+@>B,Ps,R0,Q+@>#B,P~,R0,Q+@>CB,Pw,R0,Q+@>cB,Pv,R0,Q+%@>B,P~,R0,Q+N@>B,Pv,R0,Q+^@>B,Ps,R0,Q+p@>B,P~,R0,Q+@> C,P~,R0,Q+@XC,Pv,Ru,Q~,t:,t~,t ,t,t@,tD+@YoC,t~+-@YC,t~,tB,t H,tB,tL,t0+@C,P~,Ru,t ,t,t,t+@ ZD,t~,tu,t ~+u@QD,Ps,Ru,t ,t,t,t+@YhD,t~+@YD,t~,tB,t H,tB,tL,t0+1@ ZD,t~,tu,t ~+=@YD,t~+{@Y*E,t~,tB,t H,tB,tL,t0+@ ZWE,t~,tu,t ~+h@E,Ps,Ru,t ,t,t,t+t@YE,t~+@YE,t~,tB,t X,tB,t\,t0+@F,P~,Ru,t P,tT,tX,t\+L@Y=F,t~,tu+T@YRF,tw+@YF,tw,tB,t X,tB,t\,t0+@F,Pw,Ru,t P,tT,tX,t\++@YF,tw,tu+@G,P~,Ru,t 0,t0,t0,t0+ @OG,Ps,Ru,t ,t,t,t+@YfG,t~+X@YG,t~,tB,t ~,tB,t\,t0+@G,P~,Ru,t ~,t~,t~,t~+@YH,t~,tu+@YH,t~+?@Y_H,t~,tB,t ~,tB,t~,t0+@H,P~,Ru,t ~,t~,t~,t~+@YH,t~,tu+@YH,tv+@YH,ts+@YH,tv+@YI,ts+ @Y&I,ts+@Y;I,tv+"@YPI,ts+*@YeI,tw+6@Y|I,t~+B@YI,tw+N@YI,tv-Z@Y,tvBa@JM65MO5AO57O5- P5"PC7Y1P7oOP7dP7P7P8P8T8X8\7P+{@yJ,P0,RݫB+@J,Ps,RB+@J,P0,RB+@J,Pv,R`B+@J,Pv,RB+@> K,Ps,R0,Qw+@>,K,P~,R0,Qw+@>KK,Pv,R0,Qw+@>lK,P~,R0,Qw+@>K,P~,R0,Qw+F@K,Ps,Ru,Q~,t~,t~,t 0,t0,t0,t0+@3L,P~,Ru,Q~,t~,t~,t ~,t~,t~,t~+@eL,Pv,Ru,t 0,t0,t0,t0+G@L,P~,Ru,t~,t 0,t0,t0,t0+@L,P~,Ru,t~,t 0,t0,t0,t0+@YL,t~+@Y M,t~+@Y"M,tv+@Y7M,tv-@Y,tsB1@R52P52P52 Q51!Q516Q51IQC7*2]Q7?2Q7K2Q7^2Q7s2Q72Q723R82H82L72gR72R82P82T83X83\+@6N,P0,RB+@SN,Ps,RB+@pN,Ps,RB+@N,Ps,R1B+4@>N,P~,R0,Qw+A@>N,P~,R0,Qw+L@>N,Pv,R0,Qw+[@> O,Ps,R0,Qw+@bO,P~,Ru,Q~,t~,ts,t~,t 0,t0,t0,t0+@O,P~,Ru,Q~,t~,ts,t 0,t0,t0,t0+@;ZO,t0@GZ+@YO,tv+N@YP,tv,tB,t s,tB,tL,t0+@RZMP,t~,tCB,ts,t 0+@]ZwP,t~,tv,t0,t 0+@YP,t~+ @P,Pv,Ru,Q~,t~,t~,t ~,t~,t~,t~+O@iZQ,tv,tu,ts,t ~+W@Y-Q,ts+c@YBQ,ts+@YQ,ts,tB,t H,tB,tL,t0+@RZQ,t~,tUB,ts,t 0+@]ZQ,t~,ts,t0,t 0+ @YQ,t~+Z@MR,P~,Ru,Q ~~,t~,t~,t ~,t~,t~,t~+@iZR,t~,tu,ts,t ~+@YR,ts+@YR,t~+@YR,tv+@YR,tv-@Y,ts+@tZS,t+5@ZS,t+b@Z\S,tu,t ,t ,t ~+|@ZS,tu,t ?,t ?,t ?+@ZS,tu+@5.S,Pu,R:,Qw,tN,t0,ts:w +@5.2T,Pu,Rs,Qw,t(,t2,t:w +@5.pT,Pu,Rs,Qw,t2,t3,t:w +A@8,T,P,Ru,Qs,tw,tƪB,t0+l@8,T,P,Ru,Qsb,tw,tӪB,t4+@3 U,Pu,R:,Qs,t0,tv,t:#+@3 ]U,Pu,Rw,Qs,t ,tv,t:#+@"U,Pu,Rw,Qs,t0,tv,t:+@"U,Pu,Qs,t ,tv,t:+@$V,Pu,R~,Qs,tv,t0,tw:-(@$,Pu,R~,tv,t1,tw:Fdo_foreigndrawing @@qcX?do_widget Gwindow !Z9@/GX@box R@da R+@ZV,t0+@ZV,tjB+@;Z W,t0@Z+@ZEW,tzBHt,t !Z,t0,t0+ @Z_W,t0,t:+@ZtW,tv0!@Z+;@ZW,ts,t ,t +K@ [W,ts,t1+[@[W,ts,t1+k@#[W,ts,t1+w@ZX,tv,ts-@Z,ts,tB,t@,t 0,t0,t00V@/[0g@;[0w@G[Ig_ascii_table6X~XxXJ]]KZZ6Lg_logg_logfLg_freeg_freeGLstrpbrkstrpbrkRKpZpZK\\OJD\D\1K(^(^rKb]b]^KYYLstrlenstrlen6K[[jK Z ZmJ[[J[[9JYY>JdYdY(K^^,JZZ<K]](KY^Y^%JF]F]+JZZJ\\J&\&\JYY#K^^8K)Z)ZHK[[#J__ K?Y?Y!c c" _g_boolean_var_@# $R init_buffers# %vao_out#w %buffer_out$w vao& e& init_shaders` e`ca%program_outbw %mvp_outcw vertexe fragmente programf mvpg statushsourcei7&out"log_leneL'close_windoww @) (dw)create_shader; P@*type;CT*src<T+shader> T,status?h-@&,log_lenHl.eILU/@0ts0t 0tl1@&/@0ts0t00t w2Q@'0t00t@0tB0t BBv 1)(0tw2Y@'0tw3c@0ts/f@70tv/@[0ts0t10t\0t 0/@l0ts3@0ts0t 0th4draw_triangle mvp#$Rcompute_mvp%res%phi%theta%psixyzc1s1c2s2c3s3c3c2s3c1c3s2s1s3s1c3s2c1s3c2c3c1s3s2s1c3s1s3s2c1c2s1c2c15 p@6 6 78 U8 3U9@(2:(;9@H 8GU8^U8uU8U:H<U<U<U<U<$ V<.,V<8LV, @aR69 6L 6 4!Z6. 0!Z8 =Y8 ]Y:<= pY0ts0t\2B@'T0t\2n@'0t v@0t ?0t (@0t( 2@'0tX0t B0t@0t \0t00t02@'0t00tX2@'0ts0tX2@(90tX0t12@'O0tX2@'d0ts2@'|0t/B2/@'0ts0tX2;@'0tX2g@'0t v@0t ?0t (@0t( 2@'=0tX0t B0t@0t 10t00t02@'Y0t00tX2@'v0ts0tX2@(0tX0t12@'0tX2@'0ts2@'0t00t02@'0t(B2%@' 0ts0tX21@'"0tX2]@'t0t v@0t ?0t (@0t( 2@'0tX0t B0t@0t 20t00t02@'0t00tX2@'0ts0tX2@(0tX0t12@'0tX=@'0ts2#@ (B0t021@(X0t2=@$(m0tv2M@0(0tv0tٮB2e@;(0tv0t 0t X2u@G(0tv0t<2@' 0tv0tB0t @0t 00t00t02@'! 0t10t02@R(< 0tw0t62@'X 0tv0tw1@](2@(u 0t12@h( 0t12@' 0tw2L@' 0tB0t@0t 00t00t02@'!0tB0t0@0t 00t00t02@':!0tB0tp@0t 00t00t02@'T!0t10t02@'p!0tw0tu2@(!0tu0t12@'!0tu0ts2@'!0tu0ts2@'!0tu0ts2@t(!0tB2@("0ts0t12@'."0tw0ts=?@'0ts0t BGt0t v0t00t2Edo_glareaP@S"(Gd1d@(1u@(1@(=@0t,demo_window L!Z,gl_area H!Z#"$R,rotation_angles"d>dNJg_logg_log fJg_freeg_freeGKcosfcosfKsinfsinfI$e$eIZcZcLcc1Iee`LQdQdIddjIdd:IccDIee~IgdgdPIddPIPePe[IeeLccrIddOL(d(d IeeQLscscIeeL:e:eLddIffLueueIddIIfIffIccVLddI/f/fbL^e^eSLffkLeex GGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden headerbar.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@!Uqcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass8 g_typeGTypeInstanceN_GTypeInstancex g_classxGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags _GObject &g_type_instance8ref_countqdataGInitiallyUnownedGIcon gL_GIcon?   GTK_ICON_SIZE_INVALID GTK_ICON_SIZE_MENU GTK_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_BUTTON GTK_ICON_SIZE_DND GTK_ICON_SIZE_DIALOG VX GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget .i _GtkWidget parent_instance &priv  GtkWindow 0 _GtkWindow 5bin 7priv 9#GtkWidgetPrivate B_GtkWidgetPrivateXGtkContainer-+ _GtkContainer1^widget3Xpriv6GtkContainerPrivate.y_GtkContainerPrivate^GtkBin- _GtkBin1f3priv6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate  t_ GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkHeaderBar&s _GtkHeaderBar*f,do_headerbar @! do_widget window P!Zheader \button \box %]image C]iconTa]@ @ @ @ ct0@# yt0@/ e@; tBtt P!Zt0t0@G t Xt @S @^ tst1@i tstB@t 0tst0@ @ QtܯB@ ltwt4@ tw@ tvtu@ tstv@ t0t0@ tv.@ tB3@ I@ ' tBt4U@ < twa@ X tvtwf@ |@  tBt4@ tw@ tvtw@ tstv@ ts@ @ UhUh Sff khh xgg lhlh !g!g hh\g\g gg=7g7gZgg?ff^gg`gg2kk>xjxj2="l"l#=hho=hh 9>kk>kk>ii=ii>ll=sisi>llw=TkTkA=ll=ViVi>ii>jj>kk=ll=kk=jj=vkvk>YjYj>ll=jjp=jj=ii>nlnl>jj>kk=iix=?i?iS=-k-kk=HlHlrR9LGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden iconview.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@^xcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerM GData$._GDataGDir%B_GDir B G_FILE_TEST_IS_REGULAR G_FILE_TEST_IS_SYMLINK G_FILE_TEST_IS_DIR G_FILE_TEST_IS_EXECUTABLE G_FILE_TEST_EXISTS!6 GType~ GTypeClass _GTypeClass! g_type GTypeInstance7 _GTypeInstancea g_classaGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags }GObject _GObject g_type_instance !ref_count xqdata GInitiallyUnowned  - GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GdkPixbuf _GdkPixbuf Vp GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL  GTK_SELECTION_NONE GTK_SELECTION_SINGLE GTK_SELECTION_BROWSE GTK_SELECTION_MULTIPLE J GTK_SHADOW_NONE GTK_SHADOW_IN GTK_SHADOW_OUT GTK_SHADOW_ETCHED_IN GTK_SHADOW_ETCHED_OUT 9 GTK_SORT_ASCENDING GTK_SORT_DESCENDINGGtkWidget._GtkWidgetparent_instancel: GtkWindow0_GtkWindow5 bin7l9JGtkWidgetPrivateB!_GtkWidgetPrivate GtkContainer-T_GtkContainer1widget3l6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1m3@l6GtkBinPrivate. _GtkBinPrivateGtkWindowPrivate.7_GtkWindowPrivate t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkBox/_GtkBox3m5@l8GtkBoxPrivate0_GtkBoxPrivateGtkTreeIter'_GtkTreeIter]Q stamp_!n`user_data2auser_data3b GtkTreePath(d _GtkTreePathGtkTreeModel* _GtkTreeModelr Q GtkTreeSortable: _GtkTreeSortableGtkListStore( _GtkListStore, ~n.l1D GtkListStorePrivate). _GtkListStorePrivate GtkIconView)] _GtkIconViewO ~nQ@lT GtkIconViewPrivate+ _GtkIconViewPrivateJ  GtkToolItem) _GtkToolItem- ~n/l26 GtkToolItemPrivate+! _GtkToolItemPrivate  GtkToolButton'W _GtkToolButton + ~n- l0 GtkToolButtonPrivate) _GtkToolButtonPrivate GtkScrolledWindow- _GtkScrolledWindow1 m3l5H GtkScrolledWindowPrivate.- _GtkScrolledWindowPrivate  GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALGtkToolbarB _GtkToolbarF mH@lJ GtkToolbarPrivateC _GtkToolbarPrivate  } COL_PATH COL_DISPLAY_NAME COL_PIXBUF COL_IS_DIRECTORY NUM_COLSclose_window@L @@@sort_func^@model^ a_ b` !na is_dir_ac`is_dir_bcdname_adhname_bdlrete(bQ@tstt3t `t1tht @tstt3t dt1tlt @(ts@4 ts@4fill_store/@Lq/! Fbdir1rbname2 biter3PB@pathAbdisplay_nameAbis_dirBc`@Etst0r@Ptut4@[tst t0t 0t0@f3twtP @qtwtPt0t ut1tst3tLt 2t( @4tu@4ts@|tw@t0t08@tv"@tv4@tvitem_activated@@@o tree_path !nq! cpathXiter`is_dir\a@tstvt@tstvt0t Xt3t\t @4@"Ps@6t1@4home_clicked@Hitem< !nq! Uc@4 @@@Ps 8@up_clicked@@aOitem< !nq! hcdir_namecV@e@4w@EPv @!create_store! t"q! #q!$__func__q%"m(&"m+'7(* )do_iconview4@do_widget4@dxsw4co4c*q! Svbox4ctool_bar4dhome_button< ,d+t@0c,0-B.H/Jd.`/jd@tBt0AtpBt0:A,t0tbBt+t BtBfAt0tbBt(t BtVB0Oy@g*1y@g/h~d~@@t4t@t@tD@tst@t0t 0@tst t0@%t0+@07t t 7@<MtH@H]@TntB@_tBt@t 0t0t0@kt1t0@vts@@tstvt0t 0t0@"t0t0@:t'B'@<@Wt1Q@ot+Bf@t1{@t0@tvt @t0t0@t1B@tw@twt1@4twt7B@Otwt1@rtvtwt @t0t0,@tut3D@tut1t1h@tstut1t 1t0t@tB@"Ps@7ts@Rtvt3 @gts:@_t?Bt@@t st0t0f@_twt?Bt@t st0t0v@tvt1@&tvt2@_JtvtGBt@@t st0t0@vftutv@1tv@=@@Iwindow 4l!Zfile_pixbuf$h!Zfolder_pixbuf$d!Z2~n(Z3up_button< (Z4ook4qq 4ool4nnv5g_freeg_free"G6ZnZn6ppQ6knkn6 o o6qqU6pp6oo(6qq,6nn04-p-p74nnH6&q&q76EpEp61o1o4OmOm J4WoWo 16pp 6DoDoC6ZqZq65q5q6"o"o4nn4oo4NpNp6oo4oo 6mmP6pp6JnJne6ooT6~p~pQ6popo!6dpdpW6pp\6mmf6+n+n|6mmh6pp6nn6nn62m2mw6mm6pp6mm4lmlm4mmS4 n nxOGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden iconview_edit.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demopAG4}charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgsize;gchar.gint1guint7floatgdouble:doublegpointerM"3GData$A_GData4 GType~ GTypeClassp _GTypeClass g_typeO GTypeInstance _GTypeInstance g_class]GCallbackV-  %G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObjectI_GObject g_type_instanceref_countqdataIGInitiallyUnownedIGdkRGBA _GdkRGBA %red 'green (blue )alpha *  $GDK_COLORSPACE_RGBGdkPixbuf 5_GdkPixbuf$ VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLEGtkWidget ._GtkWidget4rq GtkWindow 0E_GtkWindow5qbin7%q9GtkWidgetPrivateB_GtkWidgetPrivateqGtkContainer-_GtkContainer1widget3q6GtkContainerPrivate. _GtkContainerPrivateGtkBin-3_GtkBin1bcontainer3q6GtkBinPrivate.w_GtkBinPrivatebGtkWindowPrivate._GtkWindowPrivate tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTreeIter'_GtkTreeIter]cstamp_user_data` user_data2a user_data3b  GtkTreePath(v_GtkTreePathGtkTreeModel*_GtkTreeModelcGtkCellRendererP_GtkCellRendererUrWqZ9 GtkCellRendererPrivateQ _GtkCellRendererPrivateGtkListStore(Y_GtkListStore,r.:q1 GtkListStorePrivate)_GtkListStorePrivateGtkCellLayout%_GtkCellLayoutGtkCellRendererText' _GtkCellRendererText+; r-q0z GtkCellRendererTextPrivate(] _GtkCellRendererTextPrivate; GtkIconView) _GtkIconViewO rQqT GtkIconViewPrivate+ _GtkIconViewPrivate E  % COL_TEXTNUM_COLScreate_store$ L store& editedOpAii cellO path_stringP'textQ'dataR  modelTditerU`pathVdA  t A tA"& tvtwtsA.W tvtwt0t t A9tsset_cell_color.AB cell_layout.cell/?tree_model0iter1 data2 text4'Lcolor5Ppixel6dpixbuf7AdADU tt t0t Lt /APj tPA[Al t0t1t8t HtHAx tvtsA ttBtvt 0Atvfill_store< store itertext< iL /!do_iconview_editc0A do_widgetcwindowep!Z"A5icon_viewiestorej Vrendererk?3e# Axwt$ ge%x& @&& P'2 EA*tvTAFtvtwtA.tvtwt0t ut #% Av%'> At1t@At0AtAAtBA'tճB(tt p!Zt0t0A<tvAQtvAltst1A tst0Atst2A#tst1A/A:tstvt1AEtstvtAt 0t0AP,A:Etstvt1LAptvtBt1t 0xAtvtBtpAt st0t0A[tstvtBt 0t0AftsHAqYA}uA)tt})rr*~t~t7)rrU) s s*rrl)2r2r >+g_freeg_freeG*ss *ss r*^t^t*qq)WsWs)ss)ssC)trtr*ss*ss)tt*^r^r)rrw)qq)rr)lsls*@t@t )ArAr@)rrr)4s4s)qqE)ss~).t.t*ttS*ktktk*ssx@QGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden images.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intguint32&long long unsigned intgssize:gsize;gchar.gint1guchar4Iguint7floatdoublegpointerMGQuark$GError)D_GError +domain-(code.message/"GData$ _GDataGList%_GList 'data)next*prev+6 GType~ GTypeClass _GTypeClass: g_type GTypeInstanceP _GTypeInstancez g_classzGCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject _GObject 7g_type_instance :ref_count qdata GInitiallyUnowned GIcon gc _GIconGInputStream l_GInputStream /@x 1t 4 VkGInputStreamPrivate - _GInputStreamPrivate-GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkPixbuf _GdkPixbufGdkPixbufLoader4_GdkPixbufLoader5"@x7t: JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINENGTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGGTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHERV GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALzGTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkWidget._GtkWidget@x7t% GtkWindow0_GtkWindow5bin7 t9; GtkWidgetPrivateB _GtkWidgetPrivatezGtkContainer-? _GtkContainer1q widget3zt6 GtkContainerPrivate. _GtkContainerPrivateq + GtkBin- _GtkBin1 w3+ t6 GtkBinPrivate. _GtkBinPrivate GtkWindowPrivate.( _GtkWindowPrivate tw GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUP0 GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkMisc. _GtkMisc2 widget4zt77 GtkMiscPrivate/& _GtkMiscPrivate GtkLabel.M _GtkLabel4y misc6 t9 GtkLabelPrivate/ _GtkLabelPrivatey GtkBox/ _GtkBox3 w5+ t8 GtkBoxPrivate0 _GtkBoxPrivate GtkImage/ _GtkImage misc] t`o GtkImagePrivate0] _GtkImagePrivateF GtkFrame. _GtkFrame2 bin4 t7 GtkFramePrivate/ _GtkFramePrivate GtkButton. _GtkButton2 bin5 t7G GtkButtonPrivate/4 _GtkButtonPrivate GtkToggleButton-d _GtkToggleButton 1 button4 t6 GtkToggleButtonPrivate. _GtkToggleButtonPrivate V]GTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELtoggle_sensitivity_callback0AX&togglebutton0 user_data1w3 list4etmp5eAtAtvAAcleanup_callback AtobjectPdataEAt0RAmAAprogressive_timeoutGA{dataGXvI bytes_readTebufU}errorV} $A;$x\ S!$xw "f\Ast2t3t 2jAAtst7B"tt 0t0t0A#Ats Ao!$x @fQAt2t3t 2t@B_AAPtst7B"tt 0t0t0AetsA !$x ^fA! At2t3t 2t@B/ A_ Atst7B"tt 0t0t0#g AtsA4twt t 0tvA Wtwtst vArt0tvAAtv} A$error}(B!$x |f At2t3t 2toB A A0tst7B"tt 0t0t0# AtsA#htYBt0t}*A|t07A<A.tAtrBt` At t0t0#AtBt At t0t0%&('progressive_updated_callback- A5loader-"x.y/width0 height1data2!Xv4 fpixbuf5(f1 A9tv; ADtsG APtvtsU A'progressive_prepared_callback` A9loader"datapixbuf(f!Xv gu A[t Aftstժz AP(start_progressive_loading)Xv *do_imagesI A!do_widgetI frameK ,gvboxL g+XvM glabelN gbuttonO IhgiconPgh,A--zhArttAtw#A}teB A A A At0 At A( A=tB] AotB"tt !Zt0t0 AtBt At 0t0t0 At8 At1t8 Atst8 Ats At0 A4tvtB Abtstvt0t 0t0, Avt0> A(tvt1N A3tvt3^ A?tvt3 Atstvt0t 0t0 AKtBt6 A(tv A<t0 A[tvtȴB Atstvt0t 0t0 At0 A(tvt1 A3tvt3" A?tvt3F Atstvt0t 0t0R AV4tB^ AItvj A]t0| A|tvtB Atstvt0t 0t0 At0 A(tvt1 A3tvt3 A?tvt3A=tstvt0t 0t0AaUt BAlit6*A~tv6At0HAtvtDBlAtstvt0t 0t0xAt0A(tvt1A3)tvt3A?Dtvt3Artstvt0t 0t0Awt0Atvtw!AtBGAtstvt0t 0t0#sAtvtBtAt st0t0window !Zpixbuf_loader"|!Zload_timeoutx!Zimage_streamt!Z.tt.xxY/uuH.xx3.xxxxn/tt /xx /.uuc.KvKvC/uu /uur.xx t.vva.ww .vv!f.uuU.+x+x/>v>v .uu.vvvvj/CwCwr.ww"D/^v^v /wwS/PxPxk/ttx.uu/ww/uu.cxcx.vv.vvP.xx.5w5w[./u/un.+v+vT.wwU.pwpwk/xx2/ w w9.SwSw.wwv.huhu#4.vv.vvx.DuDuO&SGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden infobar.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAfloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7doublegpointerMGData$_GDataGType~GTypeClass. _GTypeClassT g_type GTypeInstancej _GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject Bg_type_instanceTref_countqdataGInitiallyUnowned  ` G_BINDING_DEFAULT G_BINDING_BIDIRECTIONAL G_BINDING_SYNC_CREATE G_BINDING_INVERT_BOOLEAN ? GTK_MESSAGE_INFO GTK_MESSAGE_WARNING GTK_MESSAGE_QUESTION GTK_MESSAGE_ERROR GTK_MESSAGE_OTHER V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget ._GtkWidget (y B y 0 GtkWindow 0_GtkWindow 5bin 7 y 9@GtkWidgetPrivate B_GtkWidgetPrivateGtkContainer-J_GtkContainer1|widget3 y6GtkContainerPrivate._GtkContainerPrivate|GtkBin-_GtkBin1z36 y6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .-_GtkWindowPrivate  t| GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUP 0 GTK_DIALOG_MODAL GTK_DIALOG_DESTROY_WITH_PARENT GTK_DIALOG_USE_HEADER_BAR JGTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialoga_GtkDialog k ?{m yp5GtkDialogPrivateb"_GtkDialogPrivate GtkMisc.J_GtkMisc2wwidget4 y7GtkMiscPrivate/_GtkMiscPrivatewGtkLabel._GtkLabel4misc6; y9 GtkLabelPrivate/_GtkLabelPrivateGtkBox/ _GtkBox3F z56 y8k GtkBoxPrivate0[ _GtkBoxPrivateF GtkInfoBarPrivate4 _GtkInfoBarPrivateGtkInfoBar6 _GtkInfoBar9 parent;  y> q  GtkMessageDialog- _GtkMessageDialog$17 (y3 y6p GtkMessageDialogPrivate.V _GtkMessageDialogPrivate7 V GTK_BUTTONS_NONE GTK_BUTTONS_OK GTK_BUTTONS_CLOSE GTK_BUTTONS_CANCEL GTK_BUTTONS_YES_NO GTK_BUTTONS_OK_CANCELon_bar_response A+ info_bar response_id user_data dialog*h?{*hA tA t3t0t 1tBA tstBtvA tstԵBtt st0t2A*A'do_infobar)*0Aedo_widget)*?{+*!Zframe,*hbar-*hvbox.*^ivbox2/*|ilabel0*iactions1*jbutton2*9jHA3YA?uAAK t0t0AV0 t0AaF tAmAyg tݵBA tBtt !Zt0t0%A t89AK t1t0LA tvQAwAtvtwt0t 0t0A.twt0AFtBAatut1AtutAtwAtut0t 0t0At'BA tut7Btwt /Bt1A)tstu$AJA`tvtwt0t 0t0ZA{twt1fAt@BxAtut1AtutAtwA tut0t 0t0A$tzBAZtut7Btwt /Bt1AvtstuAtBAt t0(Atwt1YAtwtԵBtAt0t0}A'tvtwt0t 0t0ABtwt2AZtBAutut1AtutAtwAtut0t 0t0AtöBA!tut7Btwt /Bt1%A=tstu*APAttvtwt0t 0t0`Atwt3lAt̶B~Atut1AtutAtwA tut0t 0t0A8tBAntut7Btwt /Bt1AtstuA#Atvtwt0t 0t03Atwt4?At BQAtut1aA1tutiAFtwAmtut0t 0t0AtDBAtut7Btwt /Bt1AtstuAtJBAtvtwt0t 0t8AK7t1t8#ARtvt8/Antwtv;AtTB_Atvt0t 0t0gAtsAtvtst0t 0t0xx  _y_yc [{[{~vyvy5z5z xIzIz t8y8y S,{,{ k z zP yy wzwz yy  F{F{ zz zz xxV zzT zzz zz[ {{ yy zz_ yyM yy { OyOy YzYzY yy zzU UGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden links.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAZcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerM GData$%_GData GType~ GTypeClassT _GTypeClassz g_type3 GTypeInstance _GTypeInstance g_classAGCallbackV   G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags_GObject hg_type_instancezref_countqdata-GInitiallyUnowned GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHERGtkWidget ._GtkWidget @parent_instance h{  GtkWindow 0Q_GtkWindow 5}bin 71{ 9GtkWidgetPrivate B_GtkWidgetPrivate}GtkContainer -_GtkContainer 1widget 3{ 6+GtkContainerPrivate ._GtkContainerPrivateGtkBin-?_GtkBin1ncontainer3{6GtkBinPrivate._GtkBinPrivatenGtkWindowPrivate ._GtkWindowPrivate  tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUP 0]GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARGtkMisc.l_GtkMisc2widget4{7GtkMiscPrivate/_GtkMiscPrivateGtkLabel._GtkLabel4misc6]{9+GtkLabelPrivate/_GtkLabelPrivate VGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELactivate_linklabeluridatadialogparentresponse_cb A{dialog response_id data AG A A jjjA j  k!AS t!A_ ) t2t0t 1tB!Aj D tst1! Av Y ts"PA tst BtAt 0t0t0"A ttxB#do_links0`A>G do_widget0$window2!Z%label3k&uA &AG &A !A 5 t0!A K t&A !A l tB!A t<!-A tB'tt !Zt0t0!9A t$B!KA tst1!{A tstBtAt 0t0t0!A 5 ts"A ts({{ k({{ ){{k(|| N(v|v| r(||)||{(|| S(X|X| r)|| (|| (-|-| )C|C| ){{ )h|h|[)||q){{ nWGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden listbox.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA ̋charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8}signed charguint8Pgint16 short intguint16!guint32&gint64,guint64-long long unsigned intgsize;gchar.gshort/glong0 gint1gboolean2Agulong6;guint7gfloat9floatgdouble:doublegpointerMGBytes$ _GBytesGPtrArray' _GPtrArray5/ pdata75 len8kA GData$O _GDataGDateTimeah _GDateTimeGSList% _GSList' data) next*tABW GType~  GValue _GValue j g_type m data z GTypeClass._GTypeClassTg_type GTypeInstancej_GTypeInstanceg_class GClassInitFuncn GInstanceInitFuncT)G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlagsH pv_int qAv_uint rkv_long s4v_ulong t]v_int64 uv_uint64 vv_float wxv_double xv_pointer yM/ G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICK@G_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFY@G_PARAM_DEPRECATEDxGParamFlags GParamSpec * _GParamSpec( ~ T name  flags  value_type  owner_type  _nick / _blurb / qdata ݹI k param_id k$GCallback V;k #G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject G _GObject ~ TI  qdata GObjectClass _GObjectClassD < g_type_class >construct_properties Aconstructor E set_property Ie get_property M? dispose Q finalize R dispatch_properties_changed T notify X constructed \ $flags _ (pdummy b ,GInitiallyUnowned GGInitiallyUnownedClass GObjectConstructParam _GObjectConstructParam m? pspec ovalue p<E _ _ k<8k  _ kB  _ _ k    _ k   _   / M)cairo_t|( _cairo_cairo_rectangle_int xywidthheight cairo_rectangle_int_t0  cairo_region_t _cairo_regionGdkRectangle] GdkAtomf  _GdkAtomGdkDevice _GdkDeviceGdkDragContext4 _GdkDragContextGdkScreenV _GdkScreenGdkWindows _GdkWindow-J GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny|] _GdkEventAny V WX"~Ym(<}ZpGdkEventExpose} _GdkEventExpose$lWn"~om(<}ppareaq regionrs(countsA GdkEventVisibility~9_GdkEventVisibilityW"~m(<}p6}" GdkEventMotion_GdkEventMotion@XW"~m(<}pm xyaxesy( 6}k$is_hint(z~(,y0\8GdkEventButtonn_GdkEventButton@!W"~m(<}pm xyaxesy( 6}k$~k(z~(,y0\8GdkEventTouch6_GdkEventTouchH!W#"~$m(<}%pm& x'y(axes)y( 6}*k$sequence+((emulating_pointer,M,z~-(0y.8\.@GdkEventScroll_GdkEventScrollXQWS"~Tm(<}UpmV xWyX6}Yk directionZ#$z~[((y\0\\8delta_x]@delta_y^His_stop_kPGdkEventKey_GdkEventKey(W"~m(<}pm 6}kkeyvalklengthAstring/hardware_keycode j}"is_modifierk$GdkEventFocus_GdkEventFocus :W"~m(<}pin GdkEventCrossingR_GdkEventCrossingHW"~m(<}psubwindowm( mxy y(\0mode<%8detail8$<focusM@6}kDGdkEventConfigure8_GdkEventConfigureW"~m(<}pxA yAwidthAheightAGdkEventProperty_GdkEventProperty4W"~m(<}patom m6}kGdkEventSelectionM_GdkEventSelection W "~ m(<} pc  target  mrequestorm(GdkEventOwnerChange_GdkEventOwnerChange &W("~)m(<}*powner+m( reason,V(c- m.selection_time/GdkEventProximity_GdkEventProximityEWG"~Hm(<}IpmJ z~K(GdkEventDND_GdkEventDNDW"~m(<}pcontext( my&\&GdkEventWindowState_GdkEventWindowStatemWo"~pm(<}qpchanged_maskrf' new_window_statesf'GdkEventSetting5_GdkEventSettingYW["~\m(<}]paction^' name_)GdkEventGrabBroken_GdkEventGrabBroken-W"~m(<}pkeyboardM implicitMgrab_windowm(GdkEventTouchpadSwipeJ_GdkEventTouchpadSwipeHW"~m(<}pphasep 9p m xydx dy(y0\86}k@GdkEventTouchpadPinch-_GdkEventTouchpadPinchXW"~m(<}pphasep 9p m xydx dy(angle_delta0scale8y@\H6}kPGdkEventPadButton0_GdkEventPadButtonW"~m(<}pm j}k~kmodekGdkEventPadAxis_GdkEventPadAxis(*HW+"~,m(<}-pm. j}/kindex0kmode1kvalue2 GdkEventPadGroupModed_GdkEventPadGroupModeEWF"~Gm(<}HpmI j}JkmodeKkGdkEventSequence _GdkEventSequenceGdkEvent_GdkEventXW" anyJ expose visibility motion~X touch! scroll key crossing: focus_change configurec4 owner_change proximity dnd window_state setting grab_broken touchpad_swipe- touchpad_pinch pad_button pad_axis pad_group_modeH6"GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventTypeju"GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityStatey"#GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection#8$GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType#<%GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingModeN$f'GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSED!GDK_WINDOW_STATE_TILED!GDK_WINDOW_STATE_TOP_TILED!GDK_WINDOW_STATE_TOP_RESIZABLE!GDK_WINDOW_STATE_RIGHT_TILED!GDK_WINDOW_STATE_RIGHT_RESIZABLE!GDK_WINDOW_STATE_BOTTOM_TILED !GDK_WINDOW_STATE_BOTTOM_RESIZABLE@!GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState+T%7'GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction;}'FV(GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChangeJ'b    GdkPixbuf( _GdkPixbuf(E /)GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType()GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGF*GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection)V*GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GtkOrientationY^*^+GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSED GtkStateType*0,GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERROR GtkDragResults+9,GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZE GtkSizeRequestMode=F,cT.GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@GTK_STATE_FLAG_DIR_LTR!GTK_STATE_FLAG_DIR_RTL!GTK_STATE_FLAG_LINK!GTK_STATE_FLAG_VISITED!GTK_STATE_FLAG_CHECKED!GTK_STATE_FLAG_DROP_ACTIVE GtkStateFlagsr,GtkSelectionData). _GtkSelectionDataGtkStyle+. _GtkStyleGtkTooltip-. _GtkTooltipGtkWidget.. _GtkWidget / |@E GtkWidgetPath/!/ _GtkWidgetPathGtkWindow0B/ _GtkWindow5n/ bin7N|9O9ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREE@ATK_ROLE_TREE_TABLEAATK_ROLE_UNKNOWNBATK_ROLE_VIEWPORTCATK_ROLE_WINDOWDATK_ROLE_HEADEREATK_ROLE_FOOTERFATK_ROLE_PARAGRAPHGATK_ROLE_RULERHATK_ROLE_APPLICATIONIATK_ROLE_AUTOCOMPLETEJATK_ROLE_EDITBARKATK_ROLE_EMBEDDEDLATK_ROLE_ENTRYMATK_ROLE_CHARTNATK_ROLE_CAPTIONOATK_ROLE_DOCUMENT_FRAMEPATK_ROLE_HEADINGQATK_ROLE_PAGERATK_ROLE_SECTIONSATK_ROLE_REDUNDANT_OBJECTTATK_ROLE_FORMUATK_ROLE_LINKVATK_ROLE_INPUT_METHOD_WINDOWWATK_ROLE_TABLE_ROWXATK_ROLE_TREE_ITEMYATK_ROLE_DOCUMENT_SPREADSHEETZATK_ROLE_DOCUMENT_PRESENTATION[ATK_ROLE_DOCUMENT_TEXT\ATK_ROLE_DOCUMENT_WEB]ATK_ROLE_DOCUMENT_EMAIL^ATK_ROLE_COMMENT_ATK_ROLE_LIST_BOX`ATK_ROLE_GROUPINGaATK_ROLE_IMAGE_MAPbATK_ROLE_NOTIFICATIONcATK_ROLE_INFO_BARdATK_ROLE_LEVEL_BAReATK_ROLE_TITLE_BARfATK_ROLE_BLOCK_QUOTEgATK_ROLE_AUDIOhATK_ROLE_VIDEOiATK_ROLE_DEFINITIONjATK_ROLE_ARTICLEkATK_ROLE_LANDMARKlATK_ROLE_LOGmATK_ROLE_MARQUEEnATK_ROLE_MATHoATK_ROLE_RATINGpATK_ROLE_TIMERqATK_ROLE_DESCRIPTION_LISTrATK_ROLE_DESCRIPTION_TERMsATK_ROLE_DESCRIPTION_VALUEtATK_ROLE_STATICuATK_ROLE_MATH_FRACTIONvATK_ROLE_MATH_ROOTwATK_ROLE_SUBSCRIPTxATK_ROLE_SUPERSCRIPTyATK_ROLE_FOOTNOTEzATK_ROLE_LAST_DEFINED{ AtkRolegn/{:ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOW AtkLayer9 AtkObject:_AtkObject$G;~8description/ name/accessible_parent;role9relation_set;layer: AtkRelationSet^; _AtkRelationSet+;~-8 relations/ :G;1;GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType4;GtkWidgetPrivateB< _GtkWidgetPrivateGtkWidgetClassC?<"_GtkWidgetClassjDl activate_signalpkDdispatch_child_properties_changeds[EHdestroyxlELshowylEPshow_allzlEThide{lEXmap|lE\unmap}lE`realize~lEdunrealizelEhsize_allocateElstate_changedEpstate_flags_changedEtparent_setExhierarchy_changedE|style_setEdirection_changedEgrab_notifyFchild_notify(FdrawBFget_request_modeWFget_preferred_heightrFget_preferred_width_for_heightFget_preferred_widthrFget_preferred_height_for_widthFmnemonic_activateFgrab_focuslEfocusFmove_focusFkeynav_failedFeventFbutton_press_eventGbutton_release_eventGscroll_event6Gmotion_notify_eventVGdelete_eventvGdestroy_eventvGkey_press_eventGkey_release_eventGenter_notify_eventGleave_notify_eventGconfigure_eventGfocus_in_eventGfocus_out_eventGmap_eventvGunmap_eventvGproperty_notify_eventH#selection_clear_event6H#selection_request_event6H#selection_notify_event6H#proximity_in_eventVH #proximity_out_eventVH#visibility_notify_eventvH#window_state_eventH#damage_eventH#grab_broken_eventH #selection_getH$#selection_receivedI(#drag_begin-I,#drag_end-I0#drag_data_getRI4#drag_data_delete-I8#drag_leavemI<#drag_motionI@#drag_drop ID#drag_data_receivedIH#drag_failedIL#popup_menuIP#show_help#JT#get_accessible((JX#screen_changed*>J\#can_activate_accel,XJ`#composited_changed0lEd#query_tooltip2Jh#compute_expand8Jl#adjust_size_request<Jp#adjust_size_allocation@Jt#style_updatedGlEx#touch_eventI K|#get_preferred_height_and_baseline_for_widthL6K#adjust_baseline_requestRrF#adjust_baseline_allocationULK#queue_draw_regionWmK$|\sK$C_;$R`;GtkWidgetClassPrivateDD _GtkWidgetClassPrivateGtkAllocationS GtkCallback]$E*E:E:E.;[E:Ek FElE:EaEE:EEDrEE:E^+EE:ET.EE:E:EEE:EE.EE:EF*EF:EMF(F:EFMBF:E .F,WF:EHFrF:E]FF:EAxFMF:EMFMF:E/)FF:E/)FMF:EFMG:EGXFM0G:E0GGMPG:EPGJ:E(.JMXJ:EkDJMJ:EAAMJ.^JJ:E  JJ:E*JJ:E*JMK:EK!J6K:EAKLK:EQ misc]O|`gQGtkImagePrivate0UQ _GtkImagePrivate>QGtkButton.~Q _GtkButton2Q bin5N|7QGtkButtonPrivate/Q _GtkButtonPrivateQmQGtkLinkButton*Q _GtkLinkButton 4&R7mQ|9YRGtkLinkButtonPrivate,BR _GtkLinkButtonPrivate&RQGtkListBox )wR _GtkListBox /R 1yKGtkListBoxRow ,R _GtkListBoxRow bR dNGtkListBoxRowClass -R%_GtkListBoxRowClass lAS nN&activate rXS( w;( x;eRRXSGSMSGtkListBoxSortFunc xS~SASGSGSGtkRevealer!%S _GtkRevealer!1S!2NGtkScrolledWindow"-S _GtkScrolledWindow"1Tp}"3N|"5TTGtkScrolledWindowPrivate".9T _GtkScrolledWindowPrivateT"TGTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALPQSGtkMessageT _GtkMessage8$U~&8 id(k sender_name)) sender_nick*)+)m, reply_to-k( resent_by.), n_favorites/0 n_reshares04GtkMessageClassU _GtkMessageClassD3U5GtkMessageRowU _GtkMessageRow8V~:R|tA;l8?gtk_message_row_class_initZ@ZAwidget_classZBŁXV)<.gtk_message_row_class_intern_initAm]23:ZA:]4^Zk5A:6jZk6Zk7AGl/[8ts8tB7ASlT[8ts8t B8t07 ASly[8ts8tB8t071ASl[8ts8t&B8t07UASl[8ts8t2B8t07yASl[8ts8tCB8t07ASl \8ts8tWB8t07ASl2\8ts8tiB8t07ASlW\8ts8tzB8t07 ASl|\8ts8tB8t07-ASl\8ts8tB8t07QASl\8ts8tB8t07uASl\8ts8tB8t07ASl]8ts8tƺB8t07A_l9]8ts8tԺB8tA7A_lb]8ts8tB8t@A9A_l8ts8tB8t A7Al]8ts9Al8ts8t!Z:gtk_message_row_state_flags_changedAC[^2~:E/previous_state_flagsT.C|Wk;flagsT.k7 AklQ^8ts<Awl.gtk_message_row_update@AR`Drow^XkC|Wl;t"l;s)@l<]Al2A[^8P.reshare_clicked@Aa/row^X2~QC|Wl>RA[^8P.gtk_message_row_expand`AiaDrow^XlC|Wl;expandM mAa8P=row_activatedHA Yb1listboxHAS1rowHGS>Aa8PEgtk_message_row_finalize A'b1obj _ F| WKm<AlGgtk_message_get_typeY AcHYc!ZIHcJ A9?A m8t!Z5CATCҁY_mKAIc9Am8t!Z7OAmac8tdB9A*m8tP8tD8t A8t88tA8t0 Ggtk_message_row_get_typeAdHc!ZI`dJA9A m8t!Z5AnCҁrmIxDd92 Am8t!Z8ts7Am\d8toB<A6m7 A*md8ts8t 8t A8tL8t`A8t09 AAm8ts8t8Lgtk_message_row_new6^Xd@6WArow8^X,gtk_message_newW)e-str MmsgW)gtk_message_parsetoe-msgtW-strt Mstrvv MiwNdo_listboxN:E@ Ab?k1do_widgetN:EOscrolledP:EmOlistboxP:EmOvboxP:EmOlabelP:EmPQWSQrowR^XUOdataSmOlinesT nOiU;nRd#A|g4eOnS6ebnT)e#Ag4Nen4CebnS6Yen6een7#AMmf8t08t:7A#AMmf8t08t:7L#A_mf8tu7#Akmg8tu8tB8t07#AMm-g8t08t:<#Awm<#Awm< $Awm7+$AMmbg8t08t:7W$AMm|g8t08t:GInitiallyUnowned/cairo_t |_cairoGdkRGBA _GdkRGBA %red 'green (blue )alpha *  JxGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLEGtkWidget ._GtkWidget,parent_instanceypriv GtkWindow 0=_GtkWindow5jbin7priv9GtkWidgetPrivateB_GtkWidgetPrivatejGtkContainer-_GtkContainer1widget3priv6GtkContainerPrivate._GtkContainerPrivateGtkBin--_GtkBin1W<3priv6|GtkBinPrivate.l_GtkBinPrivateWGtkWindowPrivate._GtkWindowPrivate tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkFlowBox,_GtkFlowBox2<4GtkScrolledWindow-5_GtkScrolledWindow1j<3priv5GtkScrolledWindowPrivate._GtkScrolledWindowPrivatej  GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALdraw_color$A?drawingareacrcolor_namergbaP$A) tst$A4 tts$A? tcolor_swatch_new colorbutton area do_flowbox-$A6 do_widget-window/!Zscrolled0Yoflowbox0ocolors1 jio&Aij o!&Ai"o"o#&AK #&AV &Aa  tvtBt$At wt0t0&Am ; tvtHtH&Ay W tstv&A ts#%A #,%A #E%A a%A t0u%A t#%A %A tB%A t t X%Aa tB$tt !Zt0t0&A : t0t0&A [ tst2t1#$&A :&A  twt1J&A twtNZ&A& twt0f&Ay tstww&Ay ts 'Ay  tjts'A tj%) &)' >'FF*(ރރ 'VV`'ۄۄH((::'**(x(ĄĄS(k(r'((ȃȃ'(''``'(9'ee'6^GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden list_store.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo0'A\charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8Sgint16 short intguint16!guint32&long long unsigned intgsize;gchar.gshort/gint1gboolean2guint7floatgdouble:[doublegpointerM{GData$_GData GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstance/ g_class/GCallbackV 6 ~G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsKGObject_GObject g_type_instanceref_countFqdataGInitiallyUnowned _cairo_rectangle_int Y x  y  width  height  cairo_rectangle_int_t  cairo_region_t _cairo_regionGdkRectangle ]YGdkAtom f_GdkAtomGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkWindow %_GdkWindow -GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny | _GdkEventAny VMz X9΅ Y!w ZsGdkEventExpose }c _GdkEventExpose$ lz n9΅ o!w ps area q region r%! count s GdkEventVisibility ~ _GdkEventVisibility =z 9΅ !w sq  GdkEventMotion S _GdkEventMotion@  z 9΅ !w s  x L y L axes +! q 6$ is_hint ($ 1!, L0 L8GdkEventButton  _GdkEventButton@ z 9΅ !w s  x L y L axes +! q 6$ 6($ 1!, L0 L8GdkEventTouch  _GdkEventTouchH ! z #9΅ $!w %s & x 'L y (L axes )+! q *6$ sequence +7!( emulating_pointer ,&,$ -1!0 .L8 .L@GdkEventScroll _GdkEventScrollX Q z S9΅ T!w Us V x WL y XLq Y6 direction Z5$$ [1!( \L0 \L8 delta_x ]L@ delta_y ^LHis_stop _6PGdkEventKey _GdkEventKey(  z 9΅ !w s  q 6 keyval 6 length  string  hardware_keycode   "is_modifier 6$GdkEventFocus _GdkEventFocus  z 9΅ !w s in  GdkEventCrossing  _GdkEventCrossingH  z 9΅ !w s subwindow !   x L y L  L( L0 mode 8 detail < focus &@q 6DGdkEventConfigure _GdkEventConfigure c z 9΅ !w s x  y  width  height GdkEventProperty { _GdkEventProperty  z 9΅ !w s atom   q 6GdkEventSelection _GdkEventSelection z 9΅ !w s  target B   requestor !GdkEventOwnerChange  _GdkEventOwnerChange &?z (9΅ )!w *s owner +! reason ,! - . selection_time /GdkEventProximity X _GdkEventProximity Ez G9΅ H!w Is J $ K1!GdkEventDND  _GdkEventDND ?z 9΅ !w s context =!      GdkEventWindowState Z _GdkEventWindowState mz o9΅ p!w qs changed_mask r new_window_state s GdkEventSetting  _GdkEventSetting YGz [9΅ \!w ]s action ^ name _,GdkEventGrabBroken a _GdkEventGrabBroken z 9΅ !w s keyboard & implicit & grab_window !GdkEventTouchpadSwipe  _GdkEventTouchpadSwipeH z 9΅ !w s phase s  s   x L y L dx L dy L( L0 L8q 6@GdkEventTouchpadPinch  _GdkEventTouchpadPinchX z 9΅ !w s phase s  s   x L y L dx L dy L( angle_delta L0 scale L8 L@ LHq 6PGdkEventPadButton  _GdkEventPadButton [z 9΅ !w s   6 6 mode 6GdkEventPadAxis r _GdkEventPadAxis( *z +9΅ ,!w -s .  /6 index 06 mode 16 value 2L GdkEventPadGroupMode  _GdkEventPadGroupMode Ez F9΅ G!w Hs I  J6 mode K6GdkEventSequence _GdkEventSequenceGdkEvent _GdkEventX wz 9any expose Mvisibility motion =  touch scroll  key  crossing  focus_change  configure  B c   owner_change proximity ?dnd window_state ?setting grab_broken Gtouchpad_swipe touchpad_pinch pad_button pad_axis [pad_group_mode  69GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventType j} uGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState yN 5GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection  GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType P GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode   GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState + 7 GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction ;/  F!GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChange J wL V!GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL !GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkWidget . "_GtkWidget6"I" GtkWindow 0G"_GtkWindow5s"bin7'#9#GtkWidgetPrivateB"_GtkWidgetPrivate!s"GtkContainer-"_GtkContainer1"widget3!6!#GtkContainerPrivate. #_GtkContainerPrivate"GtkBin-5#_GtkBin1^#3"6#GtkBinPrivate.s#_GtkBinPrivate^#GtkWindowPrivate.#_GtkWindowPrivate# t#GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/#_GtkBox3'$5"8L$GtkBoxPrivate0<$_GtkBoxPrivate'$GtkTreeIter'e$_GtkTreeIter]$stamp_ą`euser_data2aeuser_data3be GtkTreePath($_GtkTreePathGtkTreeModel*$_GtkTreeModel$$GtkCellRendererP"%_GtkCellRendererUT%IWZ% GtkCellRendererPrivateQr%_GtkCellRendererPrivateT% %GtkTreeViewColumn)%_GtkTreeViewColumnT%IVX& GtkTreeViewColumnPrivate+&_GtkTreeViewColumnPrivate 8&GTK_TREE_VIEW_COLUMN_GROW_ONLYGTK_TREE_VIEW_COLUMN_AUTOSIZEGTK_TREE_VIEW_COLUMN_FIXED%%GtkListStore(&_GtkListStore,&.1 ' GtkListStorePrivate)&_GtkListStorePrivate&GtkTreeView=#'_GtkTreeViewCQ'E"H'GtkTreeViewPrivate?k'_GtkTreeViewPrivateQ''GtkCellRendererToggle&'_GtkCellRendererToggle*', %/$(GtkCellRendererTogglePrivate'(_GtkCellRendererTogglePrivate''GtkScrolledWindow-I(_GtkScrolledWindow1}(3'#5(GtkScrolledWindowPrivate.(_GtkScrolledWindowPrivate}( )GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNAL&p)fixedp)numberu)severityudescriptionu &6Bug%) &*COLUMN_FIXEDCOLUMN_NUMBERCOLUMN_SEVERITYCOLUMN_DESCRIPTIONCOLUMN_PULSECOLUMN_ICONCOLUMN_ACTIVECOLUMN_SENSITIVENUM_COLUMNSwindow_closed&0'A;*widget"eventwąe['A 5spinner_timeout8&p'A>+data8e iter:R$` pulse;6\!'A5*"ts!'A$5+"ts"t4"t \"t #(A05"ts"t4"t6"t1"t $fixed_toggled0(Ar,cell*(path_strdatae%model$p iterR$`%path%1p fixed&\!J(A;5+"t!\(AF5,"ts"tv"tw!(A$57,"ts"tv"t0"t \"t !(A05`,"ts"tv"t0"t #(AR5"tw&add_columns,'9'(renderer%(column&(model$)create_modelS$-(iU(storeV)(iterWR$*(icon_nameg(sensitiveh&+do_list_store"(A*4do_widget",q)Ayf4%vbox"Op%label"yp%sw"p-9"p.,x)A./0,p0,!q1,P2.0,?q0 -jq!+A]5 ."tw"tu#,A05"tw"tu"t0"t @"t1"tH"t2"t"t 3"t$"t(4"t,0"t05"t4D"t86"t<0"t7"t #+Ah5"t8"tD"tL"t @"t@"tL"t@"tD"t D3r,d,A*&=24,q5d,A*0,q0,r0,r!l,As5,/"tss,A~5!,A5q/"tv"tB"t0(A"t w"t0"t0!,A5/"tB"tv"tB"t 0"t0!,A5/"tv"t2!,A5/"tv"t2!,A5/"ts"tv,A5!$-A500"t"B"tB"t 1"t0!6-A5K0"tv"t1!B-A5g0"ts"tvG-A5!o-A50"t-B"tB"t 2"t0!-A50"tv"t2!-A50"ts"tv-A5!-A5 1"t6B"tB"t 3"t0!-A5'1"tv"t3!-A5C1"ts"tv-A5!.A51"tHB"tBB"t 4"tB"t6"t0!'.A51"tv"t4!3.A51"ts"tv8.A5!p.A52"teB"t[B"t 5"tQB"t7"t0!.A5#2"tv"t5#.A5"ts"tv!)A5R2"tv!)A5h2"t)A6!)A62"trB!)A52"t}B6t"t !Z"tv"tv!*A62"t8!*A'62"t1"t8!.*A263"ts!:*A=63"tB!^*AH6B3"ts"tv"t v"tv!r*AS6^3"tv"tv!*A^6y3"tw"t3!*Ai63"tw"t2"t1!*AH63"tw"t1"t 1"tv!5,At63"tw!G,A63"ts"t3T,A6!d,A264"tL"ts!.A654"t "t#.A5"tsB"t0'A"t 0"t0"t0(A6(A6)A63)A 5#\)A6"tP"tp'A"t07΅ "!Z model $!Z timeout 6!Z8z)492 data%5B4:׆׆/:++B:ههl;U;YY:7;KK;; C;<<;C:;ՅՅo;;//:UU;E;;wwA;^^@;:##:TT;;;P;jj;||[;TTT;ԈԈ;;;::{{::S:x:ggk:GG>SaGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden markup.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo.Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1guint7floatdoublegpointerMGBytes$_GBytes%GData$3_GData& GType~ GTypeClassh _GTypeClass g_typeG GTypeInstance _GTypeInstance g_classUGCallbackV  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject A_GObject g_type_instance ref_count qdata ;GInitiallyUnowned A -oGDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST  JGTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINE **GTK_WRAP_NONEGTK_WRAP_CHARGTK_WRAP_WORDGTK_WRAP_WORD_CHARGtkWidget .;_GtkWidget g   GtkWindow 0x_GtkWindow5bin7X9GtkWidgetPrivate B_GtkWidgetPrivate*GtkContainer-_GtkContainer1!widget3*6RGtkContainerPrivate.<_GtkContainerPrivate!GtkBin-f_GtkBin136GtkBinPrivate._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivate t!GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkTextIter@4_GtkTextIter8F!dummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB6_GtkTextBufferNfP2R GtkButton.w_GtkButton2bin5X7GtkButtonPrivate/_GtkButtonPrivateGtkToggleButton-_GtkToggleButton 1 button4f6W GtkToggleButtonPrivate.> _GtkToggleButtonPrivate GtkHeaderBar&w _GtkHeaderBar* ,GtkScrolledWindow- _GtkScrolledWindow1 3X5" GtkScrolledWindowPrivate. _GtkScrolledWindowPrivate  GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkStack) _GtkStackC DGtkTextBufferPrivateK _GtkTextBufferPrivate !GtkTextViewq _GtkTextViewu8 w{g GtkTextViewPrivaterR _GtkTextViewPrivate8 source_toggled button] buffer start!end!markupm .AK  /A  r/A r ~  s&/A8/AS tw ts tvP/A| tw ts tv t 0_/Aq/A tw ts tv/A tw ts tv/A tw ts tu t  /A tu!/A tB /A6 t!/A tB"do_markup)/AZ#do_widget)$window+!ZB0Aa>%sw/ s%buffer0 as$iter1!%bytes2As%markup3s%header4s%show_source5sN0A/ t0b0AE ts0A 0Al t  t 0A! tB&t t !Z t0 t00A-0A80AD0AO tB 1AZ tv t3<1A!! tv tB t.A t0 t0A1AfS1AqE ts t1_1A|a ts tvg1Av tsx1A ts1A tB1A1A t01A t21A t:1A t:1A t0 t02A7 ts t1 t1%2ADL ts-2Aa tsF2A ts tBK2A`2A t2u2A t:2A t:2A t0 t02A ts t1 t12AD ts2A* ts2AB tB 3Af tB t0 t03A tv t0+3A93A tw tsQ3A tw ts tu t  ^3Al3A tw ts3A( tw ts tu t  3A34 tv3A80A>0AJ50A8$stack !Z$view !Z$view2 !Z'(ŠŠ(88'')g_freeg_freeG'**b'Y'yy(͋͋ ((22(cc'jjO( r'ȌȌ'J( 9'͉͉='Z'eeP(QQ x(''&&(xxu(NNp(('''݊݊Q'KKj':(''D( S(ڌڌ k8cGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden menus.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo3A5charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass@ g_typeGTypeInstanceV_GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject =g_type_instance@ref_countqdataGInitiallyUnowned -! GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST  Vg GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkOrientation Y! n GTK_PACK_DIRECTION_LTR GTK_PACK_DIRECTION_RTL GTK_PACK_DIRECTION_TTB GTK_PACK_DIRECTION_BTTGtkAccelGroup B _GtkAccelGroup ]8parent _я `q GtkAccelGroupPrivate DT_GtkAccelGroupPrivate8GtkWidget . _GtkWidget parent_instance =я . GtkWindow 0 _GtkWindow5bin7я9>GtkWidgetPrivate B_GtkWidgetPrivatewGtkContainer-H _GtkContainer1zwidget3wя6GtkContainerPrivate._GtkContainerPrivatezGtkBin- _GtkBin1a34я6 GtkBinPrivate._GtkBinPrivateGtkWindowPrivate.+_GtkWindowPrivate tz GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMenuShell, _GtkMenuShell0a24я5GtkMenuShellPrivate._GtkMenuShellPrivateGtkBox/ _GtkBox3+a54я8PGtkBoxPrivate0@_GtkBoxPrivate+GtkMenuItem-i _GtkMenuItem1bin3я6GtkMenuItemPrivate/_GtkMenuItemPrivateGtkCheckMenuItem. _GtkCheckMenuItem 2 (4Vя7P GtkCheckMenuItemPrivate/6 _GtkCheckMenuItemPrivate GtkOrientable)k _GtkOrientableGtkRadioMenuItem. _GtkRadioMenuItem$2 check_menu_item4я7 GtkRadioMenuItemPrivate/ _GtkRadioMenuItemPrivate { change_orientation@q button@(menubarA(parentC(orientationDgcreate_menu(3A depth tmenu(itlast_item  tbuf! @i"tj"%u (,(iu4A7 twtBtt v4AR t0tw#4An tstu34A tts;4A tsI4Aq PU4A ts4A tst04Aq P4Ats3A)) '  4A !2 !@ "O u"] u !2 #@ u$%O %] 5A4tvtBt24A@ tv4AL tw4AW twt1s4A4tvtBt0t 0&do_menusT( 5A'do_widgetT(boxV(vbox1W(,vbox2X(JvbuttonY(hv(r5A.menubar](vmenu^(vmenuitem_(vaccel_group`k"w~5Ab t05Amt5Ay5A3tB5AetB)tt !Zt0t05A6A6At0)6At0t0<6AtsD6AtsX6At1t0f6Atstwn6Atws6A6A>tst16Altwtst0t 1t06Ats6Aq P26AtB6Atvtu6Atstv6Atv6AtB7Aq $P37A9tv7AUtstv#7Ajtv/7AtB;7Aq P4G7AtvS7Atstv[7Atvo7At1t:7Atvt:7A>twtvt0t 1t07AStv7Akt"B7Atwt'Bt4At st0t0 8Atvtwt1t 1t08Atw8At/BR8A1tst'B)tt0t2v8A_tvtst1t 1t08A ztst18Ats8Ats85A#I5A/e5AwindowQ(!Z*sprintfsprintf{+Z+c+[, r+x,ii H+,}}, +BB9+ 6+, ,22+,+ +ˎˎ+ll+``P+kk+ээI,RR +T+t+֏֏b,77 ,HH ,++ S, k fGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden modelbutton.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo8Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGData$+_GDataGVariant"C_GVariant3 GType~ GTypeClass{ _GTypeClass g_typeZ GTypeInstance _GTypeInstance g_classhGCallbackV  0G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject T_GObject g_type_instance ref_count qdata TGInitiallyUnowned TGActionMap 4_GActionMapGActionGroup 5_GActionGroupGSimpleAction 7_GSimpleActionGActionEntry )8_GActionEntry 7name 9 activate ;parameter_type ? state A  change_state Cpadding HN-GtkBuilder #_GtkBuilder ]'ː _ES a! GtkWidget .8_GtkWidgetdːS GtkWindow 0u_GtkWindow5bin7[S9GtkWidgetPrivateB_GtkWidgetPrivate'GtkContainer-_GtkContainer1$widget3'S6UGtkContainerPrivate.?_GtkContainerPrivate$GtkBin-i_GtkBin1container3S6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivateGtkBuilderPrivate ) _GtkBuilderPrivateGtkButton.8_GtkButton2dbin5[S7GtkButtonPrivate/|_GtkButtonPrivated'tool_clicked8AT)buttonactivel8A tst8Btlt 08A$ tst8Bt 0do_modelbutton9A2 do_widgetwindow!Zwin_entries |BB9A builder'Awactions(_wN9A0 t?Bh9A;  tst[Bt8Ax9AF  tst09AQ < tsthB9A\ R t9Ah 9At tpB tt !Zt0t09A :A tvt|Bt4 :A txBtv(:A ts9A '9A 79A $ -! !kk " "33 "ېې " !UU!kk!xx"K" X!/!// !>>S!XXk!xwgGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden offscreen_window.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@:ABdoubleintfloatcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublegint8signed charguint8lgint16 short intguint16!guint32&gint64,4guint64-}gsize;gchar.gshort/glong0(gint1gboolean2hgulong6Wguint7gfloat9gdouble:gpointerM>@GPtrArray' _GPtrArray5, pdata72 len8@> GData$L _GDataGSList%b _GSList' data) next*Th  5aG_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@G_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|?GType~1GValue _GValuej g_typemm datazyGTypeClass_GTypeClassg_typemGTypeInstance_GTypeInstance0g_class0GClassInitFuncnGInstanceInitFuncgm}}G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlags{{pyv_intqhv_uintrv_longs[v_ulongtv_int64uv_uint64v"v_floatwv_doublexv_pointeryK  G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICK@G_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFY@G_PARAM_DEPRECATEDxGParamFlags GParamSpec  _GParamSpec( p?  name  flags ֡ value_type m owner_type m _nick , _blurb , qdata aK ޒ param_id ߒ$GCallback V8  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject  ? K  qdata a_GObjectClassD <4 g_type_class >construct_properties Aconstructor E= set_property I get_property M dispose Q finalize R dispatch_properties_changed T^ notify Xt constructed \ $flags _1(pdummy bz ,GInitiallyUnowned GInitiallyUnownedClass  GObjectConstructParam _GObjectConstructParam m pspec opvalue p   p   p    7 m7 k  X  X pC t  pd  Ktcairo_t| _cairocairo_surface_t _cairo_surface_cairo_rectangle_int xy cairo_rectangle_int_t   cairo_region_t ^ _cairo_regionGdkRectangle] GdkAtomf  _GdkAtomGdkCursor _GdkCursorGdkVisual _GdkVisualGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkScreen/ _GdkScreenGdkWindowL _GdkWindowGDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASK@GDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASKGDK_LEAVE_NOTIFY_MASK GDK_FOCUS_CHANGE_MASK@GDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASKGDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASK GDK_TOUCH_MASK@GDK_SMOOTH_SCROLL_MASKGDK_TOUCHPAD_GESTURE_MASKGDK_TABLET_PAD_MASKGDK_ALL_EVENTS_MASKGDK_WINDOW_TYPE_HINT_NORMALGDK_WINDOW_TYPE_HINT_DIALOGGDK_WINDOW_TYPE_HINT_MENUGDK_WINDOW_TYPE_HINT_TOOLBARGDK_WINDOW_TYPE_HINT_SPLASHSCREENGDK_WINDOW_TYPE_HINT_UTILITYGDK_WINDOW_TYPE_HINT_DOCKGDK_WINDOW_TYPE_HINT_DESKTOPGDK_WINDOW_TYPE_HINT_DROPDOWN_MENUGDK_WINDOW_TYPE_HINT_POPUP_MENU GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_NOTIFICATION GDK_WINDOW_TYPE_HINT_COMBO GDK_WINDOW_TYPE_HINT_DND GdkWindowTypeHint-GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny|_GdkEventAny VX'OY-ZGdkEventExpose}_GdkEventExpose$ln'Oo-pareaqm regionr-countsh GdkEventVisibility~_GdkEventVisibility'O-ْ]( GdkEventMotion_GdkEventMotion@'O- xyaxes- ْ$is_hint(-,w0S8GdkEventButton_GdkEventButton@'O- xyaxes- ْ$(-,w0S8GdkEventTouch_GdkEventTouchH!k#'O$-%& x'y(axes)- ْ*$sequence+-(emulating_pointer,t,--0w.8S.@GdkEventScroll_GdkEventScrollXQbS'OT-UV xWyXْY directionZ($[-(w\0S\8delta_x]@delta_y^His_stop_PGdkEventKeyu_GdkEventKey(<'O- ْkeyvallengthhstring,hardware_keycode ("is_modifier$GdkEventFocusQ_GdkEventFocus 'O-in GdkEventCrossing_GdkEventCrossingH'O-subwindow- xy w(S0mode*8detail)<focust@ْDGdkEventConfigure_GdkEventConfigure'O-xh yhhhGdkEventProperty'_GdkEventProperty'O-atom ْGdkEventSelection_GdkEventSelection 9 'O - ]  target ߒ requestor-GdkEventOwnerChangeT_GdkEventOwnerChange &('O)-*owner+- reason,-]- .selection_time/GdkEventProximity_GdkEventProximityEbG'OH-IJ K-GdkEventDNDu_GdkEventDND'O-context- wMSMGdkEventWindowState_GdkEventWindowStatem|o'Op-qchanged_maskr, new_window_states,GdkEventSetting_GdkEventSettingY['O\-]action^<- name_EGdkEventGrabBroken _GdkEventGrabBroken'O-keyboardt implicittgrab_window-GdkEventTouchpadSwipe_GdkEventTouchpadSwipeHn'O-phase   xydx dy(w0S8ْ@GdkEventTouchpadPinch_GdkEventTouchpadPinchXu 'O-phase   xydx dy(angle_delta0scale8w@SHْPGdkEventPadButton _GdkEventPadButton!'O- (modeGdkEventPadAxis!_GdkEventPadAxis(*!+'O,--. (/index0mode1value2 GdkEventPadGroupMode!_GdkEventPadGroupModeE1"F'OG-HI (JmodeKGdkEventSequenceI" _GdkEventSequenceGdkEventl"_GdkEventX#$ '!any!expose!visibility!motion !touch!scrollk!keyb!crossing!focus_change<!configure ߒ ]!owner_change9!proximity!dndb!window_state!setting|!grab_broken!touchpad_swipe!touchpad_pinchn!pad_buttonu !pad_axis!!pad_group_mode!\"6'GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0GdkEventTypej)$u](GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityStatey'(GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirectionx()GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType(*GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode),GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLEGdkWindowState+*7<-GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction;,F-GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChangeJU-; G  1" GdkWindowAttr)._GdkWindowAttr8a/titlec,event_maskdhxehyeh fhghwclasshA/visuali0window_typej/ cursork0$wmclass_namel,(wmclass_classm,,override_redirectnt0type_hinto4 8A/GDK_INPUT_OUTPUTGDK_INPUT_ONLYGdkWindowWindowClass;/ O/GDK_WINDOW_ROOTGDK_WINDOW_TOPLEVELGDK_WINDOW_CHILDGDK_WINDOW_TEMPGDK_WINDOW_FOREIGNGDK_WINDOW_OFFSCREENGDK_WINDOW_SUBSURFACEGdkWindowTypeW]/ l0GDK_WA_TITLEGDK_WA_XGDK_WA_YGDK_WA_CURSORGDK_WA_VISUAL GDK_WA_WMCLASS@GDK_WA_NOREDIRGDK_WA_TYPE_HINT   1GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType0 ~1GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection71V1GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY12GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType1h3GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult293GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=~3c5GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@GTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGTK_STATE_FLAG_DROP_ACTIVEGtkStateFlagsr4GtkRequisition(5 _GtkRequisitionz5|h}hGtkSelectionData)6 _GtkSelectionDataGtkStyle+$6 _GtkStyleGtkTooltip-A6 _GtkTooltipGtkWidget._6 _GtkWidget6 parent_instance4 L GtkWidgetPath/6 _GtkWidgetPathGtkWindow06 _GtkWindow56 bin7YV9V dAATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREE@ATK_ROLE_TREE_TABLEAATK_ROLE_UNKNOWNBATK_ROLE_VIEWPORTCATK_ROLE_WINDOWDATK_ROLE_HEADEREATK_ROLE_FOOTERFATK_ROLE_PARAGRAPHGATK_ROLE_RULERHATK_ROLE_APPLICATIONIATK_ROLE_AUTOCOMPLETEJATK_ROLE_EDITBARKATK_ROLE_EMBEDDEDLATK_ROLE_ENTRYMATK_ROLE_CHARTNATK_ROLE_CAPTIONOATK_ROLE_DOCUMENT_FRAMEPATK_ROLE_HEADINGQATK_ROLE_PAGERATK_ROLE_SECTIONSATK_ROLE_REDUNDANT_OBJECTTATK_ROLE_FORMUATK_ROLE_LINKVATK_ROLE_INPUT_METHOD_WINDOWWATK_ROLE_TABLE_ROWXATK_ROLE_TREE_ITEMYATK_ROLE_DOCUMENT_SPREADSHEETZATK_ROLE_DOCUMENT_PRESENTATION[ATK_ROLE_DOCUMENT_TEXT\ATK_ROLE_DOCUMENT_WEB]ATK_ROLE_DOCUMENT_EMAIL^ATK_ROLE_COMMENT_ATK_ROLE_LIST_BOX`ATK_ROLE_GROUPINGaATK_ROLE_IMAGE_MAPbATK_ROLE_NOTIFICATIONcATK_ROLE_INFO_BARdATK_ROLE_LEVEL_BAReATK_ROLE_TITLE_BARfATK_ROLE_BLOCK_QUOTEgATK_ROLE_AUDIOhATK_ROLE_VIDEOiATK_ROLE_DEFINITIONjATK_ROLE_ARTICLEkATK_ROLE_LANDMARKlATK_ROLE_LOGmATK_ROLE_MARQUEEnATK_ROLE_MATHoATK_ROLE_RATINGpATK_ROLE_TIMERqATK_ROLE_DESCRIPTION_LISTrATK_ROLE_DESCRIPTION_TERMsATK_ROLE_DESCRIPTION_VALUEtATK_ROLE_STATICuATK_ROLE_MATH_FRACTIONvATK_ROLE_MATH_ROOTwATK_ROLE_SUBSCRIPTxATK_ROLE_SUPERSCRIPTyATK_ROLE_FOOTNOTEzATK_ROLE_LAST_DEFINED{AtkRoleg6{BATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayertAAtkObject?B_AtkObject$Bparentdescription, name,accessible_parent&CroledArelation_set,ClayerB AtkRelationSetB _AtkRelationSet+&C parent- relations/g -BB 1vCGTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType42CGtkWidgetPrivateBC _GtkWidgetPrivateGtkWidgetClassCC"_GtkWidgetClassjXLlM activate_signalpDdispatch_child_properties_changedsLHdestroyxLLshowyLPshow_allzLThide{LXmap|L\unmap}L`realize~LdunrealizeLhsize_allocateMlstate_changed/Mpstate_flags_changedEMtparent_set[Mxhierarchy_changed[M|style_setwMdirection_changedMgrab_notifyMchild_notifyMdrawMget_request_modeMget_preferred_heightNget_preferred_width_for_height#Nget_preferred_widthNget_preferred_height_for_width#Nmnemonic_activate=Ngrab_focusLfocusWNmove_focusmNkeynav_failedWNeventNbutton_press_eventNbutton_release_eventNscroll_eventNmotion_notify_eventNdelete_eventOdestroy_eventOkey_press_event'Okey_release_event'Oenter_notify_eventGOleave_notify_eventGOconfigure_eventgOfocus_in_eventOfocus_out_eventOmap_eventOunmap_eventOproperty_notify_eventO#selection_clear_eventO#selection_request_eventO#selection_notify_eventO#proximity_in_eventO #proximity_out_eventO#visibility_notify_eventP#window_state_event'P#damage_eventGP#grab_broken_eventgP #selection_getP$#selection_receivedP(#drag_beginP,#drag_endP0#drag_data_getP4#drag_data_deleteP8#drag_leaveP<#drag_motion'Q@#drag_drop 'QD#drag_data_receivedVQH#drag_faileduQL#popup_menuQP#show_help#QT#get_accessible(QX#screen_changed*Q\#can_activate_accel,Q`#composited_changed0Ld#query_tooltip2Rh#compute_expand83Rl#adjust_size_request<SRp#adjust_size_allocation@}Rt#style_updatedGLx#touch_eventIR|#get_preferred_height_and_baseline_for_widthLR#adjust_baseline_requestRN#adjust_baseline_allocationUR#queue_draw_regionWR$\S$˖_8$ږ`8GtkWidgetClassPrivateDuL _GtkWidgetClassPrivateGtkAllocationSm GtkCallback]LLLLN6CLLX LLLLMLMLM/ML2MEML55M[MLLKMqMLqM6aMML~1}MMLtMMLpMtML; M3MLMNLM#NLh Nt=NLt)NtWNL1CNmNL1]NtNL#$sNtNLNNtNLNkNtNLNNtOLONt!OL!Ob OtAOLAO-OtaOLaOMOtOLO<mOtOLOOtOLOOtOLOOtPLPOt!PL!P PtAPLAP-PtaPLaPMPPLP5mPPLPPPL-PPL-PPPL-Pt'QL-hhQVQL-hhP-QtuQL-h3\QtQL{QtQLvCQ&CQLQQL0QtQLQtRLhhtR/6Q3RL  RSRL19R}RL1YRtRLRRRLhRRLRRLRRG RXL5GtkContainer-$S _GtkContainer1SS3N66mUGtkContainerPrivate.nS _GtkContainerPrivateGtkContainerClass/S%_GtkContainerClassJmULC&addPU&removeRU&check_resizeTU&forallUU&set_focus_childYU&child_type[U&composite_name\U&set_child_property^V&get_child_propertyc3V&get_path_for_childhSV'_handle_border_widthn&_gtk_reserved1q8&_gtk_reserved2r8&_gtk_reserved3s8&_gtk_reserved4t8&_gtk_reserved5u8(˖v8(ږw8&_gtk_reserved8x8SSUULSsUUUUUUtLUmUUU,UULUVULpU3VULpVMVMVUL69VGtkBin-gV _GtkBin1VS3S6VGtkBinPrivate.V _GtkBinPrivateVGtkWindowPrivate.V _GtkWindowPrivateV t"WGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/0W _GtkBox3YWS5S8~WGtkBoxPrivate0nW _GtkBoxPrivateYWGtkRange.W _GtkRange2W4N66WGtkRangePrivate/W _GtkRangePrivateWWGtkScale.X _GtkScale21X range4W7ZXGtkScalePrivate/HX _GtkScalePrivate1XGtkRotatedBinuX _GtkRotatedBin(XSS childL?- angle GtkRotatedBinClassX%_GtkRotatedBinClassYS)rcY*ScU+include_internalsdt+callbackeL+callback_dataf,binhY-JYr./j`XYKY0gtk_rotated_bin_removeOY*SOU*PL,binRY,was_visibleSt0gtk_rotated_bin_add?=Z*S?U*@L,binBY1qZ+binqY+angler-JZ./t.,__instt},__ttm,__rttZKZ2gtk_rotated_bin_newL3gtk_rotated_bin_init@:A'[4binY5W:At6t6t17gtk_rotated_bin_child_type4m`:A[8S4U9bin6Y:v:At7gtk_rotated_bin_damaget:A0[8L;eventAP<:At[6t5:At6t06t03to_childD:A]=binDY}w>!E>*F=x_outGw=y_outHw?%JL`@xKx@yKJx@xrKxAyrK^@cLx@sLx@wMx@hM*y<:At\6tP<:At ]6tP5;At6t`3offscreen_window_from_parentڠ;A!]BO-{yByBy>ݦ>ަ4bin߇YC;A[6P6R6QDpick_offscreen_child-;A^>?->!>* 4binY?%L`AxPAyXE;At<?->> >Ҧ>Ӧ4binԇYK^At

Ata6t`<>Ata6tX<>Ata6tX<>Ata6tv< ?Ata6tv6t P<?Au b6tvAhuDc6ts<,>Atuc6tv6t 6t 6t X6t P5C>Au6ts6tvTgtk_rotated_bin_size_request}?A dU}L}UP~ S}PbinY ~SV5hPsD~Pcd~Pww~Ph~QI~E?At<#@Atd6t<3@Atd6tL@binY?:LWO-;Aattributes-Xattributes_maskh,WId?V500YEA("iSL5EAt6tj6tv6tB6t;A6t s6t06t0EDAtt;do_widget5LSO7L!ZYrIA"t,bin;LPvbox;LLPscale;LjQ;LdZ[JAM7rE`JAZm5pJA*w6t0<~IAYwKr6t0f**3fߑߑ9f*f(fggff00f33f fh8hhff effii$ff:ff}}bf\ffܕܕfYYf\\f f֔֔hҗҗ4ffPP@fCCf ffEEpf}gg_logg_log fh h-- h!@hfooh f~~ Kfrr fhhff ff..EhUUhfhZZhhӑӑPhTh^h "bh11hTfjjkfVVxvYmGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden offscreen_window2.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoKA doublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8mgint16 short intguint16!guint32&gint64,5guint64- long long unsigned intgsize;gchar.gshort/glong0)gint1gboolean2^gulong6Xguint7gfloat9gdouble:gpointerM46GPtrArray' _GPtrArray5" pdata7( len864 GData$B _GDataGSList%X _GSList' data) next*J^  5WG_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@G_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|5GType~'GValue _GValuej g_typemc datazoGTypeClass_GTypeClassg_typecGTypeInstance_GTypeInstance&g_class&GClassInitFuncnGInstanceInitFunc]cssG_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlagsyqqpov_intq^v_uintrv_longsQv_ulongtzv_int64uv_uint64vv_floatwv_doublexv_pointeryL  G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_READWRITEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICK@G_PARAM_STATIC_BLURBG_PARAM_EXPLICIT_NOTIFY@G_PARAM_DEPRECATEDxGParamFlags GParamSpec ¼ _GParamSpec( fx  name  flags ֗ value_type c owner_type c _nick " _blurb " qdata WL ވ param_id ߈$GCallback V.  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject  x L } qdata W_GObjectClassD <* g_type_class >construct_properties Aconstructor E3 set_property I get_property M dispose Q finalize R dispatch_properties_changed TT notify Xj constructed \ $flags _'(pdummy bp ,GInitiallyUnowned GInitiallyUnownedClass  GObjectConstructParam ~ _GObjectConstructParam m pspec ofvalue p   f   f    - c- a  N  N f9 j  fZ  Ljcairo_t| _cairocairo_surface_t _cairo_surface _cairo_matrix0" xx yx xy yy x0 y0(cairo_matrix_t cairo_pattern_tO _cairo_pattern_cairo_rectangle_int xy cairo_rectangle_int_t_   8 cairo_region_t _cairo_regionGdkRectangle] GdkAtomf' - _GdkAtomGdkCursorH _GdkCursorGdkVisuale _GdkVisualGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkScreen _GdkScreenGdkWindow _GdkWindowGDK_EXPOSURE_MASKGDK_POINTER_MOTION_MASKGDK_POINTER_MOTION_HINT_MASKGDK_BUTTON_MOTION_MASKGDK_BUTTON1_MOTION_MASK GDK_BUTTON2_MOTION_MASK@GDK_BUTTON3_MOTION_MASKGDK_BUTTON_PRESS_MASKGDK_BUTTON_RELEASE_MASKGDK_KEY_PRESS_MASKGDK_KEY_RELEASE_MASKGDK_ENTER_NOTIFY_MASKGDK_LEAVE_NOTIFY_MASK GDK_FOCUS_CHANGE_MASK@GDK_STRUCTURE_MASKGDK_PROPERTY_CHANGE_MASKGDK_VISIBILITY_NOTIFY_MASKGDK_PROXIMITY_IN_MASKGDK_PROXIMITY_OUT_MASKGDK_SUBSTRUCTURE_MASKGDK_SCROLL_MASK GDK_TOUCH_MASK@GDK_SMOOTH_SCROLL_MASKGDK_TOUCHPAD_GESTURE_MASKGDK_TABLET_PAD_MASKGDK_ALL_EVENTS_MASK_GDK_WINDOW_TYPE_HINT_NORMALGDK_WINDOW_TYPE_HINT_DIALOGGDK_WINDOW_TYPE_HINT_MENUGDK_WINDOW_TYPE_HINT_TOOLBARGDK_WINDOW_TYPE_HINT_SPLASHSCREENGDK_WINDOW_TYPE_HINT_UTILITYGDK_WINDOW_TYPE_HINT_DOCKGDK_WINDOW_TYPE_HINT_DESKTOPGDK_WINDOW_TYPE_HINT_DROPDOWN_MENUGDK_WINDOW_TYPE_HINT_POPUP_MENU GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_NOTIFICATION GDK_WINDOW_TYPE_HINT_COMBO GDK_WINDOW_TYPE_HINT_DND GdkWindowTypeHint-DGDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny|W_GdkEventAny VX|(Yb.#ZGdkEventExpose}_GdkEventExpose$ln|(ob.#pareaq regionrh.counts^ GdkEventVisibility~3_GdkEventVisibility|(b.#š( GdkEventMotion_GdkEventMotion@R|(b.# xyaxesn. š$is_hint(t.,P08GdkEventButtonh_GdkEventButton@|(b.# xyaxesn. š$(t.,P08GdkEventTouch0_GdkEventTouchH!#|($b.#%& x'y(axes)n. š*$sequence+z.(emulating_pointer,j,-t.0P.8.@GdkEventScroll_GdkEventScrollXQS|(Tb.#UV xWyXšY directionZx)$[t.(P\0\8delta_x]@delta_y^His_stop_PGdkEventKey _GdkEventKey(|(b.# škeyvallength^string"hardware_keycode "is_modifier$GdkEventFocus_GdkEventFocus 4|(b.#in GdkEventCrossingL_GdkEventCrossingH|(b.#subwindowb. xy P(0mode1+8detail-*<focusj@šDGdkEventConfigure2_GdkEventConfigure|(b.#x^ y^^^GdkEventProperty_GdkEventProperty)|(b.#atom šGdkEventSelectionB_GdkEventSelection  |( b.# ,  target Ț requestorb.GdkEventOwnerChange_GdkEventOwnerChange &(|()b.#*owner+b. reason,K.,- .selection_time/GdkEventProximity_GdkEventProximityEG|(Hb.#IJ Kt.GdkEventDND _GdkEventDND|(b.#context. PCCGdkEventWindowState_GdkEventWindowStatemo|(pb.#qchanged_maskr[- new_window_states[-GdkEventSetting*_GdkEventSettingY[|(\b.#]action^- name_FGdkEventGrabBroken_GdkEventGrabBroken"|(b.#keyboardj implicitjgrab_windowb.GdkEventTouchpadSwipe?_GdkEventTouchpadSwipeH |(b.#phase   xydx dy(P08š@GdkEventTouchpadPinch" _GdkEventTouchpadPinchX !|(b.#phase   xydx dy(angle_delta0scale8P@HšPGdkEventPadButton%!_GdkEventPadButton!|(b.# modeGdkEventPadAxis!_GdkEventPadAxis(*="+|(,b.#-. /index0mode1value2 GdkEventPadGroupModeY"_GdkEventPadGroupModeE"F|(Gb.#HI JmodeKGdkEventSequence" _GdkEventSequenceGdkEvent#_GdkEventX$ |(!anyD!expose!visibility!motion R!touch!scroll!key!crossing4!focus_change!configure Ț ,)!owner_change!proximity!dnd!window_state!setting!grab_broken!touchpad_swipe"!touchpad_pinch !pad_button !!pad_axis!!pad_group_mode=""6|(GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0GdkEventTypej$u(GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityStatey(x)GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirection)-*GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType)1+GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingModeC*[-GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLEGdkWindowState+I+7-GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction;r-FK.GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChangeJ-  q " GdkWindowAttr)._GdkWindowAttr8a/titlec"event_maskd^xe^ye^ f^g^wclassh/visuali/1window_typej0 cursork51$wmclass_namel"(wmclass_classm",override_redirectnj0type_hinto_4 8/GDK_INPUT_OUTPUTGDK_INPUT_ONLYGdkWindowWindowClass;/ O0GDK_WINDOW_ROOTGDK_WINDOW_TOPLEVELGDK_WINDOW_CHILDGDK_WINDOW_TEMPGDK_WINDOW_FOREIGNGDK_WINDOW_OFFSCREENGDK_WINDOW_SUBSURFACEGdkWindowTypeW/ l/1GDK_WA_TITLEGDK_WA_XGDK_WA_YGDK_WA_CURSORGDK_WA_VISUAL GDK_WA_WMCLASS@GDK_WA_NOREDIRGDK_WA_TYPE_HINTT 7  1GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionTypeA1 2GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection1Vs2GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY-2-3GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType23GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResultB3(4GTK_SIZE_GROUP_NONEGTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTH94GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=4c6GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@GTK_STATE_FLAG_DIR_LTRGTK_STATE_FLAG_DIR_RTLGTK_STATE_FLAG_LINKGTK_STATE_FLAG_VISITEDGTK_STATE_FLAG_CHECKEDGTK_STATE_FLAG_DROP_ACTIVEGtkStateFlagsr5GtkRequisition(6 _GtkRequisitionz6|^}^GtkSelectionData)7 _GtkSelectionDataGtkStyle++7 _GtkStyleGtkTooltip-H7 _GtkTooltipGtkWidget.f7 _GtkWidget7W* {M GtkWidgetPath/7 _GtkWidgetPathGtkWindow07 _GtkWindow57 bin7TW{9W _BATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREE@ATK_ROLE_TREE_TABLEAATK_ROLE_UNKNOWNBATK_ROLE_VIEWPORTCATK_ROLE_WINDOWDATK_ROLE_HEADEREATK_ROLE_FOOTERFATK_ROLE_PARAGRAPHGATK_ROLE_RULERHATK_ROLE_APPLICATIONIATK_ROLE_AUTOCOMPLETEJATK_ROLE_EDITBARKATK_ROLE_EMBEDDEDLATK_ROLE_ENTRYMATK_ROLE_CHARTNATK_ROLE_CAPTIONOATK_ROLE_DOCUMENT_FRAMEPATK_ROLE_HEADINGQATK_ROLE_PAGERATK_ROLE_SECTIONSATK_ROLE_REDUNDANT_OBJECTTATK_ROLE_FORMUATK_ROLE_LINKVATK_ROLE_INPUT_METHOD_WINDOWWATK_ROLE_TABLE_ROWXATK_ROLE_TREE_ITEMYATK_ROLE_DOCUMENT_SPREADSHEETZATK_ROLE_DOCUMENT_PRESENTATION[ATK_ROLE_DOCUMENT_TEXT\ATK_ROLE_DOCUMENT_WEB]ATK_ROLE_DOCUMENT_EMAIL^ATK_ROLE_COMMENT_ATK_ROLE_LIST_BOX`ATK_ROLE_GROUPINGaATK_ROLE_IMAGE_MAPbATK_ROLE_NOTIFICATIONcATK_ROLE_INFO_BARdATK_ROLE_LEVEL_BAReATK_ROLE_TITLE_BARfATK_ROLE_BLOCK_QUOTEgATK_ROLE_AUDIOhATK_ROLE_VIDEOiATK_ROLE_DEFINITIONjATK_ROLE_ARTICLEkATK_ROLE_LANDMARKlATK_ROLE_LOGmATK_ROLE_MARQUEEnATK_ROLE_MATHoATK_ROLE_RATINGpATK_ROLE_TIMERqATK_ROLE_DESCRIPTION_LISTrATK_ROLE_DESCRIPTION_TERMsATK_ROLE_DESCRIPTION_VALUEtATK_ROLE_STATICuATK_ROLE_MATH_FRACTIONvATK_ROLE_MATH_ROOTwATK_ROLE_SUBSCRIPTxATK_ROLE_SUPERSCRIPTyATK_ROLE_FOOTNOTEzATK_ROLE_LAST_DEFINED{AtkRoleg7{CATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayeroBAtkObject:C_AtkObject$Cparentdescription" name"accessible_parent!Drole_Brelation_set'DlayerC AtkRelationSetC _AtkRelationSet+!D parent- relations/] (CC 1qDGTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType4-DGtkWidgetPrivateBD _GtkWidgetPrivateGtkWidgetClassCD"_GtkWidgetClassjSMGlC activate_signalpDdispatch_child_properties_changedsMHdestroyxMLshowyMPshow_allzMThide{MXmap|M\unmap}M`realize~MdunrealizeMhsize_allocateNlstate_changed*Npstate_flags_changed@Ntparent_setVNxhierarchy_changedVN|style_setrNdirection_changedNgrab_notifyNchild_notifyNdrawNget_request_modeNget_preferred_heightNget_preferred_width_for_heightOget_preferred_widthNget_preferred_height_for_widthOmnemonic_activate8Ograb_focusMfocusROmove_focushOkeynav_failedROeventObutton_press_eventObutton_release_eventOscroll_eventOmotion_notify_eventOdelete_eventPdestroy_eventPkey_press_event"Pkey_release_event"Penter_notify_eventBPleave_notify_eventBPconfigure_eventbPfocus_in_eventPfocus_out_eventPmap_eventPunmap_eventPproperty_notify_eventP#selection_clear_eventP#selection_request_eventP#selection_notify_eventP#proximity_in_eventP #proximity_out_eventP#visibility_notify_eventQ#window_state_event"Q#damage_eventBQ#grab_broken_eventbQ #selection_getQ$#selection_receivedQ(#drag_beginQ,#drag_endQ0#drag_data_getQ4#drag_data_deleteQ8#drag_leaveQ<#drag_motion"R@#drag_drop "RD#drag_data_receivedQRH#drag_failedpRL#popup_menuRP#show_help#RT#get_accessible(RX#screen_changed*R\#can_activate_accel,R`#composited_changed0Md#query_tooltip2Sh#compute_expand8.Sl#adjust_size_request<NSp#adjust_size_allocation@xSt#style_updatedGMx#touch_eventIS|#get_preferred_height_and_baseline_for_widthLS#adjust_baseline_requestRN#adjust_baseline_allocationUS#queue_draw_regionWS${\S$F_.$U`.GtkWidgetClassPrivateDpM _GtkWidgetClassPrivateGtkAllocationS GtkCallback]MMMMU7DMMN MMMMNMNMM*NM-3N@NM60NVNMMFNlNMlN7\NNM2xNNMjNNMfNjNM N4NMNNMNOM^Oj8OMj$OjROM1>OhOM1XOjOM$nOjOMOROjOMOOjOMOOjOMODOjPMPPjNAtgb;tvCdNA+tb;ts;t ;t ;t ;t :NA6t;tv;tsIgtk_mirror_bin_size_request4NAncJ4MJ5TۄDbin7YK\86hEO9IHNAksCNAAtpc;ts:NALt;th;t0Igtk_mirror_bin_get_preferred_heightTOA$dATMBminimumUBnaturalVKX6h:OAb;P;RhIgtk_mirror_bin_get_preferred_widthH0OA$dAHMBminimumIBnaturalJKL6h:@OAb;P;RhIgtk_mirror_bin_size_allocate``OABHfA`MAaNDbincY\Dwd^Dhd^EOeFeK\v6HKwMPCOALtve;tH;t0CPAXte;tsCPAdte;tP:PApt;twC{OA|te;ts;tvCOAAte;tsCOAXte;tsHOAksCBPASsf;ts:nPApt;t;t;t ;tuLgtk_mirror_bin_unrealizePA?f=MMbinYSCPAtf;t0HPAtchild_areaM`MxrMyHQAks:.QAt;t`8gtk_mirror_bin_realizeQABj=MMbinYNMOb.܆>attributes.Pattributes_mask^,OON\600Q`SA(R$[tFk7 [7[YV[V$[CTAksk;tv?%TAGuCSAksk;ts:SASu;ts49[0TA_tl5U[5a[Rm[܈Q`TA*Sl5a[7U[U`TA*Vm[CsTAu8l;t:TA_u;t;ts:[TAku;t0;t@;tBZgtk_mirror_bin_get_type>cTAm>g_define_type_id__volatile>m!ZFl[TA:TAzu;t!ZUTAWMg_define_type_id>c1QUA7m:+UAu;t!ZCTAuOm;t=BHTAu:UAu;ts;t ;t @UA;tL;t0KA;t0')gtk_mirror_bin_class_initWm*klassWm\widget_classYm\container_classZmPYDT8gtk_mirror_bin_class_intern_init>@UAo9klass>]mpUA>n7mDUpUARmWRmWCUAun;tpKA;t0;t0HUAtlHUAGsCUAun;tJB:UAu;tv;twCRUAun;ts:pUAu;ts;t!Z4z[ VADoH(VAtl:8VAu;t0^do_offscreen_window2M@VAbrBdo_widgetMKM!ZQVAr/binMDvboxMvDhboxMDentryMDapplybuttonMщDbackbuttonMEX_z[5WAPpH:WAtl:JWAu;t0CVAudp;t0CVAuzp;tHVAvCVAvp;tWBC WAtp;t_B`t;t !Z;t0;t0CWAvp;t:C3WA&vp;t1;t0CZWA1vq;t2CpWA&v)q;t0;t6HwWAgtk_mirror_bin_parent_class>!Z>GtkMirrorBin_private_offset>^!ZaXaeaaTTa55SaHH>a*a66alla a a a<aoo a)) aa a== a(ab۠۠8bbaiiaea..all$a؝؝a:aaaba\aaaԞԞa˟˟ahh a''b4a))a@avvaKK aapaww}cg_logg_log fbbbdd@b11aśśb agg KaÜÜ aaa b abbbՙՙPbAb `bњњ!bddb66Mb"b#b bbTaka~~xrGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden overlay.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoXAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass< g_typeGTypeInstanceR_GTypeInstance| g_class|GCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags _GObject *g_type_instance<ref_countqdataGInitiallyUnowned  J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINE V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget . _GtkWidget . *  GtkWindow 0? _GtkWindow 5kbin 7 9GtkWidgetPrivate B_GtkWidgetPrivatekGtkContainer - _GtkContainer 1widget 3 6GtkContainerPrivate ._GtkContainerPrivateGtkBin-- _GtkBin1V36{GtkBinPrivate.k_GtkBinPrivateVGtkWindowPrivate ._GtkWindowPrivate  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMisc. _GtkMisc2$widget47KGtkMiscPrivate/:_GtkMiscPrivate$GtkLabel.a _GtkLabel4misc69GtkLabelPrivate/_GtkLabelPrivateGtkBox/ _GtkBox358GtkBoxPrivate0_GtkBoxPrivateGtkEntryF. _GtkEntryJYMOGtkEntryPrivateGp_GtkEntryPrivateYGtkButton. _GtkButton2bin57GtkButtonPrivate/_GtkButtonPrivateGtkGrid( _GtkGrid,;/1bGtkGridPrivate)Q_GtkGridPrivate;GtkOverlay'z _GtkOverlay+parent-/GtkOverlayPrivate)_GtkOverlayPrivatedo_number XA%9 button entry XAE / tXAP do_overlayXAE do_widgetwindow!Z0) overlay,gridbbuttonvboxlabelentryTiۊjtext )2>YA[ . t0[YAf L t t pYAr d tBuYA} YA YA t\tXYA YA tBtwP"YA tuYA tuYA  tst1YA tst1%ZA ] tstBtXAt Tt0t0PZA tXtstwt vt1t1yZA t1t:ZA  twtsZA twtst1ZA  tst3ZA," tst3ZA8: tBZACU tvt1[AN tstvt0t 0t8[AY tvt$B9[AN tstvt0t 0t8J[A tw[A  t6Btt !Zt0t0[AetwXAq YA}%YA~44 ٢٢ ll R''KGG ))NNbg_freeg_freeGnn 77 zzM^^PT^ 2 9[qT7 x¢¢ SYY kjj r_atGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden overlay2.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo[Atdoublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7gpointerMGData$_GDataGType~GTypeClass/ _GTypeClassU g_typeGTypeInstancek _GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject_GObject Rg_type_instanceUref_countqdataGInitiallyUnowned -6 GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST  J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINE V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkAdjustment "_GtkAdjustment 6) 8R :S GtkWidget .:_GtkWidget f R  GtkWindow 0w_GtkWindow5bin7W9GtkWidgetPrivate B_GtkWidgetPrivate)GtkContainer-_GtkContainer1 widget3)6QGtkContainerPrivate.;_GtkContainerPrivate GtkBin-e_GtkBin1%36GtkBinPrivate._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivate t  GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkAdjustmentPrivate -<_GtkAdjustmentPrivate GtkTextIter@r_GtkTextIter8F_dummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextTagJq_GtkTextTagNPR GtkTextTagPrivateK_GtkTextTagPrivate_GtkTextBufferB_GtkTextBufferN PR GtkOverlay'. _GtkOverlay+^ parent-W/ GtkOverlayPrivate)w _GtkOverlayPrivate^ GtkRange. _GtkRange2 widget4)6 GtkRangePrivate/ _GtkRangePrivate GtkScale. _GtkScale2; range4 7d GtkScalePrivate/R _GtkScalePrivate; GtkScrolledWindow- _GtkScrolledWindow1 %3W5 GtkScrolledWindowPrivate. _GtkScrolledWindowPrivate Y GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALGtkTextBufferPrivateKu _GtkTextBufferPrivateY GtkTextViewq _GtkTextViewu w{ GtkTextViewPrivater _GtkTextViewPrivate  margin_changed [Af  Ytext  valueP[Ax t[A tts\At@Btst 0do_overlay2\Ado_widgetwindow!Ze\Aoverlaycswtextimage scale!buffer" start#_~end#_$Y-q\A t0\A t t \A tSB\A\At0t0\A/twt1t1\A)\A4Mtu]A?ststfBt )]AJtsttBt@Bt 0t0B]AVtst~]Abt~^Antst~t ~^Aztv$^Az5tvtw0^AzQtwtue^AtBtt !Zt0t0q^AtB^Atvts^Atvtst1^Atst1^Atst1^A'tB^ACtvts^Aetvtst1^Atst2_Atst2+_A t ~t ~t ~t ?t ?t( Y_AEtwtBt[At ut0t0i_A`t0tw{_A{tst0_Atstxt _AtstD_AtstD_AtstD_A tvts_A&tst1_AAtst2_A`tstB`A'twt ~`A2tv+\A><\AJU\AVtag !Z// ` ܣܣ  צצ̣̣REEXX o pp ˥˥ RHH v##T^ ;; 2 9]] OQqq^ vv  ZZ H פפ M ;; W  ,, b x S ĦĦ k rvGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden panes.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo0`Aucharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoubleGData$_GDataGType~GTypeClassB _GTypeClassh g_type!GTypeInstance~ _GTypeInstance g_class/GCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject Vg_type_instancehref_countqdataGInitiallyUnowned  V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL % GTK_SHADOW_NONE GTK_SHADOW_IN GTK_SHADOW_OUT GTK_SHADOW_ETCHED_IN GTK_SHADOW_ETCHED_OUTGtkWidget .6_GtkWidget nparent_instance Vx  GtkWindow 0_GtkWindow 5bin 7\x 9GtkWidgetPrivate B_GtkWidgetPrivate%GtkContainer -_GtkContainer 1%Ψ 3%x 6VGtkContainerPrivate .@_GtkContainerPrivate%GtkBin-j_GtkBin13x6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate  t% GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkBox/3_GtkBox3\5x8GtkBoxPrivate0q_GtkBoxPrivate\GtkFrame._GtkFrame2bin4\x7GtkFramePrivate/_GtkFramePrivateGtkButton._GtkButton2.bin5\x7YGtkButtonPrivate/F_GtkButtonPrivate.GtkToggleButton-v_GtkToggleButton 1button4x6GtkToggleButtonPrivate._GtkToggleButtonPrivateGtkGrid(_GtkGrid,!/x1HGtkGridPrivate)7_GtkGridPrivate!GtkPaned,^_GtkPaned02x5GtkPanedPrivate._GtkPanedPrivateNtoggle_resize0`A: ΨchildparentKpanedKGtresizehshrinklB`ANd tsL`AZy tv`Ae tvtstBt htBtlt0`Ap ts`A| tvts`A tvts`A ts`A`Atstoggle_shrink-`A Ψ-child.parent0݌paned1݌G2resize3hshrink3laAN ts aAZ tvBaAe9 tvtstBt htBtlt0JaApN tsVaA|j tvts}aA tvtsaA tsaAaAtscreate_pane_optionsIaA panedIframe_labelJlabel1Klabel2L child1Nochild2NframeOtablePʍlabelQcheck_buttonRaAZ tsaA tsaA taA tvt4aAbA tvtsbA, t:bAY tst0t 0t1t1FbAq tBtbA tstwt0t 1t1t1bA twtBt0`At \t0t0bA tBbA.tstwt0t 2t1t1bA Itwt1cAtwtBt`At \t0t0*cAt VcAtst1t 0t1t1bcAtBcAtstwt1t 1t1t1cA 0twt1cAltwtBt0`At ut0t0cAtBdAtstwt1t 2t1t1dA twt1BdAtwtBt`At ut0t0do_panes~PdANdo_widget~window"ZframefhpanedvpanedΎbuttonvboxhdAydA$dA0dA<t0dAGtdASeA)tBtt "Zt0t0eA_AtB/eAUt0CeAjot1t0VeAtsbeAut1eAtstvt1t 1t0eAtvt5eAut0eAtvtweA%t0eA@tut1eActut<t<eAtwtufAtB fAtufAt0*fAtut1BfAtutPt<NfAtwtuZfA.t0lfAItut1fAltut<tPfAtvtufA twtBtBt BfAtst0t 0t0fA tvt3Bt/Bt (BgA<tst0t 0t0 gAts }}jQQ ]] //^iiYlU K [MLʧʧVQQ Sةة kըը r  jj  PQT??S--k hhiNNV x wGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden pickers.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo0gAjscharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass6 g_typeGTypeInstanceL_GTypeInstancev g_classvGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags _GObject $g_type_instance6ref_countqdataGInitiallyUnowned  J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINEGtkWidget . _GtkWidget  $ P GtkWindow 0 _GtkWindow 5bin 7 9`GtkWidgetPrivate B7_GtkWidgetPrivateGtkContainer -j _GtkContainer 1widget 3 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin1 3V6/GtkBinPrivate._GtkBinPrivate GtkWindowPrivate .M_GtkWindowPrivate5  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkComboBox& _GtkComboBox*,/ GtkComboBoxPrivate(_GtkComboBoxPrivateGtkAppChooserButton)- _GtkAppChooserButton -fparent.1GtkAppChooserButtonPrivate+_GtkAppChooserButtonPrivatefGtkFileChooser#_GtkFileChooser 7m GTK_FILE_CHOOSER_ACTION_OPEN GTK_FILE_CHOOSER_ACTION_SAVE GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER GTK_FILE_CHOOSER_ACTION_CREATE_FOLDERGtkGrid(| _GtkGrid,/V1GtkGridPrivate)_GtkGridPrivatedo_pickers J0gAj do_widget Jwindow J"Ztable Jlabel J;picker JGgA XgA igAgA!~t0gA,tgA8gADtsAJ[tstB'tt 0t0t0FsAVtspAbt0pAmtqAy#qAtB8qAt0mqAJtB'tt p"Zt0t0qAqA't0t0t8qArAJdtBtPpAt 0t0t0$rAIrAtkAt0t 0pApApApA()3image_namesBwindow#pp"Zframe&;l"Zbackground);h"Zback_width*d"Zback_height*`"Z(;a)3images-Q@"Zda0p("Zstart_time[ "Z*66l**hh+coscos+floorfloor+sinsin*::(,$*~~ O,$$*__-, ,J*c*RRC,ѬѬ ,&&r*,,{{*,,]],ͭͭ*yyH*KK,ܭܭ6,S,k,YY ,x 1p{GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden popover.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoPsA;charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8}signed charguint8Pgint16 short intguint16!guint32&long long unsigned intgsize;gchar.gshort/gint1gboolean2guint7floatgdouble:XdoublegpointerM~GData$_GDataGType~GTypeClass _GTypeClass g_typeGTypeInstance _GTypeInstance! g_class!GCallbackVx 3 p G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags=GObject_GObject g_type_instanceref_count8qdataGInitiallyUnowned _cairo_rectangle_int K x  y  width  height  cairo_rectangle_int_t cairo_region_t _cairo_regionGdkRectangle ]KGdkAtom f_GdkAtomGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkWindow _GdkWindowGdkEventAny |6 _GdkEventAny Vtv X` YF  ZpGdkEventExpose } _GdkEventExpose$ lv n` oF  pp area q region rL  count s GdkEventVisibility ~ _GdkEventVisibility dv ` F  p  GdkEventMotion z _GdkEventMotion@ 1v ` F  p  x I y I axes R  3$ is_hint ( X , I0 I8GdkEventButton G _GdkEventButton@ v ` F  p  x I y I axes R  3$˯ 3( X , I0 I8GdkEventTouch  _GdkEventTouchH !v #` $F  %p & x 'I y (I axes )R  *3$ sequence +^ ( emulating_pointer ,#, -X 0 .I8 .I@GdkEventScroll  _GdkEventScrollX Q v S` TF  Up V x WI y XI Y3 direction Z\$ [X ( \I0 \I8 delta_x ]I@ delta_y ^IHis_stop _3PGdkEventKey _GdkEventKey(  v ` F  p   3 keyval 3 length  string r hardware_keycode   "is_modifier 3$GdkEventFocus _GdkEventFocus  v ` F  p in  GdkEventCrossing + _GdkEventCrossingH  v ` F  p subwindow F   x I y I  I( I0 mode 8 detail < focus #@ 3DGdkEventConfigure  _GdkEventConfigure  v ` F  p x  y  width  height GdkEventProperty _GdkEventProperty  v ` F  p atom    3GdkEventSelection & _GdkEventSelection  v ` F  p{  target    requestor F GdkEventOwnerChange _GdkEventOwnerChange &fv (` )F  *p owner +F reason ,/ { - . selection_time /GdkEventProximity  _GdkEventProximity Ev G` HF  Ip J  KX GdkEventDND  _GdkEventDND fv ` F  p context d      GdkEventWindowState  _GdkEventWindowState mv o` pF  qp changed_mask r? new_window_state s?GdkEventSetting  _GdkEventSetting Ynv [` \F  ]p action ^ name _)GdkEventGrabBroken  _GdkEventGrabBroken v ` F  p keyboard # implicit # grab_window F GdkEventTouchpadSwipe # _GdkEventTouchpadSwipeH v ` F  p phase p  p   x I y I dx I dy I( I0 I8 3@GdkEventTouchpadPinch  _GdkEventTouchpadPinchX v ` F  p phase p  p   x I y I dx I dy I( angle_delta I0 scale I8 I@ IH 3PGdkEventPadButton  _GdkEventPadButton v ` F  p   3˯ 3 mode 3GdkEventPadAxis  _GdkEventPadAxis( *!v +` ,F  -p .  /3 index 03 mode 13 value 2I GdkEventPadGroupMode = _GdkEventPadGroupMode Ev F` GF  Hp I  J3 mode K3GdkEventSequence _GdkEventSequenceGdkEvent _GdkEventX v `any #expose tvisibility motion d˯ 1touch scroll key  crossing  focus_change  configure    {  owner_change  proximity fdnd window_state fsetting grab_broken ntouchpad_swipe touchpad_pinch pad_button pad_axis pad_group_mode ! 6`GDK_NOTHING GDK_DELETE GDK_DESTROY GDK_EXPOSE GDK_MOTION_NOTIFY GDK_BUTTON_PRESS GDK_2BUTTON_PRESS GDK_DOUBLE_BUTTON_PRESS GDK_3BUTTON_PRESS GDK_TRIPLE_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_KEY_PRESS GDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAP GDK_UNMAP GDK_PROPERTY_NOTIFY GDK_SELECTION_CLEAR GDK_SELECTION_REQUEST GDK_SELECTION_NOTIFY GDK_PROXIMITY_IN GDK_PROXIMITY_OUT GDK_DRAG_ENTER GDK_DRAG_LEAVE GDK_DRAG_MOTION GDK_DRAG_STATUS GDK_DROP_START GDK_DROP_FINISHED GDK_CLIENT_EVENT GDK_VISIBILITY_NOTIFY GDK_SCROLL GDK_WINDOW_STATE GDK_SETTING! GDK_OWNER_CHANGE" GDK_GRAB_BROKEN# GDK_DAMAGE$ GDK_TOUCH_BEGIN% GDK_TOUCH_UPDATE& GDK_TOUCH_END' GDK_TOUCH_CANCEL( GDK_TOUCHPAD_SWIPE) GDK_TOUCHPAD_PINCH* GDK_PAD_BUTTON_PRESS+ GDK_PAD_BUTTON_RELEASE, GDK_PAD_RING- GDK_PAD_STRIP. GDK_PAD_GROUP_MODE/ GDK_EVENT_LAST0GdkEventType j u GDK_VISIBILITY_UNOBSCURED GDK_VISIBILITY_PARTIAL GDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityState yu \ GDK_SCROLL_UP GDK_SCROLL_DOWN GDK_SCROLL_LEFT GDK_SCROLL_RIGHT GDK_SCROLL_SMOOTHGdkScrollDirection   GDK_NOTIFY_ANCESTOR GDK_NOTIFY_VIRTUAL GDK_NOTIFY_INFERIOR GDK_NOTIFY_NONLINEAR GDK_NOTIFY_NONLINEAR_VIRTUAL GDK_NOTIFY_UNKNOWNGdkNotifyType w  GDK_CROSSING_NORMAL GDK_CROSSING_GRAB GDK_CROSSING_UNGRAB GDK_CROSSING_GTK_GRAB GDK_CROSSING_GTK_UNGRAB GDK_CROSSING_STATE_CHANGED GDK_CROSSING_TOUCH_BEGIN GDK_CROSSING_TOUCH_END GDK_CROSSING_DEVICE_SWITCHGdkCrossingMode ' ? GDK_WINDOW_STATE_WITHDRAWN GDK_WINDOW_STATE_ICONIFIED GDK_WINDOW_STATE_MAXIMIZED GDK_WINDOW_STATE_STICKY GDK_WINDOW_STATE_FULLSCREEN GDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@ GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLEGdkWindowState +- 7 GDK_SETTING_ACTION_NEW GDK_SETTING_ACTION_CHANGED GDK_SETTING_ACTION_DELETEDGdkSettingAction ;V F/ GDK_OWNER_CHANGE_NEW_OWNER GDK_OWNER_CHANGE_DESTROY GDK_OWNER_CHANGE_CLOSEGdkOwnerChange JiI V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL u GTK_POS_LEFT GTK_POS_RIGHT GTK_POS_TOP GTK_POS_BOTTOMGtkPositionType z GtkBuilder #&!_GtkBuilder]S!_a# GtkWidget .d!_GtkWidget!! !GtkWidgetPrivateB!_GtkWidgetPrivateGtkAllocationSS!!!GtkContainer-!_GtkContainer1+"k3S!6\"GtkContainerPrivate.F"_GtkContainerPrivate+"GtkBin-p"_GtkBin1"container3!6"GtkBinPrivate."_GtkBinPrivate" t# GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUP AA# GTK_ENTRY_ICON_PRIMARY GTK_ENTRY_ICON_SECONDARYGtkEntryIconPositionD#GtkEntryFm#_GtkEntryJ#MS!O#GtkEntryPrivateG#_GtkEntryPrivate#]#GtkBuilderPrivate)#_GtkBuilderPrivate#GtkButton.$_GtkButton2=$bin5b"7h$GtkButtonPrivate/U$_GtkButtonPrivate=$GtkCalendar1$_GtkCalendarb$kdS!f$GtkCalendarPrivate4$_GtkCalendarPrivaten$$GtkToggleButton-%_GtkToggleButton 13%˯4$6j%GtkToggleButtonPrivate.Q%_GtkToggleButtonPrivate3%$GtkPopover$%_GtkPopover(%*b".%GtkPopoverPrivate&%_GtkPopoverPrivate%v%entry_size_allocate_cb:[&entry:#`;!VA#?%rect@Kcreate_complex_popover#!&parent#!pos$ &!&!content&!builder'! entry_icon_press_cbMPsAW'!entryM#!icon_posNA#!eventO"VPb #R!$rectSKP%wsA/s'&ts&tv&tu%sA/'&tw&tu%sA/'&tw'sA/&ts&t B&tv toggle_changed_cb sA%&("˯ p%" !%sA/(&t(sA/)create_popover!sAM)*parent!*child!Ȓ*pos #! %sA/(&tP%tA/(&ts&tw% tA/(&ts&tv%tA/(&ts&t6'$tA/&tv day_selected_cb^0tA-*!calendar^$"V_b$rectaKP+`b!`#c!I,eventdg-:tA/%ntA0)&ts&ts%tA0)&t&t`-tA0%tA&()&P&Q3%tA/*&tv&tP%tA/*&tv'tA&0&ts.%uAS+/ &/&/%&00&1C&0N&2%uA8 +3&3%&Ó3 &֓4%uA810&0C&5N&`%=uA20*&t&t B%QuA/*&t&tv']uA/&ts&tv'!uA>0&ts6do_popover~!puA/!do_widget~!+!"Z#! ,box!'#k!E7[&vA,8&3~&4vA1&1&˔1&1&-vAJ0%vAU0 ,&tu&tiB&t0%vA`0),&tu&t}B%vAk0?,&t\%vAv0T,&tw%wA0i,&tw%wA0~,&tw%wA0,&t\%%wA0,&tu%3wA&(,&Ps&Rw&Q3'=wA0&tw-uA0-uA0-uA0%uA0 -&t0%uA0$-&t1&tH%uA/?-&tv&tH% vA/T-&tv%?vA0-&t1B9t&t "Z&t0&t0%KvA0-&t9B%YvA0-&t@B%gvA&(-&Ps&Q2%yvA1-&tw&t0%vA0&.&ts&taB&tsA&t w&t0&t0%vA/B.&tv&ts-vA0%UwA 1p.&ts&t0&tB%mwA 1.&ts&t1&tB%wA0.&ts&tB&tPsA&t u&t0&t0%wA0 /&ts&tB&tuA&t u&t0&t0%wA/)/&tv&ts-wA1%xA0m/&ts&tB&t0tA&t 0&t0&t0'xA/&tv&ts:;ααN:r:009;Y:P;A;ˮˮT;PP;;44::: ;rr: :6:U;@@y; ;;bbO::;NN:cck:%%:S:BBx;үү;P:;--M;tt[;**Z:°°D;~GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden printing.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo xAodoublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublesigned charshort intguint32&gsize;gchar.gint1guint7gdouble:gpointerMGBytes$%_GBytesGQuark$GError)P_GError +domain-4code.message/. GData$_GDataB. GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstanceH g_classHGCallback V  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags dGObject _GObject g_type_instance ref_count _qdata GInitiallyUnowned PangoFontDescription (:_PangoFontDescriptionPangoLayout j_PangoLayout ZPANGO_ELLIPSIZE_NONEPANGO_ELLIPSIZE_STARTPANGO_ELLIPSIZE_MIDDLEPANGO_ELLIPSIZE_ENDWcairo_t|_cairo|GTK_MESSAGE_INFOGTK_MESSAGE_WARNINGGTK_MESSAGE_QUESTIONGTK_MESSAGE_ERRORGTK_MESSAGE_OTHERGTK_UNIT_NONEGTK_UNIT_POINTSGTK_UNIT_INCHGTK_UNIT_MMGtkWidget._GtkWidget#privw GtkWindow0_GtkWindow5Fbin7priv9GtkWidgetPrivateB^_GtkWidgetPrivateFGtkContainer-_GtkContainer1widget3priv6GtkContainerPrivate._GtkContainerPrivateGtkBin- _GtkBin19container3}priv6^GtkBinPrivate.N_GtkBinPrivate9GtkWindowPrivate.|_GtkWindowPrivated0GTK_DIALOG_MODALGTK_DIALOG_DESTROY_WITH_PARENTGTK_DIALOG_USE_HEADER_BARVyGTK_BUTTONS_NONEGTK_BUTTONS_OKGTK_BUTTONS_CLOSEGTK_BUTTONS_CANCELGTK_BUTTONS_YES_NOGTK_BUTTONS_OK_CANCELGtkPrintContext!_GtkPrintContextGtkPrintSettings_GtkPrintSettingsyGtkPrintOperationPrivate._GtkPrintOperationPrivateGtkPrintOperation/' _GtkPrintOperationx\ #zpriv} p GTK_PRINT_OPERATION_ACTION_PRINT_DIALOGGTK_PRINT_OPERATION_ACTION_PRINTGTK_PRINT_OPERATION_ACTION_PREVIEWGTK_PRINT_OPERATION_ACTION_EXPORT   resourcename.font_sizelines_per_pagelinesnum_linesnum_pagesPrintData end_print xA*  data &2xA=xAJxA draw_page8PxA}8 9page_nr:; data= Qcr>{layout?text_width@Xtext_height@\widthAlineBiB7descCQapage_strD.mxA, t~xAB txA% tst t ttxA1 tst ?t ?t ?xA= tsxA1, tst t t xAIR tst ?xAUg tsyAa} tyAl tB!yAx tvtw-yADyA tvt XyA tvtwt\yAtstyA6tstvyAXtBt#yA}tvtt yAtyAtvt zAtvtwt\CzA tst@@t OzA(tstvWzA=tvfzAaSttzAlktBzAtwzAxtvtwzAtwzAtst t flB@1{Atvt ={A twtvR{AFtwt f{A[tv{Atvt {Atvt1{Atvtwt\begin_print{A data bytes i!height"U{AYt|A 6|A|t0t0H|A&twt0`|A1tBt0k|A=tw|AHdo_printingq|Ado_widgetq settings data ͗errorl __n __s __p͗|ASt !~Au.dialogq@~A^twt2t3t 2t'BN~Ai~~Attst*B"tt 0t0t0~Ats|A|AOtB*}AttstBt{At vt0t0V}AttstBtPxAt vt0t0}AttstBt xAt vt0t0}Atst0}A9tst1}ATtst1}A}AtvtBtB}Atstv}Atst0twt l~Ats ~Atv#g_freeg_freeG$%-%%%2$ҲҲ$$$$PP%]]F$ll -%JJ % % $ 1$llW%%ԳԳ% $zz $ $z% %4#floorfloor%j%:$aa%llD%%P%,,c%dzdzC$zz $r%33%AA%ŵŵ$δδ$CC0%9%JJ]%$88( GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden revealer.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo~ACFcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoublegpointerMGData$#_GDataGType~GTypeClassR _GTypeClassx g_type1GTypeInstance _GTypeInstance g_class?GCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject+_GObject ug_type_instancexref_countqdata+GInitiallyUnowned+ -Y GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GtkBuilder #k_GtkBuilder ]C _priv a GtkWidget ._GtkWidget C upriv L GtkWindow 0_GtkWindow 5bin 7priv 9dYGtkWidgetPrivate B3_GtkWidgetPrivateGtkContainer-f_GtkContainer1widget3priv6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1container3Rpriv63GtkBinPrivate.#_GtkBinPrivateGtkWindowPrivate .Q_GtkWindowPrivate9GtkBuilderPrivate )_GtkBuilderPrivatejGtkRevealer%_GtkRevealer1C2change_direction : revealedreveal_one~A!datawindowFbuilder name '::~Ae ttpB~Aq txB~A| ts~A tst1 A tstBtpAt 0t0t0on_destroy6@A-Vdata6_A pA5!"A#X$A%kA tsA tsA ts&do_revealerAFA#) do_widgetAF"#A builderE~/A @ tBAA [ tst0QA| z tstBbA tsA A tBt@At 0t0t0ɀA tpBts't A A A  t t~AA count "Ztimeout "Zwindow3F"Z(ƶƶ6)KK)## )[[D(ʷʷ(oo/)G(yy j) )SS ( ( (=( S(ضض k(>( xQGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden rotated_text.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAdoublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1gboolean2guint7gpointerMgconstpointerNGDestroyNotifyW28CI GData$W _GDataJ GType~ GTypeClass _GTypeClass g_typee GTypeInstance _GTypeInstance g_classsGCallbackVC;G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags_GObject g_type_instanceref_countqdata_GInitiallyUnownedPPangoRectangle (_PangoRectangle x y width  PangoFontDescription (7 _PangoFontDescriptionPangoFontMetrics 2f _PangoFontMetricsPangoAttribute H_PangoAttribute klass start_index end_index PangoAttrClass I _PangoAttrClass !H type $m copy % destroy & equal ' PangoAttrShape R^ _PangoAttrShape8  attr y  i  data , copy_func 0 destroy_func 4PangoAttrList t _PangoAttrList mPANGO_ATTR_INVALIDPANGO_ATTR_LANGUAGEPANGO_ATTR_FAMILYPANGO_ATTR_STYLEPANGO_ATTR_WEIGHTPANGO_ATTR_VARIANTPANGO_ATTR_STRETCHPANGO_ATTR_SIZEPANGO_ATTR_FONT_DESCPANGO_ATTR_FOREGROUND PANGO_ATTR_BACKGROUND PANGO_ATTR_UNDERLINE PANGO_ATTR_STRIKETHROUGH PANGO_ATTR_RISE PANGO_ATTR_SHAPEPANGO_ATTR_SCALEPANGO_ATTR_FALLBACKPANGO_ATTR_LETTER_SPACINGPANGO_ATTR_UNDERLINE_COLORPANGO_ATTR_STRIKETHROUGH_COLORPANGO_ATTR_ABSOLUTE_SIZEPANGO_ATTR_GRAVITYPANGO_ATTR_GRAVITY_HINTPANGO_ATTR_FONT_FEATURESPANGO_ATTR_FOREGROUND_ALPHAPANGO_ATTR_BACKGROUND_ALPHAPangoAttrType y PangoAttrDataCopyFunc y PangoContext 3+ _PangoContextPangoLayout M _PangoLayout: Hcairo_t|v _cairocairo_pattern_tܕ _cairo_patterng ~ -| GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST V GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget. _GtkWidget parent_instancey GtkWindow0 _GtkWindow5H bin7 9 GtkWidgetPrivateB` _GtkWidgetPrivate H GtkContainer- _GtkContainer1 3 6 GtkContainerPrivate. _GtkContainerPrivate GtkBin- _GtkBin10 "3 6U GtkBinPrivate.E _GtkBinPrivate0 GtkWindowPrivate.s _GtkWindowPrivate[ t GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkMisc. _GtkMisc2 4 7" GtkMiscPrivate/ _GtkMiscPrivate GtkLabel.8 _GtkLabel4d misc6 9 GtkLabelPrivate/{ _GtkLabelPrivated GtkBox/ _GtkBox3 "5 8 GtkBoxPrivate0 _GtkBoxPrivate fancy_shape_rendererA$cr attra do_pathdata x`yhAtst`thAts?AtshA tst ?t t pA tsATtst \t Aztst ?Atst ?t \t$ \t, ZAtst \t t$ ?bAtscreate_fancy_attr_list_for_layout3 pA3[  attrs5 metrics6Ř ascent7!8@!i8P p9"0 attrKAtsA$twtut 0t0=A0tvA<EtsAGZtsARutvt0A]ts#Ai#AuMAtstBN$rotated_text_draw\`AoE\s cr] data^ contextdE%e[ descf patternh  attrsj G device_radiuslq widthm%m in˚&AkwidthX!\ Atstv AtvtXtuMAJtst t `YAftstvkAtst v/?}AtvAtv׃Atstt AtsACt bt bt t AAtwt t t t eAtwt ?t t t qAtstwyAtvAGtwtAt0t 0A\twAtvtBt ̈́A)tB݄A5tvtLA$tvA@tvtw#AK|AWtLAbtvAb2tHAntD do_rotated_texts ЅAvdo_widgets windows "Z&AZ boxs drawing_areas  labels <%[ Z attrs xAzt0/A't#@AUAHtBrAft Xt ,AtB'tt "Zt0t0At0t0͆Atvt1ކAtv#AAtvtsAts A4tB9AotstBt`At 0t0t0EAtBSAtvtseAtst F@mAtswAGtvAtAt0t 0A$,tvA%HtstvAKtv#A0#A<#AH()A *textBv+--+3+6+TT++$$W+]+EE`+, I ♥ GTK+++,, +vv - - -ŸŸM+ D+77 B+ .strstrstrstrV-vv+ZZ 1- +9++ȺȺ+  +ûû ++--bb - +MM -- - +pp - ++66 -((++-88+ĹĹ+""-P-a- -mmH+PP+ммG-LL[-߸߸--d+KKS+k+ssx7GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden scale.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass4 g_typeGTypeInstanceJ_GTypeInstancet g_classtGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject 1g_type_instance4ref_countqdataGInitiallyUnownedGtkBuilder #\ _GtkBuilder ]_ _priv a GtkWidget . _GtkWidget _ 1priv = GtkWindow 0 _GtkWindow 5bin 7priv 9UJGtkWidgetPrivate B$_GtkWidgetPrivate GtkContainer -W _GtkContainer 1widget 3priv 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin1container3Cpriv6$GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .B_GtkWindowPrivate*GtkBuilderPrivate )t_GtkBuilderPrivate[do_scale 7Ado_widget 7window7"ZAbuilder A tHBA'tst0.AFtstXB?A\tPAAt`Btt "Zt0t0A tsՇAA"A.oo  ܽܽ 22  ƽƽHH S k x8pGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden search_entry.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAdoublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8_gint16 short intguint16!guint32&long long unsigned intgsize;gchar.gshort/gint1gboolean2&guint7floatgdouble:gpointerM GDestroyNotifyWg GData$ _GData 2gGSourceFunc GType~ GTypeClass _GTypeClass5 g_type GTypeInstanceK _GTypeInstanceu g_classuGCallbackVBG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags_GObject #g_type_instance 5ref_count qdata GInitiallyUnowned  _cairo_rectangle_int  x  y  width  height  cairo_rectangle_int_t < cairo_region_t  _cairo_regionGdkRectangle ]GdkAtom f _GdkAtomGdkDevice  _GdkDeviceGdkDragContext : _GdkDragContextGdkWindow \ _GdkWindow -3GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny |F _GdkEventAny V Xj YP!C ZGdkEventExpose } _GdkEventExpose$ l nj oP!C p area q region rV! count s& GdkEventVisibility ~" _GdkEventVisibility t j P!C =  GdkEventMotion  _GdkEventMotion@ A j P!C   x X y X axes \! = B$ is_hint ( b!,h X0 X8GdkEventButton W _GdkEventButton@   j P!C   x X y X axes \! = B$ B( b!,h X0 X8GdkEventTouch  _GdkEventTouchH !  #j $P!C % & x 'X y (X axes )\! = *B$ sequence +h!( emulating_pointer ,2, -b!0h .X8 .X@GdkEventScroll  _GdkEventScrollX Q  Sj TP!C U V x WX y XX= YB direction Zf$ [b!(h \X0 \X8 delta_x ]X@ delta_y ^XHis_stop _BPGdkEventKey _GdkEventKey(   j P!C   = B keyval B length & string  hardware_keycode  o "is_modifier B$GdkEventFocus _GdkEventFocus #  j P!C  in  GdkEventCrossing ; _GdkEventCrossingH   j P!C  subwindow P!   x X y X h X( X0 mode 8 detail < focus 2@= BDGdkEventConfigure ! _GdkEventConfigure   j P!C  x & y & width & height &GdkEventProperty _GdkEventProperty  j P!C  atom   = BGdkEventSelection 6 _GdkEventSelection  j P!C   target %   requestor P!GdkEventOwnerChange  _GdkEventOwnerChange &v (j )P!C * owner +P! reason ,9! - . selection_time /GdkEventProximity  _GdkEventProximity E Gj HP!C I J  Kb!GdkEventDND  _GdkEventDND v j P!C  context n!  h  GdkEventWindowState  _GdkEventWindowState m oj pP!C q changed_mask rI new_window_state sI GdkEventSetting  _GdkEventSetting Y~ [j \P!C ] action ^ name _8GdkEventGrabBroken  _GdkEventGrabBroken  j P!C  keyboard 2 implicit 2 grab_window P!GdkEventTouchpadSwipe 3 _GdkEventTouchpadSwipeH  j P!C  phase      x X y X dx X dy X(h X0 X8= B@GdkEventTouchpadPinch  _GdkEventTouchpadPinchX  j P!C  phase      x X y X dx X dy X( angle_delta X0 scale X8h X@ XH= BPGdkEventPadButton  _GdkEventPadButton  j P!C   o B B mode BGdkEventPadAxis  _GdkEventPadAxis( *1 +j ,P!C - . o /B index 0B mode 1B value 2X GdkEventPadGroupMode M _GdkEventPadGroupMode E Fj GP!C H I o JB mode KBGdkEventSequence  _GdkEventSequenceGdkEvent _GdkEventX  jany 3expose visibility motion t Atouch  scroll  key  crossing # focus_change  configure  %   owner_change proximity vdnd window_state vsetting grab_broken ~touchpad_swipe touchpad_pinch pad_button pad_axis pad_group_mode 1 6jGDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventType j uGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState y fGDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection  GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType  GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode 1 I GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState +7 7 GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction ;`  F9!GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChange J KX$ V!GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget.!_GtkWidget!#"e" GtkWindow0"_GtkWindow54"bin7""9x#GtkWidgetPrivateBL" _GtkWidgetPrivate!4"AGtkContainer-"_GtkContainer1"3!"6"GtkContainerPrivate." _GtkContainerPrivate"GtkBin-"_GtkBin1"#u3q""6G#GtkBinPrivate.7# _GtkBinPrivate"#GtkWindowPrivate.e# _GtkWindowPrivateM#t#GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkMisc.#_GtkMisc2#4!"7$GtkMiscPrivate/$ _GtkMiscPrivate#GtkMenuShell,.$_GtkMenuShell0]$u2q""5$GtkMenuShellPrivate.x$ _GtkMenuShellPrivate]$GtkMenu-$_GtkMenum$menu_shello$"r%GtkMenuPrivate/$ _GtkMenuPrivate$$GtkLabel.%_GtkLabel4C%misc6#"9l%GtkLabelPrivate/Z% _GtkLabelPrivateC%GtkBox/%_GtkBox3%u5q""8%GtkBoxPrivate0% _GtkBoxPrivate%A&GTK_ENTRY_ICON_PRIMARYGTK_ENTRY_ICON_SECONDARYGtkEntryF%&_GtkEntryJP&M!"Oy&GtkEntryPrivateGg& _GtkEntryPrivateP&&GtkButton.&_GtkButton2&bin5""7&GtkButtonPrivate/& _GtkButtonPrivate&&GtkMenuItem- '_GtkMenuItem1:'bin3""6i'GtkMenuItemPrivate/T' _GtkMenuItemPrivate:'GtkNotebook5'_GtkNotebook9'u'GtkNotebookPrivate6' _GtkNotebookPrivate'icon_press_cb0(=&position&eventk"datag show_find_button show_cancel_buttonsearch_by_name\(item\_"=]&!search_by_filesA5("items_"#=t&$A6(%ts%t0%thB&ՈA7!search_by_descriptiongA5j)"itemg_"#=h&$A6`)%ts%t0%tB&A7'\( A5)(s((($@A6)%ts%t0%tB&UA7!clear_entryV`A*#=V&)wA7%t%t-B!search_entry_destroyedAIM*#_"*A7*A7+finish_search+2ЉA9*#+&,0(ӉA-*)A%7%t0*A7!stop_searchJA-*#J&"dataKg*)A7&=AM*!start_search@@A^+#@&#=A&,E(CACW+)XA%7%t1$tA07}+%t1%tA%t)A07%t?%tЉA%t!activate_cbA+-=&-&ӛ&A*+start_search_feedback72A:S,"data7g)A<7%t0%td%t A%t %tA!search_progress_done%A,#=%&)AH7%t%t +search_progress2 A,"datag)/AT7%t''@A"c-.'.((((#( /PA.'%0((#( ((1bA`7%2create_search_menu~_"pA$/#=~_"3menu_"93item_"b*Ak7$Av7-%t.B$A7.%tw%t>B%t A%t v%t0%t0$NjA72.%ts%tw$ӋAv7J.%tGB$A7.%tw%t>B%tA%t v%t0%t0$ A7.%ts%tw$Av7.%t^B$GA7.%tw%t>B%tA%t v%t0%t0$SA7/%ts%tw)[A7%ts!entry_populate_popuppA1#=&"menu$"user_datag3item_"3search_menu_"3has_text2 $A7/%tw*A7$A7/%ts$A70%tv%ts$Av70%tsB$A720%ts$A7n0%ts%t>B%t`A%t w%t0%t2$A70%tv%ts$A70%ts$Ac-0%tw$A70%tzB$&A70%ts$2A70%ts%tw&FA72do_search_entry_"PA6"do_widget_"3vbox_"P3hbox_"n3label_"4=_"3find_button_"ȝ3cancel_button_"5\(=A(2.(.s($UA61%ts%t0%tB)eA7%ts%t(B*fA7*wA7*A7*A7$A8O2%t0$͍A 8e2%t*ލA8$A#82%tB$A.82%t0$=A72%tB%tA%t "Z%t0%t0$QA:82%t1%t5$dAE83%ts$tAP83%ts%t5$A[803%t0$Af8O3%tv%tB$Aq8}3%ts%tv%t0%t 0%t0$ʎA:83%t0%t:$Aq83%ts%tv%t1%t 1%t0$AP83%tv%t0*A|8$+Aq84%tv%ts%t0%t 0%t0*0A8$EA844%t0$ZA8H4%t0$Aq8o4%tv%t0%t 0%t0$A84%tB$A74%tv%tB%t@A%t s%t0%t0$֏A84%tv%t0$ޏA74%tv$A8 5%tB$A7F5%tv%tB%tA%t 0%t0%t0$5A8a5%tv%t0$=A7v5%tv$A75%ts%tB%t@A%t 0%t0%t0$ŐA75%ts%t>B%tA%t 0%t0%t0$͐Ac-6%ts$A86%ts%t0$A8G6%ts%tB%t1%t 0)6A7%ts%tB%tpA%t 0%t0%t06 _""Z7menu _""Z7notebook _""Z7search_progress_idB"Z7finish_search_idB"Z8m8798 /9ѿѿ8H8YY88aa'839??9ĿĿ9 v89''[8ξξx9NN9K8r8H9CCt9__x8S8k9..88II94489 P9yy9BB9[9n9T9D9..99zz9b9))9``8 1{GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden search_entry2.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@A_floatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8_gint16 short intguint16!guint32&long long unsigned intgsize;gchar.gshort/gint1gboolean2$guint7gdouble:\double rGData$_GData5PG_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@G_LOG_LEVEL_DEBUG G_LOG_LEVEL_MASK|s GType~ GTypeClassw _GTypeClass g_typeV GTypeInstance _GTypeInstance g_classdGCallbackVl @,G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags_GObject g_type_instance ref_count qdata PGInitiallyUnowned A `G_BINDING_DEFAULTG_BINDING_BIDIRECTIONALG_BINDING_SYNC_CREATEG_BINDING_INVERT_BOOLEAN _cairo_rectangle_int q x  y  width  height  cairo_rectangle_int_t  cairo_region_t _cairo_regionGdkRectangle ]qGdkAtom f_GdkAtomGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkWindow =_GdkWindowGdkEventAny |\ _GdkEventAny V X0 Yl! ZGdkEventExpose } _GdkEventExpose$ l n0 ol! p area q region rr! count s$ GdkEventVisibility ~8 _GdkEventVisibility  0 l! l  GdkEventMotion  _GdkEventMotion@ W 0 l! H  x M y M axes x! l @$ is_hint (R ~!,K M0 M8GdkEventButton m _GdkEventButton@   0 l! H  x M y M axes x! l @$) @(R ~!,K M0 M8GdkEventTouch 5 _GdkEventTouchH !  #0 $l! %H & x 'M y (M axes )x! l *@$ sequence +!( emulating_pointer ,0,R -~!0K .M8 .M@GdkEventScroll  _GdkEventScrollX Q  S0 Tl! UH V x WM y XMl Y@ direction Z$R [~!(K \M0 \M8 delta_x ]M@ delta_y ^MHis_stop _@PGdkEventKey  _GdkEventKey(   0 l! H  l @ keyval @ length $ string f hardware_keycode  E "is_modifier @$GdkEventFocus _GdkEventFocus 9  0 l!  in  GdkEventCrossing Q _GdkEventCrossingH   0 l!  subwindow l! H  x M y M K M( M0 mode ;8 detail 7< focus 0@l @DGdkEventConfigure 7 _GdkEventConfigure   0 l!  x $ y $ width $ height $GdkEventProperty _GdkEventProperty 3 0 l!  atom  H l @GdkEventSelection L _GdkEventSelection  0 l!   target  H  requestor l!GdkEventOwnerChange  _GdkEventOwnerChange & (0 )l! * owner +l! reason ,U! -H . selection_time /GdkEventProximity  _GdkEventProximity E G0 Hl! IH J R K~!GdkEventDND  _GdkEventDND  0 l!  context ! H K  GdkEventWindowState  _GdkEventWindowState m o0 pl! q changed_mask re new_window_state se GdkEventSetting 4 _GdkEventSetting Y [0 \l! ] action ^ name _8GdkEventGrabBroken  _GdkEventGrabBroken , 0 l!  keyboard 0 implicit 0 grab_window l!GdkEventTouchpadSwipe I _GdkEventTouchpadSwipeH  0 l!  phase  c  H  x M y M dx M dy M(K M0 M8l @@GdkEventTouchpadPinch , _GdkEventTouchpadPinchX  0 l!  phase  c  H  x M y M dx M dy M( angle_delta M0 scale M8K M@ MHl @PGdkEventPadButton / _GdkEventPadButton  0 l! H  E @) @ mode @GdkEventPadAxis  _GdkEventPadAxis( *G +0 ,l! -H . E /@ index 0@ mode 1@ value 2M GdkEventPadGroupMode c _GdkEventPadGroupMode E F0 Gl! HH I E J@ mode K@GdkEventSequence _GdkEventSequenceGdkEvent _GdkEventX  any Iexpose visibility motion ) Wtouch  scroll  key  crossing 9 focus_change  configure     3owner_change proximity dnd window_state setting grab_broken touchpad_swipe ,touchpad_pinch pad_button pad_axis pad_group_mode G 6 GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventType j uGDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCURED GdkVisibilityState y GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTH GdkScrollDirection  7GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWN GdkNotifyType  ;GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCH GdkCrossingMode M e GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSEDGDK_WINDOW_STATE_TILEDGDK_WINDOW_STATE_TOP_TILEDGDK_WINDOW_STATE_TOP_RESIZABLEGDK_WINDOW_STATE_RIGHT_TILEDGDK_WINDOW_STATE_RIGHT_RESIZABLEGDK_WINDOW_STATE_BOTTOM_TILED GDK_WINDOW_STATE_BOTTOM_RESIZABLE@GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLE GdkWindowState +S 7 GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETED GdkSettingAction ;|  FU!GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSE GdkOwnerChange J ,MJ!GTK_ALIGN_FILLGTK_ALIGN_STARTGTK_ALIGN_ENDGTK_ALIGN_CENTERGTK_ALIGN_BASELINEV>"GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkWidget.O"_GtkWidget{"r" GtkWindow0"_GtkWindow5"bin7i#r9#GtkWidgetPrivateB"_GtkWidgetPrivate>""GtkContainer-#_GtkContainer12#3>"r6c#GtkContainerPrivate.M#_GtkContainerPrivate2#GtkBin-w#_GtkBin1#Y3"r6#GtkBinPrivate.#_GtkBinPrivate#GtkWindowPrivate.#_GtkWindowPrivate#t2$GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkMisc.A$_GtkMisc2k$4>"r7$GtkMiscPrivate/$_GtkMiscPrivatek$GtkLabel.$_GtkLabel4$misc62$r9$GtkLabelPrivate/$_GtkLabelPrivate$$GtkBox/%_GtkBox3@%Y5"r8e%GtkBoxPrivate0U%_GtkBoxPrivate@%GtkEditable+~%_GtkEditablek%GtkEntryF%_GtkEntryJ%M>"rO%GtkEntryPrivateG%_GtkEntryPrivate%GtkSearchBar.&_GtkSearchBar16&parent4i#GtkSearchEntry.L&_GtkSearchEntry1t&parent3%6&%stop_search;@A&;t&+L<%?UA0Bprevious_match4`A#'4t&^L5%ruA0Bnext_match-Ar'-t&L.%A0Bsearch_changed&A'&t&ĞL'%؞A0Bchanged_cbA3<(editable%text ϑA0(t!A0t0t tBsearch_changed_cb AS(" t&result_label %text A0(t 7A0(t0t t*Bt s#SA0$window_key_press_event_cb0`A W)"(eventbar z&mA0%do_search_entry2B"pA/0do_widgetB"&0D""ZvboxE"<hboxF"Z'LG"'H"'YI"searchbarJ"5')K"S(A0(A0(A1 ΒA1B*t0 A1Z*t=B A*1p*t A51*t1 *AA1*tt _AM1*tRB)tt "Zt0t0 sAY1*t1t0 Ad1+tv Ao1+tvt0(Az1 AY1?+t0t: ÓA1Z+tut3 A1+tutst0t 0t0(A1 A1+twts A1+twt0 Ad1+twtu :A1,tvtwt0t 0t0 kAM1G,tZBt`At wt0t0 wA1_,tjB A1,tvt1t 1t0 A1,tB ͔A1,tutBtwt Bt1 A1-tvtut1t 1t0 AY1-t0t: +A1J-tvtwt1t 1t0 ;Ao1e-twt0 GA1}-tB YA1-tut iA1-tut6 A1-twtut1t 1t0 A1.t)B A1..twtut1t 1t0 AM1j.tstBtAt ut0t0 AM1.tstBtAt ut0t0 +AY1.t0t: QA1.tvtwt1t 1t0 aAo1 /twt0 mA1!/tB A1C/tvt A1^/tvt6 A1/twtvt1t 1t0 A1/t)B A1/twtvt1t 1t0 AM10tstBtAt vt0t0 =AM1J0tstBtAt vt0t0 iAM10tstBt`At vt0t0!AM1tstBt@At vt0t0*_+,g_logg_logf*mm_+ddS+ k+x**77*+++*P***D+ww2*{{T*L*O*##[*[*M*MM {*00+H GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden shortcuts.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatdoubleGData$_GDataGType~GTypeClassL _GTypeClassr g_type+GTypeInstance _GTypeInstance g_class9GCallbackV    G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject%_GObject og_type_instancerref_countqdata%GInitiallyUnowned%GtkBuilder #_GtkBuilder ]9 _priv a GtkWidget ._GtkWidget 9 opriv { GtkWindow 0_GtkWindow 5Dbin 7priv 9GtkWidgetPrivate Bb_GtkWidgetPrivateJGtkContainer -_GtkContainer 1widget 3priv 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin1=container3priv6bGtkBinPrivate.R_GtkBinPrivate=GtkWindowPrivate ._GtkWindowPrivatehGtkBuilderPrivate )_GtkBuilderPrivateshow_shortcuts A$2 uqid view ɠbuilderDoverlayupath$A ntBtsɗA tuӗA tuߗA tvtsA tstw A tstBt\t 0A tsA tvboxes_shortcuts_displayA0A2AuCAPRBQBboxes_shortcuts_wizard;PA2;ucAPRBQBboxes_shortcuts5pA(25uAPRBQ0clocks_shortcuts_stopwatch/A2/uAPRBQBclocks_shortcuts)A2)uAPRBQ0gedit_shortcuts#A% 2#uAPRBQ0builder_shortcutsAv 2uИAPR!BQ0do_shortcutsGuИA do_widgetGu2Iu"Zicons_addedJ"ZQAR builderVDB]A  t:BߙA tstBtAt BtAtBtAtBt At$Bt(pAt,jBt0PAt4RBt80At<0A tst0A tstBA  t!A VA, @ tB tt "Zt0t0^A tsA8 AC AO  A[ %Ag ?As OA~ t3B!``!ee "g_freeg_freeG! ! ## r#! !II # # #!/#RR+# S# k# x!pp!ȍGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden sidebar.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demopABcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.guint7floatdoubleGData$_GDataGType~GTypeClass( _GTypeClassN g_typeGTypeInstanced _GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject <g_type_instanceNref_countqdataGInitiallyUnowned   GTK_ICON_SIZE_INVALID GTK_ICON_SIZE_MENU GTK_ICON_SIZE_SMALL_TOOLBAR GTK_ICON_SIZE_LARGE_TOOLBAR GTK_ICON_SIZE_BUTTON GTK_ICON_SIZE_DND GTK_ICON_SIZE_DIALOG VS GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget .d_GtkWidget  <  GtkWindow 0_GtkWindow 5bin 7~ 9 GtkWidgetPrivate B_GtkWidgetPrivateSGtkContainer -_GtkContainer 1G 3S 6xGtkContainerPrivate .b_GtkContainerPrivateGGtkBin-_GtkBin136GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ._GtkWindowPrivate  tG GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMisc.V_GtkMisc24S7GtkMiscPrivate/_GtkMiscPrivateGtkBox/_GtkBox358 GtkBoxPrivate0_GtkBoxPrivateGtkImage/_GtkImage[Kmisc]G`tGtkImagePrivate0b_GtkImagePrivateKGtkHeaderBar&_GtkHeaderBar*,GtkStack)_GtkStackCD , GTK_STACK_TRANSITION_TYPE_NONE GTK_STACK_TRANSITION_TYPE_CROSSFADE GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT GTK_STACK_TRANSITION_TYPE_SLIDE_UP GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN GTK_STACK_TRANSITION_TYPE_OVER_UP GTK_STACK_TRANSITION_TYPE_OVER_DOWN GTK_STACK_TRANSITION_TYPE_OVER_LEFT GTK_STACK_TRANSITION_TYPE_OVER_RIGHT GTK_STACK_TRANSITION_TYPE_UNDER_UP GTK_STACK_TRANSITION_TYPE_UNDER_DOWN GTK_STACK_TRANSITION_TYPE_UNDER_LEFT GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFTGtkStackSidebar) _GtkStackSidebar-B parent/~do_sidebar pAdo_widget window"Zsidebar`stackboxߡheaderpagesc!<i"wؚAAAA8 t03AL t1PAj t t ^UAgA tst1xA  tsA thB›A! tvBtt "Zt0t0֛A- t0t0A8AC> tvtst0t 0t0 ANAYb twt7/Adw tw;Ao t1_AC tvt0t 0t0AC ttwt1t 1tvAzt~Bt1Atut ɜAAtwtutsAttwtutBt st0AtsAt)  S k xyy   =Z ]] 11++Prr@T##OEEBH((IIQaa [77 ^GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden sizegroup.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo Acharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass8 g_typeGTypeInstanceN_GTypeInstancex g_classxGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject 5g_type_instance8ref_countqdataGInitiallyUnownedTN  J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINE V  GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL (} GTK_SIZE_GROUP_NONE GTK_SIZE_GROUP_HORIZONTAL GTK_SIZE_GROUP_VERTICAL GTK_SIZE_GROUP_BOTHGtkSizeGroupMode - GtkWidget . _GtkWidget  5 A GtkWindow 0 _GtkWindow 5bin 7 9QGtkWidgetPrivate B(_GtkWidgetPrivateGtkContainer -[ _GtkContainer 1widget 3 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin13G6 GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .>_GtkWindowPrivate&  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkMisc. _GtkMisc2widget47GtkMiscPrivate/_GtkMiscPrivateGtkLabel. _GtkLabel42misc69[GtkLabelPrivate/I_GtkLabelPrivate2GtkBox/o _GtkBox35G8GtkBoxPrivate0_GtkBoxPrivateGtkComboBox& _GtkComboBox*,/3GtkComboBoxPrivate(_GtkComboBoxPrivateGtkButton.J _GtkButton2vbin57GtkButtonPrivate/_GtkButtonPrivatevGtkToggleButton- _GtkToggleButton 1button496* GtkToggleButtonPrivate. _GtkToggleButtonPrivateGtkComboBoxText%M _GtkComboBoxText ) ,. GtkComboBoxTextPrivate& _GtkComboBoxTextPrivate GtkGrid( _GtkGrid, /G1 GtkGridPrivate) _GtkGridPrivate GtkSizeGroup&6 _GtkSizeGroup*e ,/ GtkSizeGroupPrivate' _GtkSizeGroupPrivatee "  toggle_grouping> A- :>0 ? new_modeA}4A tMAcreate_combo_box;PAM stringsY;strY٢^AA tvAtvt0add_row&A table& row'0( \label_text)Noptions*Y,;{label-;AJ t͝Ae tvt1ݝA tvt4A tvt1A twtvt0t ut1t1!A t/A tvts?A tst2OA8 tst4_AU t\tsAtwtst1t ut1t1do_sizegroupP;Azdo_widgetP;windowR;"ZtableS;frameT;vboxU;:V;=W [color_optionsYz@}Bdash_options]z0}Bend_optionsaz }BAA՞A)A5t0A@tAL%AXtB:Act0oAotB tt "Zt0t0A{5t1t5AJtwAetwt5Ayt1՟AtBts t AtBAtwtut1t 1t0 AAtvt5.A!tvt5>A<tvt:JAXtutvdA PvR0QstBt@}BA PvR1QstBt@}BAtBAtwtut0t 0t0AʠA(tvt5ڠACtvt5A^tvt:AztutvA PvR0QstBt0}B-A PvR1QstBt }B9AtB_A&twtvt0t 0t0oAAtvt1AotvtBt At st0t0!N"+#EEY#bbC#?#C#^^#]$ 2$ 9$GG #M#RR#GGM$pp S$ k$ x# $<< $tt # $ $#P# # #aaA$ww=#U#T#K#,,t#~#L#VGGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden spinbutton.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA+;doubleintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intgint64,%guint64-long long unsigned intgsize;gchar.glong0gint1gboolean2gulong6Bguint7gfloat98floatgdouble:gpointerMfwGData$_GDataxk GType~ GValue _GValuej g_typem dataz GTypeClass _GTypeClass g_type GTypeInstance2 _GTypeInstance\ g_class\npv_intqv_uintrv_longsv_ulongtv_int64uv_uint64vv_floatw*v_doublexAv_pointeryPs6GCallbackVq\G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags)GObject  _GObject  g_type_instance  ref_count $ qdata GInitiallyUnowned GBinding /_GBinding `rG_BINDING_DEFAULTG_BINDING_BIDIRECTIONALG_BINDING_SYNC_CREATEG_BINDING_INVERT_BOOLEAN -=GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST AGtkAdjustment "X _GtkAdjustment 6 8z : GtkBuilder # _GtkBuilder]_qzaj GtkWidget . _GtkWidgetzx GtkWindow 0 _GtkWindow5A bin7z9GtkWidgetPrivateB__GtkWidgetPrivateGGtkContainer- _GtkContainer1 widget3z6GtkContainerPrivate._GtkContainerPrivateGtkBin-  _GtkBin18 container3~z6]GtkBinPrivate.M_GtkBinPrivate8GtkWindowPrivate.{_GtkWindowPrivatecGtkAdjustmentPrivate -_GtkAdjustmentPrivateCGtkEntryF _GtkEntryJ MzO7 GtkEntryPrivateG% _GtkEntryPrivate GtkBuilderPrivate)V _GtkBuilderPrivate= GtkSpinButtonc _GtkSpinButtonm entryozr GtkSpinButtonPrivated _GtkSpinButtonPrivate p value_to_labelA8 bindingfromhtobuser_dataP A5r tϡA@ t`BߡAKtmonth_spin_outputA` I yvalueAiAW twAb=Am2 twPAyG tviAtwtvmonth_spin_input}A I} z~=i֤tmp1k$tmp2kXfoundAA twܢA t Am( tuA= t AY tvtwAn tvAtwtime_spin_output[PA I[ ]buf^k˥hours_Aminutes`AaAW tviAbA- thAS th?"A@v tkBt`ãAm tvϣAy tsߣA tvtsAtshex_spin_inputAHhI z=buf`3 errklresAFAmPt'Atlt@time_spin_input4PAI4 z5=text7`str8found9hours:minutes; endhtstBA>TtҦAJAVut BAat01AmtB#tt "Zt0t0AA3tst BSA3tst1BAyDtvtCBt =Bt2tAt0t0t 0A3ctstIBA3tstXBAytvtCBt =Bt2tAt0t0t 0 A3tstbBA3 tstrBcAyVtvtCBt =Bt2tAt0t0t 0sA3utst}BA3tstBɨAytvtCBt =Bt2tAt0t0t 0ѨAtsAAAk6 monthm0B $$UU%$$CC `%&strcmpstrcmp5$&g_freeg_freeG$00&strstrstrstrV&floorfloor'strtolstrtol%>>%%\\${{$$$$%%ee$%%$ %44 %S%ggk%xTGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden spinner.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA!charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7floatdoublegpointerMGData$_GDataGType~GTypeClass. _GTypeClassT g_type GTypeInstancej _GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject_GObject Qg_type_instanceTref_countqdataGInitiallyUnowned -5 GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST  V{ GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICALGtkWidget ._GtkWidget parent_instance Q 2 GtkWindow 0_GtkWindow 5bin 7 9BGtkWidgetPrivate B_GtkWidgetPrivate{GtkContainer-L_GtkContainer1~widget3{6GtkContainerPrivate._GtkContainerPrivate~GtkBin-_GtkBin1386GtkBinPrivate._GtkBinPrivateGtkWindowPrivate ./_GtkWindowPrivate J<GTK_RESPONSE_NONEGTK_RESPONSE_REJECT~GTK_RESPONSE_ACCEPT}GTK_RESPONSE_DELETE_EVENT|GTK_RESPONSE_OK{GTK_RESPONSE_CANCELzGTK_RESPONSE_CLOSEyGTK_RESPONSE_YESxGTK_RESPONSE_NOwGTK_RESPONSE_APPLYvGTK_RESPONSE_HELPuGtkDialogaM_GtkDialog k|windowmpGtkDialogPrivateb_GtkDialogPrivate|GtkBox/_GtkBox3588 GtkBoxPrivate0_GtkBoxPrivateGtkButton. _GtkButton2Lbin57wGtkButtonPrivate/d_GtkButtonPrivateLGtkSpinner)_GtkSpinner-parent/{2GtkSpinnerPrivate+_GtkSpinnerPrivateon_play_clicked' }on_stop_clickedA!w }AAA!    A1Ado_spinner,@A do_widget,window,"Zcontent_area,vbox ,%hbox!,C",wspinner#, ݫA$W ! ! AAWAhA%yA1"A= #t@B"AH #tGB#t#t0#t #t0"֩AS #t0" A_) #tOB$t#t 0#t0#t0"@A_[ #tXB$t#t "Z#t0#t0MAk"cAv~ #t1#t5"A #tv#ts#t1#t 1#t0"A #ts#t5"Av #t0#t5A"ªA #tv#twǪA"ӪA$ #tv"ߪA@ #ts#tv"AvZ #t0#t5A"A #tw#tvA"A #tw"+A #ts#tw"AA #tw#t0"MA= #t`BUA"A_1 #tw#teB#tA#t v#t0#t0"AM #ts#tw"A=e #tmBA"ѫA_ #tw#teB#tA#t v#t0#t0%ݫA#ts#twspinner_sensitive ,"Zspinner_unsensitive ,"Z& G&\\E'55 S';; k' x&&' 'LL&&P&nnT&&C&&NN' H&b7iGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden stack.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass_GTypeClass4 g_typeGTypeInstanceJ_GTypeInstancet g_classtGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject 1g_type_instance4ref_countqdataGInitiallyUnownedGtkBuilder #\ _GtkBuilder ] _priv a GtkWidget . _GtkWidget  1priv = GtkWindow 0 _GtkWindow 5bin 7priv 9UJGtkWidgetPrivate B$_GtkWidgetPrivate GtkContainer -W _GtkContainer 1widget 3priv 6GtkContainerPrivate ._GtkContainerPrivateGtkBin- _GtkBin1container3Cpriv6$GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .B_GtkWindowPrivate*GtkBuilderPrivate )t_GtkBuilderPrivate[do_stack 7Ado_widget 7window7"ZPAbuilderߨ\A ttBnA'tst0~AFtstBA\tAլAtBtt "Zt0t0ݬA ts%A6A"EA. ##  bb  xx S?? k x ӖGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden tabs.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA%charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;guint7floatdoubleGData$_GDataGType~GTypeClass _GTypeClass3 g_typeGTypeInstanceI_GTypeInstances g_classsGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject 0g_type_instance3ref_countqdataGInitiallyUnownedPangoTabArray ^_PangoTabArray  & PANGO_TAB_LEFT * GTK_WRAP_NONE GTK_WRAP_CHAR GTK_WRAP_WORD GTK_WRAP_WORD_CHARGtkWidget . _GtkWidget  0  GtkWindow 0- _GtkWindow 5Ybin 7  9GtkWidgetPrivate Bq_GtkWidgetPrivateYGtkContainer- _GtkContainer1widget36GtkContainerPrivate._GtkContainerPrivateGtkBin- _GtkBin1D}36iGtkBinPrivate.Y_GtkBinPrivateDGtkWindowPrivate ._GtkWindowPrivateo  t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPIGtkTextBufferB _GtkTextBufferN!PRC GtkScrolledWindow-: _GtkScrolledWindow1n}3 5GtkScrolledWindowPrivate._GtkScrolledWindowPrivaten  GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALGtkTextBufferPrivateK,_GtkTextBufferPrivateGtkTextViewqb _GtkTextViewuw{GtkTextViewPrivater_GtkTextViewPrivatedo_tabs A% do_widget window "Z2A viewswbufferI9tabsL>A kt0SA tB_A tpA A t t ­A+ tBtt "Zt0t0׭A7  t0ܭAB AM * tst2AY E tstDAe ` tstD"Aq z t3t1DA| tvt0t0t 0dA| tvt1t0t A| tvt2t0t  ,A  tstvA # tvA 8 tsA W tBt ̮A q t0t0A tvt1t1A tvA tvts A tvA A 'A  NN   uu ccp  :66 Nqq GRRRRkk"" x++ S kBB r LGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden textmask.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo A@doublefloatintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1gboolean2guint7gpointerMGData$_GDataGType~GTypeClass? _GTypeClasse g_typeGTypeInstance{ _GTypeInstance g_class,GCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlags_GObject Sg_type_instanceeref_countqdataGInitiallyUnowned PangoFontDescription (_PangoFontDescriptionlPangoLayout _PangoLayoutcairo_t |_cairocairo_pattern_t _cairo_patternGtkWidget .'_GtkWidget `parent_instance Spriv  GtkWindow 0q_GtkWindow5bin7Spriv9GtkWidgetPrivate B_GtkWidgetPrivateGtkContainer-_GtkContainer1widget3priv6MGtkContainerPrivate.7_GtkContainerPrivateGtkBin-a_GtkBin1container3priv6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivate t# GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPdraw_text  A\ da cr data patternjlayoutdesc7AO tvGA[ tstBUAg tBcAs twtukA~ tuA Ttvt >@t 4@A ptvtwA twA tsA tsկA t Tt Tt XA 4tst \t \t Tt T'A tst ?t Tt Xt XMA tst 333333?t Tt Tt X{A  tst ?t Tt TA f tst 333333?t Tt Xt XǰA tst ffffff?t Tt Tt XA tst ?t Tt TA 7 tst Tt Tt T%A S tvts-A h tv5A } tsMA tvt Tt Tt T_A tvt ?gA tvoA$ tvdo_textmask9A"O do_widget9window;"Zda<"ZA0 A< AH ̱AT t0A_ t1Ak t tAw t BHA tBtt "Zt0t0MA cA A tBt At 0t0t0 ..  - bb  WPP ~~ hh      MM  ++ 99 S k x H2GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden textview.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoAl0doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatgpointerMGData$_GDataGType~GTypeClassL _GTypeClassr g_type+GTypeInstance _GTypeInstance g_class9GCallbackV    G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject%_GObject og_type_instancerref_countqdata%GInitiallyUnowned%  < PANGO_STYLE_NORMAL PANGO_STYLE_OBLIQUE PANGO_STYLE_ITALIC  a PANGO_WEIGHT_THINd PANGO_WEIGHT_ULTRALIGHTPANGO_WEIGHT_LIGHT,PANGO_WEIGHT_SEMILIGHT^PANGO_WEIGHT_BOOK|PANGO_WEIGHT_NORMALPANGO_WEIGHT_MEDIUMPANGO_WEIGHT_SEMIBOLDXPANGO_WEIGHT_BOLDPANGO_WEIGHT_ULTRABOLD PANGO_WEIGHT_HEAVYPANGO_WEIGHT_ULTRAHEAVY  ΅ PANGO_UNDERLINE_NONE PANGO_UNDERLINE_SINGLE PANGO_UNDERLINE_DOUBLE PANGO_UNDERLINE_LOW PANGO_UNDERLINE_ERRORGdkPixbuf _GdkPixbuf   GTK_TEXT_DIR_NONE GTK_TEXT_DIR_LTR GTK_TEXT_DIR_RTL  K GTK_JUSTIFY_LEFT GTK_JUSTIFY_RIGHT GTK_JUSTIFY_CENTER GTK_JUSTIFY_FILL V GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL * GTK_WRAP_NONE GTK_WRAP_CHAR GTK_WRAP_WORD GTK_WRAP_WORD_CHARGtkWidget ._GtkWidget! oT GtkWindow 02_GtkWindow5^bin7T9GtkWidgetPrivateBv_GtkWidgetPrivate^GtkContainer-_GtkContainer1A3T6 GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1F3T6kGtkBinPrivate.[_GtkBinPrivateFGtkWindowPrivate._GtkWindowPrivateq t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkTextChildAnchor-_GtkTextChildAnchor7+  9segment< GtkTextIter@> _GtkTextIter8F+ dummy1Ldummy2Mdummy3Ndummy4O dummy5Pdummy6Qdummy7Rdummy8Sdummy9T dummy10U$dummy11V(dummy12W,dummy13Y0dummy14Z4GtkTextBufferB@ _GtkTextBufferNp  PTR GtkComboBox& _GtkComboBox*  ,T/ GtkComboBoxPrivate( _GtkComboBoxPrivate GtkComboBoxText% _GtkComboBoxText )/  ,p T.f GtkComboBoxTextPrivate&M _GtkComboBoxTextPrivate/ GtkIconTheme5 _GtkIconThemeD  GTI GtkIconThemePrivate7 _GtkIconThemePrivate l  GTK_ICON_LOOKUP_NO_SVG GTK_ICON_LOOKUP_FORCE_SVG GTK_ICON_LOOKUP_USE_BUILTIN GTK_ICON_LOOKUP_GENERIC_FALLBACK GTK_ICON_LOOKUP_FORCE_SIZE GTK_ICON_LOOKUP_FORCE_REGULAR GTK_ICON_LOOKUP_FORCE_SYMBOLIC@ GTK_ICON_LOOKUP_DIR_LTRGTK_ICON_LOOKUP_DIR_RTLGtkPaned, _GtkPaned0= 2T5f GtkPanedPrivate.T _GtkPanedPrivate= GtkRange.| _GtkRange2 A4T6 GtkRangePrivate/ _GtkRangePrivate GtkScrolledWindow- _GtkScrolledWindow1#3T5^GtkScrolledWindowPrivate.C_GtkScrolledWindowPrivate#  GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALGtkTextBufferPrivateK_GtkTextBufferPrivate+ + GtkTextViewq#_GtkTextViewuQ wT{GtkTextViewPrivaterk_GtkTextViewPrivateQeaster_egg_callback/%button/data0window2window_ptr34view5iter6+ 7 sw8recursive_attach_viewdepthview child_viewframefind_anchoriterattach_widgetsAtext_viewĩiter+ iYB ղAm!-"ݲAr0[#ts$A}0#ts%Ae @A˪"Ar0#ts"SA0#t0#tB#t #t B#t0"cA0#thB"A08#tu#tqB#tA#t 0#t0#t0"A0T#tw#tu"A0i#tu&³A0"ԳA0#tu#tyB"A0#tu#tB"A0#tu#tB"A0#t0#t0",A0 #tu#t #t Y@"DA0C#tu#tF#t "]A0[#tB&qA1"DzA1z#tw$ӲA1#ts'(4)A**+"Z,,,,, ,%Ar**-Ar+"Z.7.b+. .+"Z % AGL !D!_ԫ!R- AG.k .~'"(A1#tu&0A(1">A31#t0"LA>1#tw#tv$bA0#tw#t"AI1#t0"´A1;#tv#ts"޴AT1h#tv#ts#tB#t  "A_1#tv#ts"AT1#tv#t#tB#t  "A(1#tv"sAk1#t"Aw1#t0"A1 #t0#t0"A1-#ts#t1#t1"õA>1B#ts"ӵA>1`#ts#t"A1x#t"Z"A1#t ,#t &A0&A1/-01iter+ 1start+ 1end+ 1pixbuf1icon_theme 2Y=31_g_boolean_var_'=(4 -4create_tagsb05do_textview Ar06do_widgetwindow"Z%AV0vpanedEview1cview2sw B Al !V"EA1w#ts#tQB#tJB#t  #tEB#t <#t0"mA1#ts#t_B#tYB#t 2#t0"A1#ts#tfB#tJB#t  #t0"A1#ts#tkB#tEB#t  P#t0"A1Z#ts#tuB#toB#t *h/?#t0"A1#ts#t~B#toB#t Hգp= ?#t0"9A1#ts#tB#tB#t B#t0"aA1 #ts#tB#tB#t B#t0"A1E#ts#tB#tB#t B#t0"A1z#ts#tB#tB#t N#t0"ٹA1#ts#tB#tB#t N#t0"A1#ts#t5B#t"B#t :#t0")A1#ts#tQB#tHB#t 0#t0"QA1N#ts#thB#t^B#t 2#t0"yA1#ts#trB#t^B#t 1#t0"A1#ts#t|B#t^B#t 0#t0"ɺA1#ts#tB#tB#t 2#t0"A1"#ts#tB#tB#t 1#t0")A1i#ts#tB#tB#t 2#tB#t2#t0"QA1#ts#tB#tB#t 1#t0"yA1#ts#tB#tB#t 1#t0"A1#ts#tB#tB#t 2#t0"ٻA1Q#ts#tB#tB#t  (#tEB#t #t0"A1#ts#tB#tB#t  #tEB#t #t0$yA1#ts#t"B#t^B#t 2#tB#t2#tB#tN#t B#t$D#t(B#t,D#t007yA .!8+~+~+.1.e+B9y.x&~A1"A1#t,B#t #t 8#t0"ȼA1#ts#tv#t0"AT1#ts#tv#t8B#t  "A19#ts#tv#tB#t  #tQB#t0",AT1f#ts#tv#tB#t  "XA1#ts#tv#t_B#t  #t_B#t0"tAT1#ts#tv#tB#t  "A1 #ts#tv#tfB#t  #tfB#t0"AT1: #ts#tv#tB#t  "A1w #ts#tv#tB#t  #tB#t0"AT1 #ts#tv#tB#t  "0A1 #ts#tv#tkB#t  #tkB#t0"LAT1!#ts#tv#t0B#t  "hAT1;!#ts#tv#t8B#t  "A1x!#ts#tv#tuB#t  #tuB#t0"AT1!#ts#tv#tB#t  "ܾA1!#ts#tv#t~B#t  #t~B#t0"AT1"#ts#tv#tB#t  "$A1L"#ts#tv#tB#t  #tQB#t0"@AT1y"#ts#tv#tB#t  "lA1"#ts#tv#tB#t  #tB#t0"AT1"#ts#tv#tB#t  "A1 ##ts#tv#t%B#t  #tB#t0"пAT1M##ts#tv#t6B#t  "A1##ts#tv#t@B#t  #tB#tB#t0" AT1##ts#tv#tdB#t  "LA1##ts#tv#tB#t  #tQB#t0"xA1;$#ts#tv#tB#t  #tB#t0"AT1h$#ts#tv#tB#t  "A1$#ts#tv#tB#t  #tB#t0"AT1$#ts#tv#tB#t  "A1%#ts#tv#tB#t  #tB#t0"$AT1<%#ts#tv#tB#t  "PA1y%#ts#tv#tB#t  #tB#t0"lAT1%#ts#tv#tB#t  "A1%#ts#tv#tB#t  #tB#t0"AT1&#ts#tv#tB#t  "A1M&#ts#tv#tB#t  #tQB#t0"AT1z&#ts#tv#tB#t  " A1&#ts#tv#tu"A1&#ts#tv#tu",A1&#ts#tv#tu"HAT1'#ts#tv#tB#t  "tA1M'#ts#tv#t/B#t  #tQB#t0"AT1z'#ts#tv#t1.#tw&aAR2"oA1/#tu"yA(10/#ts"A1J/#t0#t0"A1k/#tv#t1#t1"A]2/#tw#tv"÷A>1/#tv#tu"׷A1/#t0#t0"A1/#tv#t1#t1"Ah2/#tw#tv" A>10#tv#t~"A.0#P~"AD0#P~$A0#tw&;As2&LA2&hA2;;<~~1;b<ٮspaces?,text@,*countA"Z%gA t%uA# tstv%AA8 t %ALe tstvtBt  %AL tstvtut  %AW tB%AL tstvtwt  %Ab tu%Ab tw%As tvt0%(A5 tstB%:AX tstutv&JAttu(scroll_to_end pA U)  3*iterJmarkQspaces,otext,*count"Z%At%A<tstB%A_tstvtw%AAtt %ALtstvtBt  %ALtstvtut  %AWt8B%3ALtstvtt  %;Ab$tu%GAb;t&ZAttw+do_textscrollA do_widget*window"Z,Ahbox%At0%AtsB%A5tB-tt "Zt0t0%3A9t Xt %GASt0t6%YAntst1%jA*ts%vA6 PsR1&A6 PsR0'A'A'A.UU//vv.((.99).ee>/TT/T//.~~/ss//0g_freeg_freeG.Q.5.EE././ /'' . /P/<<a.__ S. k. x JGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden theming_style_classes.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA/charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gint1guint7floatdoubleGData$_GDataGType~GTypeClass*_GTypeClassP g_type GTypeInstancef_GTypeInstance g_classGCallbackV   G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject _GObject Mg_type_instancePref_countqdataGInitiallyUnowned -1 GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST GtkBuilder #C _GtkBuilder ]q _priv a GtkWidget . _GtkWidget  Mpriv $ GtkWindow 0 _GtkWindow 5bin 7priv 9<1GtkWidgetPrivate B _GtkWidgetPrivateqGtkContainer-> _GtkContainer1qwidget3qpriv6GtkContainerPrivate._GtkContainerPrivateqGtkBin- _GtkBin1container3*priv6 GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .)_GtkWindowPrivate  tx GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkBuilderPrivate )_GtkBuilderPrivatexdo_theming_style_classesA/Cdo_widgetgrid˯builderAWAcAoA{?t0AUtAAvtB*At0?At<tAtBtt "Zt0t0AtBAtstBAtvA1tvAtswindow "ZWW S knn r ~~    ~~**   xllHHfFGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden toolpalette.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA doubleintcharunsigned intshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatgdouble:gpointerMgconstpointerN6<GCompareFuncPQWk!!q  GData$ _GDataGList% _GList ' )next*prev+GSList% _GSList' )next* 5G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@G_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GType~GTypeClass_GTypeClass4g_typeGTypeInstanceJ_GTypeInstancetg_classt4GCallbackV| G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags GObject  _GObject 7g_type_instance 4ref_count qdata GInitiallyUnowned V cairo_t |j _cairo_cairo_rectangle_int x y width height  cairo_rectangle_int_t r[GdkRectangle ]GdkAtom f  _GdkAtomGdkDragContext 3 _GdkDragContext -GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST :GDK_ACTION_DEFAULTGDK_ACTION_COPYGDK_ACTION_MOVEGDK_ACTION_LINKGDK_ACTION_PRIVATEGDK_ACTION_ASK GdkPixbuf _GdkPixbufnGTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOGVGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GTK_TOOLBAR_ICONSGTK_TOOLBAR_TEXTGTK_TOOLBAR_BOTHGTK_TOOLBAR_BOTH_HORIZGtkSelectionData)- _GtkSelectionDataGtkWidget.Q _GtkWidget} 7  GtkWindow0 _GtkWindow5 bin7 9 GtkWidgetPrivateB _GtkWidgetPrivateGtkAllocationS@   GtkContainer- _GtkContainer1O 3@ 6 GtkContainerPrivate.j _GtkContainerPrivateO GtkBin- _GtkBin1 X3 6 GtkBinPrivate. _GtkBinPrivate GtkWindowPrivate. _GtkWindowPrivate tO GTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/] _GtkBox3 X5 8 GtkBoxPrivate0 _GtkBoxPrivate GtkTreeIter' _GtkTreeIter] stamp_ `user_data2auser_data3b GtkTreeModel*. _GtkTreeModel GtkCellRendererPZ _GtkCellRendererU W7 Z GtkCellRendererPrivateQ _GtkCellRendererPrivate C GtkListStore( _GtkListStore, . 1C GtkListStorePrivate)- _GtkListStorePrivate GtkEntryFY _GtkEntryJ M@ O GtkEntryPrivateG _GtkEntryPrivate GtkComboBox& _GtkComboBox* , /#GtkComboBoxPrivate( _GtkComboBoxPrivate  GtkCellLayout%D _GtkCellLayout>GTK_DEST_DEFAULT_MOTIONGTK_DEST_DEFAULT_HIGHLIGHTGTK_DEST_DEFAULT_DROPGTK_DEST_DEFAULT_ALLGtkIconTheme5 _GtkIconThemeD  G I; GtkIconThemePrivate7% _GtkIconThemePrivate ]GTK_ICON_LOOKUP_NO_SVGGTK_ICON_LOOKUP_FORCE_SVGGTK_ICON_LOOKUP_USE_BUILTINGTK_ICON_LOOKUP_GENERIC_FALLBACKGTK_ICON_LOOKUP_FORCE_SIZEGTK_ICON_LOOKUP_FORCE_REGULAR GTK_ICON_LOOKUP_FORCE_SYMBOLIC@GTK_ICON_LOOKUP_DIR_LTRGTK_ICON_LOOKUP_DIR_RTLGtkToolItem)p _GtkToolItem- / 2GtkToolItemPrivate+ _GtkToolItemPrivate]GtkToolButton ' _GtkToolButton +  -] 0QGtkToolButtonPrivate ): _GtkToolButtonPrivateGtkNotebook!5p _GtkNotebook!9 X!< !>GtkNotebookPrivate!6 _GtkNotebookPrivateGtkOrientable") _GtkOrientableGtkToggleToolButton#' _GtkToggleToolButton$#+I #- #0 GtkToggleToolButtonPrivate#)k _GtkToggleToolButtonPrivateIGtkRadioToolButton$' _GtkRadioToolButton$$* $,GtkScrolledWindow%- _GtkScrolledWindow%1 X%3 %5YGtkScrolledWindowPrivate%.> _GtkScrolledWindowPrivate%GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkToolItemGroup&( _GtkToolItemGroup&1 &3 &4JGtkToolItemGroupPrivate&*0 _GtkToolItemGroupPrivateGtkToolPalette')f _GtkToolPalette'@ 'B 'CGtkToolPalettePrivate'+ _GtkToolPalettePrivate'5GTK_TOOL_PALETTE_DRAG_ITEMSGTK_TOOL_PALETTE_DRAG_GROUPS PCanvasItem@ _CanvasItemxpixbufxycanvas_item_freeAA.interactive_canvas_drag_motion  xytimetargetcanvas_item_drawHrHrcrIpreviewJcxLcyMx . interactive_canvas_drag_dropUAO]!U !V"xW"yX "timeY!Z#target\$AA<%ts%tv%t0&AA%ts%tv%t 'interactive_canvas_drag_leavehAV!h( )l *x#An+9,-AA&=AA%tH%ts-YAA.canvas_item_new!pA;/! L0button"Wx1x#1y$2&3icon_name'kİ3pixbuf(2j)A4width*l$AA%tR$AB%ts,AB$AB%t6%tl%t0$A)B*%ts%tv%t 8%t0&A4B%tH'interactive_canvas_drag_data_received A! !"x"y  !]! "info""time#!$)C) ?)B* )+ձ5 B6( v)-z__t-#__r-C&|A?B%tu%ts6@ )36b7A)8z#__t8#__r8ʲ,AKB&A?B%ts$WAVB%tv,fAaB$AlB%tu$AxB8%tu%tP$ABr%t0%tB%t 6%t B%tB$ A%Pw%Rs%t T%t X$GAB%tv%t2%t\-WAA,AB$AB%tv%t1%t0%t \-AA8V 9=% :passive_canvas_drag_data_receivedA2; ;Ӎ1x1y ;] 1info1time;2C ݲ3canvas_itemޝ'2B _5B6` U2z__t3__r߳&A?B%tw%ts6x n237A2z*3__tH3__r[,AKB&A?B%ts$AVB%t, AaB$(AlB%tw$HAxB%tw%tu$ABL%t0%tB%t%t B%tB$A%Pv%Rs%t X%t \,AB-AA8V9=! palette_drop_groupC(""<palette_drop_itemqCqr"xsyt<v 4Ƕ>?>J7iA3#?V@?iD?wH?L$qAB2"%ts$AB"%tw%ts%tB%t @%t B%tD%tB%tH%t B%t$L%t(0$AB"%tw%ts$AB"%tv%ts%tu$5AB!#%tv%ts%tB%t B%tB%t B%t(0&=AA%ts$4AlBH#%ts$OABf#%tv%t$_AB{#%tv&A C%tv%ts%tu@EA%$+.+A+TAEA%>g$ZAC#%tw%tv&jAC%tw%ts$&AVB($%t,5AaB$XAlBF$%tw$AxBc$%tw%t$A*C$%t%t%t &A5C%tv%tP'on_combo_style_changedA%! )!BC(#model= Citer `Cval\$AAC>%%ts$ALCZ%%ts%tv$AWC%%tw%tv%t1%t \%t $-AcC%%t&@AnC%t create_entry_itemPAEp&DtextP)#entry ,\AyC$jAC3&%ts%tv$zACN&%ts%t5,AC&AC%tv%ts'on_combo_orientation_changedwA'! w)!xBCz(#sw{_.#model|= bCiter} PCval~L$AAC!'%ts$AlB7'%t$ALCS'%ts%tv$AWC'%tu%tv%t1%t L%t $(AC'%t$HAC'%tw%t1%t2&hAC%tw%t2%t1EpA(FFFF FF6 (FF FF++AA>>Ը$AA(%ts%tv%t0&AA%ts%tv%t $AA(%ts&AB%tv%t2%tE A)+9+D7+N|>]>g7A)+9>+N_+DAAG]Gg&AC%tv%t 333333?,&AC,4AC$hAC)%tv&tAC%tv.canvas_draw[Ac*;[ 1cr\3iter^$ACM*%tv%t ?%t ?%t ?$ACb*%tv$A {*%Rv%Q0&A %Rv%Q1Hload_special_items*C(Igroup label_button Hload_toggle_itemsX+C(toggle_groupIgroup label7iHload_icon_items,C(contextslIjAIvicon_namesllmax_icons,icons_countgroup Iidv Jdo_toolpalette A ZA"do_widget #box #hbox #combo_orientation .#orientation_modelp#combo_style #style_model#cell_renderer Citer P)C j#palette_scroller #notebook ؼ#contents #contents_scroller ZKX+A  0+q+( >}+ƽ>+>+7A`/>+;>+N>+y>+>+>+7[A/>,>,7$nA DG.%ts%tB$ADf.%ts%tB$A!D.%t0%t %tB%t s$A0D.%t0%t0$A;D.%tw%ts$AFD.%tw%ts&AB%t%tw%t $AQD/%ts$AC9/%t%tv$A\DX/%ts%tB$A!D/%t0%t %tB%t s$!AgD/%t%ts$1AsD/Lt&A~D%tLt$AB/%t,AB$AD0%t&=A~D%tLLtK*,A0  ;1++U(0 >+j>%+>1+>?+ۿ>M+$IAQD0%twB$]AC0%t%tv$sAD0%tB%tw$}AD0%ts$AD0%ts%tv$AD1%tv$AB(1%tu%ts%t &AD%ts**Av6+*1AAv>*F>*>*2$AQD1%t0$AD1%tB$AD1%tv$AD1%ts%tv$AC1%tu%ts$A% 2%PB$AB/2%ts%tv%t $:ABa2%ts%tv%tB%t 0%t0$DA%x2%PB$ZAB2%ts%tv%t $AB2%ts%tv%tB%t 0%t B%t1%t0$A%2%P B$AB3%ts%tv%t $ABi3%ts%tv%tB%t 0%t B%t1%tB%t0%t 0$A%3%P8B$AB3%ts%tv%t $VAB3%ts%tv%tB%t 0%t B%t1%tB%t1%t 0$jA0D4%t0%t0$|A;D.4%tv%teB$AFDM4%tv%tlB$ABp4%ts%tv%t $AD4%tv%t0$A0D4%t0%t0$A;D4%tv%tB$AFD4%tv%tB$AB5%ts%tv%t $ AD!5%tv%t0$A0D;5%t0%t0$0A;DZ5%tv%tB$@AFDy5%tv%tB$TAB5%ts%tv%t $dA E5%tv%t1$xA0D5%t0%t0$A;D5%tv%tB$AFD6%tv%tB$AB26%ts%tv%t $ABt6%ts%tv%tB%t 0%t B%t1%t0$A0D6%t0%t0$A;D6%tv%tB$AFD6%tv%tB&,AB%ts%tv%t ,+AE,%tw%tv%t0%t 0%t0$yAhEQ>%tu%tB%tA%t 0%t0%t0$A%F>%tu%tu%t7%t 3%t4,A0F$A;F>%tw%t1$AGF>%tw%tIB%tA%t 0%t.B%tA%t0%t0$A%F ?%tu%tw%t7%t 1%t2$,AE:?%t0%t0$FAC[?%ts%t1%t0$RACw?%ts%tw$bAtE?%ts%t6$nASF?%tVB$~A^F?%tv%ts,A0F$A;F?%ts%t1$AGF@%ts%tIB%tA%t 0%tB%tpA%t0%t.B%t  A%t$0%t(yB%t,A%t0s%t4gB%t8A%t<0%t0$=A%F@%tu%ts%t2%t 1%t2$QAE@%t0%t0$kAC@%tw%t1%t0$wACA%tw%ts$AtE)A%tw%t6$ASFAA%tB&A^F%tv%tw4window #Z4drag_data_requested_for_drop#ZMK"Z4canvas_items"ZNMMVN(+O44 N)'OLLN iONNCC*oNN[[)"ON QN(6Ncc'XOnnN'O+1NN;N(0N&IO?? NkkNNgg&iNzzN&zN &qN&mN'jN']N}}'O NSSNOgglN'yN'|N N00NNUUSNggN"6N%O NNN,-OOO O Nbb-N.Pg_logg_log fNLL QN fNaNmm&KN+{O11NWWN8O** N??.N$>N WPg_freeg_free/GN""$HN0bOrN&QNnNqqtOBBzOSOuukOxNbbONyyO##O NNGGPNCNNUNYN1ENrN~NN//TN'ZN%O``N!N\\ZN'N2HO::mOKK Nww3[N!GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden transparent.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA Hdoublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7gpointerMGData$&_GDataGType~GTypeClassU _GTypeClass{ g_type4GTypeInstance _GTypeInstance g_classBGCallbackV    G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject._GObject xg_type_instance{ref_countqdata.GInitiallyUnowned.cairo_t |_cairocairo_pattern_t ܿ_cairo_pattern _cairo_rectangle_int # x  y  width  height  cairo_rectangle_int_t GdkRectangle ]#  J GTK_ALIGN_FILL GTK_ALIGN_START GTK_ALIGN_END GTK_ALIGN_CENTER GTK_ALIGN_BASELINEGtkWidget ._GtkWidget t x: t GtkWindow 0_GtkWindow5Cbin7:9GtkWidgetPrivate B[_GtkWidgetPrivateCGtkContainer-_GtkContainer1widget3:6GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1.X3z:6SGtkBinPrivate.C_GtkBinPrivate.GtkWindowPrivate.q_GtkWindowPrivateY t GTK_WINDOW_TOPLEVEL GTK_WINDOW_POPUPGtkCssProvider@_GtkCssProviderDtF:G< GtkCssProviderPrivateB$_GtkCssProviderPrivateGtkStyleProviderZ`_GtkStyleProviderGtkOverlay'_GtkOverlay+parent-:/GtkOverlayPrivate)_GtkOverlayPrivateGtkScrolledWindow-_GtkScrolledWindow15X3:5pGtkScrolledWindowPrivate.U_GtkScrolledWindowPrivate5  GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALdraw_shadow_box  cr ArectMradiustransparencypatternGx0x1x2x3y0y1y2y3draw_callbackAwidgetncrAdatarectM`AH  P lH ' 6 ^@ J T ^ h r | A? tst t t AK tstt ttAW tsAcB tt t$Ao tvt t t t t$ RAo tvt ?t t t ^A{ tstvfA& tvAKj tstt ttXAW tsAc t~t tAo tvt t t t Aog tvt ?t t t t$ (A{ tstv0A tvaAK tstt ttHiAW tsAc%t@tt Aotvt t t t t$ Aotvt ?t t t A{tstvA tv+AKLtst@t @tt3AWatsWAct~tt Aotvt t t t AoItvt ?t t t t$ A{etstvAztvAKtstt ttAWts!At tt t( @OAoktvt t t t uAotvt ?t t t t$ A{tstvAtvAKBtst@t ttAWWtsAt t~t( @4Aotvt t t t VAoDtvt ?t t t t$ bA{`tstvjAutvAKtst~t tAWtsAt t ~t( @AoNtvt t t t "Aotvt ?t t t t$ .A{tstv6AtveAK&tstt ~ttmAW;tsAt t~t ~t( @Aotvt t t t Ao4tvt ?t t t t$ A{PtstvAetv)AKtst~t ~tt1AWtsAtt`do_transparentn@A;?do_widgetnwindown#Z A#!viewn3!swnQ!overlayno!entryn!providerB!css At0At"AAt t At@B#tt #Zt0t0'A0tHBAItXBt7t7AT=twtut t 0A_RtuApgts A|twt X=AtstBtAt 0t0t0IAtvtsYAtst3iAtst1qAtv"XA"iA"A$ $OO $ $<< $  $ $ $ $ %$ $LL$~~$%%bb%%44%%bb%**R%%\%$$%b&g_freeg_freeG$ $__ %T$ 2$ 9$ x$%% S$ k$?? rUGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden tree_store.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demoA -doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charshort intlong long unsigned intgsize;gchar.gint1gboolean2guint7floatgpointerM"GData$0_GData# GType~ GTypeClasse _GTypeClass g_typeD GTypeInstance _GTypeInstance g_classRGCallbackV  G_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlagsGObject>_GObject g_type_instanceref_countqdata>GInitiallyUnowned> -lGDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST  VGTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICAL GTK_SELECTION_NONEGTK_SELECTION_SINGLEGTK_SELECTION_BROWSEGTK_SELECTION_MULTIPLE GTK_SHADOW_NONEGTK_SHADOW_INGTK_SHADOW_OUTGTK_SHADOW_ETCHED_INGTK_SHADOW_ETCHED_OUTGtkWidget ._GtkWidget   7 GtkWindow 0_GtkWindow 5bin 7 9GGtkWidgetPrivate B_GtkWidgetPrivateGtkContainer-Q_GtkContainer1widget36GtkContainerPrivate._GtkContainerPrivateGtkBin-_GtkBin1A3=6GtkBinPrivate._GtkBinPrivateGtkWindowPrivate .4_GtkWindowPrivate  tGTK_WINDOW_TOPLEVELGTK_WINDOW_POPUPGtkBox/_GtkBox3A5=8GtkBoxPrivate0_GtkBoxPrivateGtkTreeIter'_GtkTreeIter]Tstamp_user_data`user_data2auser_data3b GtkTreePath(g_GtkTreePathGtkTreeModel*_GtkTreeModeluTGtkCellRendererP_GtkCellRendererUWZ$ GtkCellRendererPrivateQ _GtkCellRendererPrivateGtkTreeViewColumn)I _GtkTreeViewColumnT} VX) GtkTreeViewColumnPrivate+ _GtkTreeViewColumnPrivate 8# GTK_TREE_VIEW_COLUMN_GROW_ONLYGTK_TREE_VIEW_COLUMN_AUTOSIZEGTK_TREE_VIEW_COLUMN_FIXED0 } GtkTreeView=B _GtkTreeViewCp E=H GtkTreeViewPrivate? _GtkTreeViewPrivatep / GtkCellRendererToggle& _GtkCellRendererToggle* ,/C GtkCellRendererTogglePrivate'$ _GtkCellRendererTogglePrivate  GtkScrolledWindow-h _GtkScrolledWindow1 A35 GtkScrolledWindowPrivate. _GtkScrolledWindowPrivate > GTK_POLICY_ALWAYSGTK_POLICY_AUTOMATICGTK_POLICY_NEVERGTK_POLICY_EXTERNALGtkTreeStore)R _GtkTreeStore- //1 GtkTreeStorePrivate+ _GtkTreeStorePrivate > TreeItem _TreeItem W label alexhavoctim owendaveworld_holidaychildrenW   HOLIDAY_NAME_COLUMNALEX_COLUMNHAVOC_COLUMNTIM_COLUMNOWEN_COLUMNDAVE_COLUMNVISIBLE_COLUMNWORLD_COLUMNNUM_COLUMNSitem_toggledA_cellI path_strdatapathiterPtoggle_itemLcolumn8$AtAttBAtstutvA#tstutwt Lt  AMtstutwt Atvadd_columns col_offsetrenderer* column#  create_model ! itermonthW "holidayW "child_iter#do_tree_store}1 A ?$do_widget}1%window1 #Z&uA#'vbox1B'sw1`(1)S*Ax+A,-@,&0At5,&A- PA>tstvtwAtstvt0t1t2t 3t(4t05t86t<1t7t KAtstwt0Atstwt0t1t0t2t0t 3t$0t(4t,0t05t40t86t<0t7t0t At8t@tDt DtDtDtDtDt D*_A.s/+A,~B,,f,Atv/A AtwtBt t0;A$Ytvt tBt wtBt0t0JA0ntvZA<t1/_AGAtwtBt t0ARtwtBt1A^"twtBtAt st0t0A$tvt tCt wtBt1tBt6t Bt$7t(0&A0tv8Ajtwt2HA<twt1/MAGmAtwtBt t0AR4twtBt2A^ptwtBtAt st0t0A$tvt tCt wtBt2tBt6t 0A0tvAjtwt2&A<twt1/+AGKAMtwtBt t0cARrtwtBt3A^twtBtAt st0t0A$tvt t Ct wtBt3tBt6t Bt$7t(0A0&tvAjAtwt2A<\twt1/AG9AtwtBt t0QARtwtBt4}A^twtBtAt st0t0A$Otvt tCt wtBt4tBt6t 0A0dtvAjtwt2A<twt1/AGAtwtBt t0/ARtwtBt5[A^:twtBtAt st0t0A$tvt tCt wtBt5tBt6t 0A0tvAjtst2A<tst1Aut0At/AA!tBA^StB0tt  #Zt0t0Amt1t8Atst8+Ats7AtB[Atst0t 0t0oAt0t0Atwt3A2twt1t1Abtstt1t 1t0AwtsAtsAtvAt3AttvA^tvtC0tt 0t0t0-A(t t /;A4/LA@/eAL1 O26january+? Bfebruary3?B1 26march;z@B1 26aprilAB1 26mayJBjuneT?`Bjuly\zBaugustc?Bseptemberk?B1 @26octobers0Bnovember?Bdecember?B1 26 toplevel`}B34446474GGl3U333C33E4}}4ZZ 433ZZC4ww94""3]]388 4 4 3 3P33KK3[3..T33--33QQ4nn33}}n4 4 S4 k4FF xKGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden font_features.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo@A doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublegint8signed charguint8`short intguint16!guint32&long long unsigned intgsize;gchar.gint1gboolean2 guint7floatgpointerMgconstpointerNbhuGData$_GDataGHashTable%_GHashTableGHashTableIter+ _GHashTableIter-3 dummy10= dummy21= dummy32= dummy43 dummy54 dummy65=GString'B _GString ) str+i len, allocated_len-3v GType~ GTypeClass _GTypeClass g_type GTypeInstance _GTypeInstance g_classGCallbackVo' pG_CONNECT_AFTERG_CONNECT_SWAPPEDGConnectFlags =GObject  _GObject  g_type_instance  ref_count 8 qdata GInitiallyUnowned PangoFont %_PangoFontPangoFontMap &3_PangoFontMapPangoFontDescription (^_PangoFontDescriptionBPangoContext 3_PangoContext`GdkWindow_GdkWindow-GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventKey _GdkEventKey( typeI window^  send_event time state' keyval' length  stringi hardware_keycode group"is_modifier'$6I GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0 GdkEventTypejGtkBuilder#v _GtkBuilder] Y_ar GtkWidget. _GtkWidget YT GtkWindow0 _GtkWindow5 bin7 9p d GtkWidgetPrivateB; _GtkWidgetPrivate # GtkContainer-t _GtkContainer1 widget3 6 GtkContainerPrivate. _GtkContainerPrivate GtkBin- _GtkBin1 container3` 6? GtkBinPrivate./ _GtkBinPrivate GtkWindowPrivate.] _GtkWindowPrivateE GtkMisc. _GtkMisc2 widget4 7 GtkMiscPrivate/ _GtkMiscPrivate GtkLabel. _GtkLabel4 misc6v 9DGtkLabelPrivate/2_GtkLabelPrivateGtkTreeIter'] _GtkTreeIter] stamp_  user_data`= user_data2a= user_data3b= GtkTreeModel*_GtkTreeModelGtkListStore( _GtkListStore,( parent.1Y GtkListStorePrivate)C_GtkListStorePrivate(GtkEntryFo _GtkEntryJYM OGtkEntryPrivateG_GtkEntryPrivate_GtkComboBox& _GtkComboBox*Y, /?GtkComboBoxPrivate(*_GtkComboBoxPrivateGtkBuilderPrivate)^_GtkBuilderPrivateEGtkBuildable%_GtkBuildableGtkButton. _GtkButton2 bin5 7GtkButtonPrivate/_GtkButtonPrivateGtkToggleButton-  _GtkToggleButton 1U button46GtkToggleButtonPrivate.s_GtkToggleButtonPrivateUGtkFontChooser4_GtkFontChooserGtkStack ) _GtkStack CY D`  FT_UInt32! FT_Memory"B FT_MemoryRec_"l user" alloc"l free" realloc" FT_Alloc_Func"YFT_Free_Func"nFT_Realloc_Func"FT_Stream" FT_StreamRec_("J base"L size"MK pos"NK descriptor"P pathname"Q read"R close"SO memory"U cursor"V limit"W$FT_StreamDesc_"value"pointer"FT_StreamDesc"FT_Stream_IoFunc"+1KOKK FT_Stream_CloseFunc"kq|FT_Pos#: FT_Vector_#J x#L| y#M|FT_Vector#O FT_BBox_#s  xMin#u| yMin#u| xMax#v| yMax#v| FT_BBox#x FT_Bitmap_# rows# width# pitch#  buffer#  num_grays#  pixel_mode# ` palette_mode# ` palette# FT_Bitmap# FT_Outline_#ND n_contours#P n_points#Q points#SD tags#T9 contours#UJ flags#W FT_Outline#YFT_Glyph_Format_#FT_GLYPH_FORMAT_NONEFT_GLYPH_FORMAT_COMPOSITEpmocFT_GLYPH_FORMAT_BITMAPstibFT_GLYPH_FORMAT_OUTLINEltuoFT_GLYPH_FORMAT_PLOTTERtolp FT_Glyph_Format#cFT_String$FT_Short$ƪFT_UShort$FT_Int$FT_UInt$FT_Long$ FT_Fixed$  FT_Generic_Finalizer$ FT_Generic_$ data$ finalizer$ FT_Generic$ FT_ListNode$ FT_ListNodeRec_ $ Z prev$" next$# data$$ FT_ListRec_$7 head$9 tail$: FT_ListRec$<Z FT_Glyph_Metrics_ %:Y width%<|%=| horiBearingX%?| horiBearingY%@| horiAdvance%A| vertBearingX%C| vertBearingY%D| vertAdvance%E| FT_Glyph_Metrics%G FT_Bitmap_Size_%p%r7 width%s7 size%u| x_ppem%w| y_ppem%x| FT_Bitmap_Size%zr FT_Library%FT_LibraryRec_ FT_Driver%(.FT_DriverRec_ FT_Face%MS FT_FaceRec_% num_faces%!u face_index%"u face_flags%$u style_flags%%u num_glyphs%'u family_name%)! style_name%*! num_fixed_sizes%,X available_sizes%-! num_charmaps%/X$ charmaps%0!(%2, bbox%7 4 units_per_EM%9GD2%:7F%;7H%<7J max_advance_width%>7L max_advance_height%?7N underline_position%A7P underline_thickness%B7R glyph%D"T size%EX charmap%F\ driver%J` memory%Kd stream%Lh sizes_list%Nl autohint%Pt extensions%Q|4%S! FT_Size% FT_SizeRec_,%2" face%4=%5 metrics%6" 4%7!( FT_GlyphSlot%'7= FT_GlyphSlotRec_% library%! face%"= next%#" reserved%$f %% metrics%'Y linearHoriAdvance%(8 linearVertAdvance%)< advance%*@ format%,H bitmap%.L bitmap_left%/Xd bitmap_top%0Xh outline%2Pl num_subglyphs%4f subglyphs%5" control_data%7 control_len%8 lsb_delta%:| rsb_delta%;| other%=4%?" FT_CharMap%I FT_CharMapRec_ %Ei face%G= encoding%H! platform_id%IG encoding_id%JG FT_Encoding_%!FT_ENCODING_NONEFT_ENCODING_MS_SYMBOLbmysFT_ENCODING_UNICODEcinuFT_ENCODING_SJISsijsFT_ENCODING_PRC bgFT_ENCODING_BIG55gibFT_ENCODING_WANSUNGsnawFT_ENCODING_JOHABahojFT_ENCODING_GB2312 bgFT_ENCODING_MS_SJISsijsFT_ENCODING_MS_GB2312 bgFT_ENCODING_MS_BIG55gibFT_ENCODING_MS_WANSUNGsnawFT_ENCODING_MS_JOHABahojFT_ENCODING_ADOBE_STANDARDBODAFT_ENCODING_ADOBE_EXPERTEBDAFT_ENCODING_ADOBE_CUSTOMCBDAFT_ENCODING_ADOBE_LATIN_11talFT_ENCODING_OLD_LATIN_22talFT_ENCODING_APPLE_ROMANnmra FT_Encoding%i FT_Face_Internal%d!!FT_Face_InternalRec_& FT_Size_Internal%""FT_Size_InternalRec_ FT_Size_Metrics_%" x_ppem%G y_ppem%G x_scale% y_scale%2%| %|%| max_advance%| FT_Size_Metrics%" FT_SubGlyph%L""FT_SubGlyphRec_ FT_Slot_Internal%X##FT_Slot_InternalRec_PangoFcFont&/@#_PangoFcFontuint8_t'$`uint32_t'(hb_tag_t(M]#(P1HB_SCRIPT_COMMONyyyZHB_SCRIPT_INHERITEDhniZHB_SCRIPT_UNKNOWNzzzZHB_SCRIPT_ARABICbarAHB_SCRIPT_ARMENIANnmrAHB_SCRIPT_BENGALIgneBHB_SCRIPT_CYRILLIClryCHB_SCRIPT_DEVANAGARIaveDHB_SCRIPT_GEORGIANroeGHB_SCRIPT_GREEKkerGHB_SCRIPT_GUJARATIrjuGHB_SCRIPT_GURMUKHIuruGHB_SCRIPT_HANGULgnaHHB_SCRIPT_HANinaHHB_SCRIPT_HEBREWrbeHHB_SCRIPT_HIRAGANAariHHB_SCRIPT_KANNADAadnKHB_SCRIPT_KATAKANAanaKHB_SCRIPT_LAOooaLHB_SCRIPT_LATINntaLHB_SCRIPT_MALAYALAMmylMHB_SCRIPT_ORIYAayrOHB_SCRIPT_TAMILlmaTHB_SCRIPT_TELUGUuleTHB_SCRIPT_THAIiahTHB_SCRIPT_TIBETANtbiTHB_SCRIPT_BOPOMOFOopoBHB_SCRIPT_BRAILLEiarBHB_SCRIPT_CANADIAN_SYLLABICSsnaCHB_SCRIPT_CHEROKEErehCHB_SCRIPT_ETHIOPICihtEHB_SCRIPT_KHMERrmhKHB_SCRIPT_MONGOLIANgnoMHB_SCRIPT_MYANMARrmyMHB_SCRIPT_OGHAMmagOHB_SCRIPT_RUNICrnuRHB_SCRIPT_SINHALAhniSHB_SCRIPT_SYRIACcrySHB_SCRIPT_THAANAaahTHB_SCRIPT_YIiiiYHB_SCRIPT_DESERETtrsDHB_SCRIPT_GOTHIChtoGHB_SCRIPT_OLD_ITALIClatIHB_SCRIPT_BUHIDdhuBHB_SCRIPT_HANUNOOonaHHB_SCRIPT_TAGALOGglgTHB_SCRIPT_TAGBANWAbgaTHB_SCRIPT_CYPRIOTtrpCHB_SCRIPT_LIMBUbmiLHB_SCRIPT_LINEAR_BbniLHB_SCRIPT_OSMANYAamsOHB_SCRIPT_SHAVIANwahSHB_SCRIPT_TAI_LEelaTHB_SCRIPT_UGARITICragUHB_SCRIPT_BUGINESEiguBHB_SCRIPT_COPTICtpoCHB_SCRIPT_GLAGOLITICgalGHB_SCRIPT_KHAROSHTHIrahKHB_SCRIPT_NEW_TAI_LUEulaTHB_SCRIPT_OLD_PERSIANoepXHB_SCRIPT_SYLOTI_NAGRIolySHB_SCRIPT_TIFINAGHgnfTHB_SCRIPT_BALINESEilaBHB_SCRIPT_CUNEIFORMxusXHB_SCRIPT_NKOookNHB_SCRIPT_PHAGS_PAgahPHB_SCRIPT_PHOENICIANxnhPHB_SCRIPT_CARIANiraCHB_SCRIPT_CHAMmahCHB_SCRIPT_KAYAH_LIilaKHB_SCRIPT_LEPCHAcpeLHB_SCRIPT_LYCIANicyLHB_SCRIPT_LYDIANidyLHB_SCRIPT_OL_CHIKIkclOHB_SCRIPT_REJANGgnjRHB_SCRIPT_SAURASHTRAruaSHB_SCRIPT_SUNDANESEdnuSHB_SCRIPT_VAIiiaVHB_SCRIPT_AVESTANtsvAHB_SCRIPT_BAMUMumaBHB_SCRIPT_EGYPTIAN_HIEROGLYPHSpygEHB_SCRIPT_IMPERIAL_ARAMAICimrAHB_SCRIPT_INSCRIPTIONAL_PAHLAVIilhPHB_SCRIPT_INSCRIPTIONAL_PARTHIANitrPHB_SCRIPT_JAVANESEavaJHB_SCRIPT_KAITHIihtKHB_SCRIPT_LISUusiLHB_SCRIPT_MEETEI_MAYEKietMHB_SCRIPT_OLD_SOUTH_ARABIANbraSHB_SCRIPT_OLD_TURKIChkrOHB_SCRIPT_SAMARITANrmaSHB_SCRIPT_TAI_THAManaLHB_SCRIPT_TAI_VIETtvaTHB_SCRIPT_BATAKktaBHB_SCRIPT_BRAHMIharBHB_SCRIPT_MANDAICdnaMHB_SCRIPT_CHAKMAmkaCHB_SCRIPT_MEROITIC_CURSIVEcreMHB_SCRIPT_MEROITIC_HIEROGLYPHSoreMHB_SCRIPT_MIAOdrlPHB_SCRIPT_SHARADAdrhSHB_SCRIPT_SORA_SOMPENGaroSHB_SCRIPT_TAKRIrkaTHB_SCRIPT_BASSA_VAHssaBHB_SCRIPT_CAUCASIAN_ALBANIANbhgAHB_SCRIPT_DUPLOYANlpuDHB_SCRIPT_ELBASANablEHB_SCRIPT_GRANTHAnarGHB_SCRIPT_KHOJKIjohKHB_SCRIPT_KHUDAWADIdniSHB_SCRIPT_LINEAR_AaniLHB_SCRIPT_MAHAJANIjhaMHB_SCRIPT_MANICHAEANinaMHB_SCRIPT_MENDE_KIKAKUIdneMHB_SCRIPT_MODIidoMHB_SCRIPT_MROoorMHB_SCRIPT_NABATAEANtabNHB_SCRIPT_OLD_NORTH_ARABIANbraNHB_SCRIPT_OLD_PERMICmrePHB_SCRIPT_PAHAWH_HMONGgnmHHB_SCRIPT_PALMYRENEmlaPHB_SCRIPT_PAU_CIN_HAUcuaPHB_SCRIPT_PSALTER_PAHLAVIplhPHB_SCRIPT_SIDDHAMddiSHB_SCRIPT_TIRHUTAhriTHB_SCRIPT_WARANG_CITIaraWHB_SCRIPT_AHOMmohAHB_SCRIPT_ANATOLIAN_HIEROGLYPHSwulHHB_SCRIPT_HATRANrtaHHB_SCRIPT_MULTANItluMHB_SCRIPT_OLD_HUNGARIANgnuHHB_SCRIPT_SIGNWRITINGwngSHB_SCRIPT_ADLAMmldAHB_SCRIPT_BHAIKSUKIskhBHB_SCRIPT_MARCHENcraMHB_SCRIPT_OSAGEegsOHB_SCRIPT_TANGUTgnaTHB_SCRIPT_NEWAaweNHB_SCRIPT_MASARAM_GONDImnoGHB_SCRIPT_NUSHUuhsNHB_SCRIPT_SOYOMBOoyoSHB_SCRIPT_ZANABAZAR_SQUAREbnaZHB_SCRIPT_INVALID_HB_SCRIPT_MAX_VALUE_HB_SCRIPT_MAX_VALUE_SIGNED hb_script_t(K}#h),o1hd1*(1z1 1 name scriptP1 1 name tagm# 2 script_tagm#m#[ TagPair1!entry_key_press`2"entry"eventZ #font_changed$tag_pair_hash'@A 2%dataM&pair222$tag_pair_equalPA!3%aM%bM&pair_aƴ2&pair_bǴ2'switch_to_entryA6g3(AGH(ASH)A^H*t@C'reset_featuresAX4+i, 3+__inst!-__t+__r7))AiH*tv*tw.AuH3*t1.AuH4*t1. AuH#4*t1(AH.QAuHG4*tv*t0)dAH*t0$get_pango_fonty{AA4/desc{uJ/context|4h/map}(AH(AH.AH4*ts)AH*ts*tv'update_featuresVAj7+iX +jX -kX +modelY0iterZJ}1[['|1['}2\{+ft_face]= +hb_font^13A60tablestj7}+hb_faceut113A}60features{z7}0count|}.AHL6*t|*ts*t}*tv.1AHa6*t )QAH*t ?(AH)AH*t|.AH6*t .AH6*tw(-AI.aAI7*tw*t1*t |*t2*t}*t (fAX4.rAI/7*t|.A*IC7*t0.A5IX7*tw)A@I*tw4m#z75?4m#75?O6update_display(A;/s*Q/font_desc+9/font_settings,9/text-/has_feature./i/[70m#L/model1o&iter2JP/lang33#A%8/__instA!/__tA/__rA(*AH)HAiH*tw(AGH(ALI.AWI8*tKC.AbI8*tv*tOC(AmI.`AyI9*tw.lAbI+9*tv(vAI.AbIS9*tv*tRC.AIn9*tv*t0.AI9*tv.AH9*ts.AWI9*tKC. AI9*ts*tXC*t*t v.%AI:*ts*tC*t(8AI.HAI+:*ts*t1.TAIB:*t.\AIW:*tv.lAIl:*tw(AyI.AbI:*tv.AbI:*tv*tOC.AbI:*tv*tLC.AbI:*tv*tLC(AI.AI;*ts*t3*t L*t (AI('AI.5AWIC;*tKC.SAIr;*ts*tXC*t*t v)oAI*ts*tC*tw'switch_to_labelA7;(AI.A^H;*tC8A7'script_changedA<(A48A76update_script_comboACA/store/hb_fontЊ1/i 9/j M/k l/l /ft_face=9{&/tagsԎF&iterժ}&pairAz, &=:__n:__s/__p=})cAI*t@3AR#?&tablesj7z/hb_facet13A>&scriptsz7z&script_countz3B>&languagesz7}&language_countz, >/__n/__s/__p=)%BI*t@3B a>+__n+__s+__p=-)BI*t@.PBIx>*tz.|BI>*tz*tz*ts*t 0*tz*tw)BI*tz)BJ*tz*tz*t0*t z*tu.AH?*ts)BH*tz, _@+scriptnameM0scriptbufAz+langname0langbufAz+name9, ?+script P1.iBJ?*tu(|BJ.BJ?*tz.(B%J@*tC*ts.B0JM@*tz*t0*t *t 0*ts*t1*t2*t$3*t, )BI*ts.A;J@*t4*t@*tL*t L*tL(AX4.AI@*tz.+A*I@*t0.QAFJ@*t@A*tPA;t*t 0.ASHA*tC.AQJA*tz.B5I0A*ts. B@IEA*ts.B\JcA*tw*tz.5BgJA*tw*tz*t0.BrJA*tz.B}JA*tz)BJ*t024A5?<`2 BA8%B<<&20BCWB=C2=Q2>PB?Q2?C2:.eBJLB*t(jB;@do_font_featuresN BFAdo_widgetN 0windowN  #Z3B^oF+builder N+il3BIeC+iname9.BJC*tw*tv.BJ7C*tv*tC*t0.BJSC*tw*tv)BI*tvB`2BC(B<.BJC*tC.BJC*tw*tC*tA. BJC*tw*tC*t B."BJD*tw*tC*tA.:BJ?D*tw*t C*tA.RBJhD*tw*tC*tA.jBJD*tw*t!C*tA.BJD*tw*t1C*t0B.BJD*tw*ts.BJD*tw*tAC.BJE*tw*tC.BJ3E*tw*tHC.BJRE*tw*t C.BJqE*tw*tQC.BJE*tw*tVC.BJE*tw*tbC.0BJE*tw*tqC.EBJE*tw*tC.ZBJ F*tw*tC.oBJ+F*tw*t@C.BJ]F*tC;t*t  #Z*t0*t0)B@I*tw(BJ(BJ(BJ&labelN $Z&settingsN $Z&fontN $Z&script_langN $ZCresetbuttonN &numcasedefaultN $Z&numspacedefaultN $Z&fractiondefaultN $Z&stackN $Z&entryN $Z4N ~G5?'&togglenG#Z&iconnG@#Z4G5?'&feature_names GCG41G5?&script_namesG@CG41H5? &language_names/H CH0text9$#ZDE+E88 bDEVE,JDHEEE^DE-=ERR :E66.EHH(XDD*;E)AEEDlE&E/fE&D EdE881EuuPDME;;EYE8E55_E!!EnFg_freeg_free1GE06E (Edd1NEKE.E.eE(\D(QErr+ErE==CEkkconstruct_properties Aconstructor E6 set_property I get_property M dispose Q finalize R dispatch_properties_changed TW notify Xm constructed \ $flags _(pdummy bs ,GInitiallyUnowned GInitiallyUnownedClass  GObjectConstructParam _GObjectConstructParam m pspec oj p          0 0 f  Q  Q < m  ]  C a7cairo_t | _cairo_cairo_rectangle_int  x y width   cairo_rectangle_int_t   cairo_region_t = _cairo_regionGdkRectangle] GdkAtomfo u _GdkAtomGdkDevice _GdkDeviceGdkDragContext _GdkDragContextGdkScreen _GdkScreenGdkWindow _GdkWindow- GDK_AXIS_IGNOREGDK_AXIS_XGDK_AXIS_YGDK_AXIS_PRESSUREGDK_AXIS_XTILTGDK_AXIS_YTILTGDK_AXIS_WHEELGDK_AXIS_DISTANCEGDK_AXIS_ROTATIONGDK_AXIS_SLIDER GDK_AXIS_LAST GdkEventAny| _GdkEventAny VX#Y(ZGdkEventExpose}/_GdkEventExpose$ln#o(pareaqL regionr(countsU GdkEventVisibility~_GdkEventVisibility #(x# GdkEventMotion_GdkEventMotion@#(3 xyaxes( $is_hint((,0J8GdkEventButton_GdkEventButton@#(3 xyaxes( $((,0J8GdkEventTouch_GdkEventTouchH!##$(%3& x'y(axes)( *$sequence+((emulating_pointer,a,-(0.8J.@GdkEventScroll_GdkEventScrollXQ}S#T(U3V xWyXY directionZ#$[((\0J\8delta_x]@delta_y^His_stop_PGdkEventKey_GdkEventKey(W#(3 keyvallengthUstring"hardware_keycode "is_modifier$GdkEventFocusl_GdkEventFocus #(in GdkEventCrossing_GdkEventCrossingH#(subwindow( 3xy (J0mode%8detail$<focusa@DGdkEventConfigure_GdkEventConfigure,#(xU yUwidthUUGdkEventPropertyD_GdkEventProperty#(atom` 3GdkEventSelection_GdkEventSelection V # (  ` target` ~` 3requestor(GdkEventOwnerChangeq_GdkEventOwnerChange &(#)(*owner+( reason,(-` 3.selection_time/GdkEventProximity!_GdkEventProximityEG#H(I3J K(GdkEventDND_GdkEventDND#(context) 3:J:GdkEventWindowState#_GdkEventWindowStatemo#p(qchanged_maskr' new_window_states'GdkEventSetting_GdkEventSettingY[#\(]action^W( name_7GdkEventGrabBroken*_GdkEventGrabBroken#(keyboarda implicitagrab_window(GdkEventTouchpadSwipe_GdkEventTouchpadSwipeH#(phase  3 xydx dy(0J8@GdkEventTouchpadPinch_GdkEventTouchpadPinchX#(phase  3 xydx dy(angle_delta0scale8@JHPGdkEventPadButton_GdkEventPadButton$#(3 modeGdkEventPadAxis;_GdkEventPadAxis(*+#,(-3. /index0mode1j2 GdkEventPadGroupMode_GdkEventPadGroupModeELF#G(H3I JmodeKGdkEventSequenced _GdkEventSequenceGdkEvent_GdkEventX># any expose visibility motion  touch scroll key} crossing focus_changeW configure~, owner_changeV proximity dnd window_state setting grab_broken touchpad_swipe touchpad_pinch pad_button pad_axis$ pad_group_modew6#GDK_NOTHINGGDK_DELETEGDK_DESTROYGDK_EXPOSEGDK_MOTION_NOTIFYGDK_BUTTON_PRESSGDK_2BUTTON_PRESSGDK_DOUBLE_BUTTON_PRESSGDK_3BUTTON_PRESSGDK_TRIPLE_BUTTON_PRESSGDK_BUTTON_RELEASEGDK_KEY_PRESSGDK_KEY_RELEASE GDK_ENTER_NOTIFY GDK_LEAVE_NOTIFY GDK_FOCUS_CHANGE GDK_CONFIGURE GDK_MAPGDK_UNMAPGDK_PROPERTY_NOTIFYGDK_SELECTION_CLEARGDK_SELECTION_REQUESTGDK_SELECTION_NOTIFYGDK_PROXIMITY_INGDK_PROXIMITY_OUTGDK_DRAG_ENTERGDK_DRAG_LEAVEGDK_DRAG_MOTIONGDK_DRAG_STATUSGDK_DROP_STARTGDK_DROP_FINISHEDGDK_CLIENT_EVENTGDK_VISIBILITY_NOTIFYGDK_SCROLLGDK_WINDOW_STATE GDK_SETTING!GDK_OWNER_CHANGE"GDK_GRAB_BROKEN#GDK_DAMAGE$GDK_TOUCH_BEGIN%GDK_TOUCH_UPDATE&GDK_TOUCH_END'GDK_TOUCH_CANCEL(GDK_TOUCHPAD_SWIPE)GDK_TOUCHPAD_PINCH*GDK_PAD_BUTTON_PRESS+GDK_PAD_BUTTON_RELEASE,GDK_PAD_RING-GDK_PAD_STRIP.GDK_PAD_GROUP_MODE/GDK_EVENT_LAST0GdkEventTypejDux#GDK_VISIBILITY_UNOBSCUREDGDK_VISIBILITY_PARTIALGDK_VISIBILITY_FULLY_OBSCUREDGdkVisibilityStatey##GDK_SCROLL_UPGDK_SCROLL_DOWNGDK_SCROLL_LEFTGDK_SCROLL_RIGHTGDK_SCROLL_SMOOTHGdkScrollDirection#$GDK_NOTIFY_ANCESTORGDK_NOTIFY_VIRTUALGDK_NOTIFY_INFERIORGDK_NOTIFY_NONLINEARGDK_NOTIFY_NONLINEAR_VIRTUALGDK_NOTIFY_UNKNOWNGdkNotifyType$%GDK_CROSSING_NORMALGDK_CROSSING_GRABGDK_CROSSING_UNGRABGDK_CROSSING_GTK_GRABGDK_CROSSING_GTK_UNGRABGDK_CROSSING_STATE_CHANGEDGDK_CROSSING_TOUCH_BEGINGDK_CROSSING_TOUCH_ENDGDK_CROSSING_DEVICE_SWITCHGdkCrossingMode$'GDK_WINDOW_STATE_WITHDRAWNGDK_WINDOW_STATE_ICONIFIEDGDK_WINDOW_STATE_MAXIMIZEDGDK_WINDOW_STATE_STICKYGDK_WINDOW_STATE_FULLSCREENGDK_WINDOW_STATE_ABOVE GDK_WINDOW_STATE_BELOW@GDK_WINDOW_STATE_FOCUSED!GDK_WINDOW_STATE_TILED!GDK_WINDOW_STATE_TOP_TILED!GDK_WINDOW_STATE_TOP_RESIZABLE!GDK_WINDOW_STATE_RIGHT_TILED!GDK_WINDOW_STATE_RIGHT_RESIZABLE!GDK_WINDOW_STATE_BOTTOM_TILED !GDK_WINDOW_STATE_BOTTOM_RESIZABLE@!GDK_WINDOW_STATE_LEFT_TILEDGDK_WINDOW_STATE_LEFT_RESIZABLEGdkWindowState+%7W(GDK_SETTING_ACTION_NEWGDK_SETTING_ACTION_CHANGEDGDK_SETTING_ACTION_DELETEDGdkSettingAction;'F(GDK_OWNER_CHANGE_NEW_OWNERGDK_OWNER_CHANGE_DESTROYGDK_OWNER_CHANGE_CLOSEGdkOwnerChangeJp( &  L GdkFrameClock+) _GdkFrameClock ) )GTK_DIR_TAB_FORWARDGTK_DIR_TAB_BACKWARDGTK_DIR_UPGTK_DIR_DOWNGTK_DIR_LEFTGTK_DIR_RIGHTGtkDirectionType;) *GTK_ICON_SIZE_INVALIDGTK_ICON_SIZE_MENUGTK_ICON_SIZE_SMALL_TOOLBARGTK_ICON_SIZE_LARGE_TOOLBARGTK_ICON_SIZE_BUTTONGTK_ICON_SIZE_DNDGTK_ICON_SIZE_DIALOG *GTK_TEXT_DIR_NONEGTK_TEXT_DIR_LTRGTK_TEXT_DIR_RTLGtkTextDirection*V%+GTK_ORIENTATION_HORIZONTALGTK_ORIENTATION_VERTICALGtkOrientationY*+GTK_STATE_NORMALGTK_STATE_ACTIVEGTK_STATE_PRELIGHTGTK_STATE_SELECTEDGTK_STATE_INSENSITIVEGTK_STATE_INCONSISTENTGTK_STATE_FOCUSEDGtkStateType<+,GTK_DRAG_RESULT_SUCCESSGTK_DRAG_RESULT_NO_TARGETGTK_DRAG_RESULT_USER_CANCELLEDGTK_DRAG_RESULT_TIMEOUT_EXPIREDGTK_DRAG_RESULT_GRAB_BROKENGTK_DRAG_RESULT_ERRORGtkDragResult+9>-GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTHGTK_SIZE_REQUEST_WIDTH_FOR_HEIGHTGTK_SIZE_REQUEST_CONSTANT_SIZEGtkSizeRequestMode=,c.GTK_STATE_FLAG_NORMALGTK_STATE_FLAG_ACTIVEGTK_STATE_FLAG_PRELIGHTGTK_STATE_FLAG_SELECTEDGTK_STATE_FLAG_INSENSITIVEGTK_STATE_FLAG_INCONSISTENTGTK_STATE_FLAG_FOCUSED GTK_STATE_FLAG_BACKDROP@GTK_STATE_FLAG_DIR_LTR!GTK_STATE_FLAG_DIR_RTL!GTK_STATE_FLAG_LINK!GTK_STATE_FLAG_VISITED!GTK_STATE_FLAG_CHECKED!GTK_STATE_FLAG_DROP_ACTIVEGtkStateFlagsrY-GtkRequisition(/ _GtkRequisitionz4/ width|U}UGtkSelectionData)L/ _GtkSelectionDataGtkStyle+o/ _GtkStyleGtkTooltip-/ _GtkTooltipGtkWidget./ _GtkWidget/J/ iE GtkWidgetPath// _GtkWidgetPath f:ATK_ROLE_INVALIDATK_ROLE_ACCEL_LABELATK_ROLE_ALERTATK_ROLE_ANIMATIONATK_ROLE_ARROWATK_ROLE_CALENDARATK_ROLE_CANVASATK_ROLE_CHECK_BOXATK_ROLE_CHECK_MENU_ITEMATK_ROLE_COLOR_CHOOSER ATK_ROLE_COLUMN_HEADER ATK_ROLE_COMBO_BOX ATK_ROLE_DATE_EDITOR ATK_ROLE_DESKTOP_ICON ATK_ROLE_DESKTOP_FRAMEATK_ROLE_DIALATK_ROLE_DIALOGATK_ROLE_DIRECTORY_PANEATK_ROLE_DRAWING_AREAATK_ROLE_FILE_CHOOSERATK_ROLE_FILLERATK_ROLE_FONT_CHOOSERATK_ROLE_FRAMEATK_ROLE_GLASS_PANEATK_ROLE_HTML_CONTAINERATK_ROLE_ICONATK_ROLE_IMAGEATK_ROLE_INTERNAL_FRAMEATK_ROLE_LABELATK_ROLE_LAYERED_PANEATK_ROLE_LISTATK_ROLE_LIST_ITEMATK_ROLE_MENU ATK_ROLE_MENU_BAR!ATK_ROLE_MENU_ITEM"ATK_ROLE_OPTION_PANE#ATK_ROLE_PAGE_TAB$ATK_ROLE_PAGE_TAB_LIST%ATK_ROLE_PANEL&ATK_ROLE_PASSWORD_TEXT'ATK_ROLE_POPUP_MENU(ATK_ROLE_PROGRESS_BAR)ATK_ROLE_PUSH_BUTTON*ATK_ROLE_RADIO_BUTTON+ATK_ROLE_RADIO_MENU_ITEM,ATK_ROLE_ROOT_PANE-ATK_ROLE_ROW_HEADER.ATK_ROLE_SCROLL_BAR/ATK_ROLE_SCROLL_PANE0ATK_ROLE_SEPARATOR1ATK_ROLE_SLIDER2ATK_ROLE_SPLIT_PANE3ATK_ROLE_SPIN_BUTTON4ATK_ROLE_STATUSBAR5ATK_ROLE_TABLE6ATK_ROLE_TABLE_CELL7ATK_ROLE_TABLE_COLUMN_HEADER8ATK_ROLE_TABLE_ROW_HEADER9ATK_ROLE_TEAR_OFF_MENU_ITEM:ATK_ROLE_TERMINAL;ATK_ROLE_TEXT<ATK_ROLE_TOGGLE_BUTTON=ATK_ROLE_TOOL_BAR>ATK_ROLE_TOOL_TIP?ATK_ROLE_TREE@ATK_ROLE_TREE_TABLEAATK_ROLE_UNKNOWNBATK_ROLE_VIEWPORTCATK_ROLE_WINDOWDATK_ROLE_HEADEREATK_ROLE_FOOTERFATK_ROLE_PARAGRAPHGATK_ROLE_RULERHATK_ROLE_APPLICATIONIATK_ROLE_AUTOCOMPLETEJATK_ROLE_EDITBARKATK_ROLE_EMBEDDEDLATK_ROLE_ENTRYMATK_ROLE_CHARTNATK_ROLE_CAPTIONOATK_ROLE_DOCUMENT_FRAMEPATK_ROLE_HEADINGQATK_ROLE_PAGERATK_ROLE_SECTIONSATK_ROLE_REDUNDANT_OBJECTTATK_ROLE_FORMUATK_ROLE_LINKVATK_ROLE_INPUT_METHOD_WINDOWWATK_ROLE_TABLE_ROWXATK_ROLE_TREE_ITEMYATK_ROLE_DOCUMENT_SPREADSHEETZATK_ROLE_DOCUMENT_PRESENTATION[ATK_ROLE_DOCUMENT_TEXT\ATK_ROLE_DOCUMENT_WEB]ATK_ROLE_DOCUMENT_EMAIL^ATK_ROLE_COMMENT_ATK_ROLE_LIST_BOX`ATK_ROLE_GROUPINGaATK_ROLE_IMAGE_MAPbATK_ROLE_NOTIFICATIONcATK_ROLE_INFO_BARdATK_ROLE_LEVEL_BAReATK_ROLE_TITLE_BARfATK_ROLE_BLOCK_QUOTEgATK_ROLE_AUDIOhATK_ROLE_VIDEOiATK_ROLE_DEFINITIONjATK_ROLE_ARTICLEkATK_ROLE_LANDMARKlATK_ROLE_LOGmATK_ROLE_MARQUEEnATK_ROLE_MATHoATK_ROLE_RATINGpATK_ROLE_TIMERqATK_ROLE_DESCRIPTION_LISTrATK_ROLE_DESCRIPTION_TERMsATK_ROLE_DESCRIPTION_VALUEtATK_ROLE_STATICuATK_ROLE_MATH_FRACTIONvATK_ROLE_MATH_ROOTwATK_ROLE_SUBSCRIPTxATK_ROLE_SUPERSCRIPTyATK_ROLE_FOOTNOTEzATK_ROLE_LAST_DEFINED{AtkRoleg/{;ATK_LAYER_INVALIDATK_LAYER_BACKGROUNDATK_LAYER_CANVASATK_LAYER_WIDGETATK_LAYER_MDIATK_LAYER_POPUPATK_LAYER_OVERLAYATK_LAYER_WINDOWAtkLayerv:AtkObjectA;_AtkObject$;parentdescription" name"accessible_parent(<rolef:relation_set.<layer; AtkRelationSet; _AtkRelationSet+(< parent- relations/ /;; 1x<GTK_WIDGET_HELP_TOOLTIPGTK_WIDGET_HELP_WHATS_THISGtkWidgetHelpType44<GtkWidgetPrivateB< _GtkWidgetPrivateGtkWidgetClassC<"_GtkWidgetClassjZE&lH activate_signalpDdispatch_child_properties_changedsEHdestroyxELshowyEPshow_allzEThide{EXmap|E\unmap}E`realize~EdunrealizeEhsize_allocateFlstate_changed1Fpstate_flags_changedGFtparent_set]Fxhierarchy_changed]F|style_setyFdirection_changedFgrab_notifyFchild_notifyFdrawFget_request_modeFget_preferred_heightGget_preferred_width_for_height%Gget_preferred_widthGget_preferred_height_for_width%Gmnemonic_activate?Ggrab_focusEfocusYGmove_focusoGkeynav_failedYGeventGbutton_press_eventGbutton_release_eventGscroll_eventGmotion_notify_eventGdelete_event Hdestroy_event Hkey_press_event)Hkey_release_event)Henter_notify_eventIHleave_notify_eventIHconfigure_eventiHfocus_in_eventHfocus_out_eventHmap_event Hunmap_event Hproperty_notify_eventH#selection_clear_eventH#selection_request_eventH#selection_notify_eventH#proximity_in_eventH #proximity_out_eventH#visibility_notify_event I#window_state_event)I#damage_eventII#grab_broken_eventiI #selection_getI$#selection_receivedI(#drag_beginI,#drag_endI0#drag_data_getI4#drag_data_deleteI8#drag_leaveJ<#drag_motion)J@#drag_drop )JD#drag_data_receivedXJH#drag_failedwJL#popup_menuJP#show_help#JT#get_accessible(JX#screen_changed*J\#can_activate_accel,J`#composited_changed0Ed#query_tooltip2Kh#compute_expand85Kl#adjust_size_request<UKp#adjust_size_allocation@Kt#style_updatedGEx#touch_eventIK|#get_preferred_height_and_baseline_for_widthLK#adjust_baseline_requestRG#adjust_baseline_allocationUK#queue_draw_regionWL$i\L$_.$`.GtkWidgetClassPrivateDwE _GtkWidgetClassPrivateGtkAllocationSL GtkCallback]EEEE/<EEQ EEEEFEFEF1FE+!FGFE.7F]FEEMFsFEsF_/cFFE*FFEaFFEFaFE F>-FEFGEF%GEU Ga?GEa+GaYGE)EGoGE)_GaGE>uGaGEGGaGEGGaGEG GaHEH Ga#HE#H}HaCHECH/HacHEcHOHaHEHWoHaHEH,HaHEHHaHEHHaIEIHa#IE#IIaCIECI/IacIEcIOIIEI4/oIIEIIIE)IIE)IIJE)Ia)JE)UUJXJE)UUI/JawJE),^JaJE}JaJEx<J(<JEJJE5)JaJEJaKEUUaKz/J5KE   KUKE%+;KKE%+[KaKEKKKEUKKEKKEKK& KZEGtkContainer- L _GtkContainer1OL3/i6iNGtkContainerPrivate.jL _GtkContainerPrivateGtkContainerClass/L%_GtkContainerClassJiN&L<&addPN&removeRN&check_resizeTN&forallUN&set_focus_childYN&child_type[N&composite_name\N&set_child_property^ O&get_child_propertyc/O&get_path_for_childhOO'_handle_border_widthn&_gtk_reserved1q.&_gtk_reserved2r.&_gtk_reserved3s.&_gtk_reserved4t.&_gtk_reserved5u.(v.(w.&_gtk_reserved8x.OLNNE LoNNNNNNaENNNN"NNEN ONEN/ONEOIOIONE/5OGtkIconTheme5iO _GtkIconThemeDOJGiIO GtkIconThemePrivate7O _GtkIconThemePrivateOUOGtkFishbowl O _GtkFishbowl# P% LGtkFishbowlClass!"P%_GtkFishbowlClass(JP&*LGtkFishbowlPrivatedP _GtkFishbowlPrivateP count last_frame_time  tick_id!GtkFishbowlChildP _GtkFishbowlChild($,Q&E x' y( dx) dy* -qQPROP_0PROP_ANIMATINGPROP_COUNTNUM_PROPERTIES)gtk_fishbowl_get_instance_private6Q*self6QO+gtk_fishbowl_measureokR,oE,'p%+,q,Tr=,s=,t=,Du=-wQ-ixkR-yyqR-z.child_min{U.child_nat{UJPP/new_speed0gtk_fishbowl_get_animatingaR1Q2ikR0gtk_fishbowl_get_countS1Q2ikR3gtk_fishbowl_get_propertyeS1e 4prop_idf1jg4pspech2jQ52w 2w2'w3gtk_fishbowl_set_propertyMT1M 4prop_idN1jO4pspecP2RQ52_ 2_2'_6"LT,LE,'M%+*sizeNU,TO,P,Q,DR75T"8T-T5-QT.__tT.__rTa5-U TCT9gtk_fishbowl_forall0BKU:N;include_internalsa;callbackE;callback_data <Q2ikR=yqR=>pB?tw@gtk_fishbowl_init9BUA9QBBRm?t?t03gtk_fishbowl_class_init}aV4klass}aVCobject_classgVCwidget_classmVCcontainer_classsV P <L@gtk_fishbowl_class_intern_init6B)WDklass6EUB6WFVGBHVH3VHHVIfB^m1W?tC?tC?tC?t 0?t3IBjmvW?tC?tC?tC?t 0?t ?t0?t1BBvm?ts?t3?t$ZIBmW?tsBBm?ts?t$Z@gtk_fishbowl_removeB5YANAEJQ-ikRJyqR8Kwidget_containerExJLqQB |XFQM0 Nwas_visibleaI!BmX?twI-BmX?twI<BmX?tsIGBmX?tsIOBmY?tvOxBmIBm!Y?tXBBm?tXPgtk_fishbowl_draw+aBDY:+E;cr, =.Q2i/kR=y0qR5Nlist1IBBm?tv?tw@gtk_fishbowl_size_allocate B[AEDallocationFJQ\-ikRJyqR{Qchild_allocationEPQchild_requisition.HJLqQ BH ZFQI# BmZ?t?twRG BmIe BnZ?tH?t0R BnR BnB B$n?tPPgtk_fishbowl_ticka B']:E;frame_clock/);unused=Q2ikR=yqRNlNframe_timeNelapsed'SqQ& B` [FQ?TwR B4\B B0n?t {Gz??t ?TwR B#u\B B0n?t {Gz??t ?TwR^ B\Bv B0n?t {Gz??t ?TwR B\B B0n?t {Gz??t ?I: B;n ]?twRB BGnB BRn?twUS B^F*SRF6SrVFSVRS H`STR Bs]WRG BXRY1 BaP^FFSFRSF6SF*S<G1 BaX`SG1 BaHmS<HySHSR= B^nRK B^nB Bjn?t0?t@?t C?t C?t w?tC?ts?t$wTR Boy^WRG BXRO1 BynO BnUQ Bp`FQ[FQ|FQVQVRRVRRVQQHRX'RH2RH=RZHRXZYR\EqQ Bx3_FQ/LT Bx f`FATBFcTdFnTdFXTFMTF6TBF+TbMx ZyT CY B$_XTG B HTHTHTR BnB; Bn?tuI[ Bn`?t0?t C?t: CI Bn2`?tu?tX?t\B Bn?tu?t ?tX?t \?t0?t0R Bm@gtk_fishbowl_get_preferred_height_and_baseline_for_width BIa[EAAT=A= A=AD=\ B^?R1?Q? ]Q]R]R@gtk_fishbowl_get_preferred_width_for_heightBa[EAAT=A= \'B^?R0?Q? ]Q]R0]R0@gtk_fishbowl_get_preferred_height0Bb[EAT=A=\JB^?R1?Q?]Q ]R0]R0@gtk_fishbowl_get_preferred_widthPBc[E!AT=A=\gB^?R0?Q?]Q ]R0]R0^gtk_fishbowl_get_type6pBUdQg_define_type_id__volatile6Ud$Z_ c`pBBBn?t$ZGBnKg_define_type_id6@_ cBBn?t$Z?tsIBnc?tQ CRBnIBnh hii i inni33i8iXi44!hriih== i>>h hSS<h\\6iiUUGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden demo_resources.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char long doublesigned charguint8Qshort intlong long unsigned intgsize;gint1floatdoublegpointerMGResource_GResourceGStaticResource32_GStaticResource5 data7 data_len8 resource9 next: padding;   data  alignment  ptr   0demo_get_resourceB9BtBresource_constructorxhBwhBtBresource_destructor} hB/hBtBdemo_resource_data  Cstatic_resourceB~z|KQGNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden main.c/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.24/demos/gtk-demo =charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long doublesigned charshort intguint16!guint32&long long unsigned intgsize;gchar.gint1gboolean2guchar4Mguint7gpointerM=GBytes$P_GBytesGQuark$GError){_GError + domain-_ code. message/Y GData$_GData  BY G_FILE_TEST_IS_REGULAR G_FILE_TEST_IS_SYMLINK G_FILE_TEST_IS_DIR G_FILE_TEST_IS_EXECUTABLE G_FILE_TEST_EXISTSGList%f_GList ' data)' next* prev+YmGVariant "_GVariant , , GVariantDict _GVariantDict@ "u a@ [asv [partial_magic y @ s "x   5G G_LOG_FLAG_RECURSION G_LOG_FLAG_FATAL G_LOG_LEVEL_ERROR G_LOG_LEVEL_CRITICAL G_LOG_LEVEL_WARNING G_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFO@ G_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|  w& G_OPTION_ARG_NONE G_OPTION_ARG_STRING G_OPTION_ARG_INT G_OPTION_ARG_CALLBACK G_OPTION_ARG_FILENAME G_OPTION_ARG_STRING_ARRAY G_OPTION_ARG_FILENAME_ARRAY G_OPTION_ARG_DOUBLE G_OPTION_ARG_INT64  ( G_ASCII_ALNUM G_ASCII_ALPHA G_ASCII_CNTRL G_ASCII_DIGIT G_ASCII_GRAPH G_ASCII_LOWER G_ASCII_PRINT@ G_ASCII_PUNCTG_ASCII_SPACEG_ASCII_UPPERG_ASCII_XDIGITYBGType~GTypeClass _GTypeClassFg_typeGTypeInstance\_GTypeInstanceg_class GCallbackV  G_CONNECT_AFTER G_CONNECT_SWAPPEDGConnectFlagsGObject_GObject C g_type_instanceF ref_count qdata&GInitiallyUnowned^ G_APPLICATION_FLAGS_NONE G_APPLICATION_IS_SERVICE G_APPLICATION_IS_LAUNCHER G_APPLICATION_HANDLES_OPEN G_APPLICATION_HANDLES_COMMAND_LINE G_APPLICATION_SEND_ENVIRONMENT G_APPLICATION_NON_UNIQUE G_APPLICATION_CAN_OVERRIDE_APP_ID@GActionMap4p _GActionMapGSimpleAction7 _GSimpleActionGApplication9 _GApplication, K/ 1p GApplicationCommandLine: _GApplicationCommandLine2> K5 7 GMenuModel?P _GMenuModel} K  GActionEntry) _GActionEntry 7 name97;)  parameter_type?7A7 change_stateC)  paddingH/ # # ['}  ? ,GApplicationPrivate)Z _GApplicationPrivate?   GApplicationCommandLinePrivate/ _GApplicationCommandLinePrivate &GMenuModelPrivate} _GMenuModelPrivate > <[ PANGO_STYLE_NORMAL PANGO_STYLE_OBLIQUE PANGO_STYLE_ITALICPangoStyle@ a PANGO_WEIGHT_THINd PANGO_WEIGHT_ULTRALIGHTPANGO_WEIGHT_LIGHT,PANGO_WEIGHT_SEMILIGHT^PANGO_WEIGHT_BOOK|PANGO_WEIGHT_NORMALPANGO_WEIGHT_MEDIUMPANGO_WEIGHT_SEMIBOLDXPANGO_WEIGHT_BOLDPANGO_WEIGHT_ULTRABOLD PANGO_WEIGHT_HEAVYPANGO_WEIGHT_ULTRAHEAVY-_ GDK_AXIS_IGNORE GDK_AXIS_X GDK_AXIS_Y GDK_AXIS_PRESSURE GDK_AXIS_XTILT GDK_AXIS_YTILT GDK_AXIS_WHEEL GDK_AXIS_DISTANCE GDK_AXIS_ROTATION GDK_AXIS_SLIDER GDK_AXIS_LAST  GTK_SHADOW_NONE GTK_SHADOW_IN GTK_SHADOW_OUT GTK_SHADOW_ETCHED_IN GTK_SHADOW_ETCHED_OUT*" GTK_WRAP_NONE GTK_WRAP_CHAR GTK_WRAP_WORD GTK_WRAP_WORD_CHARGtkAdjustment"7_GtkAdjustment6gK8C : GtkBuilder#y_GtkBuilder]K_ a GtkWidget._GtkWidgetKC W GtkWindow0_GtkWindow5  bin7e 9gGtkWidgetPrivateB>_GtkWidgetPrivate&GtkApplication 's_GtkApplication + -   0GtkApplicationPrivate )_GtkApplicationPrivate]GtkContainer!-_GtkContainer!1.!3 !6_GtkContainerPrivate!.I_GtkContainerPrivate.GtkBin"-s_GtkBin"1%"3 "6GtkBinPrivate"._GtkBinPrivateGtkWindowPrivate._GtkWindowPrivate #EN GTK_LICENSE_UNKNOWN GTK_LICENSE_CUSTOM GTK_LICENSE_GPL_2_0 GTK_LICENSE_GPL_3_0 GTK_LICENSE_LGPL_2_1 GTK_LICENSE_LGPL_3_0 GTK_LICENSE_BSD GTK_LICENSE_MIT_X11 GTK_LICENSE_ARTISTIC GTK_LICENSE_GPL_2_0_ONLY GTK_LICENSE_GPL_3_0_ONLY GTK_LICENSE_LGPL_2_1_ONLY GTK_LICENSE_LGPL_3_0_ONLY GTK_LICENSE_AGPL_3_0 GtkMisc$.]_GtkMisc$2$4 $7GtkMiscPrivate$/_GtkMiscPrivateGtkMenuShell%,_GtkMenuShell%0%%2 %5(GtkMenuShellPrivate%._GtkMenuShellPrivateGtkMenu&-=_GtkMenu&mn menu_shell&o &rGtkMenuPrivate&/_GtkMenuPrivatenGtkAdjustmentPrivate-_GtkAdjustmentPrivate"GtkTreeIter''_GtkTreeIter']C stamp'_'`' user_data2'a' user_data3'b' GtkTreePath'(V_GtkTreePathGtkTreeModel'*x_GtkTreeModeldCGtkTreeViewColumn()_GtkTreeViewColumn(TK(VC (X' GtkTreeViewColumnPrivate(+_GtkTreeViewColumnPrivateGtkTextIter)@@_GtkTextIter8*F- dummy1*L' dummy2*M' dummy3*N dummy4*O dummy5*P dummy6*Q dummy7*R dummy8*S dummy9*T' dummy10*U'$ dummy11*V( dummy12*W, dummy13*Y0 dummy14*Z'4GtkTextBuffer*BB_GtkTextBuffer+NrK+P +R GtkImage,/_GtkImage,[ misc,]N ,`GtkImagePrivate,0_GtkImagePrivateGtkTreeView-=_GtkTreeView-C-E -HGtkTreeViewPrivate-?8_GtkTreeViewPrivateGtkTreeSelection-@e_GtkTreeSelection.K.N .PG GtkBuilderPrivate)_GtkBuilderPrivateGtkMenuItem/-_GtkMenuItem/1 bin/3e /6AGtkMenuItemPrivate//,_GtkMenuItemPrivateGtkHeaderBar0&a_GtkHeaderBar0*%0,GtkNotebook15_GtkNotebook19%1< 1>GtkNotebookPrivate16_GtkNotebookPrivateGtkRange2. _GtkRange22524 26^GtkRangePrivate2/L_GtkRangePrivate5GtkScrolledWindow3-}_GtkScrolledWindow31%33e 35GtkScrolledWindowPrivate3._GtkScrolledWindowPrivate 3S GTK_POLICY_ALWAYS GTK_POLICY_AUTOMATIC GTK_POLICY_NEVER GTK_POLICY_EXTERNALGtkTextBufferPrivate+Ko_GtkTextBufferPrivateS-GtkTextView4q_GtkTextView4uK4w 4{GtkTextViewPrivate4r_GtkTextViewPrivateGtkTreeSelectionPrivate.%'_GtkTreeSelectionPrivateMGtkTreeStore5)a_GtkTreeStore5-5/ 51 GtkTreeStorePrivate5+_GtkTreeStorePrivateGDoDemoFunc6QQDemo6_Demo6J name6Y title6Yt6 Y func6  6 J  NAME_COLUMN TITLE_COLUMN FILENAME_COLUMN FUNC_COLUMN STYLE_COLUMN NUM_COLUMNSCallbackData_CallbackData [" path# * STATE_NORMAL STATE_IN_COMMENTcreate_text7Qview7is_source8scrolled_window:Qtext_view;QQ print_version|!local_optionsBw"appv "options"data'#versionl$B+a%BL%%B*L%,B5L&DB@L'tY'ts't v&BTL't'tY'tY't l!auto_quit`B"data'&oB`L't(run_example_for_rowlB!)lQ)[m2)ni*stylep[ X*funcq\+demorQ, W!+cbdata!, +__n+__s+__p'&BkL't8-&BvL 'ts'tw-1BL 'tv-aBL"!'tv'tY'tB't u't0't0-BL?!'tv'tL&BL'tv't1-BL!'ts'tw't3't \'t4'tX't -BL!'ts'tw't4't .B'tv/row_activated_cbBH""tree_viewQ"path"column!0`1Q21[P-BLo"'ts-BL"'ts-BL"'ts'tv't&B'Pw'Rs'Qv(window_closed_cbXB#2XQ3dataX'+cbdataZ!n4[`*style\[ \-BLI#'tv-8BLr#'tv't4't \'t %JBL-RBL#'ts&BL'tv't4't 0't !scrollbar_popupB $5 Q"menuQ&BM't't0/end_cbB;$"itemG5 Q6adj-BMq$'t-BM$'ts-B(M$'ts&B3M'ts/start_cbB+4%"itemG5 Q6adj-BM %'t- B>M"%'ts&B3M'ts(activate_run BA%2# 2[2'4Q7/A4[\4`%5BIM-IBTM%'t\'ts&\B'P'Qs/startuppBh&"appv 6builder 6appmenu #ids&h%B_M-BjM&'ts'tY'th't 0-BuM&'ts'tY-BM&'t&BM'ts Y&,(activate_quitCB6'2C# 2D[2E'*appG+winHQ$+listI7+nextI`-BMz''t% BM(activate_about' B)2'# 2([2)'*app+*authors,)h%:BL%AB*L%HB5L-hBM9('tY't Y't s'tv-vBMO('t&BM'tY'tY't Y'ts'tY'tY'tY't 4't$Y't(Y't,Y't0pY't4eY't8h't<VY'tLY'tFY't6Y't0 7),8parse_charsH Bd&+9textHYs"end_ptrI5J"tagK "startL6iN6next_tokenOY, )6maybe_escape,-mBM)'ts'tY-BM*'ts't(-BM1*'ts'tY-eBNF*'tw-wBNi*'ts'tw'tu-BN*'ts'tw'tu-BN*'tw-BN*'ts'tw'tu-4BM*'ts't(Y-KBM*'ts't"-BM+'ts&UBM'ts/fontifyB.: a#start_iter-~#next_iter-~#tmp_iter-0~6textY6start_ptrY#end_ptrY~#tagY~;BD,6start-B&N*,'t~'t~-B1N?,'ts-B!Qlabel!Qi"?3/@bytes4A/>=@bufferBtextviewCQ } /, /Bremove_data_tabsf/ih8load_fileoP"BN F<5o75tp76info_bufferr1 rF#starts-~#ends-6resource_filenamet&s#erru~1v6in_paraw?6linesx6bytesy6izC3V<HY$/"B0N1D"B0E/%"BwN&"BN'tsF."B 6G.H E/E/,E3/kEE/EQ/E_/%Ii/8Y, Y5Ew/9,0 1E/;;$BoI4E/E/$*;$BE3GPGCD;$BEbEz=-O$BNP2't0't0-i$BNq2'ts't1't1-y$BN2'ts't0%~$BN-$BN2'tw'tY'tD't Y'tD'tY'tD'tY't D't$0-$BN 3'tw't0-$BN&3'tw't0-$BNB3'ts'tw- %BN]3'tw't2-%BNx3'tw't2&,%BN'tw't2-8%B O3't0-H%BO3't~-`%B!O3't~'t0-x%B,O3't~'t~-%B7O4'tv'tY-%B&+.4'P~&%BBO'tw't~-#BMO^4'ts-#BMs4'ts-#BYO4'tv't0't0- $BO4'tw-$B!O4'tw't0-3$BdO4'ts't0-i-BpO 5'ts't@'tY't v-u-BO"5't~&.BO't0't|Y't ='t 8Y'tvY-"BO5'tY't't0-"BO5't~'t0't0-#BO5'ts%&#BO-0#BO5'tw-E#BO5'ts'tw-n#BO6'ts't$Y't 1't0-v#BL16'tv-#BOX6't~'tY't 0-#BOm6'tv-#BO6'ts-#BO6'ts-%BP6't~-%BL6't~&.BL't~,H :6pY[6qY+6rYT, 86len_chars;b)B[71&j)BN'tu-(BPw7'tu'ts-)BO7't0't|Y't 't HY'tY- *BP7'ts't'tu-*B)P7't~'t~&*BkJ>l@child_iterJ.BB"appv 6builder e11Q1[0P#error6swQ1 Q 6menuQ(6itemQS#win_entriesBBF[<E0B >Gs<HE<D0BE<I<@;@1B_>I<P-W1BlP>'ts'tv't@&1BL'ts'tv't0't1't2't 3't(4't,0't0 -0BlP>'ts't@'t0&-1BL'ts't@'t0't1't2't 3't(4't,0't0 %.B_M-.BwP>'t'tY't-.BuM?'tv'tY-/BP5?'t'ts-*/BPa?'ts'tB't1't s-:/BuM?'tv'tY-O/BuM?'tv'tY-d/BuM?'tv'tY-y/BuM?'tv'tY-/BuM?'tv'tY%/BL-/BuM$@'tv'tY%/BP%/BP-/BPN@'tY-/BL@'tu'tY'tB't w't0't0-0BP@'tv'tu-0BP@'tY->0BL@'tu'tY'tB't w't0't0-O0BPA'tv-W0BO$A'tv-0BLYA'tw't"Y'tB't0't0%0B/-1BLA't-Y'tB't s't0't0-2BuMA'tu't;Y-32BLA'tw'tNY't4B't s't0't0%@2BL-L2BPB'tv-X2BP,B'tw'tv%e2BP-q2BOLB't-y2BMaB'tu-2BpOB't0't8'tY&2BP't1 B,Blist_demos"Bd$Jc$J!command_line82BtE"app8v "cmdline9| 6options;#name<7T#autoquit=X#list>\6d?J6c?JS6func@1AQ6demoAQKoutlS4B$B3BYLDD3BYEBEB0-4B@LC'tkY&-4B@L'tkY-2B<(D'tv-2BP>D't-3BTLnD'ts'tYY'tVY't T->3BTLD'ts't]Y'tY't X-^3BTLD'ts'tfY'tY't \-3BMD'tv%3B?P%3B?P-A4B`L E'tvL\4BE'tu-j4BL7E'ts'tu-z4BLRE'ts't1&4BQ't1't`B'tv/selection_cb4BF5/A5[0`#name&T0t &X#title!&\-4BTMF't't0'ts-(5BL^F't'ts't0't T't1't\'t2'tX't  %@5B/%U5B Q%a5BL%m5BL%y5BLMmain@hB2I"argc"argv 6app[#app_entriesIB-chBQG'tpY't@-hB"Q7G'tY'tpY't1-hB-QVG'tY't(-hBPG'ts'tB't2't s-hB8QG'ts'tY't0't 0't0'tY't0-%iB8QH'ts'tYY't0't 0't1'tY'tY-]iB8QIH'ts'tfY't0't 0't0'tY't0-iB8QH'ts't]Y't0't 0't0'tY't0-iBLH'ts'tY'tpB't 0't0't0-iBLI'ts'tY't.B't 0't0't0-%jBL;I'ts't Y't2B't 0't0't0-UjBLvI'ts'tY'tB't 0't0't0&kjBCQ'ts'tu'tu  I,*info_view Q$Z*source_viewQ$Z*current_fileY$Z*notebookQ$Z*treeviewQ$Z*headerbarQ$Z YEJ,NtokensSJ5J YhJ,z*types{JYXJ YJ, #control:JYJOg_ascii_table 6JJJ J,Pchild06TJ B K,Pchild16_JBPchild26gJ B Q<<::Q+Q Q4SQII;jS[S$$rQcc1Q!Q,vQ,Q,S S<Q+Q$$*Q Q={Q S QCQ5QwwQ<< SQwwXQ3Qss&Q,,/tQAA%[S'BQ.S-CRexitexit?2QWWPS@HQ((0?Q QQA'Q OQQ99PGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/atonexit.c`QB%charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned int_onexit_t(double long doubletagCOINITBASECOINITBASE_MULTITHREADED VARENUMlVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMI VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF@ VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK_PVFV mingw_onexit!p`QBn func!p onexitbegin#nh onexitend$nlretval%pyqQBQBt8QBQBQB*9tthtlQB5QB5QB@_t8 RBtl atexit8 RB func8l/RByt__onexitbeginn(Z__onexitendn(Zpp_imp___onexit _lock_lock99))_unlock_unlock~GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/gccmain.c@RB 'charunsigned intintptrdiff_tZshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMYVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASKfunc_ptr io __do_global_dtors@RB, pBY __do_global_ctors pRBF nptrs" i# RBot@RB__main5RB!RB initialized2$ZYE__CTOR_LIST__ :__DTOR_LIST__ :atexitatexitT/GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/natstart.c/(charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMAVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASKE__uninitialized__initializing__initializedEA __native_startup_state (Z  __native_startup_lock(Z  __native_dllmain_reason ȍB __native_vcclrit_reason čBGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/wildcard.cL)_dowildcard $ZintGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/charmax.cRB)charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intudouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMSVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK _PIFVo my_lconv_initRB mingw_initcharmax %Z _charmax̍B __mingw_pinitSZRGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/dllargv.cRB*charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long double_setargvRB GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/gs_support.cSB7Q+charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned chardoublefloat long double[_EXCEPTION_RECORDP ExceptionCode ExceptionFlags ] UExceptionAddress  NumberParameters ExceptionInformation _CONTEXTContextFlagsDr0Dr1 Dr2  Dr3 Dr6 Dr7 FloatSaveSegGsSegFsSegEsSegDsEdiEsiEbxEdxEcxEaxEbpEipSegCsEFlagsEspSegSsExtendedRegisters  BYTE" DWORD signed charshort intlong long unsigned int UINT_PTR5 ULONG_PTR7  PVOID LONG LONGLONG OLowPartm  wLowPartm  _LARGE_INTEGER 'uOQuadPart LARGE_INTEGERw_FLOATING_SAVE_AREApControlWordStatusWordTagWordErrorOffset ErrorSelectorDataOffsetDataSelectorRegisterAreaCr0NpxStatelO FLOATING_SAVE_AREA CONTEXT! PCONTEXT# EXCEPTION_RECORD [ PEXCEPTION_RECORD E_EXCEPTION_POINTERS ] +ContextRecord  EXCEPTION_POINTERS K_FILETIMEdwLowDateTimeߘdwHighDateTime FILETIME NTSTATUS 3ft_scalar!ft_struct" FT#__security_init_cookie2SBcookie4systime53Pperfctr6X?SBtPoSBtX__report_gsfailuregSBHStackCookiegcookieiXhTBt0TB)tZ/TB>t|7TB XHGS_ExceptionRecord%(ZGS_ContextRecord& %ZGS_ExceptionPointers(Z !__security_cookie,B!__security_cookie_complement-B"abortabort@NGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/_newmode.c|,_newmode`(ZintVxGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlssup.c@TB,charunsigned intintuintptr_tMshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charULONG BOOLDWORD floatLPVOIDFsigned charshort intlong long unsigned intULONG_PTR7 PVOIDFHANDLEFPIMAGE_TLS_CALLBACK a _IMAGE_TLS_DIRECTORY32  StartAddressOfRawData!a EndAddressOfRawData"a AddressOfIndex#a AddressOfCallBacks$a SizeOfZeroFill%a Characteristics&aIMAGE_TLS_DIRECTORY32'IMAGE_TLS_DIRECTORY8_PVFV(. __dyn_tls_initRU R vRa RwpfuncTpsU__dyn_tls_dtorU@TBCvawxTBNttt/TB~NYdo|TB"|dAYUNiTB"o}| UBNtt1t__tlregdtorsUBfuncs__xd_aE,Z__xd_zF0Z_tls_index)Hp(Z_tls_start/[_tls_end0[__xl_a2Z__xl_z3(Z_tls_used5{[_CRT_MTM__dyn_tls_init_callbackmZ__xl_cn Z__xl_d$Zmingw_initltsdrot_forcel(Zmingw_initltsdyn_forceh(Zmingw_initltssuo_forced(Z #GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/cinitexe.c.charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char_PVFV6<)M__xi_a = Z__xi_z =Z__xc_a =Z__xc_z =Z|GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/merr.c UBe.charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMKVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_iobuf X _ptrY _cntZ _base[ _flag\ _file] _charbuf^ _bufsiz_ _tmpfname` FILEbK_exception 5 type name5 arg1r arg2r retvalr; fUserMathErr TZ i i__mingw_raise_matherr UBKtypname5a1ra2rrsltrexP_UBtP__mingw_setusermatherrpUB>fT~UB_matherrUB[pexcept%itype'5UBtZstUserMathErr @t(Z_imp___iob[fprintffprintfyGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/CRT_fp10.cUB/_fpreset UBGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/mingw_helpers.cUB30charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMPVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_encode_pointer6x ptr6 PVB l mingw_app_typex(Z;GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pseudo-reloc.cVBK1__gnuc_va_list__builtin_va_listcharva_listsize_t%unsigned intintptrdiff_tZshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charBYTEWORD,DWORDqfloatPBYTELPBYTELPVOIDsigned charshort intlong long unsigned intULONG_PTR7qSIZE_T3PVOID_MEMORY_BASIC_INFORMATION   BaseAddress!R AllocationBase"R AllocationProtect# RegionSize$D State% Protect& Type' MEMORY_BASIC_INFORMATION(_ > e AtPhysicalAddressBVirtualSizeC_IMAGE_SECTION_HEADER(? Name@. MiscD> VirtualAddressE SizeOfRawDataF PointerToRawDataG PointerToRelocationsH PointerToLinenumbersI NumberOfRelocationsJ NumberOfLinenumbersK" CharacteristicsL$ PIMAGE_SECTION_HEADERMtdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUMVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK_iobuf  _ptr __cnt _base __flag  _file _charbuf _bufsiz !_tmpfname "_FILE $;?addend<target=runtime_pseudo_reloc_item_v1> FsymGtargetHflagsIruntime_pseudo_reloc_item_v2Jc Lmagic1Mmagic2NversionOruntime_pseudo_reloc_v2P O old_protectsec_starthash __write_memory addrsrclendo_pseudo_reloc3E start3end3base3addr_imp5reldata5reloc_target6v2_hdr7E r8K ohQ newvalm?__report_errorSVBQ msgS argpS @VB !tZ!t1!tK \VB !t!ts"aVB  #$mark_section_writablepVB: %addrb T&h#&ib VB\ !ts"VB('WB| !tT!tL'HWB !t@!t s zWBW !t0 Z WBW !tZ(WBW !tZ!ts)restore_modified_sections$ *i*b *oldprot+_pei386_runtime_relocatorWB$,was_init|(Z-mSecs. XB8/ / / 081 2 D1 *1 ^1 3XB<M 1( 0`13 4Z XBp5 5 5r 05 5 5r (XB 6P7Z YB 5 /5 C5r X8YB5 /5 C5r X(YB !Pv7Z ZB5 k5 5r 8ZB5 k5 5r (ZB !Pv7Z ZB |5 5 5r 8ZB 5 5 5r ("ZB !Pv XBW !t Z([ZBW !tX Z. XB01 2 D2 @'AYB!tD!tL'rYB!t @(KZBW !tZ"WB3the_secs:(ZO maxSections(Z d9:_imp___iob [vY:__RUNTIME_PSEUDO_RELOC_LIST__0:__RUNTIME_PSEUDO_RELOC_LIST_END__1:_image_base__2;fwrite__builtin_fwrite fwrite< }=abortabort @>>>GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/xtxtmode.cB3_fmode(Zint GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/crt_handler.c`ZB3charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned char:_EXCEPTION_RECORDP ExceptionCode wExceptionFlags w, 4ExceptionAddress  NumberParameters wExceptionInformation *_CONTEXTkContextFlagswDr0wDr1 wDr2 w Dr3 wDr6 wDr7 wFloatSaveSegGswSegFswSegEswSegDswEdiwEsiwEbxwEdxwEcxwEaxwEbpwEipwSegCswEFlagswEspwSegSswExtendedRegisters  BYTE# DWORDfloatsigned charshort intlong long unsigned int ULONG_PTR7 PVOID LONG_FLOATING_SAVE_AREApControlWordwStatusWordwTagWordwErrorOffsetw ErrorSelectorwDataOffsetwDataSelectorwRegisterAreaCr0NpxStatewl k O FLOATING_SAVE_AREA k  CONTEXT! PCONTEXT#$ :  EXCEPTION_RECORD : PEXCEPTION_RECORD m:_EXCEPTION_POINTERS , SContextRecord  EXCEPTION_POINTERS ss PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTERdouble long doubletagCOINITBASECOINITBASE_MULTITHREADEDVARENUM VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIME@VT_BLOBAVT_STREAMBVT_STORAGECVT_STREAMED_OBJECTDVT_STORED_OBJECTEVT_BLOB_OBJECTFVT_CFGVT_CLSIDHVT_VERSIONED_STREAMIVT_BSTR_BLOBVT_VECTORVT_ARRAY VT_BYREF@VT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK __p_sig_fn_t0 % 0 _gnu_exception_handler_gnu_exception_handler@4`ZB exception_data old_handler Qactionreset_fpu+ZB t;t0ZB t;[B  t8t0[B! t8D[B ; t8t0][B U t8t1b[B [B x t4t0[B t4[B t8t1[B t;t1[B t4t1__mingw_oldexcpt_handler(Zsignalsignal<##)GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlsthrd.c\Bj5charunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charWINBOOLWORDDWORD floatLPVOID0signed charshort intlong long unsigned intULONG_PTR7 LONGHANDLE0_LIST_ENTRY]Flink^Blink_LIST_ENTRY`_RTL_CRITICAL_SECTION_DEBUG ZType[ACreatorBackTraceIndex\ACriticalSection]ProcessLocksList^EntryCount_MContentionCount`MFlagsaMCreatorBackTraceIndexHighbASpareWORDcA_RTL_CRITICAL_SECTIONuDebugInfovLockCountwRecursionCountxOwningThready LockSemaphorezSpinCount{PRTL_CRITICAL_SECTION_DEBUGd!RTL_CRITICAL_SECTION|CRITICAL_SECTIONdouble long double__mingwthr_key_tM __mingwthr_key  key M dtor! next"  0 5__mingwthr_run_key_dtorsbkeypdvaluelc\BmIc0\B!$vN\Btv\B8t(Zb\Bt(Z___w64_mingwthr_add_key_dtor)p\Bwkey)Mdtor)new_key+\Bt1t<\Bt(Z\Bt(Z5___w64_mingwthr_remove_key_dtor@\Bkey@Mprev_keyBcur_keyC]Bnt(ZN]Bt(Zn]B{]Bt(Z__mingw_TLScallbacky2]BhDllHandleyreasonzMreserved{c]B&W^B]BNe^B]BIkeypHtq]B^Bt(ZM^Bt(Z__mingwthr_cs(Z__mingwthr_cs_init(Z key_dtor_list&(Z calloccalloc freefree7GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlsmcrt.c6_CRT_MT ЍBint aGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pseudo-reloc-list.c6__RUNTIME_PSEUDO_RELOC_LIST_END__(Zchar__RUNTIME_PSEUDO_RELOC_LIST__(ZjGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pesect.cp^Be7charsize_t%unsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charWINBOOLBYTE,WORDDWORDfloatPBYTENLPVOID=signed charshort intlong long unsigned intULONG_PTR7DWORD_PTRLONGN  _IMAGE_DOS_HEADER@g e_magicZ e_cblpZ e_cpZ e_crlcZ e_cparhdrZ e_minallocZ e_maxallocZ e_ssZ e_spZ e_csumZ e_ipZ e_csZ e_lfarlcZ e_ovnoZ e_resg e_oemidZ$ e_oeminfoZ& e_res2w( e_lfanew<Zw Z  IMAGE_DOS_HEADERPIMAGE_DOS_HEADER _IMAGE_FILE_HEADER&w Machine'Z NumberOfSections(Z E)f PointerToSymbolTable*f NumberOfSymbols+f SizeOfOptionalHeader,Z ]-ZIMAGE_FILE_HEADER. _IMAGE_DATA_DIRECTORYb xcf SizedfIMAGE_DATA_DIRECTORYe _IMAGE_OPTIONAL_HEADERi) MagickZ MajorLinkerVersionlN MinorLinkerVersionmN SizeOfCodenf SizeOfInitializedDataof SizeOfUninitializedDatapf AddressOfEntryPointqf BaseOfCoderf BaseOfDatasf ImageBasetf SectionAlignmentuf FileAlignmentvf$ MajorOperatingSystemVersionwZ( MinorOperatingSystemVersionxZ* MajorImageVersionyZ, MinorImageVersionzZ. MajorSubsystemVersion{Z0 MinorSubsystemVersion|Z2 Win32VersionValue}f4 SizeOfImage~f8 SizeOfHeadersf< CheckSumf@ SubsystemZD DllCharacteristicsZF SizeOfStackReservefH SizeOfStackCommitfL SizeOfHeapReservefP SizeOfHeapCommitfT LoaderFlagsfX NumberOfRvaAndSizesf\ DataDirectory)`9 IMAGE_OPTIONAL_HEADER32PIMAGE_OPTIONAL_HEADER32zPIMAGE_OPTIONAL_HEADERY _IMAGE_NT_HEADERS Signaturef FileHeaderw OptionalHeader9PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS Al PhysicalAddressBf VirtualSizeCf _IMAGE_SECTION_HEADER(?i Name@ MiscD6  xEf SizeOfRawDataFf PointerToRawDataGf PointerToRelocationsHf PointerToLinenumbersIf NumberOfRelocationsJZ NumberOfLinenumbersKZ" ]Lf$PIMAGE_SECTION_HEADERM l = ]>f OriginalFirstThunk?f _IMAGE_IMPORT_DESCRIPTOR<.  EAf ForwarderChainCf NameDf FirstThunkEfIMAGE_IMPORT_DESCRIPTORF PIMAGE_IMPORT_DESCRIPTORGo . double long double_ValidateImageBase? m|pDOSHeaderS pOptHeader_FindPESection-i ; m-|rva-S/ <0i 1 p^Bo      ^B   D  ^B;  ^B=   o $ / _FindPESectionByNameCi ^B pNameC mE|SF <Gi H0 _BO     !*_B; "P#_BI $tw!n_BZ$ts$tw$t8 %__mingw_GetSectionForAddressbi _Bwpbmd|&rvaeZ _Bhg    !_B; "P' _Bl Z  x$ / __mingw_GetSectionCountp`B+"mr|Ss ' `B8v 8   !*`B; "P_FindPESectionExeci @`Bw(eNom|S <i :' C`BP P   !j`B; "P_GetPEImageBase|`B'1m|' `Bp p   !`B; "P_IsNonwritableInCurrentImage?`B|pTarget|m|&rvaTargetY<i  `B    ! aB; "P' aB w  $ / __mingw_enum_import_library_names paB4(im|S &importDescN <i &importsStartRVAf+ taB    !aB; "P) aB( I *aB( \$ o/ +_image_base__,strlenstrlen6,strncmpstrncmpL9dB;dB/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/floor.S/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.25.51GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/round.c@dBp:doublecharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned intfloat long doubleround@dBpx res ]dBthdBth ceilceil`GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc/mingw_matherr.c:_MINGW_INSTALL_DEBUG_MATHERRԍBintGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/cos.cdBK;double long doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int__fpclassifyxswcosdBx3x_class5 idB 5  dB  dBt dB eBjt1t Zt`t t X9eBeeBt1t Zt t tX0_errno_errnoGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/cosf.cpeB@<doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublecosfpeB_XeBt coscos =eBeB/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/cosl_internal.S/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.25.51GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/sin.ceB=double long doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int__fpclassifyxswsineBx3x_class5 ieB 5  eB  eBt eB /fBjt1t Zt`t t XIfBufBt1t Zt t tX0_errno_errnoGNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/sinf.cfB>doublefloatcharunsigned intintshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charlong long unsigned int long doublesinffB_XfBt sinsinV?fBfB/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/sinl_internal.S/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.25.51?fBfB/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/ceil.S/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/build/i686-w64-mingw32-i686-w64-mingw32-crtGNU AS 2.25.51GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc/invalid_parameter_handler.cgB\@charunsigned intintuintptr_tMwchar_tbshort unsigned intlong intlong long intsizetypelong unsigned intunsigned charfloatsigned charshort intlong long unsigned intLONG_PTR6PVOIDcLONGPLONGdouble long double    & tagCOINITBASEa COINITBASE_MULTITHREADED VARENUM VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_RECORD$ VT_INT_PTR% VT_UINT_PTR& VT_FILETIME@ VT_BLOBA VT_STREAMB VT_STORAGEC VT_STREAMED_OBJECTD VT_STORED_OBJECTE VT_BLOB_OBJECTF VT_CFG VT_CLSIDH VT_VERSIONED_STREAMI VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF@ VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK_InterlockedExchange+Target+Value1InterlockedExchange#InterlockedExchange@8Target#Value#mingw_get_invalid_parameter_handlergBmingw_set_invalid_parameter_handlergB ]new_handler!6gB zDlXgB $D Xhandler(Z_imp___set_invalid_parameter_handler ܍Br_imp___get_invalid_parameter_handler؍B% $ > : ; I I : ; : ;I8  : ;I8   : ; : ;I 'I I I!I/ !I/ : ; : ;I I8 ' : ;  : ; I8 'I'&I I: ; (  I: ;( : ;  I: ; : ; I .?: ;'I !: ;I"4: ;I#5I$: ;I%<&.?: ;'I '.?: ; n'I (: ; I): ; I*.: ;' + ,.: ; '@B-: ; I..: ;'I /.: ; 'I@B01RUX Y 1 U241341415B6171894: ; I:4: ; I; U<1X Y =1X Y>1? @1A1RUX Y B1RUX YC1X YD1X Y EFG.?: ; 'I@BH4: ; I IB1J4: ; IK4: ; I?<L5M!N4: ; I?O4: ;I?<P.?<n: ; Q.?<n: ; R.?<n: ;S.?<n% $ > : ; I  I&I : ;  : ; I8 <  I: ;  ( ( : ;I : ; : ;I8 5I I: ;.: ; ' : ; I: ; I.: ; '@B: ; I: ; I.1@B1 U11.?: ; 'I@B4: ; I  4: ; I!1"B#1$.?<n: ;%.?<n: ; &.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; '@B: ; I: ; I4: ; I14: ; I1BB11.: ; 'I@B.: ; ' : ; I 4: ; I!.?: ; 'I@B"1RUX Y #1$ U%41&1X Y ' (4: ; I)4: ; I*.?<n: ;+.?<n: ; ,.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8 'II!I/ (( I: ; : ; I8 .: ; '@B: ; I: ; I4: ; IB1B4: ; I 1!B1".?: ; 'I@B#: ; I$ %1&'1(4: ; I).?<n: ;*.?<n: ;+.?<n: ; % $ >  I: ; I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .: ; 'I@B: ; I: ; I4: ; I1B11.?: ; 'I@B4: ; I.?<n: ; .?<n: ;% $ > : ; I  I&I'<  : ;  : ; I8 : ;I  : ; : ;I8 5I I: ; (  I: ; : ;I8 (  : ; I8 .: ;' : ;I: ;I4: ;I4: ;I.: ; 'I : ; I4: ; I4: ; I .: ; '  : ; I!.: ; 'I@B": ; I#: ; I$.: ;'@B%: ;I&4: ;I'1(1)B*1+: ;I,B1-.: ; '@B.4: ; I/4: ; I0 U1 2: ;I31X Y415 64174: ;I8B19.1@B:1;1 <1RUX Y = U>41?1RUX Y @41A1B.?: ;'I@BC4: ;ID1RUX YE4: ;IF1X YG.?<n: ;H.?<n: ; I.?<n: ; % $ >  I: ; I &I'<  I: ;  ( ( : ;I  : ; : ;I8 5I : ;  : ; I8 (( : ;I8  : ;I 8  : ; : ;I : ;I I: ; : ; I8 .: ; 'I : ; I4: ; I: ; I.: ; '  4: ; I!.?: ; '@B": ; I#4: ; I$1%B&1': ; I(: ; I)B1*.: ; '@B+: ; I,1-B1..1@B/10411 2 341441516 U7 U8.?: ; 'I@B94: ; I:4: ; I;<.?<n: ;=.?<n: ; >.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 ( .: ; '@B: ; I4: ; I1BB1: ; I.: ; 'I@B1.?: ; 'I@B14: ; I .?<n: ; !.?<n: ;% $ >  I: ; I 'I&I  : ;  : ; I8 ' < : ;I : ; I8  : ; : ;I8  : ;I8  I: ;(  : ;  : ; II!I/  I: ; (( 5I'I : ;I 8  : ; : ;I : ;I!(" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I8(.: ;' ): ;I*.: ;'@B+: ;I,: ;I-.: ; ' .: ; I/ 04: ;I11RUX Y213 U44151617B8B191:.: ; '@B;: ; I<: ; I=4: ; I>.: ; 'I@B?4: ; I@ : ; A4: ; IB4: ; IC.?: ; 'I@BD E F G: ; IH.: ; 'I I4: ; IJ4: ; IK.?: ;'I@BL4: ;IM4: ;IN4: ;IO1RUX YP UQ41RS.?<n: ;T.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 'I.: ; '@B: ; I: ; I 4: ; I11B1.?: ; 'I@B4: ; I4: ; I !.?<n: ; ".?<n: ;% $ >  I: ; I < : ;  : ; I8 ' : ;I  : ; : ;I8 5I I: ; ( &I : ; I8 'I.: ; '@B: ; I: ; I4: ; I4: ; I1B11 .?: ; 'I@B4: ; I !.?<n: ; ".?<n: ;#.?<n: ; % $ > : ; I I&I<': ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8  : ; .: ; ' : ; I4: ; I.: ; '@B: ; I: ; I4: ; I1RUX Y 1 U411B B1!1": ; I# $.?: ; 'I@B%4: ; I& '4: ; I(1X Y ) *1+,I-!I/ .4: ; I?/.?<n: ; 0.?<n: ; 1.?<n: ;% $ >  I: ; I < : ;  : ; I8 ' : ;I  : ; : ;I8 5I I: ; ( &I I: ;(( : ; I8 'I.: ; '@B: ; I: ; I4: ; I4: ; I1B11 .: ; 'I@B! ".?: ; 'I@B#4: ; I$%.?<n: ; &.?<n: ;'.?<n: ; % $ >  I: ; I < : ;  : ; I8 ' : ;I  : ; : ;I8 5I I: ; ( &I I: ; : ; I8 'I.: ; '@B: ; I: ; I4: ; I4: ; I1B11 .?: ; 'I@B 4: ; I!".?<n: ; #.?<n: ;$.?<n: ; % $ >  I: ; I < : ;  : ; I8 ' : ;I  : ; : ;I8 5I I: ; ( &I I: ; : ; I8 'I.: ; '@B: ; I: ; I4: ; I4: ; I1B11 .?: ; 'I@B 4: ; I!".?<n: ; #.?<n: ;$.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; 'I@B: ; I4: ; I4: ; I1B11.: ; '@B: ; I : ; IB1 .?: ; 'I@B!4: ; I"#.?<n: ; $.?<n: ;%.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 ( .: ; '@B: ; I4: ; I1B1B14: ; I1.?: ; 'I@B: ; I4: ; I .?<n: ; !.?<n: ;% $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ;( : ;I8 ( I: ;(  : ; I8 .: ; 'I : ; I: ; I.: ; '@B: ; I: ; I4: ; I4: ; I1 1!B"1#.: ; 'I@B$: ; I%4: ; I&.1@B'1( )1*.?: ; 'I@B+4: ; I,.?<n: ;-.?<n: ; % $ > : ; I  I&I : ;  : ; I8 : ; I8 ' < : ;I  : ; : ;I8 5I I: ; (  I: ; : ; .: ; '@B: ; I: ; I4: ; I4: ; I4: ; I 1B1.: ; 'I@B4: ; I 4I4! U"1#I$!I/ %: ; I&: ; I'B1(4: ;I)4: ;I*.: ;' +: ;I,4: ;I-.: ; 'I .4: ; I/4: ; I0 1.: ; ' 24I43.?: ;'I@B4: ;I54: ;I64: ;I71RUX Y8 U941:41;1RUX Y <1X Y= >1?1@A.?<n: ;B.?<n: ; C.?<n: ; D.?<n: ;% $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I11B1.?<n: ;.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B4: ; I4: ; I1B1: ; I1.?<n: ; .?<n: ;% $ >  I: ; I 'I&I ' <  : ;  : ; I8 : ;I : ; : ;I8 5I I: ; (  : ; I8  : ;I8  I: ; : ; I: ;(( : ;I 8  : ; : ;I : ;I(  : ;  .: ; ' !: ; I": ; I#4: ; I$ %4: ;I& 'I(!I/ ).: ;'I *: ;I+.: ;' ,: ;I-.: ;'@B.: ;I/: ;I0: ;I14: ;I24: ;I3 U44: ;I51617B819.: ; 'I@B:4: ; I; <4: ; I =4: ; I>: ; I?: ; I@1RUX Y A1B UC41D41E41F.: ; '@BGB1H1X YI J: ;IK4: ;ILB1M.: ;'I@BN1X YO.1@BP1Q1RUX YR4: ;IS1BT.: ; 'I U.?: ;'I@BV41 WX4: ; IY4: ; I?Z.?<n: ; [.?<n: ;\.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8  I: ;  ( ((  : ;  : ; I8  : ; I8 5I I: ;.: ; '@B: ; I1B11: ; IB1.?: ; 'I@B4: ; I4: ; I 4: ; I!.?<n: ;".?<n: ; % $ > : ; I  I'<: ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/ 5I I: ; ( &I : ; I8 .: ; 'I@B: ; I: ; I4: ; I1B.: ; '@B4: ; I4I41 4: ; I!.?: ; 'I@B" #1$%.?<n: ;&.?<n: ; '.?<n: ;(.?<n: ; % $ >  I: ; I '<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 I!I/ .: ; 'I : ; I4: ; I  .1@B14141  U U 1!B"1#$1%.: ; ' &.: ; 'I@B': ; I(: ; I)4: ; I*1RUX Y +1X Y , -.?: ; 'I@B.4: ; I/4: ; I04: ; I14: ; I?2.?<n: ; 3.?<n: ;4.?<n: ; % $ >  I: ; I&I'< I: ;  ( ( ( : ;I  : ; : ;I8 5I : ;  : ; I8  I: ; : ; I8 .: ;' : ;I: ;I4: ;I4: ;I.: ; 'I : ; I4: ; I  I!I/ .: ; ' !: ; I"4: ; I#.: ; '@B$: ; I%: ; I& : ; '4: ; I(4: ; I)4I4* U+1,B-1..: ; 'I@B/4: ; I011B124: ; I3: ; I4.1@B51617418419 :1B;1 <B1=.: ;'I@B>: ;I?: ;I@4: ;IA4: ;IB1RUX YC UD1X YE F.?: ;'I@BG4: ;IHI4: ; I?<J.?<n: ;K.?<n: ; L.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8 'I I: ;(( : ; I8 .: ; '@B: ; I: ; I: ; IB1B.: ; 'I@B14: ; I  4: ; I!1"1#.?: ; 'I@B$4: ; I%&.?<n: ;'.?<n: ; % $ > : ; I I&I &< '  I: ;  ( ( : ;I : ; : ;I8 5I : ;  : ; I8  I: ; : ; I8 'I'I'I.: ;'I : ;I.: ; ' : ; I4: ; I4: ; I.: ;'  4: ;I!4I4" #I$!I/ %: ; I& : ; '.: ;'@B(: ;I).: ; 'I@B*: ; I+4: ; I,4: ; I- .4: ; I/0B112134.: ;' 5.1@B617 U8191RUX Y: U;41<41=1>.1@B? @41AB1B1RUX Y C 1D.: ;'I E.?: ;'I@BF4: ;IGH4: ;I?<I.?<n: ; J.?<n: ; K.?<n: ;L.?<n: ;% $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I11B.?<n: ;.?<n: ; % $ >  I: ; I '< : ;  : ; I8 : ;I  : ; : ;I8 5I I: ; ( ( I: ; : ;I8  : ;I 8  : ; : ;I : ;I( ( : ; I8 .: ; 'I : ; I4: ; I.: ; ' : ; I4: ; I !.: ; 'I@B": ; I#4: ; I$1RUX Y %1& U'41(41) *1+B,1-.: ; '@B.: ; I/: ; I0: ; I14: ; I24: ; I34: ; I4 U5.1@B617418 9.?: ; 'I@B:4: ;I;1<=.?<n: ;>.?<n: ; % $ > : ; I  I&I'<  I: ;  ( : ;I  : ; : ;I8 5I : ;  : ; I8  I: ; : ; I8 .: ; '@B1.: ; 'I@B: ; I: ; I4: ; I4: ; I1B: ; I 14: ; I B1!.: ; 'I "4: ; I#.: ; ' $4I4% & 'I(!I/ ).?: ; 'I@B*4: ; I+1RUX Y, U-41. U/4101X Y1 24: ; I?34: ; I?4.?<n: ;5.?<n: ; 6.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; 'I 4: ; I.: ; '@B: ; I4: ; I4: ; I1B11.: ; ' : ; II !I/ !.?: ; 'I@B" #1RUX Y $1% U&41'41().?<n: ; *.?<n: ;+.?<n: ; % $ > : ; I  I : ;  : ; I8 ' < : ;I  : ; : ;I8 5I I: ; (  : ; I8  I: ;.: ;'@B: ;I4: ;I4: ;I1B1B1.: ; 'I@B: ; I4: ; I U4: ; I4: ; I !4: ; I"#1$ U%I&!I/ '.: ; '@B(.: ;' ): ;I*.?: ;'I@B+4: ;I,1X Y-1..?<n: ; /.?<n: ;% $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 ( .: ; '@B: ; I4: ; I4: ; I1BB1.?: ; 'I@B4: ; I11.?<n: ; .?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; 'I : ; I 4: ; I.: ; '@B: ; IB1B.1@B1 1  41!1"1#.?: ; 'I@B$4: ; I%4: ; I&1'(.?<n: ;).?<n: ; % $ >  I: ; I 'I&I <  : ;  : ; I8 ' : ;I : ; : ;I8  I: ;(  : ;  : ; II!I/  I: ; ((  : ; I8 5I'I : ;I8  : ;I 8  : ; : ;I : ;I!(" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I 8( : ; I8).: ; ' *: ; I+4: ; I,.: ; 'I -: ; I..: ; '@B/: ; I0.: ;'I@B1: ;I2: ; I31X Y 415 641718B91:.: ; '@;4: ; I<1=.: ;'@B>B1?.: ;' @: ;IA4: ;IB4: ;IC4: ; ID: ; IE.: ;'@F4: ;IG.?: ; 'I@BH4: ; II UJ K L.: ;'I M4: ; IN.?: ;'I@BO4: ;IP4: ;IQ4: ;IR1RUX YS UT1RUX Y U1X YV1WX4: ; IY.?<n: ;Z.?<n: ; [.?<n: ; \.?<n: ;% $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; 'I@B: ; I4: ; I1B1.: ; 'I : ; I4: ; I.?: ; 'I@B4: ; I4: ;I1X Y 1! "41#1$%I&!I/'.?<n: ; (.?<n: ;% $ >  I: ; I &I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ;I8  : ;I 8  : ; : ;I : ;I( (( : ; I8  : ; .: ; 'I@B: ; I: ; I1 4: ; I!1"B#1$.: ; '@B%4: ; I&.: ; ' ': ; I(4: ; I).: ; 'I * +.?: ; 'I@B, -4: ; I.1RUX Y/ U0411412 U31X Y415 674: ; I8I9!I/ :.?<n: ;;.?<n: ; % $ > : ; I  I&I<' : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; ' : ; I 4: ; I.1@B1 1 414111 B!1".?: ; 'I@B#: ; I$4: ; I%4: ; I&'.?<n: ; (.?<n: ;).?<n: ; % $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .: ; ' : ; I4: ; I.: ; 'I@B: ; I4: ; I4: ; I U4: ; I1B11I!I/ .1@B!1"41#1$ U%41&.?: ; 'I@B': ; I( )*.?<n: ;+.?<n: ; ,.?<n: ;% $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8 'II!I/  : ; I8 .: ; '@B: ; I4: ; I1B1.?: ; 'I@B 4: ; I1 !.?<n: ;".?<n: ; % $ >  I&I: ; I 'I  : ;  : ; I8 ' <  I: ; ( ( : ;I : ; : ;I8  I: ; : ;  : ; II!I/ ( : ; I8 5I'I : ;I8 ( : ;I 8  : ; : ;I! : ;I" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I 8( : ; I8).: ;' *: ;I+: ;I,4: ;I-4I4. /4: ;I0.: ;' 1.?: ;' 2.?: ; 'I 3.: ; '@B4: ; I516B7.: ;'I@B8: ;I94: ;I:B1;: ;I<1=: ; I>: ; I?4: ; I@4: ; IA4: ; IB: ; ICB1D.: ; 'I@BE1F.: ; ' G: ; IH: ; II4: ; IJ4: ; IK1X Y L1M N41O41P4: ;IQ4: ;IR US4: ;IT.: ;'@BU: ;IV.: ;'@W4: ; IX4: ; I Y Z.1@B[1 \41]BB^1_ U`.?: ; 'I@Ba b1X Y c.?: ;'I@Bd1RUX Yef.?<n: ;g.?<n: ; h.?<n: ; % $ >  I: ; I 'I&I  : ;  : ; I8 ' <  I: ; ( ( : ;I : ; : ;I8  I: ; : ;  : ; II!I/ ( : ; I8 5I'I : ;I8 ( : ;I 8  : ; : ;I! : ;I" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I 8( : ; I8).: ; ' *: ; I+: ; I,.: ;' -: ;I.: ;I/4: ;I04I41 2.: ;' 3.?: ; 'I 4.1@B5161X Y 718.: ; '@B9: ; I:1;B<.: ; 'I@B=: ; I>4: ; I?B1@.: ;'I@BA: ;IB: ;IC1D4: ;IE4: ;IF UG4: ;IH1I.: ;'@BJ: ;IK4: ;IL.: ; '@M4: ; IN4: ; IO4: ; IP4: ; I Q R41S41T1 U V41WB1XBBY UZ.?: ; 'I@B[ \4: ; I]1X Y ^.?: ;'I@B_1RUX Y`a.?<n: ;b.?<n: ; c.?<n: ; % $ >  I: ; I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .: ; '@B: ; I1BB1.?: ; 'I@B4: ; I U4: ; I11.?<n: ; .?<n: ;.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .: ; '@B: ; I: ; I4: ; I1B1.?: ; 'I@B4: ; I 4: ; I1.?<n: ; .?<n: ;% $ > : ; I I&I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; '@B: ; I: ; I4: ; I4: ; I4: ; I1B11.?: ; 'I@B.?<n: ;.?<n: ; % $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I11B1.?<n: ;.?<n: ; % $ > : ; I  I : ;  : ; I8 ' < : ;I  : ; : ;I8 5I I: ; ( &I I: ; : ; I8 .: ; 'I : ; I4: ; I.: ; 'I@B: ; I: ; I4: ; I U4: ; I1B11 .: ; 'I@B!.?: ; 'I@B" #1RUX Y $1% U&41'(I)!I/ *.?<n: ; +.?<n: ; ,.?<n: ;% $ >  I: ; I '<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ;I8  : ;I 8  : ; : ;I : ;I I: ;( (( : ; I8 .: ; ' : ; I: ; I4: ; I4: ; I.: ; 'I  .: ; '@B!: ; I": ; I#4: ; I$4: ; I%1&B'1(B1).: ; 'I@B*: ; I+4: ; I,4: ; I-1..1@B/10411412 314 5416.?: ; 'I@B71X Y 81 9:.?<n: ;;.?<n: ; % $ > : ; I < I : ;  : ; I8 ' : ;I  : ; : ;I8 5I I: ; (  I: ; : ; I8  : ; .: ; '@B: ; I4: ; I1B1: ; I4: ; I1B1.?: ; 'I@B4: ; I U 4: ; I ! "#.?<n: ; $.?<n: ;%.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .: ; ' : ; I 4: ; I.: ; 'I@B: ; I4: ; I4: ; I4: ; I1B1.: ; '@B1 .1@B!1" #1$ %41&.?: ; 'I@B'(.?<n: ;).?<n: ; % $ > : ; I  I&'I ' < : ;I  : ; : ;I8 5I I: ; (  : ;  : ; I8 &I : ; I8  : ;I8 'I I: ;.: ; '@B: ; I4: ; I1B1.?: ; 'I@B: ; I 4: ; I!4: ; I" U#1$.: ; 'I@B%4: ; I& '(I)!I/ *4: ; I?+.?<n: ;,6-.?<n: ; ..?<n: ; % $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ; I8 .?: ; 'I@B: ; I4: ; I 4: ; I1B11.?<n: ; .?<n: ;% $ >  I: ; I 'I' < 'I : ;I  : ; : ;I8 5I I: ; (  : ;  : ; I8  I: ; : ;I8  : ;I 8  : ; : ;I : ;I( (( : ; I8 .: ; ' : ; I: ; I .: ; ' !.: ; '@B": ; I#: ; I$1%B&B1'.1@B(1)1*1+.: ; 'I@B,1X Y -: ; I.1/ 01 1B12.?: ; 'I@B34: ; I44: ; I51X Y64: ; I74: ; I8.?<n: ;9.?<n: ; % $ >  I: ; I'< I: ; ( ( : ;I  : ; : ;I8 5I : ;  : ; I8 &I : ;I8  : ;I 8  : ; : ;I : ;I I: ;(( : ; I8 .: ; '@B: ; IB1B: ; I4: ; I 1!1": ; I#B1$.: ; 'I@B%.?: ; 'I@B&4: ; I'4: ; I(1)*.?<n: ; +.?<n: ;,.?<n: ; % $ > : ; I I&I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ; I8 .: ; '@B: ; I: ; I4: ; I1B1: ; IB1.?: ; 'I@B: ; I4: ; I4: ; I 1 !.?<n: ; ".?<n: ; #.?<n: ;% $ > : ; I I&I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B: ; I4: ; I4: ; I4: ; I11B1I!I/ .?<n: ;.?<n: ; % $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8 &I I: ; : ; I8 .: ; '@B: ; I4: ; I1BB1.?: ; 'I@B: ; I4: ; I11: ; I: ; I4: ; I !I"!I/ #.?<n: ; $.?<n: ;% $ > : ; I  I&I'< : ;I  : ;  : ; I8  : ; : ;I8  : ;  : ; II!I/ 5I I: ; (  I: ; : ; I8 .: ; 'I@B: ; I1B1: ; I4: ; I4: ; I1 4: ; I!.?: ; 'I@B" #$.?<n: ; %.?<n: ;&.?<n: ; '.?<n: ;% $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 ( .: ; ' : ; I.: ; '@B: ; I1B1.1@B1.?: ; 'I@B: ; I4: ; I4: ; I4: ; I 1X Y !1 "1#B$%1&.?<n: ; '.?<n: ;% $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ; I8 .?: ; 'I@B: ; I4: ; I 4: ; I1B11.?<n: ; .?<n: ;% $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B: ; I4: ; I 4: ; I1B11.?<n: ; .?<n: ;% $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8 .: ; 'I@B: ; I4: ; I1B1.?: ; 'I@B4: ; I1.?<n: ;.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8 &I( I: ; : ; I8 .: ;' : ;I4: ;I4: ;I: ;I.: ;'I .: ;'@B: ;I4: ;I4: ;I4: ;I4I4 1X Y!1"1#B$1% &1'I(!I/ ).1@B*1+41,41- .41/.: ; ' 0: ; I14: ; I24I43 4.: ; ' 5.?: ;'I@B6: ;I71RUX Y8 U9 U:;.?<n: ; <.?<n: ;% $ >  I: ; I '<'I I : ;I  : ; : ;I8 5I I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; '@B: ; I: ; IB1B.: ; 'I : ; I: ; I4: ; I4: ; I4: ; I4: ; I 1RUX Y !1" U#41$41%1&1'1(.: ; 'I@B): ; I*4: ; I+.?: ; 'I@B, -..?<n: ;/.?<n: ; 0.?<n: ; % $ > : ; I I'<: ;I : ; : ;I8 5I  I: ;  (  : ;  : ; I8  I: ; : ; I8 .?: ; 'I@B: ; I4: ; I11B14: ; I.?<n: ;.?<n: ; % $ >  I: ; I &'II &I ' <  : ;  : ; I8  : ; I8  I: ; ( ( : ;I : ; : ;I8 5I I: ;(.: ; ' : ; I.: ; 'I : ; I: ;I 4: ;I4: ; I .: ;'I@B!: ;I": ;I#4: ;I$1%B&1'.: ;'@B( U)4: ;I*1X Y+1,1-B1..: ; 'I@B/: ; I0: ; I1: ; I24: ; I34: ; I44: ; I54I46 U7 8I9!I/ :.: ; '@B;: ; I<4: ; I=1RUX Y >41?41@1X Y A B4: ;IC4: ;ID: ;IE.1@BF1G41H.: ;' I4: ;IJ.?: ;'I@BK1RUX YLM4: ; IN.?<n: ; O.?<n: ;P.?<n: ; % $ > : ; I  I'<: ;I  : ; : ;I8 5I  I: ;  (  : ;  : ; I8  : ; I8 .: ; ' : ; I4: ; I.: ; 'I@B: ; I4: ; I1RUX Y 1 U41411B1.?: ; 'I@B !4: ; I"1#$.?<n: ;%.?<n: ; &.?<n: ; % $ > : ; I  I&I'< : ;I  : ; : ;I8 5I  I: ; (  : ;  : ; I8  I: ; : ; I8 .: ; '@B: ; I4: ; I4: ; I4: ; I1B1.: ; ' : ; I4: ; I4: ;I4: ;I .: ; 'I !4: ; I" #.?: ;'I@B$: ;I%4: ;I& '4: ;I(4: ;I)4: ;I*1X Y+ ,41-41.1/101I2!I/ 3.?<n: ; 4.?<n: ;% $ >  I: ; I &'<  : ;  : ; I8 : ;I  : ; : ;I8 5I I: ; ( &I'I I: ; : ;I 8 (  : ; I8 'I : ;  : ; I I: ;( : ;I8 : ; I<  : ; !.: ;'I ": ;I#.: ;' $.: ; 'I@B%: ; I&4: ; I'.: ;'@B(1)1*B+4: ;I, U-4: ;I.1/4: ; I04: ;I14: ;I24: ;I3 4I5!I/ 6.: ; '@B74: ; I8B194: ; I:4: ; I ;<.1@B=1> ?1@.?: ;'I@BA: ;IB1X YC4: ; ID.?<n: ;E.?<n: ; F.?<n: ; % $ >  I: ; I 'I&I  : ;  : ; I8 ' <  I: ; ( ( : ;I : ; : ;I8  I: ; : ;  : ; II!I/ ( : ; I8 5I : ;I8 'I : ;I 8  : ; : ;I : ;I!(" : ;# : ;I8$ : ;I8% : ; & : ; I8' : ; I 8( : ; I8).: ; 'I *: ; I+.: ; ' ,: ; I-4: ; I.4: ; I/.: ; 'I 0.?: ;'I 1: ;I24: ;I3.: ;' 4: ;I5 6.: ; ' 74I48 9.: ;'@B:: ;I;: ;I<4: ;I=4: ;I>?B@.: ; '@BA: ; IB1C4: ;ID: ; IE1X Y F1G H41I1J4: ; IK4: ; IL1RUX Y M UN4: ;IOB1P.: ;'I@BQ4: ; IR1S1RUX YT1X YU.1@BV1W1X41Y Z41[: ; I\B1]1B^.?: ; 'I@B_ U` a4I4b4: ; I c.: ;'I d.?: ;'@Bef.: ;'@g4: ;I?h.?<n: ;i.?<n: ; j.?<n: ; k.?<n: ;% U$ > : ; I < I&I : ;  : ; I8  : ;  : ; I I !I/.?: ;'I@B1B.: ;'@B4: ; I4: ;I.?<n: ; % U$ >  I: ; I &I< : ;  : ; I8 '  I: ;  ( I!I/ : ;I : ; : ;I8  : ; : ; : ;I( (5I I: ; : ; I8 'I'I.: ;'I : ;I4: ;I .: ;' !.: ;'I@B": ;I#4: ;I$1X Y%1&1'B(.: ; '@B): ; I*4: ; I+4: ; I, U-1./.: ;'@B04: ;I14: ;I2: ; I3: ; I44: ; I5: ;I64: ;I74: ; I8.?: ;'@B9: ;I:: ;I; <.: ;' =: ;I>4: ;I?4I4@ A B.: ;' C4I4D E41F1RUX YG1H UI41J.: ;'@BK : ;LM.?: ;'I@BN4: ; IO4: ; I?<P4: ; I?Q.?<n: ; R.?<n: ;S.?<n: ;T.?<n: ; U.?<n: ; n% $ > : ; I I'I' I: ; (  I: ; ( .?: ; 'I@B : ; I 4: ; I4: ; I11B14: ; I?'II4: ; I?<.?<n: ; .?<n: ; % $ > : ; I I: ; (  I: ;( I ' .?: ; '@B 4: ; I 4: ; I 1B.?: ; '@BB1I!4: ; I?<.?<n: ;% $ >  I: ; (  I: ;( I: ; : ; I 4: ; I? 5I  I 5% 4: ; I?$ > % $ >  I'I I: ; (  I: ;( : ; I .: ; 'I@ 4: ; I?% $ > .?: ; 'I@B% $ >  I : ; : ;I8  : ;I8   : ; : ; I : ;I  : ;  : ; I : ;II!I/ !I/ : ;  : ; I8  : ;  : ; I.?: ; '@B4: ; I4: ; IB.?: ; '@B: ; I15I &I!4: ; I?".?<n: ;% 4: ; I?$ > % $ > : ; I I : ;I'I  : ; : ;I8 ' .?: ; n'I  : ; I4: ; I.: ; 'I@B: ; I1B.1n@B141 1 41.?: ; 'I@B: ; I4: ; I4: ; I?&I4: ; I?< .?<n: ; % $ > : ; I I'I!I/ 4: ; I?% $ >  I I: ; (  I: ;( : ;  : ; I8 : ; I &I 'I I.?: ; '@B: ; I4: ; IBB1.?: ;'I@B4: ; I1I!4: ; I?<.?<n: ; .?<n: ;% .?: ; '@B% $ >   I: ; (  I: ;(.?: ; 'I  : ; I .1@B 1 4: ; I?% : ; I I$ >  I & : ; : ;I8 : ;I I !I/  : ; : ;I I: ; (  I: ;( : ;  : ; I8  : ;  : ; : ; I.: ;' : ;I4: ;I .: ; '@B: ; I4: ; I 1!B"1#&I$.: ; '@B%: ; I&4: ; I'(1).: ; ' *4: ; I+.?: ;'@B,4: ;I-4: ;I.1RUX Y/10 U1412413 41RUX Y51671X Y8 9!:4: ; I?<;.?<n: ; n<.?<n: ;=.?<n: ;>.?<n: ; % 4: ; I?$ > % $ >  I : ; : ;I8  : ;I8   : ; : ; I : ;I I !I/ !I/'II I: ; (  I: ;('.?: ; n'I@: ; I4: ; I1B114: ; I?.?<n: ; .?<n: ; % $ >  : ; I: ;I : ; : ;I8  I  : ;  : ; I8 ' I 5I.: ; ' 4: ; I .1@B41 B.?: ; 'I@B: ; I4: ; I111RUX Y  U414: ; I .?<n: ;% 4: ; I?$ > % 4: ; I?$ > % $ > : ; I  I: ;II!I/  : ; : ;I8 : ;I8  : ; : ;I : ;I I8 .?: ; 'I : ; I4: ; I4: ; I: ; I.1@B14141B11.?: ; 'I@B: ; I4: ; I1RUX Y 1 U!1"#1$B%&I&4: ; I'1RUX Y (: ; I)1X Y * +4: ; I?<,.?<n: ; %% $ > .?: ;'I@B: ; I4: ; I1B1 .?<n: ; % 4: ; I?$ > % $ > .?: ;'I : ;I4: ;I.?: ; 'I@B: ; I4: ; I 1X Y  1  41 1B11.?<n: ; .?<n: ; % $ > .?: ;'I@B: ; I1B.?<n: ; %% $ > .?: ;'I : ;I4: ;I.?: ; 'I@B: ; I4: ; I 1X Y  1  41 1B11.?<n: ; .?<n: ; % $ > .?: ;'I@B: ; I1B.?<n: ; %%% $ > : ; I : ;I I'I &I  I: ;  (  I: ; (.?: ;'I : ;I5I.?: ; n'I : ; I.: ; 'I@B.: ; 'I@B: ; I1X Y 14: ; I'I4: ; I?'IP3 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/includecrtexe.cintrin-impl.hcrtdefs.hwinnt.hminwindef.hbasetsd.herrhandlingapi.hprocessthreadsapi.hcombaseapi.hwtypes.hinternal.htchar.hinterlockedapi.hctype.hmath.hstring.hstdlib.hprocess.h@ <-z~.YdzZ lgg2`~Jf~<=]];f$pN8$*@4/7@}fz. <xf1z JuX .Π܅YN_S1 u< K;w[M#+>g8@f_dZS] @+fyt~J <_z< <_z<v /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gdk../../gtkapplication_demo.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgfileutils.hgmessages.hgtype.hgobject.hgioenums.hgiotypes.hgdktypes.hgtktypes.hgtkwidget.hgspawn.hgtklabel.hgvariant.hgdbusconnection.hgdbusnamewatching.hp@Bɠ M WA[>';YX 7\ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtkassistant.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtkentry.hgtkassistant.hgtkprogressbar.hgstrfuncs.hgmain.hgtklabel.hgtkcheckbutton.hgmem.hp@,JMgfN;/Zg;/ZsKe`>f@hɟ0v X)XP׼J[=?g2Y82xatZ,ZZfY/Z$Y/$,=D:FfY/Z$=1<Wf؃==$<bfYYYL555? /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gdk../../gtkbuilder.cglibconfig.hgtypes.hgdataset.hgvariant.hgtype.hgclosure.hgsignal.hgobject.hgiotypes.hgactionmap.hgdktypes.hgtkaccelgroup.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkstylecontext.hgsimpleactiongroup.hgmessages.h @ pO=!KIf_>1[]@0K5vuu,,,,,,,,,+= /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includebutton_box.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtkbbox.hgtkframe.hlibintl.hgtkbutton.h!@ ,0i===ln1[]L5LY/v=/?????</v=/<<<<<C /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includechangedisplay.cglibconfig.hgtypes.hgdataset.hgslist.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgdkevents.hgdkseat.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtktreemodel.hgtktreeviewcolumn.hgtkeditable.hgtkliststore.hgtkentry.hgtktreeview.hgtktreeselection.hgtkframe.hgtksizegroup.hgtkscrolledwindow.hgdkdisplay.hgstrfuncs.hlibintl.hgdkdisplaymanager.hgdkwindow.hgtkmain.hgdkdevice.hgmain.hgdkscreen.hgdkcursor.hgdkmain.hgtkbutton.hgtkcellrenderertext.hgmem.h&@fXNuua'h<JtRq1U:y5YY/Y91ZH0(w91y.XKsrt JKsuXtKd.uG106yug<\pNYhLVlX(:0stu! (qXXM;/KWtXNv:0KWJXM;/KWtNfrZr00Y0:ZX;/LV>w1[a]L5=/Z$=/$Ys/=;/,$=/$Ys/=;/,$=/$ZYI/(,,(,,ZYI/(,,(,,"" /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkcolorsel.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkrgba.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hgtkframe.hgtkcolorchooser.hgtkcolorchooserdialog.hgdkcairo.hgtkdrawingarea.hgtkbutton.h<@*MK/0KIlKWK1KIKIqJK\01[]L3ogghL5L=/YYY)Z+Z[Z/$:* /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includecombobox.cglibconfig.hgtypes.hgarray.hgdataset.hgslist.hgtype.hgvalue.hgparam.hgclosure.hgsignal.hgobject.hgbinding.hpango-attributes.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hatkobject.hatkrelationset.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtkeditable.hgtkliststore.hgtkentry.hgtkcombobox.hgtkcelllayout.hgtkcomboboxtext.hgtktreestore.hgregex.hgthread.hgquark.hlibintl.h gtkframe.hgtkcellrendererpixbuf.hgtkcellrenderertext.h@@ lXlJv +pfY/ JsXoJJTtMGMI\=;/;[bkEO;/Y=;Zuet2*2XXjJ@t@=% J t=&4 J< 6|1[a]~}tfL5Ls/=/;KY}kf0 0Y; hr .Y<;/YY;/$$Y;/$$/==u;/YYu((=/v=/~X~.Kv91/v=/Y/uuY/{ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtkcss_accordion.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkcssprovider.hgtkstyleprovider.hgtkstylecontext.hgtkbox.hgtkbutton.hL@ XfJe=M)1[]VYYK5=/Y/Zj /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gtk../../gdk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giocss_basics.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-attributes.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktextview.hgdkscreen.hgtkstylecontext.hgtkscrolledwindow.hgresource.hgbytes.hgmem.h O@݁=-V{:M-VA=fxKI#XfJe=w-1[a]TȻYYK5/(Z0us/Y,04O /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giocss_blendmodes.cglibconfig.hgtypes.hgarray.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkcssprovider.hgtkstyleprovider.hgtklistbox.hgresource.hgbytes.hgstrfuncs.hgtestutils.hgdkscreen.hgtkstylecontext.hgtklabel.hgmem.h@S@?iGMk03Jrf<w1[a]jȼ0YsY5vLY/>,'Y-///ota ( /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giocss_multiplebgs.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-attributes.hcairo.hgdktypes.hgtkenums.hgtktypes.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtkoverlay.hgtktextview.hgdkscreen.hgtkrender.hgtkdrawingarea.hgtkbutton.hgtkpaned.hgtkbox.hgtkscrolledwindow.hgresource.hgbytes.hgmem.hU@݁=-V{:M-VA=fxKI#f73W=IVLH&=IVLH$\XfJe=w1[a]ȻYYK5Y/\Y/0Y/vs/[=/(Z0Y/,04$ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gtk../../gdk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giocss_pixbufs.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-attributes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktextview.hgdkscreen.hgtkstylecontext.hgtkpaned.hgtkbox.hgtkscrolledwindow.hgresource.hgbytes.hgmem.h[@ ݁=-V{:M-VA=fxKI#XfJe=w41[a]MȻYYK5=/(Z0Y/,04g /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gtk../../gdk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giocss_shadows.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-attributes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkcsssection.hgtkcssprovider.hgtkstyleprovider.hgtktoolitem.hgtktoolbutton.hgtktextview.hgtktoolbar.hgdkscreen.hgtkstylecontext.hgtkpaned.hgtkscrolledwindow.hgresource.hgbytes.hgmem.h0`@ ݁=-V{:M-VA=fxKI#XfJe=\Y/Z=/>=/>=/?\w31[a]NȻYYK5Y/(Z0Y/,04S /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecatedcursors.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkflowbox.hgtkscrolledwindow.hgstrfuncs.hgtkimage.hgdkcursor.hgtkbutton.hgtkstylecontext.hgdkwindow.hgmem.h`e@x/$Y/$-/l/;KZuu,nUOEOI:[1\z^K5=/=/8W/YW/YW/YW/YW/YW/Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includedialog.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtkentry.hgtkbutton.hgtkgrid.hgtkmessagedialog.hlibintl.hgtkimage.hgtkframe.hgtkseparator.hk@#t A0Y/$=$Y/$/u,0u,^s'N/u f<1[]@L5L=/=s//($0=s/>r0Y/$$Y/$/Y'YY,Y'Y /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecateddrawingarea.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkframe.hgdkcairo.hgdkwindow.hgtkdrawingarea.hPr@zJzZH0J%)@bNJPzX&ypx8tVG@~jTNK(z<^Z,0={!-=KJt;gZ:0[u9@8vL YWlJtKeKMNT3p\yt5l1[]L5L=/Y/$/$Z00/$/$Z00000#e /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/usr/share/mingw-w64/includeeditable_cells.cglibconfig.hgtypes.hgarray.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcelleditable.hgtkcellrenderer.hgtktreeviewcolumn.hgtkliststore.hgtktreeview.hgtktreeselection.hgtkcombobox.hgtkcellrenderertext.hgtkscrolledwindow.hgstrfuncs.hgmessages.hgmem.hstdlib.hgtkcellrenderercombo.hgtkcellrendererprogress.hgtklabel.hgtkbutton.hpy@tM>G/Zy;/u\=;/vnxXRsu=DDKY^"pt>K ,vHQE>H0$W&e'W%6w1ZY\YAKK50=/;KZw}$\$$.\XisHssss**ڼr>`ztzX8-1quZZw;/JYI/H,0v4Y/w,v4Y/74=/Y(/$$/$$}.%g /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedentry_buffer.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkentrybuffer.hgtkentry.h@ m"1[]ZKK5Y/$?91Y$/$K /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedentry_completion.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtktreemodel.hgtkliststore.hgtkentrycompletion.hgtkentry.h@ _G?G1$$$`'1[]UKL5Y/$Y;/[91Y;/N /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecatedevent_axes.cglibconfig.hgtypes.hgdataset.hghash.hgstring.hgvarianttype.hgvariant.hgtype.hgclosure.hgsignal.hgobject.hgiotypes.hgsimpleactiongroup.hpango-layout.hcairo.hgdktypes.hgdkrgba.hgdkdevicetool.hgdkevents.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.h gtklabel.hgtkpadcontroller.hgdkdevice.hpangocairo.hgdkcairo.hgmem.hgstrfuncs.hgmain.hgsimpleaction.hgactionmap.hgtkeventbox.hp@O7OZ˃?yヒ$Qy<s/YvI/ujJ}M+itJ;KY;/Y;/vܖ 0,0Y>Y>Z1 .u tav XKOZ,0YI/ YI/N%JKKIi0K!kEO}O,02ɑLdvy!$2$h:Y!"+$(s/gɻ"W/)'"u|xJPxJ"zOE1{OE1qzhMCy%1[a]WYY5u{/',1/;KYY;KDR3>oʲ $o /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtkexpander.cglibconfig.hgtypes.hgdataset.hgtype.hgparam.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkbox.hgtktextiter.hgtktextbuffer.hgtkexpander.hgtkmessagedialog.hgtkscrolledwindow.hgtktextview.h@JK<p=ɟjKIKI  t21[a]JȻ0z^\;/u<v/Y/xuKY $1? /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk/usr/share/mingw-w64/includefiltermodel.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtkliststore.hgtktreemodelfilter.hgtktreeview.hgtkcellrenderertext.hgtkcellrendererspin.hgvaluetypes.hgtestutils.hgstrfuncs.hstdlib.hgmem.hО@?,SttI>4 JxoM<w/ <lzJQII/ZN,Y  t1[a]Ȼ/K50Y/;/u,/;/u,/$/$/$/z0u0/$/$0Y/v:t /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk../../gtk/deprecatedfishbowl.cglibconfig.hgtypes.hgquark.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgdkframeclock.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbutton.hgtktogglebutton.hgtkfishbowl.hgmem.hgstrfuncs.h@x-/ .y/2)=@ySKu;/0,h.AVO.: X>Z;uLHh,>gY 1 vHg-=fpv:0Jȅ_u;/0,h+i1\z^hʻ/YY/Y/5&; /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/usr/share/mingw-w64/includeforeigndrawing.cglibconfig.hgtypes.hgdataset.hgmessages.hgstrfuncs.hgtype.hgclosure.hgsignal.hgobject.hpango-layout.hcairo.hgdk-pixbuf-core.hgtkenums.hgtkborder.hgtktypes.hgtkstylecontext.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkicontheme.hgtkwidgetpath.hgmem.hstring.hgtestutils.hghash.hgtkrender.hgtkbox.hgtkdrawingarea.h0@!„*tQ>w=-/h:0l/== f f%Z7YI/3K$;K;<WKKuKuGX<Yuzxt?qKA,%%Z06."KstptYW/YW/Zr0=Iguɭ,EGEGJp twt-Kv 'sJYu=uuKuIK#9\$K==KsK'}tX}JuW/YW/[qMIY"DDF~tX~J.~JYW/YW/ǭY!V^ZYu<YL|W/YW/YWKuWKwqMIY!=!"ABB[BQ~tzJ<ztW/YWKuW/YWKuW/YWKuWKW/uWKqM-?r-!=?r-!=rv,v-Y#rv,v-Y!#%vJsK:mcJY\JYmjJ^<Be8gxNg<D[<{tt{twtYW/[UMuW/YWKw+MIYɭGIPs/(RXJ.JYW/YWKuW/ˁYɭvFIr:L8Y$I/WBJY$$I/MF=K%x[1[]gYY5YY/: /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkgestures.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkeventcontroller.hgtkgesture.hgtkgesturelongpress.hgtkgesturerotate.hgtkgestureswipe.hgtkgesturezoom.hgtkdrawingarea.h@wuIu Is hH0HqJLK=u4Gw0X XJ!JʃX$GJ!:" <:ɼ,"W/廄]1[]-YYK5u0/$?1~2$,?/$,?/YZ?/YZW\ /usr/share/mingw-w64/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/gdk3/vendor/local/include/epoxy/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gioglarea.ccrtdefs.hglibconfig.hgtypes.hgarray.hgdataset.hgtype.hgclosure.hgmessages.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtkglarea.hgl_generated.hgmem.hmath.hgtestutils.hgresource.hgbytes.hgdkglcontext.hgtklabel.hgtkscale.hgtkbutton.h @+gg}ֆ~Nu"W=Zd>u;/ovV>22Jv.&W=f<ן Jr.q.J<*$X['?W=W=1U?U?=nX<1c[CJKVYW=:ZV>=[%.愃- XדcBs"dZfxuu0=/YYYK555=;/.vH0 ,8==5J,4==5X,4==5/,=1[]x /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio../../gtkheaderbar.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgiotypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkheaderbar.hgtkbutton.hgthemedicon.hgtkimage.hgtkbox.hgtkstylecontext.hgtktextview.h@|$1[a]X5Y/Ys/Y/;/Y=;/KY/uY/u ( /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkhypertext.cglibconfig.hgtypes.hgdataset.hgslist.hgtype.hgclosure.hgsignal.hgobject.hpango-font.hpango-attributes.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkscrolledwindow.hgtktextview.hgdkwindow.hgdkcursor.h@iG]&JZJU-/i"Rcc~:u$ТIu=  Xw((LbKKw",00!z S .kuyw[@wyXC+b,Z0=-Y2, /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtkiconview_edit.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgdkrgba.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtktreemodel.hgtkcellrenderer.hgtkliststore.hgtkcelllayout.hgtkcellrenderertext.hgtkiconview.hgtkcellrendererpixbuf.hgmem.hpAkMGr0$S^,y5{,s/Z/$/$/$/$/$/$;/~w[X/6p /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecated/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/includeinfobar.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgbinding.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkbox.hgtkinfobar.hgtkmessagedialog.hgtktogglebutton.hlibintl.hgtkframe.hA X(E3,KWmX t1[a]>r0L5LYY;//,I/Y;//,I/$/Y1$/,I/Y;//,I/Y;//,I/弻s/=/$.n /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedlinks.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmisc.hgtklabel.hgtkmessagedialog.hgtestutils.hA Kͻ(y55N1[]bKK5 v .0 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk../../gtk/deprecated/usr/share/mingw-w64/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giolistbox.cglibconfig.hgtypes.hgarray.hgdataset.hgdatetime.hgslist.hgtype.hgvalue.hgparam.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgdk-pixbuf-core.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hatkobject.hatkrelationset.hgtkcontainer.hgtkbin.hgtkmisc.h gtklabel.hgtkbox.hgtkimage.hgtkbutton.hgtklinkbutton.hgtklistbox.hgtkrevealer.hgtkscrolledwindow.hgstrfuncs.hgthread.hgquark.hgmem.hstdlib.h gresource.h gbytes.hAu~JntJMIK~Jv$$$$$$$$$$$$$uuv~tf?#eg@====/u!僅-g-g>&JMq.Me.Y?,0KM/1@JLɻI~< TJ n|/1[a]M,rZK5Y$=/$Y;/0K,L~:vvYYt~]<#].1K$ z /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkflowbox.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkrgba.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkflowbox.hgtkscrolledwindow.hgdkcairo.hgtkbutton.hgtkdrawingarea.h$AMv1U1UfzXfJ1[7]aK5=/KYY/;KYzYI/(uw3/ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtklist_store.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtkliststore.hgtktreeview.hgtkcellrenderertoggle.hgtkscrolledwindow.hgmain.hgtkcellrenderertext.hgtkcellrendererspinner.hgtkcellrendererpixbuf.hgtklabel.h0'AVPwLH"u~X 9/19Y2u0?n?tܼ;:01:-/Ltf /L-HIKY&I\B0><~JM/VvuI9MtrM7K0hT@8NB~=JM/VvuI0Y,,/>H0(,//Y,6J /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk/home/vagrant/ruby-gnome2.win32/gdk_pixbuf2/vendor/local/include/gdk-pixbuf-2.0/gdk-pixbuf../../gtk/usr/share/mingw-w64/includepixbufs.cglibconfig.hgtypes.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkframeclock.hgdk-pixbuf-core.hgdk-pixbuf-transform.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmessagedialog.hmath.hgdkrectangle.hgdkcairo.hgtkdrawingarea.hkAy.{6gm?xJ`x  G^p L|v.:ؑrL>rF:&t- .yXuxx .uuX .vt  ft .t<Ng w  Xw. M xe!-=KJY12YYxt_YJfKL5X~3Z+Z[Z~/=-Y1=-$,h.:0 h /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtkpopover.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkbuilder.hgtkwidget.hgtkcontainer.hgtkbin.hgtkwindow.hgtkentry.hgtkbutton.hgtkcalendar.hgtktogglebutton.hgtkpopover.hgtkmain.hgdkwindow.hgtkbox.hgtklabel.hPsAtFN>KIKHI/^ZXp'=L1iCXOH=5.x&1[a]VȻYY/Y5s/11,tY/׃>;/Xvw,,Y/( /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gtk/usr/share/mingw-w64/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gioprinting.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-font.hpango-layout.hcairo.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkdialog.hgtkmessagedialog.hgtkprintcontext.hgtkprintsettings.hgtkprintoperation.hgstrfuncs.hpangocairo.hgmem.hmath.hgresource.hgbytes.h xAJMKI tvt t(uׄr0Y;/?GZg>'4u=0r0Ye/'u"Zv/Ko`[(&lzJ20KWx=ezXWfNYs/Ys/Ye/>,,,Z010 ^ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtkrevealer.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkrevealer.hgstrfuncs.hgmain.h~APYK00:h02WOy @PtJK>,Kv; i/K5+% /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecated/usr/share/mingw-w64/includerotated_text.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hpango-types.hpango-font.hpango-attributes.hpango-fontmap.hpango-layout.hcairo.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgunicode.hpango-context.hpangocairo.hgtkdrawingarea.hgtkstylecontext.hstring.h AZH=v" us"HT tJo&91[18K/KHLOSF[u4w. <htXtփ;/Yw,v,%"Wg$/-K]/sKZ;/=-t XM<7[-1[]UK5=/YY;/w0s/Z#;/%;/ /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtkscale.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hA M1\z^n/K5% /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecatedsearch_entry.cglibconfig.hgtypes.hgdataset.hgmain.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtkmenushell.hgtkmenu.hgtklabel.hgtkbox.hgtkentry.hgtkbutton.hgtkmenuitem.hgtknotebook.hgtkseparatormenuitem.hgtksearchentry.hAJKxIoJLxIoJKxIt===uJ~.h<JKWKLKIpXX<*Jfei=1i=!w=IK_fNZr0YI/(I/(I/(-Jtu׃,>s/us`>x.KK5Y/$=;/Ys/YYYK)//~x00Y[: /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk../../gtk/deprecatedsearch_entry2.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgmessages.hgsignal.hgobject.hgbinding.hcairo.hgdktypes.hgdkevents.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkeditable.hgtkentry.hgtksearchbar.hgtksearchentry.hgtktogglebutton.h@A<KxKxKxKn>sZHL/u!W ! t1[a]ȻYYKK5YY/Y/$YI/$1$I/$=;//$;/,,=;//$/,,,6B /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gioshortcuts.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgstrfuncs.hgfileicon.hgtkicontheme.hgmem.hA Ou;/Ys/Y僃(.yyyyyy)N1[7]\ f/ xK5M /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedsidebar.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtkbox.hgtkimage.hgtkheaderbar.hgtkstack.hgtkstacksidebar.hgtkseparator.hgtklabel.hpA tqXq.0..1[a]NȻYYY/YL5Ys/Y/zzX[$1=/^u <tQ! /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gtk../../gtk/deprecatedsizegroup.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtkbox.hgtkcombobox.hgtkbutton.hgtktogglebutton.hgtkcomboboxtext.hgtkgrid.hgtksizegroup.hgtkframe.hgtkcheckbutton.h A?QyJQIKXNvI=iFN/(;/(t31[a]IKK5Y/vY//vY//6 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtk/usr/share/mingw-w64/includespinbutton.cglibconfig.hgtypes.hgdataset.hgtype.hgvalue.hgclosure.hgsignal.hgobject.hgbinding.hgdktypes.hgtktypes.hgtkadjustment.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkentry.hgtkspinbutton.hgvaluetypes.hgstrfuncs.hstring.hgmem.hmath.hstdlib.hA=,gCyXN㟓YeK}J,/LV}tQywu~YWNuvtYvt[-N㟔;Y~0M#1+?GMwt4Yb2wX ~.tptK5MI/44Y;/$$I/44444Y;/$$=K[X<J:LY-K>BI/?HL">??x<>=I/xN JqX N>Y;/Ys/Y=xDx.#.s/u;/$;/4;/D;/D=/==/==/==/=4=/}<=/00Y/$0 $Y/@$=/Y/$=/& /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtktransparent.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hcairo.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkcssprovider.hgtkstyleprovider.hgtkoverlay.hgtkscrolledwindow.hgtktextview.hgtkentry.hgstrfuncs.hgtkstylecontext.hgmem.hAqw/~t.=~tJ~tJ=~tjJ=r~t.~t-uJ~z.LIg6r0.:$r0%"1'H0.7$r0%".0q1%&A4q1%",4q1%"/0q1%"(w11[a]R5KLZ0Y/Ys/YuY/>0=0 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject../../gdk../../gtktree_store.cglibconfig.hgtypes.hgdataset.hgtype.hgclosure.hgsignal.hgobject.hgdktypes.hgtkenums.hgtktypes.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkbox.hgtktreemodel.hgtkcellrenderer.hgtktreeviewcolumn.hgtktreeview.hgtkcellrenderertoggle.hgtkscrolledwindow.hgtktreestore.hgtkcellrenderertext.hgtklabel.hgtktreeselection.hAvH JwJ?1M+?GM\֡21[7]PKK5=/Y0=/;KZw~( Luf .hv=  t< \;/Y~tY-/4Y-/v, T/Y-/v, D/Y-/v, T/Y-/v, D/Y-/v, D/20'2 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gdk../../gtk../../gtk/deprecated/home/vagrant/rcairo.win32/vendor/local/include/freetype2/freetype/config/home/vagrant/rcairo.win32/vendor/local/include/freetype2/freetype/usr/share/mingw-w64/include/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/harfbuzzfont_features.cglibconfig.hgtypes.hgdataset.hghash.hgstring.hgtype.hgclosure.hgsignal.hgobject.hpango-types.hpango-font.hpango-fontmap.hgdktypes.hgdkevents.hgtktypes.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkcontainer.hgtkbin.hgtkmisc.hgtklabel.hgtktreemodel.hgtkliststore.hgtkentry.hgtkcombobox.hgtkbuildable.hgtkbutton.hgtktogglebutton.hgtkfontchooser.hgtkstack.hftconfig.hftsystem.h ftimage.h fttypes.h freetype.h pangofc-font.hstdint.h hb-common.h hb-face.h hb-font.h gstrfuncs.hgtkradiobutton.hpango-context.hhb-ot-layout.h hb-ft.h hb-ot-tag.h gmem.h@AMYx g-gg=Ki֯KKfJ,h/)}<]J ;0S4Y;KY9?_Dx.dKs }.n. rLUjf <=#h.XgXEZH0 v0ML0V=w $Ao3u%=ǟ;Z=Z;~X 0Y;KY0>rhYguqM9?urYKu=pK2,M;9K/8@?ysfzXJlJKWgW4G[d0=WE]* JBF0UX+XKKh[kXf0YzKi.1[]QtktZ0uuuuuuYYYYYYYYYYYYYYYYY-gY;/;gyXX5n /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/rcairo.win32/vendor/local/include/cairo../../gdk../../gtk/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk/usr/share/mingw-w64/includegtkfishbowl.cglibconfig.hgtypes.hgarray.hgdataset.hglist.hgslist.hgtype.hgvalue.hgmessages.hgparam.hgobject.hcairo.hgdktypes.hgdkevents.hgdkframeclock.hgtkenums.hgtktypes.hgtkwidget.hatkobject.hatkrelationset.hgtkcontainer.hgtkicontheme.hgtkfishbowl.hgparamspecs.hgmem.hmath.hgrand.hgvaluetypes.hgthread.hgquark.hgstrfuncs.hgtkimage.h0BlzJM/>Q~==zJuuvu,x7`_x.`}X~tf~.v00Ftp:LZ!WKp=$lzX8: J~Jtf.0+I;KHKI\FsJ|ffQ|<.ɟi $>}<t1}<tff0Z}<tZ}<t<ktf~Xf=Jfyf\a~f <uf~Gtfrf,h>0M<5Ew Z"WKs~.=K,<|tf|.-zoJZyPXYZ,Li|uYYM#Ks]K;1+|<f|.?< J׻wWtf %~fyfjau uflJMIx9 /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/giodemo_resources.cglibconfig.hgtypes.hgiotypes.hgresource.hB =hB = hB =p  /home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio/home/vagrant/ruby-gnome2.win32/pango/vendor/local/include/pango-1.0/pango../../gdk../../gtk../../gtk/deprecated/usr/share/mingw-w64/includemain.cglibconfig.hgtypes.hgarray.hgquark.hgerror.hgdataset.hglist.hgvariant.hgfileutils.hgmessages.hgoption.hgstrfuncs.hgtype.hgclosure.hgsignal.hgobject.hgioenums.hgiotypes.hgapplication.hgapplicationcommandline.hgmenumodel.hgactionmap.hpango-font.hgdktypes.hgtkenums.hgtktypes.hgtkadjustment.hgtkbuilder.hgtkwidget.hgtkwindow.hgtkapplication.hgtkcontainer.hgtkbin.hgtkaboutdialog.hgtkmisc.hgtkmenushell.hgtkmenu.hgtktreemodel.hgtktreeviewcolumn.hgtktexttag.hgtktextiter.hgtktextbuffer.hgtkimage.hgtktreeview.hgtktreeselection.hgtkmenuitem.hgtkheaderbar.hgtknotebook.hgtkrange.hgtkscrolledwindow.hgtktextview.hgtktreestore.hdemos.hgtkmain.hgmem.hstring.h gbytes.hgresource.hgunicode.hgtestutils.hgtklabel.hstdlib.h gmain.hgenviron.hB [:q+2=xO4,v,02-0,xfQH;/u>yXO&yz0=?sM;/rM;/yPYIu} JUZyE NgwL-=gi'>=Xg_3<X/I=f X[Yg\OzL[e'" =#tOK@C=<C=.C;1$5Jqt~t-@f.$p2Xk,. u/ZYYYYYYY;YZ0YZr0Y/$/$~tXZ0~G? u< d u<i1=/ʼL#L扽>VxI=^vHw-=K=>gzX%t,lDLZH0wd=}PrHL@hB  Xv>0@88880000[U /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/includeatonexit.ccombaseapi.hwtypes.hstdlib.hinternal.h`QB!O:LhsYZ;/u< 2=;Y! /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includegccmain.ccombaseapi.hwtypes.hcrtdefs.hstdlib.h@RB]/?cOKi]Lr]w. /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/includecombaseapi.hwtypes.hnatstart.cinternal.ha[ /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crtwildcard.c( /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/includecharmax.ccombaseapi.hwtypes.hinternal.hRBpZ /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crtdllargv.cRB' /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includegs_support.cwinnt.hminwindef.hbasetsd.hstdlib.hSB2yUv td|ݼgY'fo=<lte XYa[ /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt_newmode.c /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includetlssup.ccrtdefs.hminwindef.hbasetsd.hwinnt.h@TBV,LLLKGKMGNKYy"J8q[ /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crtCRT_fp10.cUB  /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includemingw_helpers.ccombaseapi.hwtypes.hVB%0 /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includepseudo-reloc.cvadefs.hcrtdefs.hminwindef.hbasetsd.hwinnt.hcombaseapi.hwtypes.hstdio.hstdlib.hVBJHL/ .rJAgnr&4,X<v ~t<>~tt~tIJu;.a[ /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crtxtxtmode.cj /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includecrt_handler.cwinnt.hminwindef.hbasetsd.herrhandlingapi.hcombaseapi.hwtypes.hsignal.h`ZBt <=Mq<>Hbt=MX`=Z>It=_Tz /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includetlsthrd.cminwindef.hbasetsd.hwinnt.hminwinbase.hstdlib.h\Bzdv0x< JmtO=-/1Mq/vhV?hq?g->tXNTNJicAL s<Juhu *JKi5K ȡ=lof*`Z /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crttlsmcrt.cjd /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crtpseudo-reloc-list.c /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includepesect.ccrtdefs.hminwindef.hbasetsd.hwinnt.hstring.hp^B =37vP tP.?IuqdR/ltQ-TX=sJMZr[IdNxp..v<KJ8XHJh6tKfIuqd4J2Mf3..zOm(. J.ofMuIhLz]YKg=>0L= /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/math/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includeround.cmath.h@dB ]YKg=>0L=| /build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/includeinvalid_parameter_handler.cintrin-impl.hcrtdefs.hbasetsd.hwinnt.hcombaseapi.hwtypes.hinterlockedapi.hgBvx|  @ @C  H q A 0@>C0z,p@CAI F AAA A @CR@CR|  p@ @9U b(@ACP AB A| (p@AC WA@(@dAA AC K A AAA GA AA(@#C _(0@ZC w F Y4(@jAA C F  AAC W AAD(@AA AC0o C AAF M A AAA |  T @ T0@ T@@?AC uA8T@AA C0j  AAA M  AAA | 4!@AA CE  C AAF D"@AA AC0j A AAA M A AAA |  x&@4x&@rAA CP}  AAA j AA x@'@Px`'@jAA AACP AA AAG [ AA AAE 8x(@AA AAC@AA AA8x)@yAA AAC`mAA AA8x@*@AA AAGP{AA AA x*@ Tx*@zAA AAC`V AA AAA   AA AAJ $x`-@EAA C { CA<x-@AA AACP AA AAC Dxp0@AA AC0 A AAA MC AA| $2@=AA C u AA 2@2@1AC kA403@FAA C q  AAH C AA43@AE@A CF q AA SA$`4@.AA C b AA$4@:AA C n AA$4@>AA C r AA@5@AA CC0M A AAH F AA46@FAA C q  AAH C AAP`6@IAA AAC@j AA AAK M AA AAA | (<@xAC0nA((0=@=AC R AI WA(p=@*AC _F8(=@gAA C0j  AAA M  AAA |  @@  @@ 40@@AA C I  AAA B AA@@.AC hAA@EAC {A$PA@>AA C t CA0A@^AA AC PA AA<A@AA CAPCA AAE@QC@APE@AA AACj AA AAK M AA AAA | 4 L@lAA C J  AAA W AA( @M@AC0j AA M AB | 8 O@AA AAFAA AA0 O@AA ACA AA4 P@lAA C J  AAA W AAP P@MAA AACPj AA AAK M AA AAA | 0( @S@AA AC A AAP( S@AA AACPj AA AAK M AA AAA | 8 U@AA AAFAA AA0 V@AA ACA AA0 @W@AA ACPC AA4 W@lAA C J  AAA W AAP `X@nAA AACPj AA AAK M AA AAA | 8[@AA AAFAA AA0\@AA ACA AA40]@lAA C J  AAA W AAP]@AA AACPj AA AAK M AA AAA | 80`@AA AAFAA AA0`@AA ACA AA4a@lAA C J  AAA W AA(b@AA C  CAPb@~AA AACPj AA AAK M AA AAA | (T`e@AA E0 CA<T@f@AA CAEP AA AAC T`g@-AC cA8Tg@nAA C0j  AAA M  AAA | <0k@AA AACPv AA AAO 0m@hAC0bAD0@n@ AA AC0j A AAA M A AAA | 0Pr@AA CC@A AA(s@pAE@G CA [Cps@;V U0s@AA AC@F AAPt@2AE0hC8t@AA AACpFA AA0u@JAC \ CA Y CA ECDu@zAA AC0j A AAA M A AAA | 8py@~AA AAC@rAA AA$y@;AA C s AAD0z@AA ACp? A AAH _ A AAA {@%P{@kAA AACp AA AAA dAA AAP`}@AA AACj AA AAK M AA AAA | D@AA AC0j A AAA M A AAA | (X@AA C@ CA8X@AA C0j  AAA M  AAA | <p@AA CAE` AA AAA P@VAC PA<@AA AACP CA AAC @*AC `A0Ѝ@kAA CE ]A AA@@@oAA AC P A AAG CE AA@3C o<@AA CAJ  AA AAA 8@ZAA AACpNAA AAPp@BAA AACPj AA AAK M AA AAA | @IAC0CA@C Z0@%AC [AP`@oAA AACPj AA AAK M AA AAA | О@=C@y|@,AA AAC` AA AAA \ AA AAA [ AA AAA FAA AA0@@yAA AC@oA AA@sAC@mAP@@AA AACPj AA AAK M AA AAA | 4@AA E o  CAF K AA<P@AA AAC` FA AAA D@CAA AC0j A AAA M A AAA | T0@4AA CAE@k AA AAF  AA AAA 0p@VAA CE FC AA0Ь@IAA CE b E AAM 0 @AA CGPA AA<@@AA CAJAA AA8`@1AA AACp%AA AA8@1AA AACp%AA AA<@{AA CAE@Z EA AAE <`@#AA AAGm AA AAD 8@AA CAJpAA AA8@3AA AAC`'AA AA<@EAA AAF4CA AA8@@qAA C0j  AAA M  AAA |  $@ $@ $@ $@ $ @)$P@,AC fA,$@/AA F  FAA 8$@dAA C0j  AAA M  AAA |   @)lP@AA CCPNLCPd@HPELIPUDCPK C AAE UDCPo@HPDLCPEA AAp@AA F[  CAI fHIIPCgNMHIHqxHYHICQCIHH HA40@QAC [ AA VH JC CA@aAC@WA@ AA AACP[ AA AAJ IHCPOLIPQHCPWHIPa@CPQHCPLCP\HCPRHHPELHPQDCPdDCPo@CPtLCPKLCPILIP]HIPKHCPMHCP8@9AA AAC`+CA AAP@SC j C M C | P!@!AA AAC@j AA AAK M AA AAA | H"@_AA AC C AAA y C AAA 8"@@AA CAG@yAA AAD"@AA CEpJ A AAI  A AAI 8"`@^AA CAC0PAA AA("@=AA F_  CAE 4"@_AA C`X  CAA x CAD"`@\AA AC0j A AAA M A AAA | #@LC H(#@AA C@  CAA 8#@LAA CACp>AA AA4#@@AA CP  AAA O AA#@HAC ~A(#@@aAA C U AAP#@AA AAC@j AA AAK M AA AAA | 0@%pAiAA AC@_A AA(@%ABAA Cp: AAP@%0AAA AAC`j AA AAK M AA AAA | 0&AXAA AC JA AA& AtC W F H&A{AA AFr F AAA  A AAB $& A5AA C i AA$&` A9AA C m AAD& AAA AC0j A AAA M A AAA | 4P'AAA C0  AAO C AAPP'0AeAA AAC@j AA AAK M AA AAA |  'A'AAC0C('`A>AC0j AA M AB |  `(A `(A`(A:AC tA`(AFAC A `(`A `(AmAC gA0`(ACAA AC xA AAD`(@AAA AC  A AAH ^A AA `( A `(@A4`(`AiAA C A  AAH V AA `(A `(A `(A'AC `A`( AS0l`(AQC0AP`(@ AbAA AACPj AA AAK M AA AAA | *$A?AC@wCP*$A6AA FAKs AA AAE P AA AAA | 0+0'A;c W$0+p'AOCP FG P00+0(AAA ACPA AAT0+(A*AA AAFz AA AAH \ AA AAA | P,.AAA AAF AA AAA [AA AAP,/AAA AACj AA AAK M AA AAA | D,3AIA CAJ`AA AAN`@,4AAA AC S A AAD [A AAP, 5AAA AAC@j AA AAK M AA AAA | -8ATAC0NA8-9A2AA C0j  AAA M  AAA | 0.@:AC W 0.`:A0.:A0C l00.:AAA CGPA AA 0.;A!(0.;AACP AA WC0.@A p>`A p>A p>Ap>A3C o(p>ASAA C G AA p>`A Pp>pA/AA AAC@j AA AAK M AA AAA | 8l?AAA CAE@uAA AA l?0A l?PA l?pA l?A l?A l?A l?A,l?ИAACP@ AK M AB | T\@pAAA AACz AA AAK M AA AAA | @ A-AC cA(@PAMAA C C CA8@AAA CAEPAA AAP@AAA AAC@j AA AAK M AA AAA | AA8C t0AAAA AH0F AAPAAAA FAH@ FA AAA KFA AA(APAAA C@ FAAAHC@~(APAAA C@K  AAA (A AAA C0  FAE 8AХA AA CPj  AAA M  AAA | DCA!C YDCA!C YDDC@AAA AC0j A AAA M A AAA | (CAAC0j AA M AB | 8DA%AA C0j  AAA M  AAA | 8`D A\AA AAC`KFA AA`DA"C0j C M C | <DAAA CAEu AA AAA PDAAA AACT AA AAA uAA AAPD AAA AAFr CA AAA P AA AAI |  E A <E0AAA CAE AA AAC 8EPAAA AACp FA AA8EpA AA AACFA AA(EA AC0j AA M AB | 8FA/AA C0j  AAA M  AAA | ($GAOAA C E CA4$GAVAA C }  AAL C AA($GpAAA EP  AAF h$G AAA AACP' AA AAN P AA AAA GAA AAP$GA2AA AACP AA AAG IAA AAT$GAAA AAC) AA AAA h AA AAA D$GAAA ACPm A AAJ @ A AAA $$GPAEAA E y CAd$GAAA AAC`{ AA AAJ [ AA AAA [AA AA4$GpAAA C G  AAB A FA@$GAAA CG@[ A AAF UA AA($GAcAA E0T FAP$GA AA AAFr CA AAA P AA AAI | (JAAA F AAPJ@A;AA AAC@j AA AAK M AA AAA | 8HKAAA AAC`AA AAPHK A AA AAFm AA AAE P AA AAA |  K@A KPA!AQ A GKA6C r0KAAA AH A AA$KAAAA C y AAPKAAA AAK| AA AAA AA AA<KAAA CAHp AA AAA KA7C oKACH<KACAA AAF  AA AAA K BK0BCC R K bDKBAA AC0j A AAA M A AAA | 0N0BKAA AC AA AANBC W NB)AC0#APNBAA AAC@y AA AAA Z AA AAM 0NBDAA AC xC AA8N BAA AAC`AA AA0N BAA AC0F AATN BAA AC@s A AAE d A AAH ]A AA<N BAA AAC` AA AAA N B NB N0B NPBNpBQC0APNBBAA AAC0R AA AAC AA AAN`BC X NB8NBpAA AAC@`AA AA NB4N BAA E Q  AAF h AATNBAA AC@q A AAF d A AAI SA AANB:AC sA| RBC ORhBC OR hBC O| (dRBwAA C0d  AAE dR`BC Q<dRBAA CAG` AA AAH 0dRBHAA AC0~A AA(dRBAA CP`  AAI dRB C \dRB;AC0uAdRB+AC eAdR BAAC@{AdRpBhAC0bAdRB6AC pA(dR BAA Cp AAhdR BdAA AAC@d AA AAA  AA AAG  AA AAB <dRBAA AAHAA AATdRP"BN AA AAFj AA AAA  AA AAA <dR.BAA AAF AA AAA TdR2BAA FAC@x CA AAF M CA AAA (dR4BAC`c AH A dR@hB2AB G' | (,V`QBAC0 CB PA,V RBC T| V@RB,N\ VpRBFAC j AA VRB|  VRB|  WRB| \,WSBAA AAC@f AA AAA MPV[P[VPVPP0[PlPPP KP\PPPSP*S*PSPRRQWQW'P'VPV*9P9SPvPPPPV9@P@SPSPWPWT[P[U P SSS37P7VVVIMPMWWW0PPUU0PP0PPP\-V4;P;UBqPqvSrS2<PEIPPVPRSRPUeiPitVwVePBwBeiPiPVwVuyPy6LPPSwSPAUP*W*.P.PWwWu90;BPBPUw06:P:PLwL$P)0)4PPSPPV,0P0S \ \P S S%P% W WR ] Pf POvPvUP U=B B V  V=J J=: :=* *Pm|P|W;BPB=U U P G V P Z S @ P 1 @ P SG VQ U PU WZ \ PZ \ P\ S ;S;="P"<V@PUW@UUWP@UUWRHUUWRhSxPPPSPP:S:;P;jSjPSP;jSjPjnPnSPSP5V#+P+4S49WoPoxSx}gggSPgVPWPgW VSPSPS&P&*V*1P15V5<P< VP PPYuPudUdP UPWPwWPSP Sw{P{WP W  P#*P*sSswPWVPWS)kSqSPV p0)^bPb|SquPu}V}~PPSPPWmoPoVPmo0yPSP#W# PS P S P 7 S P , S*.P.:W:>~>  P '   P V  P VmqPq V P S7 > P> S, ; P; S P V P W P  VPSP S + P+  P P`S0`U7 > P> o S)PSPRRjSjl.GPHLPV]P]!SPPPPPP!%P%ASP"P"SSSSPP%.P.WGKPKU"P"VPSPWlSWFJPJVl|P|SaePeSS PVVzSSzVVz0bV0PW00(3PPbSP"P"SS{PV9`S`bbzSz|>WPX\PUYPYgWlpPpVP~\PSPnSnyPPUPVPSgnPnWP"P"SSSSPPPWbqPq\PP]U]aPa]VP]SP]WP"P"SSSSPPPSP PDVDKPK~V~PVPW3BPB\PU\P\.U.2P2.VP.SP.WPVPRR P tSt{P{SPPWPWRVRVBFPF\PjnPnSPPUPU#2P2GSP (S(,,P(4P4SdPVPSP'S'+P+cScgPgSPSPSquPuST_P_XPVVPP~SSpuPuUU P WWIhPhWP\mrPPP7S )P)VOVPVSPSPLVLhPhjVPWPIWPISjPVPPWPgnPnSPSj2%T.8P2SPS@0*X.8XVv8V`dPdVE\jPDUttPtPWPVPS<KPKV*P*SP<VPV S~ P {V!4PQvUJNPNvWPSV6:P:V3PVPS  0S033PS 1 303P1PpPlltPPdP\ V V P~SSPUU pPpPPWY Y WI M PM Y VRVPVSY Y t St  P Y S P W P Y W#0#-U-~u~UY 0PV1Y 00PW S&mPm% U% < P< U P  UPS&P&dViPPWdhPhV#*P*SPP=SPV2P2XV=EPESX`P`VPUPURSRSQDQDQPU)+P+WWPRHDHDP5S56PK(>'K(S>'SZ^P^(H>'HdhPh(W>'WnrPr(V>'VuwPwQ(L>|L|QQQ'LP(U>|UPUPUP U P'U(u>|uP`oPoVP`zRzWR{W{V{0S(V(..9V9?P)W.7P7:W:>RPR'S'-Cc0CcPSP SRVRR VR RPWWs W (P(U+B~~SR h Ph V P V v3DvuvvP:SP W BT3P3]V3P3VP$W$0t0BX5:P:B\,0P0BPUYPYSPBS5:0-PUYPYU\cPcSPVPSPW*.P.\KWWW!!jWjl]aPaUU U!kUPPWPW6>P>bSPUPWdhPhVPWPVszPzUPUPWPWP]W]dPdW"P"aWahPhWP W ,P,WPPBPeP#FPiPPS P :V:;P;VP1KPKNSSP!1;VNWPWS;1;H00\P0(c(UcUP(ScSPSVRVQVQQRQWVQ9APA^V006R6b>VUJQPQVSPcSPcVPcWPzUz{P{#U#$P$4URoSosR{SWW S $R$4S%P%xV{VPVP!V$+P+4V7<P<yW{WPW3P39W9SPSYWYePeW"WgSSiSSPcPP@NPNVP@NRNWRU\P\SPPSRPPSRWRRWPVPPPSPRVRQWQ'P'{W{'P'R'&U&'R'Q'SQ'VS0APAaD0FRFaH0VQVaL^bPb`UeiPi]SpPDpRHpQLPUPSP W ! R! " P" & P& + WRSs|" R" & R& + SQ" \" & Q& + \P U ! P) + PP V00 8 P8 V P SV0 D RD ( ( R S0 S QS ST a Pa Sk P U P SU P  P S P  P S   P W P SW US R  Q S`tPtUyP`mRmsWsyR`|Q|HyQPqSqxXaVaqXs40.(qxX40.(PtUPDRHQLPUP@PWPVPV~Tt:tW vw"# R:~T:Ss;Q;<sb<2S2H~,{V*&:*&?&~((~,,S,, ws"# ,,Q2:22%Q%--5Q5AAGQG22~2S2UP2VP2W~2:2K2QQQQQ2~2H~2UMZPZ~[hPh~ptPtS|~P~WPV,:,,~,{V,U?CPCWDQPQ~R]P]S~^g~nw~~~*&:RQ*&*&~~*&U*&P%V+/P/%SP*&~~09~\e~LU~wyPy &W~@KPKwWw*&~~~~;~P~ LHLH,(a R LHLH,(*&F&F&(W*&(~*&?&~*&(~*&(UR&V&PV&(SW&`&~n&r&Pr&(Vs&|&~&&~''P'(R((~((~(,W()~((~(,~(,U(,((P((S(,~((~((P(,V((P(<)S<)h+~))~X*w*Pw**~++P+,~~**P*++S++P+,S4*~*S~*+~++S+,~2)c)Pc)w)ww)X,~--P-.V- .P ..S 2@R`pPV ['[PTS2P2VPV;P;VPV%P%TV0@P@VPMVMOP0EREO\OkpkllO\KOPOSPLSPNWD!Z@!Z0>SPV!P!GSq|P|VPGVPVPSWSWPQS*5P5USdhPhSScSSPSPScgPgS P [SiVszPzSPSVv}P}V:APAVP V P k V P  SPP^ i P ' P' W4;P;vVP:VPV P Vk P VN ] P( U WL[P[SEP`|P|WPWPWPWPWP`WPVPV$P$sUPFU#*P*yUPLUPUP#P#SsPUFePe#UyPULkPkU>P>U222pwPwS>ePPS^eS^iSijxSHSLSLMaWilPPrPFSIoS P V P6W6=P=WPVP V##P)PS 'Sp0)v0) (v0)X`sPu|P|S- < P< Q Vk s Ps  WPV S P  P  \& < P<  X& V 0 1 UV S & P& S 1 UV U1 ; P; UV g 7g 8 91 F 1F T 2T b 3b p 4p 5 6 P UjnPnSvjPWvj0IWPISPIVS#+P+WP|S|t -PSWPWWLPS0*V08R8VvVPW*DNRRRD*v4.Nv3.v4.4^SMpPpVP>PbPP?PPVPIVIPPPVPVPJVJQPQ^V>BPB^W!<GPGuWuPWbgPgU#P#SPSAHPHtWt{P{W'+P+V.3P3U[bPbSP'V P +W+.P.PP%'P'%4049S9sUsSS%4047V7vVvV%419VvVv49SnrPrSS P LWMnW P JSMlSMmVmo{PSPWPV6P6qWqvPvSPqSPU&P&IVINPNVPV?HPHODPSFKPKVpPRSRUPpRSVSURpQTWTUQ@[*<_FH  "HL\ H $[0F]FU "<@[[UP[UXP X "P lX"X P "X lP"`|`x`x x[L2L2LXXLP@L2S@[][+  "?X[ X _+   "?[_[2Hko[o2PH P "H pP"H lP"P H "P pH"P lH"JS S   SVaPCG[GPOS[Z^  P "^h  lP"Z^P   "^hP l "!P!WPjSjlPlSRkVklRlVRPjSjlPlS[ [[l@ %+PbSbffKSKOOD S13P3KVOWV:eUfNUOD U>BRBOD [OD [X S  f Sf i i SA I PI g Vi V P   R    P  Q    R 1 0 R  Q  V  0 V0 4  P P 5 l / S/ 5  0 V0 4 H o So p p S p S   P` S` S  8SSE^P_cPcSckkhPV P WPU V V tVPPUPV PVPSPSRVRVPSPSP[SSSpw1$ w1$ w1$~ w1$uw1$Auw1$uxPxWW~WS IPNfP IXNfX}FSFIIxS!)P)GVIxVPRP Q R10RQ V V  PP l S   V  ( O SO P P ~ S~  P ~ S~    P`  S` S % ) P) Ub f Pf S P \ P Xq | P| V[ _ P_ WPVt\PX $P$SPS%,P,UV0WwW%VPU4eSPV+7P7WBFPFUP$S$,P,SPSQ`P`SPWPVV" sp)" sw) w) sw) w)PZV\rV sp)Y sw)Y[ w)\q sw)qs w)\PUPVPPS P%PCPCWP7W7_P_WPWPUP4U4;P;U}PW<WPWVPPSPjS07P7VPjVjqPq&V&-P-VPjVcPW'P'WPXWXPWPjWrxPR[p`FA~`FAqp`FA0mS[\qqs\s[qqz[zq~VnVWoWPr~~)HPHq~)=~c ]ll(V0bfPfSUWUW PPRVRQWQPSPPVPPSS  S PT!(P(WPVPhShlPlSPShlPlSPUP\PWwPU%S%))*EMUMN NUOVPVS>WNSPOVOSPSKVNV^d[WR99>R0S9>SPW t\hPhWPSS#'P'XWWKX0XbQbePelQ0 bX<@A !@[P"SPmVPV"&P&fSPES/:PELPLSSPPCSPzVz}PPS t PkPBSBHRHN rB"NU pB"U\ rB"\]s}]qSqxPxyS=\PP W HPVPLB`P`WD PWt\P>WWPP 5w6w5wPVPnSnrPrSPVPVV]P]SRPRPSPP9W9`P`WPWPSP~S~PSw{P{W p@$0. u@$0.PnS/OPOVP/VnPSP\V\{P{VS0  P 0 ,,4P@P@LLTP`p`lltPPPS (5>P>7VPWP_W7ZPP^U^~P~7U7>P>VP_VlpPp_S{PmUPWmPUPWPRHSHRQ\.2P2VHLPLS!(P(U>P>SzPStPWlpPpVtPAEPEUPUPzS^`00BSF0yVp0.@BPB|V|}P@WSW_s|_{SPmWmoPRnUnoRQo\PkSPlVPVP#VP{U{PUenPnW#>P>VPSW^P_a[_a1aSsS1SsS\SV15P5VVWOSPSWW[0[10PP@S[Bhh N@_vP{ p \[PPShS0Y0Yh1PIV*KPPPSPxP+SPVPgVgnPnVP+VP LPoPPwPVP!SPVPWPWP!WPW)-P-!VV]P]SP%SP%VP<SPSVPXS04P4ZW:BPB[UPCWCEPEW"P#%0 V SQPP  PJJaPaPPw0P U#P#JUj{P{UPP PmVmjkmPmjZ^P^jPfSk0kkmPmPVPWPlWP U l~~P1V1@P@ V:lVPlS] S S:lS  P U:kPklU P 1:l02P2cSc&P2R2UR&U8XPX}VckPkS&SlU&UlS&S}PV&VPTPTFSPIU}PUPHWt{P{YSP[WP\UP]48P8iS P /VP/S!FPcVc}SPSTPRTR505KPKT0PJVKTV#4P4ESKRPP0SKTSPUPU%UU0P%)P)S0S`sPs"ZPUU%UUP0%0%11%)P)SS*CPDHP;IPIlWlrPrWW<W;00%P%,;0PSS0:SNlWrWW<W\`P`r001B1S:SPPP0P}VVVftPtWP~WWWf0P}SSSyW~WWWP0}SSSPPPP}SS!1PP2:PPkokUk}VVksts}SS~P}WWP }UUVSW PP&W'sWtWPVPPVPPSP%W'WWP&U'UU H VH I  G SG I   P = RP ^ P^ S P S PP e Re V R V RP e Qe W Q W Qj l pl hx z pz ~ l~ [ l S P W Q V R A SP c 0 ~ 0~ P WP c 0 0PHP c 0 ; 0; ? P? U@P c 0 0 P E VP c 0 0PUDP c 0 0 P VP c 0 E 0E U PU V 0P0VP c 0 0PP c 0 0PvSP c 0 ]0]dPdVP c 0 0PWPSP c 0 v0vPSPWP}PLPUD]nUP}SapPyP]yPDU:]:0V/v/DVPVD P 8WSDS}}0SPPSPVUPVW~wWlEUPUVPVPAVAQPQVPVPhVhoPoVP@V@GPGlV PlSPEV @ ? VQP VQl[V S[sPs%V%IPIVPVPzVzP_V_P+V+OPOVPV~[~PVPSP VP S  P W% 8 P8 US!P!V;BPBWPSP(W(D~D ;?P? VP.SE`}B $.P{U{u`.UXP VPpPpuxPxpcfPfqpADPDOp " P" - pkPWPWPWP|WPZW{PP WPPWPW|PWZaPa{W8 ? P? P SbfPf8 S0V1VPTYPYVcjPjSkzP0jw00)S P-1P1l|2APBePjnPnM|P}VP S$VP4SP4}P!V4VP40U#U$?Uch1h4U0P0P4WW$WWPPP zPS00S<F0FrVryp yvV< S 0S q Rd o R 0 0 PX _ P 0PP z"P"RWRZtZ z#?PPzo ~ z1@PyF1F@\}P}y2 q Uu SX d Sd o U S U z PX d z z P X S< u Pd h P P $ R$ *  *  P W4 6 06 F Vx P V2;P"DSSSR88H\HrVsVAVHrVR88H\HrS@SHrSRP+XHWXVsSP V VSPWOSS0V$PROQSW~PPiizPz~ R igVgi fSfiPiPPRLQMWMUQUWPPUUQSUSP+ U +0U0+\Ua\alPltt\P\+XUlXltPtXPX+LUL+UUUMUUU P PPPP 006PPS: S: > >  S !  P  VS: S: > >  S !  P  P>  WE ^ P_ c Pq w V P U  P* . P. X* t U # P# . U. \  S S V  V ( ( E VE J  P (  ' W' (  % S% (  V ( X S BBPBBVBBLBBRBeBSeBiBRiBBSBBQBgBWgBiBQiBBWBBPBaBViBBVB%BP%BaBUiBBU BaB1iBB1 BaB8iBB8BBPBBWBBPBBSBVBSVBXBXBBSBBPBBSB BP BBS5BHBPBBPBBSBBPBBTB BPBBPBBS BBSBBS B[BB*BeBqB$B;B0;BbB1bBsB2qByB14BJBPKB_BPsBxBPBBP'B5BPUBeBPqByBPBB0BBQBBQyBBQBBPBBVBF"B~BBPB"BW"B;"B~BBPB;"BWB"B1"B B0 B BP B B~ B;"B0&&B*&BP*&BG-B~z-Ba.B~;&BB&BPB&BG-B~z-Ba.B~\&B`&BP`&B&BV.Ba.BVi"B&B0&B 'BW'B (B1 (B+B0+B+B1[,B,B2-B@-B1G-Bz-B0z-B-B2-B-B3-B.B0.B.B1.B.B0i"B'B0'B(B1 (B+B0-B@-B0G-Bz-B0-B.B0&B&BP&B&BV&BG-B~z-B.B~y&B}&BP}&B&BS.Ba.BS&B&B0&B'BV'B(B~ (B+BV[,B,BV,B,BU-B@-B~z-B-BV-B-BV-B-BU-B-BV-B.Bv.B.BV"B"BS"B"B~"B"Bs"B"BS"B%BG-Bz-Ba.B.B"B"BP"B%B~G-Bz-B~a.B.B~#B#BV#B#BP#B%BVG-Bz-BVa.B.BV"B#BP#B#BU#B%B~G-Bz-B~a.B.B~.B.BP.B.B~#B#BS#B#BP#B$BSi-Bz-BSa.B.BS+#B/#BP/#B#BW#B#B0#B $BP $B$BW$B%B~G-Bi-BWi-Bz-B~a.B.BP.B.B~$B%B1G-Bz-B1a.B.B08%B@%B~$B$BP$B%BW;$B,%B0;$B,%Bې Y$Bh$BPh$B,%BS$B$BP$B,%BW&B 'BP 'B(BU(B (BU (B%(BP%(B)BU)B)BP)B+BU0,BI,BUv,B,BP,B,BR,B,BP,B2-BU9-BG-BUz-B-BR-B-BP-B-B~-B.BU.B.BP(B)BS)B)BS)B)BSK(B`(BR`(Bc(Brc(B(BR)B)BR)B)BU)B)BR(B(BP(B)B~)B+B~-B.B~r)B)B0)B+B1-B.B1u'B'BP'B'BV'B'BW,B@-BV@-BG-BP'B'B0'B(B1.B.BP.B.BR.B2B.B/BP/B/BS/B2B2B22BP22B2BW/B/BP/B2BS/B/BP/B/BP/B0BW/B/BP/Bg0BVg0B0B~/B/BP/B0BU0B=0BP=0BJ0BUJ0BN0B~0B1BS0B0BU0B-1Bul-1B1BU0BN1BWN1B1Bwl2B3BP3Bj3BS3B3BW3B3Bw3B3BWK4BS4Bw4B4BW3B3BS3B3Bs3B3BSK4Bb4BS4B4BS2BA4B0K4BS4B0S4B[4BP4B4B04B4BP3B3BUK4Bz4BU4B4BUb4Bi4BPi4Bz4BS3B94BW3B-4BS-4B04Bs04B94BShBhBPhBpjBSjnPnSP:CS`bSdvS?JSJMsM_SBJPJOPT'VBV2Ss|,ZS}Q`PSMPMTPTPSPFWTWPW`0SMT0Px{Q{PPqPqPqPxVguPVCRSRZstuS;KSRSSSsxSW4 P2DV1DV 4 D V0gS;Stutu?TPPP#8P>SPYsPyPU0UW W0 909> >t0ty y0 y0010iS<=P=UVPSPS&202ARXfR0&2R2:P:=R=APXmPRPSPSPP P  PP#<"P PP#<"p PP#<"# ..1P12$..1P12@xx{S{}M_R_} #<"[zPM_0_xQP S PS0 VV\SS\jRdPP\j0jQQQGQ R;P>GP 0GRSSSRP0QkSs||S9SQxP?kPsxPCkPCSQQkRCS0SkV![7;[PT[jp[[ P[ P(Z(ZH. p =d"%D /5//>DRo`ceP579= gjo)kqq (owy?`- 5 7 o ` ` jK(@'@(ccHd29>BDH*&1&8&?&((((((,8COUW   f:C_$&+-ACHN/4Udw0)[ [ $}` `   HN*9$,Phf}pGD  + 0 5 c{0@B c   % : A E T(?B] @l *.l&cP\r|2dgo} > A F lu}lu}0CMQX\fp#~  u h ~ <Cr0U@ITd  g m u w   BBhBhB hB3hB BaBpBB BBBBgBsBBByBB"B%BG-B-Ba.B.B#B%BG-B-Ba.B.B#B#B#B$B&B'B(B)B)B+B0,BF,BI,BQ,BS,B[,Bl,B,B,B-B$-BG-B-B-B-B-B-B-B .B.B&B&B(B)B)B+B'B'BP'B'B(B(B,B-B9-BG-BE0BJ0B0B1BB~5B@hBrjBp;Kp;R``j"-2<@EIV\R]`j  *.file,gcrtexe.cj  0 _envp_argv_argcp _mainret   .textX.data.bss " A+6  ES T_jyu .file=gcygming-crtbegin.c ` .texte .data.bss.rdata"jy.jcr.file`gapplication_demo.cp $   .textp&.data.bss .rdata$|" q AA +O6  EST _jzuh.filegassistant.cp 7 M a0 z(,   .textpn.data.bss(.rdata(, @@ `+6@  E0S ;_4j$zu(, .filegbuilder.c  0  @    0 .text V.data `.bss0.rdataA C -+-=6`  SL _,j@zuT.filegbutton_box.c  $4.textQ.data.bss4.rdatavV   +j6  Sg _% |j\zu.filegchangedisplay.c2 K _@ q`   @   `  p   8.text .data.bss8.rdataI"f 84d +# 6  ES, _ sjxzux.filegclipboard.c" ." >" T0# a# s`$ $ $ % & `& <.text" .data.bss<.rdatahTZ BB 8+N6  E`0SF b_jzu$.file:gcolorsel.c, _window_color`0- p- - _frame@_da.text,WG.data.bss@H.rdataSV Qzz + 6  S &_*3jzu(.filedgcombobox.c 0  0 600 J0 h1 P1 1 1 5 5 .text0 .data.bss .rdataK >mG n+6  ES ._]jzu.filegcss_accordion.c< (@= :.text<A6.data.bss.rdata\ UZ  g +o6   S# _jzu x.filegcss_basics.cH ? \? @ n@ }.text ?I.data.bss.rdata \f d{ +Q#6@  S{& _!$j{u .filegcss_blendmodes.c@C C .text@C5.data .bss.rdata z vJ +t6`  E(Su* S_&Mj {u( .filegcss_multiplebgs.cHE \F @G G `H .textEf.data .bss.rdata ~   +6  S- _P(ij<{u D .filegcss_pixbufs.cHK \L 0M M }.textK]M.data .bss.rdata@ `c 4! +M6  S2 (_->jX{u.file$gcss_shadows.cH0P \P Q R R .text0P.Z.data .bss.rdata s # + 6  S6 k_1jt{u< .fileDgcursors.c `U -@V 9`W EW Q.text`Um.data .bss.rdata H % +!6  SL; W_6j{uT.filefgdialog.c_[ _window_entry1_entry2{] _i.49594 @^ .text[Iy.data .bss .rdata9 ' +$n6  S> _8:j{u0.filegdrawingarea.cPb _surfacec pc _windowc Pd d e /e .textPbd.data$.bss.rdataV E#]) o+&i6   SJB _ =0j{u.filegeditable_cells.c?pi LVi e0j ok k `m .textpi .data$.bss.rdatax]# #s+ +c)6@  E@hSE _=@Uj{ux .filegentry_buffer.cu .textu&.data$.bss.rdataYoG > W`/ n+-6`  SJ k_Ej|u\.filegentry_completion.cv  w  .textv1.data$.bss.rdata4wR 6q0 u+h.6  S:M _8Gj|uX|.filegevent_axes.c) py ; F P{ U ` { j } { }   @~  ~  ~ _draw_cb  p   @ .textpyB.data@.bss .rdata` UC2 +'/6  E`SO R_VIj8|u4.file:gexpander.c2   _windowA 0 N ` .text9.data .bss.rdata  7 +66  S7V _QjT|u.file\gfiltermodel.c[ Ў i  } (@    @  .textЎw.data .bss.rdatas K8 #+w76  SY _Sjp|uT .file~gfishbowl.c    P    .textc=.data .bss.rdata<d = ; +Y:6  E`S\ >_V\j|u.filegforeigndrawing.c 0   4 p M М X  d @ w `      `     _draw_cb  @ , .text0.,.data .bss.rdata  T[z= +R=6   EhS` ?_?Yrj|u4.fileggestures.c:  N  f  ~     _swipe_x _swipe_y P  _rotate,_zoom(   .textT.data .bss .rdata|OO ]A +S<6@  SRh __j|u$.filegglarea.c   L_gl_areaH < P _renderp _program4# 01 8B 0 M  c 8_realize s `   P .text  .data .bss0 .rdataj (hC +CTz6`  ESk [_Zcj|u.filegheaderbar.c   P.text!4.data .bssP.rdataP  fG c+\6  SUq _mf?j|u!h.fileFghypertext.c   ` X \@  ` + 8 I` WT.textn.data .bssT.rdata$ c 8I 8+]6  E@S2t ,_hQj}u".filengiconview.c _windowlehrd  @  @  #.text.data .bssd .rdata" V%9L +(bt6  E0HS^x _lj4}u#l.filegiconview_edit.c_editedp  0 p.textpGA.data .bssp.rdata#XT O 1+d6  Ex8S4} _qjP}u@%.filegimages.c ,  >xL|[ti _window~  `  .text .data .bsst.rdata$ &@Q +e6  ES +_t jl}u&H .fileginfobar.c 0 .text.data .bss.rdata%x& *S +h"6   S t_xj}uP'.fileglinks.c  `  .text+.data .bss.rdatax'=  VU +j6@  SZ r_{jj}u'p.file)glistbox.c * @ _y  `      D@  \q  @ `       (J@ _window.text .data .bss .rdata)I n5W +:k6`  EHS̋ _|&j}u`(H".fileGgflowbox.cV b n.textv..data h .bss.rdata++F 2 `\ +Yo6  Sr _j}u*.filelglist_store.c|0 _timeout_model_windowp 0  _dataG.text0w.data .bss .rdata Dx 6f^ +p6  E0S\ 7_pj}u0+.filegmarkup.c _view2_view_stack .texti.data .bss.rdataHBL Wa +rS6  S _j~u,.filegmenus.c# $  % _window.text#Z.data .bss.rdataHQ <c C+ t46  E0S5 l_7j0~u,.filegmodelbutton.c( ) ,: .text(%.data .bss.rdata8Iy$  Lf +Aw<6  S _jL~u-p.filegoffscreen_window.cM@* c`* * * + + , - / %0 K1 p@1 3 3 5 J  6 !6 66 Prp7 P8 p8 J8  9 .text@*.data .bss.rdataI/ wg +}w) 6   E(SB W_jh~u0...file=gX; %0; :P; Up; l; > ? 0? `? @ @ <A TC k|K{C 0D D D @E   F 4@F J.text; .data .bss.rdataJ vWYm Z+6@  ExS _hj~u18(.file]goverlay.clH wH ,.textH2.data .bss.rdataK~@ r +,$6`  E0S _n^j~u5.file|goverlay2.cK _tagL .textKI.data .bss.rdata@L, cat +P6  St _̣j~u5.filegpanes.c0P P Q PT .text0Pr.data .bss.rdataLp9A v +K6  Su _Qj~u(6,.filegpickers.c0W  .text0WjI.data .bss.rdata.filegshortcuts.ci y0 P p      Ј .textA.data .bss.rdataS3Y   +q6  S _Rjul?.filegsidebar.c.p .textp5.data .bss.rdataTHf jȍ +`66  SB _4j u\@l.file@gsizegroup.c:  KP _add_row ] ky@ 0  .text N.data 0 .bss.rdataUv ^ +6   S %_G3j(u@.fileegspinbutton.c  _monthX P   P   .Е =.text+.dataP .bss.rdata`V  G  +y6@  S; _zOjDuA.filegspinner.cK \o @ .text!E.dataP .bss .rdata@X2 tT +6`  S _j`uDC.filegstack.c  .text.dataP .bss.rdatatX  ;+i j+ߨ6  S _bj|uC@.filegtabs.c_do_tabs  .text%+.dataP .bss.rdataX=ƶ  eӖ y+m6  S _RLjuDP.filegtextmask.c   .text B.dataP .bss.rdataX  pL q+jZ6  S@ _ju`Dp.file gtextview.c j  ,  9Gj.textlw.dataP .bss.rdatahYpq 2 +ĩ6  E0S0 _.jЀuD.file( gtextscroll.cW  g0 yP p  .text iQ.dataP .bss .rdataj    +36  E S _mjuE .fileE g _window.text/!.dataP .bss.rdatak?  ;J n+˯<6   S  _lRjuFP.fileu gtoolpalette.c  ! ?  ^ i p z   o  п  n  ! &!P 9! W!p w! ! ! _window.textY.dataP .bss.rdatakX jF 5+I6@  E 8S >_W j$u$G.file gtransparent.c !@ !.text q.dataP .bss.rdata@oHd  +P6`  EH @SH _j@uJ.file gtree_store.c! !   !` _january !_march@_april_may_june`_july_august!_october" ".text .data` @A.bss .rdatao` Y  +6  S- _-j\uHK.file gfont_features.c"@ #"P 3" _entry_text$_stackD" _toggleT"d"u"" _font" _icon@""w" "_label" " " #@v!# u1#  ?#0 P# b# .text@ .data.bss .rdata@sDN K +6  E S  _jxuK0.file3 ggtkfishbowl.cp#0 ## # #_props# $ $ 3$  F$ a$ ~$y$ $ $0 %P :%p Q%s% %y%` % % % %  & *& .text0 .data.bss .rdatax  pA +_ 6  E hS _juN,.file[ gdemo_resources.c@& S&d&X z& X &y.text.data.bss&X.ctorsZ& X.dtorsZ.rdatayZ  6 0E  S |_MjuR\.file gmain.c& &` & & & ' _end_cb  ' *'  8'_startupp B' Q'  a'  _typesk_controle_fontify  n'P y'7'He'''8e' '''" '$ _main@X (.text!v.data..bss.rdata`&@X2$^ OQE +q6 (E PS= t _E j́udR&.text%.idata$7.idata$5.idata$4L .idata$6d@feat.00.text%.idata$7.idata$5.idata$4H .idata$6d@feat.00.text%.idata$7.idata$5.idata$4D .idata$6d@feat.00.text%.idata$7.idata$5.idata$4@ .idata$6d@feat.00.text%.idata$7.idata$5.idata$4< .idata$6hd@feat.00.text%.idata$7.idata$5.idata$48 .idata$6Ld@feat.00.text%.idata$7.idata$5.idata$44 .idata$64d@feat.00.text%.idata$7.idata$5.idata$40 .idata$6d@feat.00.text%.idata$7.idata$5.idata$4, .idata$6c@feat.00.text%.idata$7.idata$5.idata$4( .idata$6c@feat.00.text%.idata$7.idata$5.idata$4$ .idata$6c@feat.00.text%.idata$7|.idata$5.idata$4 .idata$6c@feat.00.text%.idata$7x.idata$5.idata$4 .idata$6c@feat.00.text%.idata$7t.idata$5.idata$4 .idata$6|c@feat.00.text%.idata$7p.idata$5.idata$4 .idata$6hc@feat.00.text%.idata$7l.idata$5.idata$4 .idata$6Pc@feat.00.text&.idata$7h.idata$5.idata$4 .idata$64c@feat.00.text&.idata$7d.idata$5.idata$4 .idata$6c@feat.00.text&.idata$7`.idata$5.idata$4 .idata$6c@feat.00.text&.idata$7\.idata$5.idata$4 .idata$6b@feat.00.text &.idata$7X.idata$5|.idata$4 .idata$6b@feat.00.text(&.idata$7T.idata$5x.idata$4 .idata$6b@feat.00.text0&.idata$7P.idata$5t.idata$4 .idata$6|b@feat.00.text8&.idata$7L.idata$5p.idata$4 .idata$6`b@feat.00.text@&.idata$7H.idata$5l.idata$4 .idata$6@b@feat.00.textH&.idata$7D.idata$5h.idata$4 .idata$6(b@feat.00.textP&.idata$7@.idata$5d.idata$4 .idata$6 b@feat.00.textX&.idata$7<.idata$5`.idata$4 .idata$6a@feat.00.text`&.idata$78.idata$5\.idata$4 .idata$6a@feat.00.texth&.idata$74.idata$5X.idata$4 .idata$6a@feat.00.textp&.idata$70.idata$5T.idata$4 .idata$6a@feat.00.textx&.idata$7,.idata$5P.idata$4 .idata$6|a@feat.00.text&.idata$7(.idata$5L.idata$4 .idata$6\a@feat.00.text&.idata$7$.idata$5H.idata$4 .idata$6@a@feat.00.text&.idata$7 .idata$5D.idata$4 .idata$6$a@feat.00.text&.idata$7.idata$5@.idata$4 .idata$6 a@feat.00.text&.idata$7.idata$5<.idata$4 .idata$6`@feat.00.text&.idata$7.idata$58.idata$4 .idata$6`@feat.00.text&.idata$7.idata$54.idata$4 .idata$6`@feat.00.text&.idata$7 .idata$50.idata$4 .idata$6`@feat.00.text&.idata$7.idata$5,.idata$4 .idata$6t`@feat.00.text&.idata$7.idata$5(.idata$4 .idata$6\`@feat.00.text&.idata$7.idata$5$.idata$4 .idata$6@`@feat.00.text&.idata$7.idata$5 .idata$4 .idata$6(`@feat.00.text&.idata$7.idata$5.idata$4 .idata$6 `@feat.00.text&.idata$7.idata$5.idata$4 .idata$6_@feat.00.text&.idata$7.idata$5.idata$4 .idata$6_@feat.00.text&.idata$7.idata$5.idata$4 .idata$6_@feat.00.text'.idata$7.idata$5 .idata$4 .idata$6_@feat.00.text'.idata$7.idata$5.idata$4 .idata$6p_@feat.00.text'.idata$7.idata$5.idata$4 .idata$6L_@feat.00.text'.idata$7ܐ.idata$5.idata$4 .idata$6(_@feat.00.text '.idata$7ؐ.idata$5.idata$4| .idata$6_@feat.00.text('.idata$7Ԑ.idata$5.idata$4x .idata$6^@feat.00.text0'.idata$7А.idata$5.idata$4t .idata$6^@feat.00.text8'.idata$7̐.idata$5.idata$4p .idata$6^@feat.00.text@'.idata$7Ȑ.idata$5.idata$4l .idata$6^@feat.00.textH'.idata$7Đ.idata$5.idata$4h .idata$6x^@feat.00.textP'.idata$7.idata$5.idata$4d .idata$6T^@feat.00.textX'.idata$7.idata$5.idata$4` .idata$68^@feat.00.text`'.idata$7.idata$5.idata$4\ .idata$6$^@feat.00.texth'.idata$7.idata$5.idata$4X .idata$6 ^@feat.00.textp'.idata$7.idata$5.idata$4T .idata$6]@feat.00.textx'.idata$7.idata$5.idata$4P .idata$6]@feat.00.text'.idata$7.idata$5.idata$4L .idata$6]@feat.00.text'.idata$7.idata$5.idata$4H .idata$6]@feat.00.text'.idata$7.idata$5.idata$4D .idata$6]@feat.00.text'.idata$7.idata$5.idata$4@ .idata$6p]@feat.00.text'.idata$7.idata$5.idata$4< .idata$6P]@feat.00.text'.idata$7.idata$5.idata$48 .idata$60]@feat.00.text'.idata$7.idata$5.idata$44 .idata$6]@feat.00.text'.idata$7.idata$5.idata$40 .idata$6\@feat.00.text'.idata$7.idata$5.idata$4, .idata$6\@feat.00.text'.idata$7.idata$5.idata$4( .idata$6\@feat.00.text'.idata$7.idata$5.idata$4$ .idata$6|\@feat.00.text'.idata$7|.idata$5.idata$4 .idata$6\\@feat.00.text'.idata$7x.idata$5.idata$4 .idata$6D\@feat.00.text'.idata$7t.idata$5.idata$4 .idata$6$\@feat.00.text'.idata$7p.idata$5.idata$4 .idata$6 \@feat.00.text'.idata$7l.idata$5.idata$4 .idata$6[@feat.00.text(.idata$7h.idata$5.idata$4 .idata$6[@feat.00.text(.idata$7d.idata$5.idata$4 .idata$6[@feat.00.text(.idata$7`.idata$5.idata$4 .idata$6[@feat.00.text(.idata$7\.idata$5.idata$4 .idata$6[@feat.00.text (.idata$7X.idata$5|.idata$4.idata$6\[@feat.00.text((.idata$7T.idata$5x.idata$4.idata$68[@feat.00.text0(.idata$7P.idata$5t.idata$4.idata$6 [@feat.00.text8(.idata$7L.idata$5p.idata$4.idata$6[@feat.00.text@(.idata$7H.idata$5l.idata$4.idata$6Z@feat.00.textH(.idata$7D.idata$5h.idata$4.idata$6Z@feat.00.textP(.idata$7@.idata$5d.idata$4.idata$6Z@feat.00.textX(.idata$7<.idata$5`.idata$4.idata$6dZ@feat.00.text`(.idata$78.idata$5\.idata$4.idata$64Z@feat.00.texth(.idata$74.idata$5X.idata$4.idata$6Z@feat.00.textp(.idata$70.idata$5T.idata$4.idata$6Y@feat.00.textx(.idata$7,.idata$5P.idata$4.idata$6Y@feat.00.text(.idata$7(.idata$5L.idata$4.idata$6Y@feat.00.text(.idata$7$.idata$5H.idata$4.idata$6Y@feat.00.text(.idata$7 .idata$5D.idata$4.idata$6xY@feat.00.text(.idata$7.idata$5@.idata$4.idata$6\Y@feat.00.text(.idata$7.idata$5<.idata$4.idata$6@feat.00.textH/.idata$7Č.idata$5.idata$4h.idata$6>@feat.00.textP/.idata$7.idata$5.idata$4d.idata$6>@feat.00.textX/.idata$7.idata$5.idata$4`.idata$6>@feat.00.text`/.idata$7.idata$5.idata$4\.idata$6>@feat.00.texth/.idata$7.idata$5.idata$4X.idata$6`>@feat.00.textp/.idata$7.idata$5.idata$4T.idata$6L>@feat.00.textx/.idata$7.idata$5.idata$4P.idata$60>@feat.00.text/.idata$7.idata$5.idata$4L.idata$6 >@feat.00.text/.idata$7.idata$5.idata$4H.idata$6=@feat.00.text/.idata$7.idata$5.idata$4D.idata$6=@feat.00.text/.idata$7.idata$5.idata$4@.idata$6=@feat.00.text/.idata$7.idata$5.idata$4<.idata$6=@feat.00.text/.idata$7.idata$5.idata$48.idata$6l=@feat.00.text/.idata$7.idata$5.idata$44.idata$6X=@feat.00.text/.idata$7.idata$5.idata$40.idata$6<=@feat.00.text/.idata$7.idata$5.idata$4,.idata$6 =@feat.00.text/.idata$7.idata$5.idata$4(.idata$6<@feat.00.text/.idata$7.idata$5.idata$4$.idata$6<@feat.00.text/.idata$7|.idata$5.idata$4 .idata$6<@feat.00.text/.idata$7x.idata$5.idata$4.idata$6<@feat.00.text/.idata$7t.idata$5.idata$4.idata$6p<@feat.00.text/.idata$7p.idata$5.idata$4.idata$6T<@feat.00.text/.idata$7l.idata$5.idata$4.idata$6D<@feat.00.text0.idata$7h.idata$5.idata$4 .idata$6(<@feat.00.text0.idata$7d.idata$5.idata$4.idata$6<@feat.00.text0.idata$7`.idata$5.idata$4.idata$6;@feat.00.text0.idata$7\.idata$5.idata$4.idata$6;@feat.00.text 0.idata$7X.idata$5|.idata$4.idata$6;@feat.00.text(0.idata$7T.idata$5x.idata$4.idata$6;@feat.00.text00.idata$7P.idata$5t.idata$4.idata$6;@feat.00.text80.idata$7L.idata$5p.idata$4.idata$6l;@feat.00.text@0.idata$7H.idata$5l.idata$4.idata$6H;@feat.00.textH0.idata$7D.idata$5h.idata$4.idata$6(;@feat.00.textP0.idata$7@.idata$5d.idata$4.idata$6;@feat.00.textX0.idata$7<.idata$5`.idata$4.idata$6:@feat.00.text`0.idata$78.idata$5\.idata$4.idata$6:@feat.00.texth0.idata$74.idata$5X.idata$4.idata$6:@feat.00.textp0.idata$70.idata$5T.idata$4.idata$6:@feat.00.textx0.idata$7,.idata$5P.idata$4.idata$6x:@feat.00.text0.idata$7(.idata$5L.idata$4.idata$6`:@feat.00.text0.idata$7$.idata$5H.idata$4.idata$6D:@feat.00.text0.idata$7 .idata$5D.idata$4.idata$6$:@feat.00.text0.idata$7.idata$5@.idata$4.idata$6:@feat.00.text0.idata$7.idata$5<.idata$4.idata$69@feat.00.text0.idata$7.idata$58.idata$4.idata$69@feat.00.text0.idata$7.idata$54.idata$4.idata$69@feat.00.text0.idata$7 .idata$50.idata$4.idata$69@feat.00.text0.idata$7.idata$5,.idata$4.idata$69@feat.00.text0.idata$7.idata$5(.idata$4.idata$6p9@feat.00.text0.idata$7.idata$5$.idata$4.idata$6X9@feat.00.text0.idata$7.idata$5 .idata$4.idata$6<9@feat.00.text0.idata$7.idata$5.idata$4.idata$6$9@feat.00.text0.idata$7.idata$5.idata$4.idata$69@feat.00.text0.idata$7.idata$5.idata$4.idata$68@feat.00.text0.idata$7.idata$5.idata$4.idata$68@feat.00.text1.idata$7.idata$5 .idata$4.idata$68@feat.00.text1.idata$7.idata$5.idata$4.idata$68@feat.00.text1.idata$7.idata$5.idata$4.idata$6|8@feat.00.text1.idata$7܋.idata$5.idata$4.idata$6\8@feat.00.text 1.idata$7؋.idata$5.idata$4|.idata$6H8@feat.00.text(1.idata$7ԋ.idata$5.idata$4x.idata$6(8@feat.00.text01.idata$7Ћ.idata$5.idata$4t.idata$6 8@feat.00.text81.idata$7̋.idata$5.idata$4p.idata$67@feat.00.text@1.idata$7ȋ.idata$5.idata$4l.idata$67@feat.00.textH1.idata$7ċ.idata$5.idata$4h.idata$67@feat.00.textP1.idata$7.idata$5.idata$4d.idata$67@feat.00.textX1.idata$7.idata$5.idata$4`.idata$6t7@feat.00.text`1.idata$7.idata$5.idata$4\.idata$6X7@feat.00.texth1.idata$7.idata$5.idata$4X.idata$687@feat.00.textp1.idata$7.idata$5.idata$4T.idata$6 7@feat.00.textx1.idata$7.idata$5.idata$4P.idata$67@feat.00.text1.idata$7.idata$5.idata$4L.idata$66@feat.00.text1.idata$7.idata$5.idata$4H.idata$66@feat.00.text1.idata$7.idata$5.idata$4D.idata$66@feat.00.text1.idata$7.idata$5.idata$4@.idata$66@feat.00.text1.idata$7.idata$5.idata$4<.idata$6`6@feat.00.text1.idata$7.idata$5.idata$48.idata$686@feat.00.text1.idata$7.idata$5.idata$44.idata$66@feat.00.text1.idata$7.idata$5.idata$40.idata$65@feat.00.text1.idata$7.idata$5.idata$4,.idata$65@feat.00.text1.idata$7.idata$5.idata$4(.idata$65@feat.00.text1.idata$7.idata$5.idata$4$.idata$65@feat.00.text1.idata$7|.idata$5.idata$4 .idata$65@feat.00.text1.idata$7x.idata$5.idata$4.idata$6h5@feat.00.text1.idata$7t.idata$5.idata$4.idata$6H5@feat.00.text1.idata$7p.idata$5.idata$4.idata$6(5@feat.00.text1.idata$7l.idata$5.idata$4.idata$65@feat.00.text2.idata$7h.idata$5.idata$4 .idata$64@feat.00.text2.idata$7d.idata$5.idata$4.idata$64@feat.00.text2.idata$7`.idata$5.idata$4.idata$64@feat.00.text2.idata$7\.idata$5.idata$4.idata$6|4@feat.00.text 2.idata$7X.idata$5|.idata$4.idata$6X4@feat.00.text(2.idata$7T.idata$5x.idata$4.idata$6<4@feat.00.text02.idata$7P.idata$5t.idata$4.idata$6 4@feat.00.text82.idata$7L.idata$5p.idata$4.idata$64@feat.00.text@2.idata$7H.idata$5l.idata$4.idata$63@feat.00.textH2.idata$7D.idata$5h.idata$4.idata$63@feat.00.textP2.idata$7@.idata$5d.idata$4.idata$63@feat.00.textX2.idata$7<.idata$5`.idata$4.idata$63@feat.00.text`2.idata$78.idata$5\.idata$4.idata$63@feat.00.texth2.idata$74.idata$5X.idata$4.idata$6x3@feat.00.textp2.idata$70.idata$5T.idata$4.idata$6`3@feat.00.textx2.idata$7,.idata$5P.idata$4.idata$6D3@feat.00.text2.idata$7(.idata$5L.idata$4.idata$6,3@feat.00.text2.idata$7$.idata$5H.idata$4.idata$63@feat.00.text2.idata$7 .idata$5D.idata$4.idata$62@feat.00.text2.idata$7.idata$5@.idata$4.idata$62@feat.00.text2.idata$7.idata$5<.idata$4.idata$62@feat.00.text2.idata$7.idata$58.idata$4.idata$62@feat.00.text2.idata$7.idata$54.idata$4.idata$62@feat.00.text2.idata$7 .idata$50.idata$4.idata$6p2@feat.00.text2.idata$7.idata$5,.idata$4.idata$6P2@feat.00.text2.idata$7.idata$5(.idata$4.idata$682@feat.00.text2.idata$7.idata$5$.idata$4.idata$62@feat.00.text2.idata$7.idata$5 .idata$4.idata$61@feat.00.text2.idata$7.idata$5.idata$4.idata$61@feat.00.text2.idata$7.idata$5.idata$4.idata$61@feat.00.text2.idata$7.idata$5.idata$4.idata$61@feat.00.text2.idata$7.idata$5.idata$4.idata$61@feat.00.text3.idata$7.idata$5 .idata$4.idata$6h1@feat.00.text3.idata$7.idata$5.idata$4.idata$6L1@feat.00.text3.idata$7.idata$5.idata$4.idata$641@feat.00.text3.idata$7܊.idata$5.idata$4.idata$61@feat.00.text 3.idata$7؊.idata$5.idata$4|.idata$60@feat.00.text(3.idata$7Ԋ.idata$5.idata$4x.idata$60@feat.00.text03.idata$7Њ.idata$5.idata$4t.idata$60@feat.00.text83.idata$7̊.idata$5.idata$4p.idata$60@feat.00.text@3.idata$7Ȋ.idata$5.idata$4l.idata$6`0@feat.00.textH3.idata$7Ċ.idata$5.idata$4h.idata$6L0@feat.00.textP3.idata$7.idata$5.idata$4d.idata$600@feat.00.textX3.idata$7.idata$5.idata$4`.idata$60@feat.00.text`3.idata$7.idata$5.idata$4\.idata$6/@feat.00.texth3.idata$7.idata$5.idata$4X.idata$6/@feat.00.textp3.idata$7.idata$5.idata$4T.idata$6/@feat.00.textx3.idata$7.idata$5.idata$4P.idata$6/@feat.00.text3.idata$7.idata$5.idata$4L.idata$6x/@feat.00.text3.idata$7.idata$5.idata$4H.idata$6T/@feat.00.text3.idata$7.idata$5.idata$4D.idata$60/@feat.00.text3.idata$7.idata$5.idata$4@.idata$6 /@feat.00.text3.idata$7.idata$5.idata$4<.idata$6.@feat.00.text3.idata$7.idata$5.idata$48.idata$6.@feat.00.text3.idata$7.idata$5.idata$44.idata$6.@feat.00.text3.idata$7.idata$5.idata$40.idata$6.@feat.00.text3.idata$7.idata$5.idata$4,.idata$6x.@feat.00.text3.idata$7.idata$5.idata$4(.idata$6h.@feat.00.text3.idata$7.idata$5.idata$4$.idata$6P.@feat.00.text3.idata$7|.idata$5.idata$4 .idata$64.@feat.00.text3.idata$7x.idata$5.idata$4.idata$6.@feat.00.text3.idata$7t.idata$5.idata$4.idata$6.@feat.00.text3.idata$7p.idata$5.idata$4.idata$6-@feat.00.text3.idata$7l.idata$5.idata$4.idata$6-@feat.00.text4.idata$7h.idata$5.idata$4 .idata$6-@feat.00.text4.idata$7d.idata$5.idata$4.idata$6-@feat.00.text4.idata$7`.idata$5.idata$4.idata$6h-@feat.00.text4.idata$7\.idata$5.idata$4.idata$6L-@feat.00.text 4.idata$7X.idata$5|.idata$4.idata$64-@feat.00.text(4.idata$7T.idata$5x.idata$4.idata$6-@feat.00.text04.idata$7P.idata$5t.idata$4.idata$6,@feat.00.text84.idata$7L.idata$5p.idata$4.idata$6,@feat.00.text@4.idata$7H.idata$5l.idata$4.idata$6,@feat.00.textH4.idata$7D.idata$5h.idata$4.idata$6,@feat.00.textP4.idata$7@.idata$5d.idata$4.idata$6,@feat.00.textX4.idata$7<.idata$5`.idata$4.idata$6,@feat.00.text`4.idata$78.idata$5\.idata$4.idata$6d,@feat.00.texth4.idata$74.idata$5X.idata$4.idata$6@,@feat.00.textp4.idata$70.idata$5T.idata$4.idata$6,@feat.00.textx4.idata$7,.idata$5P.idata$4.idata$6,@feat.00.text4.idata$7(.idata$5L.idata$4.idata$6+@feat.00.text4.idata$7$.idata$5H.idata$4.idata$6+@feat.00.text4.idata$7 .idata$5D.idata$4.idata$6+@feat.00.text4.idata$7.idata$5@.idata$4.idata$6|+@feat.00.text4.idata$7.idata$5<.idata$4.idata$6X+@feat.00.text4.idata$7.idata$58.idata$4.idata$68+@feat.00.text4.idata$7.idata$54.idata$4.idata$6 +@feat.00.text4.idata$7 .idata$50.idata$4.idata$6*@feat.00.text4.idata$7.idata$5,.idata$4.idata$6*@feat.00.text4.idata$7.idata$5(.idata$4.idata$6*@feat.00.text4.idata$7.idata$5$.idata$4.idata$6*@feat.00.text4.idata$7.idata$5 .idata$4.idata$6x*@feat.00.text4.idata$7.idata$5.idata$4.idata$6X*@feat.00.text4.idata$7.idata$5.idata$4.idata$6<*@feat.00.text4.idata$7.idata$5.idata$4.idata$6*@feat.00.text4.idata$7.idata$5.idata$4.idata$6)@feat.00.text5.idata$7.idata$5 .idata$4.idata$6)@feat.00.text5.idata$7.idata$5.idata$4.idata$6)@feat.00.text5.idata$7.idata$5.idata$4.idata$6)@feat.00.text5.idata$7܉.idata$5.idata$4.idata$6)@feat.00.text 5.idata$7؉.idata$5.idata$4|.idata$6|)@feat.00.text(5.idata$7ԉ.idata$5.idata$4x.idata$6X)@feat.00.text05.idata$7Љ.idata$5.idata$4t.idata$6<)@feat.00.text85.idata$7̉.idata$5.idata$4p.idata$6)@feat.00.text@5.idata$7ȉ.idata$5.idata$4l.idata$6(@feat.00.textH5.idata$7ĉ.idata$5.idata$4h.idata$6(@feat.00.textP5.idata$7.idata$5.idata$4d.idata$6(@feat.00.textX5.idata$7.idata$5.idata$4`.idata$6(@feat.00.text`5.idata$7.idata$5.idata$4\.idata$6|(@feat.00.texth5.idata$7.idata$5.idata$4X.idata$6\(@feat.00.textp5.idata$7.idata$5.idata$4T.idata$6@(@feat.00.textx5.idata$7.idata$5.idata$4P.idata$6 (@feat.00.text5.idata$7.idata$5.idata$4L.idata$6(@feat.00.text5.idata$7.idata$5.idata$4H.idata$6'@feat.00.text5.idata$7.idata$5.idata$4D.idata$6'@feat.00.text5.idata$7.idata$5.idata$4@.idata$6'@feat.00.text5.idata$7.idata$5.idata$4<.idata$6'@feat.00.text5.idata$7.idata$5.idata$48.idata$6l'@feat.00.text5.idata$7.idata$5.idata$44.idata$6P'@feat.00.text5.idata$7.idata$5.idata$40.idata$60'@feat.00.text5.idata$7.idata$5.idata$4,.idata$6'@feat.00.text5.idata$7.idata$5.idata$4(.idata$6&@feat.00.text5.idata$7.idata$5.idata$4$.idata$6&@feat.00.text5.idata$7|.idata$5.idata$4 .idata$6&@feat.00.text5.idata$7x.idata$5.idata$4.idata$6&@feat.00.text5.idata$7t.idata$5.idata$4.idata$6p&@feat.00.text5.idata$7p.idata$5.idata$4.idata$6P&@feat.00.text5.idata$7l.idata$5.idata$4.idata$6,&@feat.00.text6.idata$7h.idata$5.idata$4 .idata$6 &@feat.00.text6.idata$7d.idata$5.idata$4.idata$6%@feat.00.text6.idata$7`.idata$5.idata$4.idata$6%@feat.00.text6.idata$7\.idata$5.idata$4.idata$6%@feat.00.text 6.idata$7X.idata$5|.idata$4.idata$6%@feat.00.text(6.idata$7T.idata$5x.idata$4.idata$6l%@feat.00.text06.idata$7P.idata$5t.idata$4.idata$6L%@feat.00.text86.idata$7L.idata$5p.idata$4.idata$64%@feat.00.text@6.idata$7H.idata$5l.idata$4.idata$6%@feat.00.textH6.idata$7D.idata$5h.idata$4.idata$6$@feat.00.textP6.idata$7@.idata$5d.idata$4.idata$6$@feat.00.textX6.idata$7<.idata$5`.idata$4.idata$6$@feat.00.text`6.idata$78.idata$5\.idata$4.idata$6$@feat.00.texth6.idata$74.idata$5X.idata$4.idata$6$@feat.00.textp6.idata$70.idata$5T.idata$4.idata$6x$@feat.00.textx6.idata$7,.idata$5P.idata$4.idata$6d$@feat.00.text6.idata$7(.idata$5L.idata$4.idata$6H$@feat.00.text6.idata$7$.idata$5H.idata$4.idata$6($@feat.00.text6.idata$7 .idata$5D.idata$4.idata$6$@feat.00.text6.idata$7.idata$5@.idata$4.idata$6#@feat.00.text6.idata$7.idata$5<.idata$4.idata$6#@feat.00.text6.idata$7.idata$58.idata$4.idata$6#@feat.00.text6.idata$7.idata$54.idata$4.idata$6|#@feat.00.text6.idata$7 .idata$50.idata$4.idata$6d#@feat.00.text6.idata$7.idata$5,.idata$4.idata$6H#@feat.00.text6.idata$7.idata$5(.idata$4.idata$60#@feat.00.text6.idata$7.idata$5$.idata$4.idata$6#@feat.00.text6.idata$7.idata$5 .idata$4.idata$6 #@feat.00.text6.idata$7.idata$5.idata$4.idata$6"@feat.00.text6.idata$7.idata$5.idata$4.idata$6"@feat.00.text6.idata$7.idata$5.idata$4.idata$6"@feat.00.text6.idata$7.idata$5.idata$4.idata$6"@feat.00.text7.idata$7.idata$5 .idata$4.idata$6"@feat.00.text7.idata$7.idata$5.idata$4.idata$6`"@feat.00.text7.idata$7.idata$5.idata$4.idata$6D"@feat.00.text7.idata$7܈.idata$5.idata$4.idata$6 "@feat.00.text 7.idata$7؈.idata$5.idata$4|.idata$6"@feat.00.text(7.idata$7Ԉ.idata$5.idata$4x.idata$6!@feat.00.text07.idata$7Ј.idata$5.idata$4t.idata$6!@feat.00.text87.idata$7̈.idata$5.idata$4p.idata$6!@feat.00.text@7.idata$7Ȉ.idata$5.idata$4l.idata$6!@feat.00.textH7.idata$7Ĉ.idata$5.idata$4h.idata$6p!@feat.00.textP7.idata$7.idata$5.idata$4d.idata$6P!@feat.00.textX7.idata$7.idata$5.idata$4`.idata$6 !@feat.00.text`7.idata$7.idata$5.idata$4\.idata$6!@feat.00.texth7.idata$7.idata$5.idata$4X.idata$6 @feat.00.textp7.idata$7.idata$5.idata$4T.idata$6 @feat.00.textx7.idata$7.idata$5.idata$4P.idata$6 @feat.00.text7.idata$7.idata$5.idata$4L.idata$6 @feat.00.text7.idata$7.idata$5.idata$4H.idata$6t @feat.00.text7.idata$7.idata$5.idata$4D.idata$6X @feat.00.text7.idata$7.idata$5.idata$4@.idata$6@ @feat.00.text7.idata$7\.idata$5h.idata$4 .idata$6n@feat.00.text7.idata$7X.idata$5d.idata$4 .idata$6hn@feat.00.text7.idata$7T.idata$5`.idata$4 .idata$6Pn@feat.00.text7.idata$7P.idata$5\.idata$4 .idata$6.idata$7l.idata$5,.idata$4.idata$6}@feat.00.text>.idata$7h.idata$5(.idata$4.idata$6}@feat.00.text>.idata$7d.idata$5$.idata$4.idata$6}@feat.00.text>.idata$7`.idata$5 .idata$4.idata$6}@feat.00.text >.idata$7\.idata$5.idata$4.idata$6}@feat.00.text(>.idata$7X.idata$5.idata$4.idata$6}@feat.00.text0>.idata$7T.idata$5.idata$4.idata$6t}@feat.00.text8>.idata$7P.idata$5.idata$4.idata$6X}@feat.00.text@>.idata$7L.idata$5 .idata$4.idata$6H}@feat.00.textH>.idata$7H.idata$5.idata$4.idata$60}@feat.00.textP>.idata$7D.idata$5.idata$4.idata$6}@feat.00.textX>.idata$7@.idata$5.idata$4.idata$6 }@feat.00.text`>.idata$7<.idata$5.idata$4|.idata$6|@feat.00.texth>.idata$78.idata$5.idata$4x.idata$6|@feat.00.textp>.idata$74.idata$5.idata$4t.idata$6|@feat.00.textx>.idata$70.idata$5.idata$4p.idata$6|@feat.00.text>.idata$7,.idata$5.idata$4l.idata$6||@feat.00.text>.idata$7(.idata$5.idata$4h.idata$6`|@feat.00.text>.idata$7$.idata$5.idata$4d.idata$6L|@feat.00.text>.idata$7 .idata$5.idata$4\.idata$6<|@feat.00.text>.idata$7.idata$5.idata$4X.idata$6$|@feat.00.text>.idata$7.idata$5.idata$4T.idata$6 |@feat.00.text>.idata$7.idata$5.idata$4P.idata$6{@feat.00.text>.idata$7.idata$5.idata$4L.idata$6{@feat.00.text>.idata$7.idata$5.idata$4H.idata$6{@feat.00.text>.idata$7.idata$5.idata$4D.idata$6{@feat.00.text>.idata$7.idata$5.idata$4@.idata$6{@feat.00.text>.idata$7.idata$5.idata$4<.idata$6{@feat.00.text>.idata$7.idata$5.idata$48.idata$6t{@feat.00.text>.idata$7.idata$5.idata$44.idata$6d{@feat.00.text>.idata$7.idata$5.idata$40.idata$6T{@feat.00.text>.idata$7ܕ.idata$5.idata$4,.idata$6D{@feat.00.text?.idata$7ؕ.idata$5.idata$4(.idata$68{@feat.00.text?.idata$7ԕ.idata$5.idata$4$.idata$6({@feat.00.text?.idata$7Е.idata$5.idata$4 .idata$6{@feat.00.text?.idata$7̕.idata$5.idata$4.idata$6z@feat.00.text ?.idata$7ȕ.idata$5.idata$4.idata$6z@feat.00.text(?.idata$7ĕ.idata$5.idata$4.idata$6z@feat.00.text0?.idata$7.idata$5.idata$4.idata$6z@feat.00.text8?.idata$7.idata$5.idata$4 .idata$6z@feat.00.text@?.idata$7.idata$5.idata$4.idata$6z@feat.00.textH?.idata$7.idata$5.idata$4.idata$6z@feat.00.textP?.idata$7.idata$5.idata$4.idata$6z@feat.00.textX?.idata$7.idata$5|.idata$4 .idata$6|z@feat.00.text`?.idata$7.idata$5x.idata$4 .idata$6hz@feat.00.texth?.idata$7.idata$5t.idata$4 .idata$6Xz@feat.00.textp?.idata$7.idata$5p.idata$4 .idata$68z@feat.00.textx?.idata$7.idata$5l.idata$4 .idata$6z@feat.00.text?.idata$7.idata$5h.idata$4 .idata$6z@feat.00.text?.idata$7.idata$5d.idata$4 .idata$6y@feat.00.text?.idata$7.idata$5`.idata$4 .idata$6y@feat.00.text?.idata$7.idata$5\.idata$4 .idata$6y@feat.00.text?.idata$7.idata$5X.idata$4 .idata$6y@feat.00.text?.idata$7.idata$5T.idata$4 .idata$6y@feat.00.text?.idata$7.idata$5P.idata$4 .idata$6y@feat.00.text?.idata$7|.idata$5L.idata$4 .idata$6|y@feat.00.text?.idata$7x.idata$5H.idata$4 .idata$6dy@feat.00.text?.idata$7t.idata$5D.idata$4 .idata$6Dy@feat.00.text?.idata$7p.idata$5@.idata$4 .idata$60y@feat.00.text?.idata$7l.idata$5<.idata$4 .idata$6y@feat.00.text?.idata$7h.idata$58.idata$4 .idata$6y@feat.00.text?.idata$7d.idata$54.idata$4 .idata$6x@feat.00.text?.idata$7`.idata$50.idata$4 .idata$6x@feat.00.text?.idata$7\.idata$5,.idata$4 .idata$6x@feat.00.text@.idata$7X.idata$5(.idata$4 .idata$6x@feat.00.text@.idata$7T.idata$5$.idata$4 .idata$6x@feat.00.text@.idata$7P.idata$5 .idata$4 .idata$6x@feat.00.text@.idata$7L.idata$5.idata$4 .idata$6x@feat.00.text @.idata$7H.idata$5.idata$4 .idata$6|x@feat.00.text(@.idata$7D.idata$5.idata$4 .idata$6tx@feat.00.text0@.idata$7@.idata$5.idata$4 .idata$6dx@feat.00.text8@.idata$7<.idata$5 .idata$4 .idata$6Lx@feat.00.text@@.idata$78.idata$5.idata$4 .idata$68x@feat.00.textH@.idata$74.idata$5.idata$4 .idata$6$x@feat.00.textP@.idata$70.idata$5.idata$4 .idata$6x@feat.00.textX@.idata$7,.idata$5.idata$4| .idata$6x@feat.00.text`@.idata$7(.idata$5.idata$4x .idata$6w@feat.00.texth@.idata$7$.idata$5.idata$4t .idata$6w@feat.00.textp@.idata$7 .idata$5.idata$4p .idata$6w@feat.00.textx@.idata$7.idata$5.idata$4l .idata$6w@feat.00.text@.idata$7.idata$5.idata$4h .idata$6w@feat.00.text@.idata$7.idata$5.idata$4d .idata$6hw@feat.00.text@.idata$7.idata$5.idata$4` .idata$6Pw@feat.00.text@.idata$7 .idata$5.idata$4\ .idata$68w@feat.00.text@.idata$7.idata$5.idata$4X .idata$6$w@feat.00.text@.idata$7.idata$5.idata$4T .idata$6w@feat.00.text@.idata$7.idata$5.idata$4P .idata$6w@feat.00.text@.idata$7.idata$5.idata$4L .idata$6v@feat.00.text@.idata$7.idata$5.idata$4H .idata$6v@feat.00.text@.idata$7.idata$5.idata$4D .idata$6v@feat.00.text@.idata$7.idata$5.idata$4@ .idata$6v@feat.00.text@.idata$7.idata$5.idata$4< .idata$6v@feat.00.text@.idata$7.idata$5.idata$48 .idata$6v@feat.00.text@.idata$7.idata$5.idata$44 .idata$6v@feat.00.text@.idata$7.idata$5.idata$40 .idata$6pv@feat.00.text@.idata$7ܔ.idata$5.idata$4, .idata$6Pv@feat.00.textA.idata$7ؔ.idata$5.idata$4( .idata$68v@feat.00.textA.idata$7Ԕ.idata$5.idata$4$ .idata$6(v@feat.00.textA.idata$7Д.idata$5.idata$4 .idata$6v@feat.00.textA.idata$7̔.idata$5.idata$4 .idata$6v@feat.00.text A.idata$7Ȕ.idata$5.idata$4 .idata$6u@feat.00.text(A.idata$7Ĕ.idata$5.idata$4 .idata$6u@feat.00.text0A.idata$7.idata$5.idata$4 .idata$6u.text0A.idata$7.idata$5.idata$4 .idata$6u@feat.00.text8A.idata$7.idata$5.idata$4 .idata$6u@feat.00.text@A.idata$7.idata$5.idata$4 .idata$6u@feat.00.textHA.idata$7.idata$5.idata$4 .idata$6lu@feat.00.textPA.idata$7.idata$5.idata$4.idata$6@feat.00.file, gatonexit.c(`A _atexit B .text`A.data.bss> T N+y)68  S% Y_,ju,VX.fileH ggccmain.c$(@B _p.658277(pB ___mainB J(.text@B .data.bss   +T6X  S ' %juV`.file\ gnatstart.c.textB.data.bss 3 6x S/( _Ej .filen gwildcard.c.textB.data.bssG  *6 SL) ej<.file gcharmax.cW(B .textB.data.bss.CRT$XIC  6  S) ,jXuV$.file gdllargv.cf(B .textB.data.bss R 76  S* tjtuW$.file ggs_support.cp(C (((C (( (w.textC7.data.bss 0.rdataw   +K6  SQ+ +_]ju,W.file g_newmode.c.text@D.data.bss` N *6 S|, ej.file!gtlssup.c)@D &)D ___xd_a,___xd_z09)E .text@D.data.bssd.CRT$XLD$.CRT$XLC .rdataw.CRT$XDZ0.CRT$XDA,.tls.CRT$XLZ(.CRT$XLA.tls$ZZZ.tls$AAA_ Z'x +A6  S, _vEjȂuWl.file!gcinitexe.c.text E.data.bsst.CRT$XCZ.CRT$XCA.CRT$XIZ.CRT$XIA  # Y6@ S. ej.file>!gmerr.cF) E ])tl)pE )E )x.text E.data.bsst.rdataw4W | p+6X  Se. Y_ju$XT.fileU!gCRT_fp10.c)E _fpresetE .textE.data.bssxI  *6x  S/ ujuxX$.filel!gmingw_helpers.c)E )F .textE.data.bssx  6  S30 j8uX4.file!gpseudo-reloc.c)F )pF ))*G *|.textFK;.data.bss| .rdatax ?b *+:6  E8xS1 )_WjTuX.file!gxtxtmode.c.text`J.data.bss  *6 SB3 ejp.file!gcrt_handler.c-*`J .text`J .data.bss   + V6  S3 n_#jupYH.file!gtlsthrd.cG*L h*w**pL **L *M .textLj&.data.bss  1 +c!6  E0S5 ~juY .file!gtlsmcrt.c.textpN.data.bss 7 *60 S6 djă.file!g*.textpN.data.bss a *6H S6 nj.file&"gpesect.c+pN +N 1+N A+N W+O u+P +@P +P +P +pQ .textpN&.data.bss nt 5+6`  ESe7  _<TjuZ+PR .file8"gfloor.S_floorT 9  S9 ~.textT+.data.bss6  .fileR"ground.c_round@T .text@Tp.data.bss.rdatay  +46  S: jPu\0.filed"gmingw_matherr.c.textT.data.bss! ` *6 S: kjl.file"gcos.c_cosT .textT.data.bss.rdatay"  +&6  SK; _&ju\4.file"gcosf.c_cosfpU .textpU.data.bss%  p6  S@< ju\,.file"gcosl_internal.S+U P'  S = .textU&.data.bss6  .file"gsin.c_sinU .textU.data.bss.rdatay(  +&68  S= _&ju ]4.file"gsinf.c_sinfV .textV.data.bss*  p6X  S> j܄uT],.file"gsinl_internal.S,V ,  SV? .textV&.data.bss6x  .file#gceil.S_ceilV z-  S? }.textV+.data.bss6  .textV.data.bss.idata$7.idata$58 .idata$4.idata$6.textV.data.bss.idata$7.idata$54 .idata$4.idata$6.textW.data.bss.idata$7.idata$50 .idata$4.idata$6.text W.data.bss.idata$7.idata$5, .idata$4.idata$6v.textW.data.bss.idata$7ܘ.idata$5( .idata$4.idata$6l.textW.data.bss.idata$7ؘ.idata$5$ .idata$4.idata$6b.text$W.data.bss.idata$7Ԙ.idata$5 .idata$4.idata$6X.text,W.data.bss.idata$7И.idata$5 .idata$4.idata$6N.text4W.data.bss.idata$7̘.idata$5 .idata$4.idata$6D.text. @ __cexitW X.<u..+ ..0 .l.</Dq-/0A  ::;9;T;( w;' ;;;;l<$<;<X( f<) <<@? <d<0+ <=8=6 ==W=t===8 ==P& =- >< 2>) Z>}>H>X@ > ( >>To?x+ '?8?$V?m?, ?* ?9 ??@) N@Ls@h0 @= @|@\@P< @ AP2A RA<zAA(AA85 A< B,B: BBbBH{BB* BB`@ B( CC=C]C- C$oC`C(- C`? C4D"D+ BDbD8 D0 DD,DD@E88 -E+ EE) dE0E- EE E F1 'F LTd`T ___xl_z(U U87  VL V9VaV2 }V< VX2 V2 VVpV6 W9W0 WW fWx: W\WtW`W!Xx3 5XNXHlXhX4 XH( XX\YY@@ .Y% GY[YH@ mY7 Y@Y5 _g_free@ Y,YZ+ !Z/ 2Z_g_print? NZoZZP; Z Z__unlock W Z& [[89 4[U[P> h[- [% [0< [2 [2 [[\$\(H\Po\\* \' \) \0]$]* I]lb]7 w]]H6 ]t]* ]/ ^0^< J^3 ^^^. ^^^% ^^_h) $_XD_p__t___$ _`=` L`pr``p. ``<`& `ha$>aP( ka0 a7 a8 a|aha: ab/bDb^b; sb@ b, b> bh4 bbTcT 3e_ee: e< ex, ee05  f1 )f: ;fMf@qf& ff1 fTfdg|g0g? ?g: Yg0|gX0 gP? gXgg0 g, g`h8hPhmhhp+ hh8- hH4 h80 i/itHi3 bi~ihii & i( i0 j1 #j> /j0 Aj`, ]jyjjj4j: jp> j( jpk`5kbkkk@k`k5 k+ l0= .l0 Blml6 lp5 ll8 l' l- ll"m:m. Sm,lmm) mm6 mpmm\&n4nRn. zn7 n) n; nn5 n0 o& &o Cot[omo1 oono< o,p8 p;p_p4px< ph> p`7 pph8 p q. )qxSqwqqqp? q2 qr3  sps9 ss7 s\tl?t% Utlwt(. tt( t; tDt- u/u7 IuX+ muuuu4 ux( uv,vOvH) xvH* v(8 v7 vv% v,vwP: wPA 0w: Ewbw> ywwX? w4 w __dll__ww? w/ x= %x:x; Nx_fwritelW xxx2 xxPx@y* #y) ?yD`y? sy0 yhyy$y04 zL5zdRz(A lz,zz' z8 z zp- {7 3{7 I{e{< {p{{{{@|L%|X& A|p[|H2 x|||> | | }- "}* A}P) ^}( }}P3 }}: }~~? +~DM~o~~+ ~<~~~!_atoiV <^/ z,  ' &Bppb. ___xc_az= ; ـ@* 1F. cP0X8 ؁t9 #I@1 g( ; @> ‚ 7 ؂8, _memcpy\W &<WT> xÃ: *DLk@ w) H: lÄ4܄- ;O= bxz, 4 ۅ4,p". Ig06 l0ɆކX; > ; ;< _x5 X? *1 LTo(2 : H> ˈ/  8'> :[`u3  - p( ׉D; 5 ,. M6 a(? m9 H' ڊ0) PD-|T@& r(pP0 ͋h9 @'  +: ?= Zr3 T/ LԌt; /5 K 2 l. 4 ƍ/ ݍ @ /3 D(/ Ub{W '  * ___xl_a___xl_d$؎`& DZ`>x- ]яP4  H. " ;([* qP* X W __CRT_MT<4@3 Q` ‘9 %- E`< Wr, ђ= 9 )4 In+ (qϓd*HM4r|83 p7 ͔px7 L=x' Tx@ io+ & ʕl3 #<dPXo; ? ֖6  3 %? [0u_fprintf|W ʗX> ؗ+ =p/ Nh' eP/ Ę01 ޘ1 7h+ Zw7 % p͙<  ,1: Jk9 0Қ+ < 411 OA a|< P7 _strtolW ћ_child5 :  ?,d<8 ( ԜH8 : (1 8 Rq- |ڝ(0 >   .( E o^~= xp4 מp@4  ,. E6 f08( ǟLޟT- 5T5 j,P9 Z8Ҡ`. h6 d$8 ?@Wp, |X5 ʡ+ 12 @, X(5 {բT(+ 6H& M1 nx. , ԣ`=  4 ) 3\x̤W פ3 P2 X8  h>x_callocW Xx6 i47 HӥX* , 5__fmodeZm ? ~( ˦+ 09 x'<dwP1 6 ˧ܧ, 'H^8zx> Tب(( ) =,V8) mDh@өX 8 *0? ;Z,_strpbrk$W ( `4 ̪. X3 7`+ Q; `' y((ɫܫh:  6 @4 \( u`: ìH0 h7 7 , 8P= M [r07 8< (* ԭ' ?; Q< n6 î - خ4 5`5 Ox= \() p(  9  ¯u\' Kh@h1 ; _textP @; )5 E@) k~8+ 1 0& D)?a2 |8  ) ٻ> H1 -p[v0@Ӽ@$? 5? LboX. = ,= ___xc_zp2V? jL? nd־. .xI2 g' > = ܿp ) P-) I^ : ~? 7  3  , ((= @`jt5 P. 9 __end__6 `) %& EV@ fp= _strchrDW x1 H ,tLrp& 3 H/ 8. 3|JaW . = 2 _signalTW h* EQ,m% @ 86 l_mallocdW ZoD6Ejx5 . / 8/ h& *. Ic? q4X. 51 T8 sH, 4 +  |)N0 i@= { ,,p) ) (hCdv|9 p$28 A(9 [,m1 |( @ #@0(Lj\@, (7 +P, Gȗf2  \* + P>[Xy = p( 0; p?\a(6 s@ `0(: 1<NP5 g5 0 _abortW  / Ԗ.T( nh. 5 8A ,' Kj@0 <p!> < Q|r* 5 2 ( 5 _child0 >@2 Xf, H8 02 ; & (H6 g/ W @8 7 (; / "8' 9p' R- qh; + n' &HC- WX1 u\8P8 , @ -B[- z T= h= p1 89^x9  Hx4 H9 h; .h/ T' k' = % (& $ !2 Gb- |? & X/ 6F( `6 }___xi_zxDDp3 $) H`: \@z1 4 = /dGj8& _strncmp,W @ 1  /> Fcl{8= d *F`$@H3 d5XX$v. p< < 0V`; c= h@ oH5 h( 3`( av8 4 % = @: t7h< Hj \`8 x8 5; C@ Py7 ' `/ ,/ I> ]Pq5  RLh3  X= 7P] 0 x|* 6_child7QX, i> 8> X) > *- Np2 eX) 04 = 3 h3 70`L~h? n@< H; !4 A`Xr00 p9  1(, U< p 0<7 *' P_8 o_strlen4W @ 6 8; 2 '  Ca_parentz / * Ce,@A / 5pOj9  > `* T. 'X4 _child3:$e3 x0 >  (>  x/ 9Pg|hX< / 8h_exitW 0' 3X- Nj+ 9 p0 8: p: *& CXjxH? :  H+8? 5J 8 f@ ~3 X8 <`p6  ? H+ -O(hH03 .0 JLfx9 % = "1 <W_child1}0, lo< %  . 8 ,1 G' ct@5 x) *  d;S81 nq0: 8 ,E < Y~Xx. 8 $$d:PP& k< : 6 1Lv% 4 0@-  L.(3 V9 v 1 * wH`2 X7 *\@U0 _Sleep@4n* $9 `3 3ZDs& 80<;+ a8<<84 9 7p; G]{x(09 G, g { _strstrW 2 ,@  /@6 Mly9 @( : 3= O`mt4) _child4`T-V 7O uP8*  & (LE$d& \ , * G Pf  8   )  lC \Z 4~  0@      '  h1 7 K i X6  `'  .debug_aranges.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.debug_ranges___mingw_invalidParameterHandler_pre_c_init_managedapp_pre_cpp_init_startinfo___tmainCRTStartup_has_cctor_WinMainCRTStartup_mainCRTStartup.CRT$XCAA.CRT$XIAA.debug_info.debug_abbrev.debug_loc.debug_aranges.debug_ranges.debug_line.debug_str.rdata$zzz.debug_frame___JCR_LIST_____gcc_register_frame___gcc_deregister_frame_on_name_appeared_name_seen_on_name_vanished_placeholder_do_application_demo_watch.48936_on_assistant_close_cancel_on_assistant_prepare_on_assistant_apply_apply_changes_gradually_progress_bar_assistant_on_entry_changed_do_assistant_quit_activate_help_activate_about_activate_do_builder_window.48936_win_entries_create_bbox_do_button_box_window.49598_button_release_event_cb_display_changed_cb_close_display_cb_open_display_cb_destroy_cb_display_closed_cb_add_display_display_opened_cb_response_cb_left_align_button_new_create_display_frame_do_changedisplay_info.49732_copy_button_clicked_paste_received_paste_button_clicked_paste_image_get_image_pixbuf_drag_data_get_copy_image_drag_begin_button_press_drag_data_received_do_clipboard_window.49662_change_color_callback_draw_callback_do_colorsel_mask_entry_init_mask_entry_editable_init_mask_entry_changed_mask_entry_class_intern_init_MaskEntry_private_offset_is_capital_sensitive_is_separator_set_sensitive_create_capital_store_mask_entry_get_type_g_define_type_id__volatile.49666_do_combobox_window.49693_apply_css_do_css_accordion_window.48924_show_parsing_error_css_text_changed_do_css_basics_window.48940_row_activated_do_css_blendmodes_window.48944_drawing_area_draw_do_css_multiplebgs_window.48945_do_css_pixbufs_create_toolbar_do_css_shadows_add_section_add_button_set_cursor_do_cursors_window.48938_interactive_dialog_clicked_message_dialog_clicked_do_dialog_draw_brush_scribble_motion_notify_event_close_window_scribble_configure_event_scribble_draw_checkerboard_draw_scribble_button_press_event_do_drawingarea_remove_item_articles_separator_row_add_item___func__.50429_editing_started_cell_edited_do_editable_cells_window.50478___func__.50396_do_entry_buffer_window.49589_create_completion_model_do_entry_completion_window.49594_draw_device_info_CSWTCH.23_axes_info_new_cur_color_event_cb_event_data_free_update_label_and_timeout_pad_action_timeout_id_on_action_activate_reset_label_text_timeout_cb_draw_axes_info.isra.0_do_event_axes_window.49749_pad_actions_pad_action_results_do_not_expand_expander_cb_do_expander_visible_func_filter_modify_func___func__.49851_format_number_do_filtermodel_window.49871_get_stats_stats_quark.48946_move_fish_do_fishbowl_window.48980_append_element___func__.49491_pseudo_classes.49477_create_context_for_path_get_style_query_size_draw_style_common_draw_check.isra.5_draw_radio.isra.6_get_style_with_siblings.isra.7_draw_combobox.isra.8_draw_text.constprop.9_draw_horizontal_scrollbar.isra.0.constprop.14_do_foreigndrawing_window.49772_zoom_scale_changed_rotation_angle_changed_long_press_gesture_end_long_pressed_long_press_gesture_pressed_swipe_gesture_swept_touchpad_swipe_gesture_begin_do_gestures_window.48963_demo_window_rotation_angles_create_shader_mvp_location_position_buffer_unrealize_on_axis_value_change___func__.76208_vertex_data_create_glarea_window_do_glarea_do_headerbar_window.48916_motion_notify_event_hovering_over_link_regular_cursor_hand_cursor_insert_link_show_page_follow_if_link_event_after_key_press_event_do_hypertext_window.48987_file_pixbuf_folder_pixbuf_sort_func_fill_store_item_activated_home_clicked_up_clicked_do_iconview___func__.49602_set_cell_color_do_iconview_edit_window.49509_toggle_sensitivity_callback_cleanup_callback_load_timeout_pixbuf_loader_image_stream_progressive_timeout_progressive_updated_callback_progressive_prepared_callback_do_images_on_bar_response_do_infobar_window.49596_activate_link_do_links_window.48928_gtk_message_init_gtk_message_row_sort_gtk_message_class_intern_init_gtk_message_parent_class_GtkMessage_private_offset_gtk_message_finalize_gtk_message_row_init_GtkMessageRow_private_offset_gtk_message_row_class_intern_init_gtk_message_row_parent_class_gtk_message_row_state_flags_changed_gtk_message_row_update_avatar_pixbuf_other_favorite_clicked_reshare_clicked_gtk_message_row_expand_expand_clicked_gtk_message_row_finalize_gtk_message_get_type_g_define_type_id__volatile.50435_gtk_message_row_get_type_g_define_type_id__volatile.50478_do_listbox_draw_color_do_flowbox_window.50390_window_closed_spinner_timeout_fixed_toggled_do_list_store_source_toggled_do_markup_window.48926_create_menu_change_orientation_do_menus_tool_clicked_do_modelbutton_window.48920_win_entries.48921_gtk_rotated_bin_init_gtk_rotated_bin_child_type_gtk_rotated_bin_damage_to_child_offscreen_window_from_parent_pick_offscreen_child_offscreen_window_to_parent_gtk_rotated_bin_draw_gtk_rotated_bin_size_request_gtk_rotated_bin_get_preferred_height_gtk_rotated_bin_get_preferred_width_gtk_rotated_bin_size_allocate_gtk_rotated_bin_unrealize_gtk_rotated_bin_parent_class_gtk_rotated_bin_realize_gtk_rotated_bin_forall___func__.49739_gtk_rotated_bin_remove_gtk_rotated_bin_add_gtk_rotated_bin_get_type_g_define_type_id__volatile.49625_gtk_rotated_bin_class_intern_init_GtkRotatedBin_private_offset_gtk_rotated_bin_new_gtk_rotated_bin_set_angle___func__.49750_scale_changed_do_offscreen_window_window.49809_gtk_mirror_bin_init_gtk_mirror_bin_child_type_gtk_mirror_bin_damage_gtk_mirror_bin_draw_gtk_mirror_bin_size_request_gtk_mirror_bin_get_preferred_height_gtk_mirror_bin_get_preferred_width_gtk_mirror_bin_size_allocate_gtk_mirror_bin_unrealize_gtk_mirror_bin_parent_class_gtk_mirror_bin_realize_gtk_mirror_bin_forall___func__.49743_gtk_mirror_bin_remove_gtk_mirror_bin_add_gtk_mirror_bin_get_type_g_define_type_id__volatile.49647_gtk_mirror_bin_class_intern_init_GtkMirrorBin_private_offset_gtk_mirror_bin_new_do_offscreen_window2_window.49790offscreen_window2.c_do_number_do_overlay_margin_changed_do_overlay2_window.48922_toggle_resize_toggle_shrink_create_pane_options_do_panes_window.48946_do_pickers_back_height_back_width_background_start_time_do_pixbufs_image_names_entry_icon_press_cb_toggle_changed_cb_create_popover_day_selected_cb_entry_size_allocate_cb_do_popover_window.48958_end_print_draw_page_begin_print_do_printing_reveal_one_on_destroy_change_direction_do_revealer_fancy_shape_renderer_create_fancy_attr_list_for_layout_rotated_text_draw_do_rotated_text_window.49516_do_scale_search_by_file_search_by_description_search_by_name_clear_entry_search_entry_destroyed_finish_search_id_search_progress_id_finish_search_notebook_stop_search_start_search_activate_cb_start_search_feedback_search_progress_done_search_progress_icon_press_cb_create_search_menu_entry_populate_popup_do_search_entry_previous_match_next_match_search_changed_changed_cb_search_changed_cb_window_key_press_event_cb_do_search_entry2_show_shortcuts_boxes_shortcuts_display_boxes_shortcuts_wizard_boxes_shortcuts_clocks_shortcuts_stopwatch_clocks_shortcuts_gedit_shortcuts_builder_shortcuts_do_shortcuts_icons_added.48946_do_sidebar_toggle_grouping_create_combo_box_do_sizegroup_window.49611_color_options.49617_dash_options.49618_end_options.49619_value_to_label_month_spin_output_month_spin_input_time_spin_output_hex_spin_input_time_spin_input_hex_spin_output_do_spinbutton_window.51193_on_stop_clicked_spinner_sensitive_spinner_unsensitive_on_play_clicked_do_spinner_window.49599_do_stack_draw_text_do_textmask_window.49597_da.49598_attach_widgets___func__.49850_easter_egg_callback_window.49874_do_textview_window.49857___func__.49835_remove_timeout_create_text_view_scroll_to_bottom_count.48930_scroll_to_end_count.48921_do_textscroll_window.48951_do_theming_style_classestheming_style_classes.c_interactive_canvas_drag_drop_drag_data_requested_for_drop_interactive_canvas_drag_leave_drop_item_canvas_item_new_interactive_canvas_drag_data_received___func__.49620_canvas_items_passive_canvas_drag_data_received___func__.49584_palette_drag_data_received_on_combo_style_changed_create_entry_item_on_combo_orientation_changed_interactive_canvas_drag_motion_canvas_item_draw_canvas_draw_do_toolpalette_do_transparent_window.48937_item_toggled_do_tree_store_toplevel_february_september_november_december_tag_pair_hash_tag_pair_equal_switch_to_entry_reset_features_numcasedefault_numspacedefault_fractiondefault_get_pango_font_update_features_script_lang_feature_names_update_display_settings_switch_to_label_script_changed_update_script_combo_script_names_language_names_font_changed_entry_key_press_do_font_features_window.54175_gtk_fishbowl_forall_GtkFishbowl_private_offset_gtk_fishbowl_init_gtk_fishbowl_class_intern_init_gtk_fishbowl_parent_class_gtk_fishbowl_remove_gtk_fishbowl_draw_gtk_fishbowl_size_allocate_gtk_fishbowl_tick_gtk_fishbowl_get_property_gtk_fishbowl_measure.isra.0___func__.49651_gtk_fishbowl_get_preferred_height_and_baseline_for_width_gtk_fishbowl_get_preferred_width_for_height_gtk_fishbowl_get_preferred_height_gtk_fishbowl_get_preferred_width_gtk_fishbowl_get_type_g_define_type_id__volatile.49623_gtk_fishbowl_add___func__.49727_gtk_fishbowl_new_gtk_fishbowl_get_count_gtk_fishbowl_set_count_gtk_fishbowl_get_animating_gtk_fishbowl_set_animating_gtk_fishbowl_set_property_gtk_fishbowl_dispose_demo_get_resource_static_resource_resource_constructor_resource_destructor_demo_resource_data.text.startup.text.exit_local_options_auto_quit_run_example_for_row_row_activated_cb_window_closed_cb_scrollbar_popup_start_cb_activate_run_treeview_activate_quit_activate_about_parse_chars_load_file_current_file___func__.51246_source_view_info_view___func__.51199_activate_win_entries.51340_headerbar_command_line_selection_cb_app_entries.51389_mingw_onexit___do_global_dtors___do_global_ctors_initialized_my_lconv_init__setargv___security_init_cookie.data$__security_cookie.data$__security_cookie_complement___report_gsfailure_GS_ExceptionRecord_GS_ContextRecord_GS_ExceptionPointers___dyn_tls_dtor@12___dyn_tls_init@12___tlregdtor___mingw_raise_matherr_stUserMathErr___mingw_setusermatherr__matherr_CSWTCH.5__fpreset__decode_pointer__encode_pointer___report_error_mark_section_writable_maxSections_the_secs__pei386_runtime_relocator_was_init.67161__gnu_exception_handler@4___mingwthr_run_key_dtors.part.0___mingwthr_cs_key_dtor_list____w64_mingwthr_add_key_dtor___mingwthr_cs_init____w64_mingwthr_remove_key_dtor___mingw_TLScallbackpseudo-reloc-list.c__ValidateImageBase.part.0__ValidateImageBase__FindPESection__FindPESectionByName___mingw_GetSectionForAddress___mingw_GetSectionCount__FindPESectionExec__GetPEImageBase__IsNonwritableInCurrentImage___mingw_enum_import_library_names___moddi3___cosl_internal___sinl_internal_mingw_get_invalid_parameter_handler__get_invalid_parameter_handler_mingw_set_invalid_parameter_handler__set_invalid_parameter_handlerinvalid_parameter_handler.c___JCR_END___register_frame_ctor.ctors.65535_gtk_notebook_get_n_pages_gtk_icon_theme_get_default_gtk_color_chooser_dialog_new__imp__gtk_scrolled_window_set_min_content_height__imp__gtk_widget_set_vexpand__imp__gtk_widget_get_visible__imp__gtk_expander_get_expanded__imp__gtk_icon_view_set_columns__imp__gtk_text_view_set_editable_cairo_pattern_add_color_stop_rgba_g_main_context_iteration__imp__gtk_get_current_event_VirtualProtect@16_gtk_text_buffer_insert_markup__imp__gtk_separator_menu_item_new_gtk_label_set_use_markup__imp__g_type_from_name__imp__g_ptr_array_free__nm__epoxy_glUseProgram_g_ascii_strup__imp__pango_fc_font_unlock_face_gdk_device_tool_get_serial_gtk_paned_new__imp__gtk_label_set_mnemonic_widget___RUNTIME_PSEUDO_RELOC_LIST____imp__gtk_combo_box_text_append_text__imp__gtk_builder_add_callback_symbols_gtk_widget_init_template_gtk_tool_item_group_insert__imp__gtk_tree_store_append_gdk_event_get_source_device_cairo_rectangle__imp__gtk_combo_box_set_active_iter_gtk_combo_box_new_with_model_gtk_text_buffer_get_mark__imp__gtk_widget_insert_action_group__imp__g_object_freeze_notify_gtk_text_buffer_new__nm__epoxy_glGenVertexArrays__imp__gtk_builder_new__imp__gtk_widget_path_iter_get_state_gtk_application_get_windows__imp__g_hash_table_insert__imp__gtk_tool_item_set_tooltip_text_g_bytes_unref_gtk_cell_layout_pack_start_gtk_icon_info_load_symbolic_for_context__imp__gtk_widget_add_tick_callback__imp__gdk_display_manager_list_displays_g_strndup__imp__gtk_cairo_should_draw_window__imp__gtk_builder_add_from_resource_gtk_gesture_swipe_new_cairo_rel_move_to_QueryPerformanceCounter@4_g_filename_to_utf8_gtk_icon_view_set_text_column_gtk_flow_box_set_selection_mode_gtk_builder_add_objects_from_resource__imp__gdk_screen_get_default__imp__gtk_text_buffer_apply_tag_by_name_gtk_check_button_new_with_mnemonic__imp__gtk_css_provider_new_cairo_destroy__imp__gtk_widget_is_toplevel__imp__gtk_tree_view_new_with_model_g_object_unref__imp__cairo_set_source_rgba__imp__gtk_print_context_get_width_gtk_scale_new_cairo_arc__data_start____imp__epoxy_glClearColor__imp__gdk_pixbuf_fill___DTOR_LIST___gdk_pixbuf_loader_close__imp__cairo_pattern_create_radial__imp__gtk_entry_completion_set_model__imp__gtk_tool_palette_get_drop_group_hb_script_from_iso15924_tag_g_array_append_vals_gtk_tree_view_get_selection_gtk_tool_item_group_get_type__imp__cairo_set_matrix__imp__gtk_entry_completion_set_text_column_gtk_cell_renderer_spinner_new_gtk_text_view_set_editable__imp__gtk_text_view_get_iter_at_location_gtk_selection_data_get_pixbuf__imp__g_utf8_get_char__imp__gdk_window_coords_to_parent_hb_ot_layout_language_get_feature_tags__imp__gtk_widget_get_preferred_width__imp__gtk_bin_get_child_g_source_set_name_by_id_gtk_entry_buffer_new_gtk_text_iter_backward_chars__imp__gtk_render_check__imp__VirtualProtect@16__imp__gtk_text_buffer_move_mark__imp___acmdln_gtk_separator_new_pango_layout_set_text_g_dir_close___setusermatherr__imp__g_dir_close__nm__epoxy_glDeleteShader_gdk_device_get_seat__imp__gtk_toggle_button_set_active__imp__g_ptr_array_new_gtk_cell_renderer_text_new__imp__gtk_tree_model_get_path_gtk_tool_item_get_type_g_list_free_UnhandledExceptionFilter@4_pango_cairo_layout_path.weak.__Jv_RegisterClasses.___gcc_register_frame__imp__gtk_cell_renderer_toggle_new_gtk_widget_get_style_context__imp__gdk_screen_get_root_window__imp___onexit__imp__gtk_pad_controller_set_action_entries_gtk_clipboard_wait_for_image_g_object_set_qdata_full__imp__gtk_text_buffer_insert_markup__imp__gtk_info_bar_set_show_close_button__imp__gdk_device_get_window_at_position__imp__gtk_widget_path_new_gtk_tree_view_set_headers_visible_gtk_widget_get_parent__imp__hb_tag_to_string__imp__pango_layout_get_font_description__imp__gtk_paned_get_child2__imp__GetLastError@0__imp__gtk_label_set_label_SetUnhandledExceptionFilter@4_gtk_widget_class_bind_template_child_full_gtk_tree_view_column_set_cell_data_func__imp__VirtualQuery@12_g_strdelimit__imp__gtk_text_buffer_get_bounds_gtk_text_view_set_buffer__imp__gtk_paned_add2__imp__gtk_tree_view_new_gtk_assistant_set_page_title__imp__gtk_toolbar_insert__imp__gtk_widget_set_valign__imp__cairo_create__imp__gtk_toolbar_new_gdk_device_get_window_at_position__imp__gdk_device_tool_get_tool_type_gtk_widget_set_opacity_gtk_search_entry_new_pango_font_description_free_gtk_tree_model_filter_set_visible_func__imp__gtk_image_new_from_resource__imp__gtk_builder_connect_signals_g_list_append_gtk_widget_get_allocated_width__imp__pango_font_metrics_get_ascent__nm__epoxy_glCreateShader_gtk_text_iter_get_text__imp__g_strndup__imp__gdk_screen_get_display__imp__gtk_widget_hide_gtk_style_context_get_padding_gtk_text_view_set_tabs_g_themed_icon_new_with_default_fallbacks__imp__g_object_class_install_properties__imp__gtk_icon_theme_get_for_screen_gtk_tree_model_filter_convert_iter_to_child_iter__imp__gtk_progress_bar_set_fraction_gtk_list_box_set_sort_func_g_type_class_adjust_private_offset_libcairo_2_dll_iname__imp__cairo_set_dash_hb_language_to_string__imp__gtk_container_foreach__head_libgdk_pixbuf_2_0_0_dll__imp__gtk_tree_view_expand_all__imp__gtk_css_section_get_end_position___tls_start____imp__gtk_css_provider_error_quark___native_startup_lock_gtk_combo_box_text_append_text__imp__gtk_tool_button_set_use_underline__imp__gtk_scrolled_window_new_cairo_set_line_width__imp__gtk_adjustment_get_upper__imp__cairo_rel_move_to__imp__gtk_menu_shell_append_gtk_text_view_set_wrap_mode__imp__gtk_size_group_set_mode_g_intern_static_string_gtk_tree_view_expand_all__imp__g_list_free_full__imp__gtk_image_get_icon_name__imp__gtk_window_set_resizable_gtk_stack_set_visible_child_name__nm__epoxy_glCompileShader__imp__gtk_radio_tool_button_new_gtk_spinner_stop_g_str_has_suffix__imp__gtk_widget_set_app_paintable__imp__gtk_widget_set_visible_gtk_text_iter_get_child_anchor__imp__gtk_notebook_append_page_gdk_display_get_default_screen_gtk_label_set_text__imp__gtk_entry_set_activates_default__imp__pango_tab_array_new__imp__gtk_info_bar_set_message_type__imp__gtk_tree_view_set_cursor_gdk_rgba_parse_gtk_text_iter_get_tags_gtk_tree_model_get_iter_first__imp__pango_tab_array_set_tab_gtk_search_bar_handle_event__imp__epoxy_glGenBuffers__imp__gtk_widget_path_iter_set_object_name__imp__pango_layout_set_text_gtk_info_bar_set_show_close_button__imp__TlsGetValue@4_gdk_pixbuf_get_width_gtk_text_view_new_with_buffer__imp__epoxy_glShaderSource__imp__g_file_test_gtk_range_set_range__imp__gtk_search_bar_handle_event_gdk_threads_add_timeout_gtk_text_buffer_create_mark__imp__gtk_widget_set_size_request__imp__gtk_text_view_set_right_margin__imp__gtk_style_context_get_path_gtk_menu_item_set_submenu_gdk_cairo_rectangle__imp__InitializeCriticalSection@4_gtk_text_view_window_to_buffer_coords_g_build_filename__imp__gtk_flow_box_set_min_children_per_line_gtk_style_context_reset_widgets__imp__gtk_stack_set_transition_type_gtk_widget_set_margin_end__imp__gtk_entry_set_attributes_gtk_tool_palette_add_drag_dest_gtk_dialog_get_content_area_DeleteCriticalSection@4_gtk_print_operation_set_n_pages__rt_psrelocs_start_gtk_container_foreach_gtk_widget_set_tooltip_text__imp__gtk_text_buffer_insert_pixbuf_gtk_widget_set_app_paintable_gtk_message_dialog_format_secondary_text__imp__epoxy_glGetProgramInfoLog_gtk_orientable_get_orientation__imp__hb_font_get_face_gtk_assistant_new__imp__abort__imp__gtk_widget_get_visual_gtk_style_context_get_border__nm__epoxy_glDrawArrays__imp__gtk_menu_item_new_with_label_gtk_widget_insert_action_group__imp__gdk_frame_clock_get_frame_time_gtk_gesture_zoom_get_scale_delta__imp__gtk_print_operation_set_embed_page_setup__imp__gtk_render_background_gtk_font_chooser_get_font__imp__gtk_message_dialog_format_secondary_text__imp__gdk_pixbuf_new__imp__cairo_set_source_surface__imp__gtk_container_child_set__imp__pango_layout_set_width__dll_characteristics____imp__g_themed_icon_new_with_default_fallbacks__imp__gtk_button_get_label_gtk_notebook_set_show_border__size_of_stack_commit____imp__g_list_append__imp__cairo_arc__imp__gtk_entry_new_with_buffer__imp__gtk_entry_set_progress_fraction_gtk_entry_completion_set_text_column__imp__gtk_menu_item_new_with_mnemonic__imp__gtk_stack_add_named__imp__gtk_adjustment_get_page_size__imp__gtk_color_chooser_get_rgba_pango_font_metrics_unref_g_malloc_gtk_tree_view_column_new_with_attributes_gtk_label_set_mnemonic_widget__imp___fmode_g_value_set_int__imp__gtk_widget_set_name_gtk_label_new__imp__g_list_free_gtk_style_context_new__imp__g_array_append_vals_gtk_text_view_set_right_margin_gtk_builder_add_callback_symbol_gtk_tool_item_group_new_gtk_image_new_from_gicon_gtk_editable_get_type_gtk_menu_new__size_of_stack_reserve____imp__gtk_tool_item_set_is_important__major_subsystem_version___gtk_paned_get_child1_gtk_menu_item_new_with_mnemonic___crt_xl_start___g_error_free__imp__gtk_list_store_insert_with_values_g_date_time_format__imp__gtk_assistant_set_page_type_gtk_cell_layout_set_cell_data_func_gtk_scrolled_window_new__imp__gtk_tool_palette_get_group_position_g_memdup__imp__cairo_paint_with_alpha__imp__gtk_widget_queue_allocate_gtk_widget_set_allocation__nm__epoxy_glGetProgramiv__imp__g_error_free_gtk_icon_view_set_selection_mode__imp__g_bus_get_sync_gdk_window_get_user_data__newmode__imp__g_strdup__nm__epoxy_glVertexAttribPointer__imp__cairo_curve_to__imp__gtk_image_new_from_gicon_g_date_time_new_from_unix_utc_cairo_fill__imp__gdk_window_get_user_data__imp__gtk_widget_size_allocate_gtk_drag_source_set__imp__pango_layout_get_pixel_size_gtk_button_new___crt_xi_start____imp__gtk_file_chooser_set_local_only__imp___amsg_exit_gtk_css_provider_error_quark_g_hash_table_destroy_gtk_get_major_version_cairo_move_to__imp__gtk_icon_theme_list_contexts_cairo_set_matrix__imp__gtk_print_operation_new___crt_xi_end____imp__gtk_popover_set_modal_g_utf8_get_char__imp__gtk_grid_new__nm__epoxy_glGenBuffers_gtk_window_set_titlebar_gtk_header_bar_new__head_libgtk_3_0_dll__imp__g_cclosure_new_gtk_tool_palette_set_group_position_gtk_gl_area_make_current__imp__gtk_label_set_text__imp__gdk_display_get_name_g_return_if_fail_warning__imp__g_file_icon_get_type__imp__g_ascii_strup_gtk_list_store_append_pango_layout_new_gtk_paned_add1_g_object_ref__imp__gtk_stack_sidebar_new_gtk_application_new__imp__cairo_restore__imp__hb_ft_font_create__imp__gdk_offscreen_window_get_surface_gtk_gesture_long_press_new_pango_fc_font_lock_face_gtk_grid_attach_gtk_icon_size_lookup__imp__gtk_widget_get_parent__nm__epoxy_glGetUniformLocation_gtk_assistant_set_page_type__imp__pango_context_get_metrics_gtk_menu_item_new_with_label__imp__strpbrk_g_action_map_add_action_entries__imp__gtk_drag_dest_find_target__imp__gtk_header_bar_pack_end__imp__gtk_widget_class_bind_template_child_full__imp__gdk_offscreen_window_set_embedder_gtk_entry_set_text__imp__gtk_text_view_new__imp__gtk_widget_set_hexpand__imp__gtk_text_buffer_get_end_iter_gtk_container_set_border_width_gtk_widget_create_pango_context__imp__g_hash_table_destroy__imp__gtk_button_box_set_layout_GetLastError@0_g_list_prepend_gtk_window_set_position__imp__g_string_new_g_list_free_full_gdk_window_set_user_data__imp__gtk_style_context_set_parent_gtk_color_button_new__imp__cairo_pattern_add_color_stop_rgb__imp__gtk_popover_new_gtk_text_buffer_remove_all_tags_gtk_popover_new__imp__gtk_entry_buffer_new__imp__gtk_image_set_from_pixbuf__imp__gtk_widget_get_window_cairo_pattern_add_color_stop_rgb__imp__gtk_container_remove__imp__gtk_size_group_add_widget_gtk_widget_set_hexpand__imp__gtk_menu_new_gdk_cairo_set_source_pixbuf__imp__QueryPerformanceCounter@4_g_object_get_data_gtk_search_bar_set_show_close_button_gtk_widget_show_all_hb_ot_tag_to_language_gtk_gesture_rotate_new_gtk_get_minor_version_VirtualQuery@12__imp__g_object_get_libgtk_3_0_dll_iname__imp__gtk_style_context_get_margin__imp__g_signal_override_class_closure__imp__gtk_revealer_get_child_revealed_gtk_tool_palette_get_type_gtk_widget_get_preferred_size_gtk_tree_path_free__imp__gtk_print_operation_set_print_settings__imp__g_strfreev_gtk_tool_palette_get_group_position_mingw_initltsdrot_force_gtk_accel_group_new__imp__gtk_image_set_from_icon_name_gtk_button_new_with_label__imp__gtk_list_store_remove_gtk_tool_item_group_get_item_position_gtk_notebook_append_page__imp__gdk_pixbuf_composite_pango_layout_get_context_gtk_entry_get_text__imp__gtk_entry_set_icon_tooltip_text_gtk_print_settings_set__imp___iob__imp__gtk_adjustment_set_value_gtk_window_present__dowildcard__imp__gtk_application_new_gtk_tree_path_new_from_string__imp__gtk_gl_area_make_current__imp__gtk_combo_box_set_row_separator_func__imp__g_date_time_new_from_unix_utc__imp__gtk_widget_destroyed_GetModuleHandleA@4__imp__gtk_tool_palette_set_group_position__imp__strstr__imp__gtk_adjustment_new__imp__gtk_tree_model_get_iter_first__imp__strncmp__nm__epoxy_glEnableVertexAttribArray__imp__gtk_paned_pack2_gtk_radio_menu_item_join_group__imp__gtk_cell_renderer_text_new__imp__gtk_label_set_xalign_gtk_widget_path_unref__imp__gtk_button_new_with_label__imp__gtk_widget_queue_resize_gtk_widget_class_set_template_from_resource_gtk_label_set_markup_gdk_window_get_device_position_gdk_display_open__imp__gtk_text_buffer_get_mark__imp__g_source_remove_cairo_scale__imp__gdk_display_beep__imp__gtk_scale_new_with_range__imp__g_string_free__imp__gtk_entry_get_text_cairo_clip_preserve_g_dir_read_name_gtk_stack_sidebar_set_stack_g_object_bind_property_gtk_drag_dest_add_image_targets__imp__hb_language_to_string__imp__gtk_radio_menu_item_join_group__imp__gtk_tool_item_group_new_gtk_widget_queue_draw_gtk_render_background__imp__gtk_builder_new_from_resource__imp__gtk_tool_palette_add_drag_dest__imp__epoxy_glDrawArrays__imp__gdk_drag_status_pango_cairo_context_set_shape_renderer__imp__epoxy_glGetUniformLocation_gdk_screen_get_default__imp__gtk_clipboard_get_g_regex_match_simple__imp__gtk_style_context_add_provider_gtk_icon_view_set_columns_g_list_remove_link__imp__gtk_text_buffer_get_start_iter_gtk_box_pack_end__imp__g_ptr_array_add_g_object_freeze_notify__imp__gtk_text_view_set_pixels_below_lines__imp__gdk_event_get_event_sequence_g_simple_action_group_new_pango_layout_get_font_description_gtk_text_buffer_apply_tag_by_name__bss_start___gtk_combo_box_text_new_gtk_info_bar_set_message_type_cairo_set_source__imp__cairo_fill__imp__gtk_get_current_event_device_gtk_widget_remove_tick_callback__imp__cairo_mask_gtk_icon_theme_lookup_icon__imp__g_type_add_instance_private__imp__gdk_window_set_user_data__imp__g_strchomp__imp__g_hash_table_remove_g_string_free_cairo_set_source_surface___RUNTIME_PSEUDO_RELOC_LIST_END___gtk_list_store_clear_g_strcmp0__imp__cairo_scale__imp__gtk_entry_new_gtk_list_box_row_new_gtk_style_context_add_class__imp__gtk_drag_dest_set__imp__gtk_icon_view_set_pixbuf_column__size_of_heap_commit____imp__gtk_widget_path_unref__imp__gdk_device_tool_get_serial_gtk_text_iter_set_line_offset__imp__pango_layout_set_font_description_gtk_spinner_new_gtk_drag_get_data_gtk_list_store_new__imp__pango_font_map_load_font__imp__g_themed_icon_new_gtk_entry_set_attributes__imp__gdk_event_get_device__imp__gtk_drag_get_data__head_libcairo_2_dll_gtk_widget_set_support_multidevice_gtk_tree_view_new_with_model__imp__gtk_box_set_spacing_gtk_image_get_animation_g_strnfill_gtk_menu_bar_new_gtk_text_buffer_create_tag__imp__g_variant_get_double___onexitend__imp__g_error_matches__imp__g_print_cairo_set_source_rgba_g_object_class_install_properties_gtk_widget_get_display__imp__gtk_button_set_label__imp__GetCurrentProcess@0__imp__hb_ot_layout_script_get_language_tags__imp__gtk_icon_theme_list_icons__imp__g_strv_length__imp__g_dbus_connection_call_sync__imp__g_slice_free1_gtk_clipboard_set_can_store_gtk_text_view_set_pixels_below_lines_pango_attr_foreground_new_gtk_label_get_type__imp__gtk_message_dialog_get_message_area_gtk_buildable_get_name_gtk_combo_box_get_model__imp___errno_gdk_event_get_device_gtk_widget_get_screen_gtk_scrolled_window_set_shadow_type__imp__gtk_widget_set_parent_window__imp__gtk_notebook_new_gtk_print_operation_new__imp__g_once_init_leave__imp__gtk_text_view_get_buffer_gtk_toolbar_insert_allow_changes_gtk_builder_get_object__imp__gtk_drag_set_icon_pixbuf_up_button__imp__gtk_widget_class_bind_template_callback_full_mingw_pcinit__imp__gtk_text_view_set_tabs_gtk_print_operation_set_print_settings_gdk_window_set_cursor_gtk_tree_model_iter_has_child_cairo_matrix_rotate__imp__epoxy_glDeleteShader_gtk_clipboard_set_text_gtk_label_set_angle_gtk_widget_set_vexpand__imp__gtk_widget_queue_draw__imp__GetProcAddress@8_GetProcAddress@8_gtk_icon_view_set_reorderable__imp__gtk_print_context_create_pango_layout__nm__epoxy_glBindVertexArray_pango_font_map_load_font___crt_xp_start___gdk_display_get_type__imp__gtk_container_get_children__imp__gtk_print_context_get_height__imp__gtk_style_context_get_state_pango_tab_array_new_g_object_connect_gtk_app_chooser_button_new__imp__g_object_connect_gdk_flush__imp__gtk_text_iter_forward_char_gtk_progress_bar_set_fraction__imp__gtk_text_buffer_get_iter_at_offset__imp__gtk_widget_get_pango_context__imp__gtk_widget_path_iter_set_name__imp__gtk_print_context_get_cairo_context_g_spawn_command_line_async_gtk_gesture_set_state__imp__pango_layout_set_ellipsize_gtk_entry_completion_set_model__imp__gtk_tree_view_set_headers_visible__imp__gtk_button_new_gtk_entry_get_type_gtk_application_get_active_window_gtk_tree_view_column_set_sizing_gtk_label_new_with_mnemonic__imp__cairo_fill_preserve__imp__gtk_container_set_border_width__nm__epoxy_glClear_g_hash_table_new_full__imp__g_object_set_qdata_full_g_cclosure_new__imp__epoxy_glAttachShader_gdk_pixbuf_loader_new__MINGW_INSTALL_DEBUG_MATHERR_gdk_window_geometry_changed__imp__gtk_text_buffer_create_tag__imp__gtk_button_new_with_mnemonic_gtk_window_set_title__imp__gtk_text_buffer_get_insert_gtk_render_check__imp__g_hash_table_new_full_gtk_tree_view_set_cursor_cairo_fill_preserve__imp__gtk_style_context_set_path_gtk_scale_new_with_range__imp__g_string_append_printf_gtk_adjustment_get_upper_gtk_text_view_get_iter_at_location__imp__gtk_render_icon__imp__gtk_clipboard_set_can_store__imp__epoxy_glCompileShader_gtk_editable_get_chars_gtk_widget_add_accelerator__imp__gtk_spinner_stop__imp__gtk_tool_palette_new__imp__gtk_widget_path_append_type_gtk_tree_sortable_set_default_sort_func_gtk_tool_item_set_tooltip_text_gdk_screen_get_display_gdk_window_new_n_icon_names_gtk_window_new___crt_xp_end____imp__gtk_tree_path_get_indices_g_bus_get_sync_libintl_gettext_g_simple_action_new__imp__hb_ot_tag_to_language_g_timeout_add_seconds__imp__gtk_text_view_scroll_mark_onscreen_g_strchomp_gtk_container_remove__imp__signal__head_libpango_1_0_0_dll_g_setenv_gtk_message_dialog_new_g_param_spec_boolean__minor_os_version___cairo_matrix_scale__imp__hb_ot_layout_table_get_script_tags__imp__gtk_tree_path_free_gtk_gesture_swipe_get_type__imp__gtk_entry_set_text__imp__gtk_widget_set_margin_end__imp__cairo_rectangle_gtk_tool_item_group_get_drop_item_gtk_tree_view_collapse_all__imp__gtk_widget_set_has_window_g_once_init_leave_gtk_label_set_xalign__imp__gtk_widget_create_pango_context__imp__gtk_text_buffer_get_text__imp__gtk_gesture_rotate_new_gtk_drag_source_add_image_targets__imp__gtk_tool_item_group_get_type__imp__gtk_list_store_insert_g_assertion_message_expr__imp__gdk_seat_grab__imp__gtk_combo_box_get_active_iter_gtk_widget_get_visible_gdk_display_beep__imp__gtk_tree_view_column_set_cell_data_func_gtk_separator_menu_item_new_gdk_window_get_height_gdk_window_get_width__imp__gdk_display_get_type_pango_layout_set_font_description__imp__gtk_list_store_new_GetTickCount@0__imp__gtk_container_propagate_draw_libpangoft2_1_0_0_dll_iname__image_base____imp__gtk_dialog_new_with_buttons_gtk_widget_set_no_show_all__nm__epoxy_glLinkProgram_gtk_grid_set_column_spacing_libgio_2_0_0_dll_iname__imp__gdk_pixbuf_loader_get_pixbuf_g_variant_get_double__imp__gtk_toggle_button_new_with_label__imp__g_date_time_unref_gtk_stack_sidebar_new_gtk_tool_button_get_icon_name_gtk_tree_selection_set_mode_gtk_tree_view_insert_column_with_attributes__imp__g_object_ref_sink_gtk_expander_get_expanded__imp__gtk_assistant_get_nth_page_cairo_set_line_cap__imp__exit__imp__gtk_paned_add1_g_random_int_range__imp__g_quark_from_static_string__imp__gtk_color_chooser_set_rgba__imp__gtk_assistant_append_page_gtk_text_iter_get_offset__imp__gdk_window_destroy__section_alignment____imp__gtk_widget_grab_default__imp__epoxy_glDisableVertexAttribArray__imp__gtk_label_set_angle__imp__pango_context_get_font_map_gtk_notebook_set_show_tabs_gtk_style_context_get_margin__imp__gtk_tree_view_column_new_with_attributes__imp__gtk_widget_grab_focus_gtk_widget_path_copy__imp__gtk_scrolled_window_set_shadow_type__imp__gtk_color_button_new__nm__epoxy_glGetProgramInfoLog_gtk_print_settings_new_pango_attr_list_unref__imp__gtk_widget_get_mapped_cairo_rotate__imp__gtk_editable_get_type__imp__cairo_clip_gtk_tool_item_set_visible_horizontal__imp__g_object_notify_by_pspec__imp__epoxy_glClear_gtk_print_context_get_width__imp__gtk_radio_button_get_type__imp__gtk_widget_set_allocation__imp__gtk_button_box_new_gdk_display_manager_get__imp__gtk_text_buffer_get_iter_at_mark__imp__g_strsplit_gdk_pixbuf_fill__imp__gtk_orientable_set_orientation_gtk_image_set_from_icon_name__imp__gtk_widget_realize__imp__pango_font_metrics_unref_cairo_rel_line_to_g_object_new_gtk_assistant_commit__imp__gtk_entry_set_placeholder_text_gtk_text_buffer_get_iter_at_line_index__imp__gdk_rgba_parse__imp__gtk_text_buffer_new__imp__gtk_text_buffer_create_child_anchor_g_timeout_add__imp__gtk_container_add__imp__GetStartupInfoA@4__imp__hb_script_from_iso15924_tag_cairo_transform__imp__gtk_app_chooser_button_set_show_dialog_item_libpango_1_0_0_dll_iname__imp__gtk_tree_view_set_search_column__IAT_end___gtk_tree_model_filter_new_g_bus_watch_name__imp__g_source_set_name_by_id__imp__g_object_weak_ref_gtk_search_bar_connect_entry__imp__gtk_tree_model_iter_has_child__imp__gtk_window_set_modal__imp____lconv_init_g_param_spec_uint__imp__gtk_calendar_new_gtk_style_context_set_state_gtk_css_section_get_end_line__imp__pango_attr_shape_new_with_data__imp__gtk_tree_view_insert_column_with_attributes__nm__epoxy_glFlush_gtk_print_operation_set_use_full_page__imp__gtk_container_get_type_gtk_cairo_should_draw_window__imp__gtk_widget_create_pango_layout__RUNTIME_PSEUDO_RELOC_LIST____imp__g_timeout_add_cairo_paint_with_alpha_g_strsplit_cairo_mask__imp__gdk_pixbuf_new_from_resource_at_scale_pango_font_description_from_string__imp__gtk_tool_palette_get_drag_item_gtk_cell_renderer_toggle_new__imp__g_dir_read_name__imp__gtk_tool_item_group_set_item_position_g_slice_alloc0__imp__epoxy_glUseProgram__imp__g_array_sized_new_gtk_icon_theme_add_resource_path__imp__gtk_widget_set_margin_start_gtk_header_bar_pack_start__imp__epoxy_glDeleteBuffers_cairo_set_dash_g_object_get_qdata_gtk_notebook_set_current_page__tls_start__imp__g_variant_new__imp__gtk_gesture_zoom_new_g_object_set_data__imp__gtk_entry_set_width_chars__imp__cairo_set_line_cap_gtk_entry_new__imp__gtk_box_new__imp__cairo_text_extents_gtk_stack_new_gtk_widget_add_events__imp__gtk_tool_item_group_get_drop_item_cairo_curve_to_gtk_color_chooser_set_rgba_gtk_revealer_get_child_revealed_gtk_box_pack_start_g_strfreev_g_simple_action_new_stateful_gtk_widget_is_sensitive__imp__pango_attr_list_unref__imp__gtk_event_box_new_gtk_tree_store_new__imp__gtk_tool_item_group_insert__imp__gtk_get_major_version__imp__gtk_header_bar_set_has_subtitle_gtk_widget_set_parent_window__imp__g_application_add_main_option__imp__gtk_widget_set_realized_gtk_list_store_insert_gdk_pixbuf_new_from_resource_at_scale_gtk_widget_is_toplevel__head_libpangocairo_1_0_0_dll_cairo_text_extents_pango_context_get_metrics___native_startup_state_gtk_entry_new_with_buffer__imp__cairo_save_gtk_notebook_remove_page__imp__g_input_stream_read__imp__gtk_application_get_windows__imp__g_type_register_static_simple_cairo_matrix_init_gtk_clipboard_request_text_gtk_header_bar_set_has_subtitle__imp__gtk_clipboard_set_image_gtk_progress_bar_new_gtk_css_provider_load_from_resource_gtk_popover_set_modal__imp__g_object_set_data__imp__pango_font_description_set_size_g_hash_table_add_gtk_font_button_new_gtk_paned_pack1__data_end____head_libharfbuzz_0_dll___getmainargs__imp__g_build_filename_gtk_widget_get_type_gtk_tool_palette_get_drop_group_gtk_widget_set_name__imp__pango_cairo_update_layout__CTOR_LIST____imp__gtk_widget_set_no_show_all_gtk_selection_data_set_pixbuf__imp__gtk_application_set_app_menu__imp__gtk_widget_path_append_with_siblings__imp__gtk_toggle_button_get_active_gtk_drag_finish___onexitbegin__imp__gtk_container_forall_gtk_range_get_value__imp__gtk_assistant_new__imp__gtk_tree_view_get_cursor_gtk_tool_palette_new_gtk_tool_item_set_is_important__imp__gtk_text_view_set_pixels_above_lines__imp__gtk_radio_menu_item_new_with_label_from_widget__imp__gtk_render_layout___set_app_type__imp__g_bus_watch_name_gtk_file_chooser_button_new__imp__hb_ot_layout_language_get_feature_tags__imp__gdk_window_set_cursor__imp__libintl_gettext__imp__sprintf__imp__gtk_widget_get_state_flags_gdk_device_get_n_axes__charmax__imp__gtk_adjustment_get_value_gtk_scrolled_window_set_policy_hb_font_get_face__imp__gtk_widget_get_type___mingw_winmain_lpCmdLine__bss_end___gtk_text_buffer_apply_tag__imp__epoxy_glCreateProgram_g_signal_handlers_disconnect_matched__imp__g_object_get_qdata_g_static_resource_init_gtk_container_get_border_width__imp__gtk_revealer_set_reveal_child__imp__g_object_bind_property_full_gtk_text_view_set_left_margin__nm__epoxy_glUniformMatrix4fv__imp__g_assertion_message_expr__imp__g_simple_action_new_stateful__imp__g_utf8_validate__imp__gtk_style_context_set_state__imp__gtk_tool_button_set_icon_name__imp__gtk_widget_get_allocated_width_gtk_file_chooser_set_local_only_gtk_adjustment_new__nm__epoxy_glGetShaderInfoLog__imp__g_value_set_uint_gtk_adjustment_get_value__imp__pango_fc_font_lock_face_gtk_widget_get_window_g_hash_table_lookup__nm__epoxy_glDeleteProgram_gtk_text_buffer_move_mark_gtk_widget_path_new__imp__g_bytes_unref__imp__gtk_drag_get_source_widget_gtk_entry_get_icon_area__imp__g_object_bind_property__imp__gtk_separator_new__imp__g_slist_free__imp__g_resources_open_stream__imp__gtk_header_bar_set_title_cairo_matrix_translate_g_source_remove___security_cookie_complement_gtk_cell_renderer_pixbuf_new___crt_xc_end___gtk_entry_set_activates_default__imp__g_filename_to_utf8__imp__gtk_label_get_layout__imp__g_application_quit__imp__g_value_set_boolean__imp__gtk_text_iter_get_child_anchor__imp__cairo_stroke_g_object_get__imp__gtk_search_entry_new_gtk_text_iter_forward_word_end__imp__gtk_text_view_add_child_at_anchor_gtk_overlay_new_gtk_widget_grab_focus__imp__gtk_list_box_select_row__imp__gtk_icon_view_set_reorderable_gtk_menu_popup_at_pointer_gtk_image_set_pixel_size_gtk_label_get_layout__imp__gtk_window_add_accel_group__imp__gdk_cairo_set_source_rgba_gtk_text_view_add_child_at_anchor__head_libpangoft2_1_0_0_dll_gdk_window_move_resize_gtk_widget_unparent__imp__gtk_widget_get_events__tls_index__imp__epoxy_glGetShaderInfoLog_pango_layout_set_attributes__imp__gtk_widget_remove_tick_callback_g_resources_open_stream__imp__gtk_widget_get_allocation__imp__GetTickCount@0_gdk_pixbuf_composite__imp__gtk_paned_get_child1__imp__gdk_threads_add_timeout_gtk_text_buffer_insert_with_tags_by_name_pango_layout_set_ellipsize__imp__g_application_run_gtk_icon_theme_list_contexts_g_bytes_get_data__imp__gtk_menu_attach_to_widget_pango_layout_set_width__imp__epoxy_glLinkProgram_gtk_application_add_window__imp__gtk_menu_item_set_submenu_cairo_surface_destroy___crt_xc_start____imp__gtk_image_new_from_icon_name__imp__gtk_tool_button_get_icon_name__imp__gtk_widget_set_events__imp__gtk_window_new_gdk_drag_status_gtk_tree_view_set_model__imp__g_list_sort__imp__g_input_stream_close_gdk_event_free_g_action_map_add_action_gtk_info_bar_get_content_area__imp__g_list_remove_link__imp__gdk_rectangle_intersect_gtk_scrolled_window_set_min_content_height__imp__epoxy_glBufferData__imp__gdk_event_get_source_device_gtk_list_store_set_g_object_thaw_notify__imp__gtk_window_set_title__imp__strchr_gtk_widget_get_events__nm__epoxy_glClearColor__imp__gtk_entry_completion_new_g_signal_emit_by_name__imp__gtk_header_bar_pack_start_gtk_dialog_set_default_response__imp__gtk_widget_destroy_gtk_drag_get_source_widget__imp__gtk_window_set_position_gtk_print_operation_run_gtk_assistant_set_page_complete__imp__gtk_cell_layout_set_cell_data_func__imp__gtk_tree_view_get_selection_gtk_widget_destroy__imp__g_signal_lookup__lib32_libkernel32_a_iname_gtk_stack_set_transition_type__imp__epoxy_glGetProgramiv__imp__gtk_container_child_get_gtk_container_forall__imp__gtk_box_set_homogeneous_pango_cairo_show_layout___CTOR_LIST____imp__gtk_tool_button_set_label_gtk_radio_tool_button_get_group_gtk_button_box_new__imp__GetCurrentProcessId@0_gdk_event_get_device_tool__imp__gtk_list_box_new_gtk_text_buffer_create_child_anchor_gtk_combo_box_set_active_iter__imp__gtk_pad_controller_new__imp__g_strcmp0__imp__g_get_home_dir_gtk_text_buffer_insert_pixbuf__imp__cairo_transform__imp__cairo_clip_preserve_gtk_frame_new_gtk_text_buffer_insert_gtk_combo_box_text_new_with_entry__imp__epoxy_glCreateShader__imp__gdk_event_get_coords__imp__gtk_tool_palette_set_style__imp__gdk_device_get_n_axes__imp__gdk_window_invalidate_rect_gtk_text_view_set_cursor_visible_gtk_widget_set_parent_gtk_icon_view_set_pixbuf_column__imp__g_hash_table_iter_next_mingw_app_type_gtk_print_operation_set_unit_gtk_text_buffer_get_text_g_value_get_double_gtk_drawing_area_new_gtk_tree_model_get_iter__imp__gdk_pixbuf_copy_area__imp__gtk_application_get_active_window__imp__gtk_icon_view_set_item_orientation__imp__gtk_widget_get_allocated_height__imp__gtk_widget_get_realized__initterm_gtk_font_chooser_get_font_desc_gtk_grid_new_gdk_gl_context_get_use_es__imp__g_static_resource_fini__imp__gtk_list_store_set_gtk_builder_new__imp__gtk_buildable_get_name_gtk_assistant_get_current_page__imp__g_signal_handlers_disconnect_matched_gtk_tool_item_new__imp__g_bytes_get_size_gtk_style_context_get_state__imp__TerminateProcess@8__imp__gtk_text_view_new_with_buffer__rt_psrelocs_size_g_string_append__imp__gtk_flow_box_set_selection_mode_gtk_tree_view_column_set_fixed_width_gtk_text_buffer_insert_with_tags_gdk_cairo_set_source_rgba__imp__epoxy_glBindVertexArray__imp__g_ascii_table__imp__gtk_icon_theme_add_resource_path_GetStartupInfoA@4__imp__gtk_entry_progress_pulse_gtk_image_new_from_pixbuf_gtk_box_set_homogeneous__imp__gdk_flush__imp__gtk_adjustment_get_lower_gtk_style_context_add_provider_for_screen__imp__g_object_add_weak_pointer__imp__g_list_prepend__imp__g_param_spec_boolean_g_object_bind_property_full__imp__gtk_text_iter_backward_chars__imp__gtk_gl_area_get_error_gtk_widget_get_allocated_height__imp__gtk_widget_set_window_gtk_tree_model_filter_set_modify_func_libharfbuzz_0_dll_iname_gtk_tree_store_append__imp__gdk_window_get_device_position__imp__gtk_grid_set_column_spacing__imp__g_signal_connect_data__imp__gtk_text_buffer_create_mark__imp__g_malloc0__imp__g_log_gdk_display_get_name_g_strdup_printf__imp__gtk_window_set_titlebar__imp__g_application_command_line_get_options_dict_gtk_tree_view_column_set_clickable_gtk_drag_dest_find_target_gtk_print_context_get_height_gtk_event_controller_set_propagation_phase__imp__gtk_combo_box_text_append_gtk_text_view_get_buffer_cairo_restore_gtk_widget_get_realized_GetCurrentProcessId@0__imp__gtk_box_pack_start__imp__gtk_label_set_line_wrap__imp____dllonexit_g_application_command_line_get_options_dict__imp__cairo_destroy_gtk_builder_add_callback_symbols_gtk_container_get_children_gtk_tree_view_get_model__imp__g_simple_action_new__imp__gtk_show_about_dialog_cairo_set_source_rgb_gtk_list_store_insert_after_gtk_adjustment_set_value_gtk_adjustment_get_page_size_gtk_text_buffer_get_start_iter_g_value_set_boolean__imp__memcpy__imp__g_string_append_gtk_application_set_app_menu_hb_ot_layout_table_get_script_tags_gtk_tool_palette_get_drag_item__imp__gtk_tree_model_get__imp__gtk_expander_new_gtk_widget_get_toplevel__imp__gtk_combo_box_set_active_cairo_get_matrix_pango_layout_get_pixel_size_gtk_builder_connect_signals__imp__g_strconcat__imp__gtk_tree_path_new_from_string_gtk_stack_add_named__imp__epoxy_glDeleteProgram_gtk_container_propagate_draw__imp__gtk_icon_theme_get_default_gtk_combo_box_set_active_g_type_name_gtk_tree_store_set_gtk_tree_view_new_gdk_device_get_axes__imp__strcmp__imp__gtk_image_get_pixbuf__imp__epoxy_glEnableVertexAttribArray__nm__g_ascii_table__imp__gdk_window_new_gtk_widget_get_preferred_height_and_baseline_for_width__imp__gtk_widget_get_screen__imp__gtk_clipboard_set_text__imp__gtk_widget_set_halign__imp__gtk_widget_get_preferred_height_and_baseline_for_width_gtk_image_get_storage_type_cairo_line_to_cairo_pattern_create_linear_gtk_color_chooser_get_rgba_gtk_tree_sortable_set_sort_column_id__file_alignment____imp__gdk_pixbuf_get_width_gtk_text_view_scroll_mark_onscreen_gtk_icon_view_set_item_orientation_gtk_widget_set_sensitive__imp__gtk_builder_add_objects_from_resource_libepoxy_0_dll_iname__imp__gtk_image_get_storage_type_gtk_frame_set_shadow_type_gdk_display_close__nm__epoxy_glCreateProgram_gtk_button_box_set_layout__imp__gtk_icon_size_lookup_gtk_flow_box_new_gtk_window_set_default_size__imp__gtk_style_context_add_class__imp___unlock__imp__g_return_if_fail_warning__imp__gtk_overlay_add_overlay__head_lib32_libmsvcrt_a_gtk_widget_create_pango_layout__imp__gtk_tree_sortable_set_default_sort_func_gtk_widget_path_iter_add_class__imp__g_main_context_iteration_cairo_show_text__imp__epoxy_glGenVertexArrays__imp__gtk_list_store_insert_after_gtk_label_set_label__imp__gdk_event_free_gtk_tree_model_filter_get_model_gtk_dialog_new_with_buttons__imp__LeaveCriticalSection@4__imp__gtk_widget_is_visible_gtk_size_group_new__imp__gtk_image_new_from_pixbuf_gtk_widget_set_valign_gtk_widget_destroyed__imp__gtk_assistant_set_page_complete__imp__gtk_list_box_set_activate_on_single_click_gtk_show_about_dialog__imp__cairo_new_sub_path__imp__gtk_notebook_set_show_border_gtk_container_add__imp__malloc__imp__atoi__imp__gtk_combo_box_new_with_model_gtk_size_group_set_mode__imp__gtk_selection_data_get_pixbuf_g_ptr_array_free__imp__gtk_progress_bar_new__imp__gtk_print_operation_set_n_pages_gtk_style_context_get__imp__gtk_orientable_get_orientation__imp__gtk_search_bar_new_gtk_widget_realize__imp__gtk_scrolled_window_set_policy__imp__g_timeout_add_full___mingw_pinit__imp__gtk_assistant_get_current_page_gtk_bin_get_child__imp__gdk_cairo_rectangle_g_slice_free1_gtk_spinner_start_pango_font_metrics_get_ascent__major_os_version___libgdk_pixbuf_2_0_0_dll_iname_gtk_window_set_modal_gtk_label_set_attributes_gtk_container_get_type__lib32_libmsvcrt_a_iname__imp__gdk_window_create_similar_surface_gtk_window_set_transient_for_gtk_tree_view_set_search_column__imp__gtk_entry_get_text_length__imp__gtk_list_store_clear_gtk_text_view_get_window__imp__gtk_tool_item_new__imp__cairo_matrix_init_gtk_widget_path_append_with_siblings_gtk_widget_set_margin_start_g_bytes_get_size__imp__gtk_font_button_new_gtk_gesture_is_recognized_g_application_run_gtk_entry_set_icon_tooltip_text__imp__gtk_css_section_get_start_position_gtk_gl_area_get_context__imp__g_object_ref__imp__g_static_resource_init_gtk_assistant_get_nth_page__imp__gtk_range_set_range__head_libgio_2_0_0_dll_gtk_style_context_set_path__imp__gtk_text_iter_forward_chars_g_strv_length_gtk_tool_palette_unset_style_g_utf8_collate_gtk_image_new_from_resource__imp__gtk_tree_view_column_set_sizing__imp__gtk_text_buffer_get_iter_at_line_index__imp__gtk_widget_unparent__imp__g_object_unref__imp__gtk_css_section_get_start_line__imp__gdk_event_get_device_tool__imp__gdk_window_geometry_changed__imp__gtk_flow_box_set_max_children_per_line_g_ptr_array_new_g_random_double_range__imp__g_utf8_collate_blend_modes_gtk_radio_tool_button_new__IAT_start____imp__g_strnfill_g_signal_connect_data__imp__gtk_tree_path_new_from_indices__imp__gtk_tree_view_get_model_g_type_from_name__imp__gtk_header_bar_new__imp__gtk_widget_get_parent_window_g_path_get_dirname__imp__gtk_widget_set_margin_bottom_g_string_append_printf__nm__epoxy_glBindBuffer__imp__gtk_drag_finish__imp__gtk_style_context_add_provider_for_screen_gtk_print_context_create_pango_layout__imp__gtk_drag_source_set_gtk_get_current_event_device__imp__gtk_window_set_screen_gtk_widget_get_parent_window_g_utf8_pointer_to_offset_pango_attr_shape_new_with_data__imp__gtk_render_arrow_gtk_tree_view_append_column__imp__gdk_window_get_width_gtk_tool_palette_set_style__imp__gtk_scale_new_g_resources_enumerate_children__imp__gtk_image_set_pixel_size_g_slist_free_gdk_window_destroy_gtk_flow_box_set_min_children_per_line__imp__gtk_assistant_set_page_title_gtk_style_context_get_path_pango_attr_list_insert__imp__g_type_class_adjust_private_offset__tls_end_gtk_clipboard_get__imp__gtk_scrolled_window_get_vscrollbar_gtk_range_get_adjustment_gdk_device_get_name_gtk_box_new_gtk_tree_selection_get_selected__imp__gtk_overlay_new_gtk_widget_path_iter_set_state__imp____initenv_g_get_home_dir_g_type_register_static_simple_gtk_image_get_icon_name__imp__gtk_selection_data_set_pixbuf__imp__gtk_tree_view_set_model__imp__gtk_text_view_get_window__imp__gtk_gesture_rotate_get_angle_delta__imp__gtk_widget_set_sensitive__imp___get_invalid_parameter_handler__imp__GetModuleHandleA@4__imp__gtk_tree_model_filter_set_modify_func_gtk_widget_set_margin_bottom_gtk_entry_set_placeholder_text_gtk_paned_add2_gtk_render_arrow__imp__cairo_matrix_scale__imp__cairo_show_text__imp__g_strdup_printf__imp__cairo_get_current_point__imp__gtk_tool_palette_unset_style___dllonexit_gtk_print_context_get_cairo_context_g_type_ensure_gtk_gesture_zoom_new__imp__gtk_tree_view_append_column_gtk_tool_item_group_set_item_position_icon_names__imp__gtk_label_set_markup_gtk_window_set_screen_g_hash_table_insert_gtk_button_set_label__imp___lock__imp__gtk_grid_set_row_spacing__DTOR_LIST____nm__epoxy_glDisableVertexAttribArray__imp__gtk_progress_bar_get_fraction__imp__fprintf__imp__gtk_icon_view_set_text_column_gtk_combo_box_get_active_iter_TerminateProcess@8__imp__epoxy_glGetShaderiv_gtk_render_icon__imp__g_hash_table_iter_init_gtk_notebook_new_gtk_paned_get_child2_gtk_widget_set_margin_top_gtk_progress_bar_get_fraction__imp__gtk_label_get_type_g_string_new_EnterCriticalSection@4__imp__cairo_pattern_create_linear__imp__gtk_tree_view_column_add_attribute__imp__g_setenv_gtk_revealer_get_reveal_child__imp__gtk_text_buffer_insert_with_tags_by_name_gtk_info_bar_new_with_buttons_gdk_device_tool_get_tool_type_gtk_text_buffer_get_end_iter__imp__gtk_file_chooser_button_new__imp__gtk_stack_sidebar_set_stack_gtk_entry_completion_new_gtk_text_iter_forward_line__imp__gtk_drawing_area_new__imp__gtk_info_bar_get_content_area_gtk_list_box_row_get_type_g_value_set_uint__imp__gtk_popover_set_position__imp___initterm__imp__g_object_thaw_notify__imp__gtk_css_provider_load_from_data_gtk_tree_path_new_from_indices_gtk_tree_model_get_path__imp__gtk_range_get_value__imp__gtk_widget_class_set_template_from_resource_GetCurrentThreadId@0__imp__g_value_get_double_gdk_device_get_axis__size_of_heap_reserve____imp__cairo_set_source_rgb__imp__gtk_application_add_window__imp__gtk_tree_view_get_column_gdk_seat_grab_gdk_cursor_new_from_name___crt_xt_start___gtk_icon_theme_get_for_screen__imp__gtk_tool_palette_get_type__imp__gtk_app_chooser_button_new__imp__gtk_render_frame_gtk_tree_view_column_set_sort_column_id_g_once_init_enter___ImageBase__imp__pango_tab_array_free__imp__cairo_matrix_translate__imp__gtk_assistant_get_n_pages__subsystem____imp__gtk_radio_tool_button_get_group_gtk_text_buffer_get_insert__imp__epoxy_glDetachShader_gtk_assistant_append_page__imp__cairo_get_matrix_gtk_text_buffer_get_bounds_libpangocairo_1_0_0_dll_iname__imp__gtk_entry_set_icon_from_icon_name_gtk_header_bar_set_title__imp__strlen__imp__gtk_tool_item_group_set_label_widget_gtk_tool_button_set_icon_name_gtk_text_buffer_set_text__imp__gtk_widget_add_accelerator__imp__cairo_surface_destroy__imp__gdk_window_move_resize__imp__epoxy_glUniformMatrix4fv_pango_attr_list_new__imp__gtk_size_group_new__imp__gtk_frame_new__imp__g_type_name__imp__strtol_cairo_pattern_destroy__imp__gtk_tool_item_set_visible_vertical__imp__g_type_check_instance_is_a_gtk_calendar_new_g_dir_open__imp__gtk_entry_get_type__imp__gtk_label_new__imp__gtk_gesture_is_recognized_libgdk_3_0_dll_iname__imp__gtk_gesture_swipe_new_g_input_stream_read___mingw_oldexcpt_handler__imp__cairo_pattern_destroy_gtk_combo_box_set_model_gtk_container_child_get__imp__calloc_gtk_list_box_new__imp__gtk_icon_view_set_selection_mode__imp__g_value_take_string__imp__gtk_text_buffer_insert_gtk_paned_pack2_libgobject_2_0_0_dll_iname__imp__gtk_tree_selection_select_iter_gtk_tree_view_get_cursor__imp__gtk_font_chooser_get_font__imp__gdk_pixbuf_get_type_gtk_radio_menu_item_new_with_label_from_widget_gtk_container_child_set_g_array_sized_new__imp__gtk_container_get_border_width_gtk_widget_path_iter_set_name__imp__gtk_image_get_animation_gtk_list_store_insert_with_values__head_libepoxy_0_dll__imp__gtk_widget_set_tooltip_text___native_vcclrit_reason__imp__g_spawn_command_line_async__imp__gtk_widget_get_clipboard_g_object_add_weak_pointer__Jv_RegisterClasses__imp__GetSystemTimeAsFileTime@4__imp__gdk_pixbuf_new_from_resource_gtk_toggle_button_set_active_gtk_clipboard_set_image__imp__gtk_notebook_remove_page_gtk_get_micro_version_gtk_tree_view_get_column_gtk_cell_renderer_progress_new_gtk_grid_set_row_spacing___lconv_init_gtk_style_context_set_parent__imp__g_object_set_gdk_offscreen_window_set_embedder_gtk_header_bar_pack_end_cairo_clip_gtk_widget_set_can_default__imp__gtk_tree_sortable_set_sort_column_id__imp__g_utf8_pointer_to_offset_gtk_builder_add_from_resource_gtk_message_dialog_new_with_markup__amsg_exit_gdk_rectangle_intersect_gdk_window_invalidate_rect__imp__gtk_gesture_set_state_cairo_get_current_point_gtk_orientable_set_orientation_gtk_widget_is_visible_gtk_widget_grab_default_gtk_revealer_set_reveal_child__imp__g_type_ensure_cairo_close_path_gtk_text_iter_forward_chars__imp____getmainargs__nm__epoxy_glAttachShader__imp__gtk_menu_popup_at_pointer_gtk_widget_path_iter_get_state__imp__gtk_get_micro_version_gtk_search_bar_new_gtk_image_new_from_icon_name__imp__g_simple_action_group_new__imp__gtk_style_context_new_gdk_offscreen_window_get_surface___mingw_winmain_nShowCmd_gtk_text_buffer_get_selection_bounds_g_hash_table_iter_next_libintl_8_dll_iname___native_dllmain_reason_gtk_selection_data_get_length___tls_end____imp__gtk_widget_add_events_g_type_class_peek_parent_g_value_get_boolean_gtk_image_get_pixbuf__imp__gtk_tree_model_filter_set_visible_func__imp__gtk_widget_set_can_default__imp__gtk_info_bar_new_with_buttons__imp__gtk_tree_store_new_gdk_pixbuf_loader_write__imp__pango_layout_get_context__imp__cairo_matrix_rotate__imp__gtk_dialog_get_content_area_gtk_dialog_run_pango_cairo_update_layout_cairo_new_sub_path_gtk_overlay_set_overlay_pass_through_gtk_widget_get_visual_gtk_widget_get_preferred_width_g_object_weak_ref_gtk_widget_size_allocate__imp__gtk_clipboard_wait_for_image_gtk_widget_set_size_request__imp__g_memdup__imp__gtk_flow_box_new_gtk_header_bar_set_show_close_button_GetSystemTimeAsFileTime@4_gtk_scale_set_draw_value_g_quark_from_static_string__imp__gtk_spinner_new_gtk_widget_set_events_gtk_pad_controller_set_action_entries__imp__gtk_overlay_set_overlay_pass_through__imp__gdk_pixbuf_loader_new_mingw_pcppinit_gtk_widget_get_clipboard_gtk_cell_renderer_combo_new__imp__gtk_tree_model_iter_next__head_libglib_2_0_0_dll__imp__g_signal_emit_by_name__imp__gtk_list_box_row_get_index_gtk_entry_set_visibility_GetCurrentProcess@0_gtk_tree_view_column_add_attribute_g_application_quit__imp__gtk_print_settings_set__imp__cairo_close_path__imp__g_intern_static_string__imp__gtk_stack_set_visible_child_name_gtk_icon_view_get_model_gtk_css_provider_load_from_data_g_type_add_interface_static_mingw_initltssuo_force__imp__gdk_cairo_set_source_pixbuf__imp__g_hash_table_lookup_gtk_widget_set_realized__imp__gtk_widget_get_display__imp__gtk_clipboard_request_text_g_error_matches_gtk_icon_view_new_with_model__imp__gtk_widget_get_frame_clock_g_variant_dict_lookup_InitializeCriticalSection@4__imp__cairo_set_source_g_value_take_string__imp__gtk_stack_new__imp__pango_font_description_free__imp__free__imp__gtk_widget_show_all__imp__cairo_set_line_width__imp__gtk_entry_get_icon_area__imp__g_array_remove_index__imp__gtk_window_present__imp__gtk_style_context_get_border__imp__pango_cairo_show_layout__imp__SetUnhandledExceptionFilter@4__imp__gtk_text_iter_get_text_gtk_expander_new__imp__gdk_pixbuf_get_height__imp__g_type_class_peek_parent__imp__g_type_add_interface_static__imp__g_object_set_data_full__imp__gtk_message_dialog_new_with_markup_gtk_print_operation_set_embed_page_setup_pango_tab_array_set_tab__imp__gtk_tree_view_column_set_fixed_width_pango_font_description_set_size__imp___set_invalid_parameter_handler_cairo_paint_g_signal_override_class_closure_g_hash_table_remove__major_image_version____imp__gtk_label_new_with_mnemonic__nm__epoxy_glDetachShader_gtk_combo_box_set_row_separator_func_gtk_widget_add_tick_callback_gtk_widget_class_bind_template_callback_full__imp__gtk_paned_new_gdk_window_coords_to_parent_gtk_css_section_get_end_position__loader_flags___gtk_widget_show_g_signal_lookup_g_dbus_connection_call_sync__imp__gtk_menu_bar_new__imp__epoxy_glBindBuffer_hb_face_destroy__imp__UnhandledExceptionFilter@4__imp__gtk_scale_set_draw_value_gtk_demos__imp__g_bytes_get_data__imp__gtk_list_store_append_gdk_frame_clock_get_frame_time__imp__g_dir_open__imp__gdk_device_get_axis_gdk_event_get_event_sequence_cairo_create_g_file_test__imp__gtk_combo_box_text_new_with_entry__imp__epoxy_glFlush_gtk_assistant_get_n_pages__head_lib32_libkernel32_a_gtk_widget_get_pango_context_gtk_pad_controller_new__imp__gtk_event_controller_set_propagation_phase_gtk_popover_set_pointing_to_g_timeout_add_full__imp__cairo_rotate_gtk_check_button_new_with_label___chkstk_ms__imp__g_random_int_range__imp__gtk_widget_set_parent__imp__pango_attr_list_new_gtk_entry_progress_pulse_g_value_get_uint__imp__g_date_time_format__imp__g_resources_enumerate_children_gtk_menu_attach_to_widget__imp__gtk_combo_box_get_model__imp__gtk_window_set_default_size__imp__gtk_cell_layout_pack_start__imp__gtk_tree_model_filter_convert_iter_to_child_iter_gtk_toggle_button_new_with_label__imp__gdk_device_get_name_gtk_text_buffer_delete__imp__g_variant_dict_lookup_g_object_set_data_full__imp__hb_face_destroy__imp__gtk_tree_view_column_set_clickable_g_object_notify_by_pspec_gtk_tree_selection_select_iter_g_utf8_validate_gtk_scrolled_window_get_vscrollbar_gtk_gl_area_get_error__imp__gtk_list_box_set_sort_func_gtk_toolbar_new__rt_psrelocs_end_gtk_css_provider_new_pango_context_get_font_map__imp__gtk_text_iter_set_line_offset_gtk_entry_get_text_length_gtk_entry_set_width_chars__imp__cairo_pattern_add_color_stop_rgba__imp__gtk_builder_get_object__imp___cexit_g_str_equal__nm__epoxy_glBufferData__imp__gtk_widget_is_sensitive_hb_ot_layout_script_get_language_tags__imp__gdk_window_get_height_cairo_save_gtk_css_section_get_start_line__imp__gtk_grid_attach__imp__gtk_tree_store_set_gtk_list_store_remove__imp__gtk_cell_renderer_progress_new__imp__gtk_notebook_get_n_pages__imp__gtk_widget_init_template_gdk_pixbuf_new_from_resource__imp__gtk_search_bar_connect_entry_gtk_text_buffer_get_iter_at_offset_pango_fc_font_unlock_face__minor_subsystem_version____imp__gtk_style_context_get__minor_image_version____imp__gtk_selection_data_get_length__imp__g_path_get_dirname__imp__g_param_spec_uint_gdk_window_show_gtk_widget_path_iter_set_object_name__imp__Sleep@4__imp__vfprintf__imp__g_strdelimit__imp__gtk_text_buffer_set_text_g_malloc0_gtk_box_set_spacing_cairo_pattern_create_radial_gtk_gesture_rotate_get_angle_delta_gtk_widget_get_state_flags__imp__gtk_text_view_set_wrap_mode__imp__gtk_editable_get_chars_libglib_2_0_0_dll_iname__imp__g_malloc__imp__gdk_pixbuf_loader_write__imp__gtk_notebook_set_show_tabs__imp__gdk_cursor_new_from_name_gtk_popover_set_position__imp__gtk_spinner_start_gtk_toggle_button_new_with_mnemonic__imp__gtk_icon_theme_lookup_icon__imp__gtk_gesture_swipe_get_type__imp__gtk_text_iter_get_tags_g_array_remove_index_gtk_message_dialog_get_message_area__imp__gtk_cell_renderer_spinner_new__imp____set_app_type__imp__hb_tag_from_string__nm__epoxy_glGetShaderiv___mingw_winmain_hInstance_gdk_pixbuf_copy_area__imp__gtk_assistant_commit_g_object_set_gtk_tool_item_group_set_label_widget__imp__g_resources_lookup_data_gtk_render_layout__imp__gtk_widget_get_preferred_size_gtk_drag_dest_set__imp__gtk_toggle_button_new_with_mnemonic_gtk_entry_set_progress_fraction__imp__gtk_color_chooser_dialog_new_gtk_list_box_select_row_g_variant_new__imp__g_timeout_add_seconds__imp__gtk_message_dialog_new_g_object_ref_sink_gtk_overlay_add_overlay__imp__g_value_set_int__imp__gtk_paned_pack1__imp__gtk_widget_set_support_multidevice_mingw_initltsdyn_force_hb_ft_font_create_gtk_menu_shell_append__imp__gtk_builder_add_callback_symbol__imp__GetCurrentThreadId@0_gtk_widget_path_append_type_gtk_size_group_add_widget__imp__gtk_widget_path_copy_gtk_text_iter_forward_char_g_themed_icon_new_gtk_list_box_set_activate_on_single_click_g_file_icon_get_type_g_application_add_main_option_TlsGetValue@4__imp__gtk_gesture_long_press_new_gtk_widget_queue_resize__imp__gtk_drag_dest_add_image_targets__imp__gtk_entry_set_visibility__imp__g_str_has_suffix_g_strconcat__imp__epoxy_glVertexAttribPointer__imp__gtk_widget_get_toplevel_g_resources_lookup_data__imp__gtk_list_box_row_get_type_g_strdup__imp__cairo_line_to_gdk_screen_get_root_window_g_hash_table_iter_init_gtk_entry_set_completion__imp__DeleteCriticalSection@4___security_cookie__imp__gtk_icon_info_load_symbolic_for_context__imp__gtk_entry_set_completion_gdk_display_manager_list_displays__imp__gtk_icon_view_new_with_model__imp__gtk_text_view_window_to_buffer_coords_gtk_builder_new_from_resource_LeaveCriticalSection@4__imp__gdk_display_get_default_screen__imp__gdk_display_manager_get_g_ptr_array_add_gtk_text_view_new__imp__gtk_tree_view_collapse_all__imp__g_once_init_enter__imp__g_random_double_range__imp__gtk_css_provider_load_from_resource__imp__g_object_get_data__imp__gtk_cell_renderer_combo_new_gtk_entry_set_icon_from_icon_name__imp__gdk_pixbuf_loader_close_gtk_list_box_row_get_index__imp__gtk_list_box_row_new__imp__gtk_tree_model_filter_get_model_gdk_pixbuf_new_gtk_window_add_accel_group__imp__gtk_revealer_get_reveal_child_g_type_add_instance_private__imp__gtk_text_buffer_remove_all_tags_gtk_icon_theme_load_icon__imp__gdk_device_get_seat__imp__gtk_cell_layout_set_attributes_gtk_text_buffer_get_iter_at_mark__nm__epoxy_glDeleteBuffers_hb_tag_to_string_gtk_widget_set_window_gtk_render_frame__imp__gtk_text_iter_get_offset_gdk_event_get_coords_gtk_icon_theme_list_icons_gtk_widget_get_frame_clock__imp__gtk_drag_source_add_image_targets_gtk_combo_box_text_append__imp__gtk_text_buffer_insert_with_tags_gtk_tree_path_get_indices_gtk_tool_button_set_use_underline__imp__g_free__imp__gtk_range_get_adjustment__imp__g_hash_table_add_gtk_image_set_from_pixbuf__nm__epoxy_glShaderSource_g_input_stream_close__imp__gtk_css_section_get_end_line__imp__gtk_window_set_transient_for__imp__gdk_display_close__imp__gtk_icon_theme_load_icon__imp__gtk_style_context_get_padding_hb_tag_from_string__imp__gtk_text_view_set_left_margin__imp__gtk_widget_set_margin_top_gtk_radio_button_get_type_gdk_window_create_similar_surface__imp__gtk_box_pack_end__imp__g_action_map_add_action_entries__imp__gtk_widget_set_opacity__imp__gtk_dialog_run_gtk_widget_set_has_window_pango_tab_array_free_cairo_translate__imp__pango_font_description_from_string__imp__gtk_tree_view_column_set_sort_column_id__imp__gtk_widget_path_iter_add_class_gtk_cell_layout_set_attributes__imp__gtk_accel_group_new__imp__gtk_check_button_new_with_mnemonic__imp__gtk_widget_show_gtk_window_set_resizable_gtk_css_section_get_start_position__RUNTIME_PSEUDO_RELOC_LIST_END___gtk_spin_button_get_adjustment__imp__gtk_text_buffer_apply_tag_gtk_flow_box_set_max_children_per_line_g_static_resource_get_resource_gtk_info_bar_new_gtk_toggle_button_get_active___dyn_tls_init_callback__imp__gtk_tool_item_group_get_item_position_gtk_gl_area_new_gtk_app_chooser_button_set_show_dialog_item__imp__g_slice_alloc0__imp__cairo_move_to_gtk_label_set_line_wrap__imp__gtk_tree_selection_set_mode_gtk_tool_button_new__imp__cairo_paint_g_static_resource_fini_mingw_initcharmax__imp____setusermatherr_gtk_event_box_new__imp__gtk_cell_renderer_pixbuf_new__imp__gtk_check_button_new_with_label__imp__cairo_rel_line_to__imp__cairo_translate_gtk_widget_set_halign__imp__g_value_get_uint__imp__gtk_label_set_use_markup__imp__gtk_tool_button_new__imp__pango_cairo_layout_path__imp__gtk_text_view_set_cursor_visible_gtk_text_view_set_pixels_above_lines__imp__gtk_print_operation_set_use_full_page__tls_used__imp__gtk_print_settings_new__imp__gtk_style_context_reset_widgets_gtk_drag_set_icon_pixbuf_gdk_pixbuf_loader_get_pixbuf__imp__gtk_tree_model_filter_new_cairo_new_path__imp__cairo_new_path__imp__pango_attr_list_insert__imp__gtk_text_iter_forward_word_end__imp__g_value_get_boolean__imp__gtk_tree_selection_get_selected__head_libgdk_3_0_dll__head_libgobject_2_0_0_dll__imp__gdk_device_get_axes_gdk_pixbuf_get_height_gtk_style_context_add_provider__imp__g_object_new__imp__gtk_label_set_attributes_gtk_get_current_event__imp__gtk_spin_button_get_adjustment___crt_xt_end___g_date_time_unref__head_libintl_8_dll__imp__g_action_map_add_action_gtk_button_new_with_mnemonic__imp__gtk_tool_item_set_visible_horizontal__imp__gtk_icon_view_get_model_gdk_pixbuf_get_type__imp__gtk_tool_item_get_type__imp__gtk_text_view_set_buffer_gtk_widget_get_allocation_cairo_stroke__imp__gtk_combo_box_set_model_g_type_check_instance_is_a__imp__gtk_text_buffer_delete__imp__g_str_equal__imp__gtk_gesture_zoom_get_scale_delta__imp__gtk_popover_set_pointing_to_gtk_tree_model_iter_next__imp__gtk_frame_set_shadow_type__imp__gtk_dialog_set_default_response_vfprintf__imp__gdk_display_open__imp__gtk_font_chooser_get_font_desc__imp__g_regex_match_simple__imp__gtk_header_bar_set_show_close_button__imp__gtk_search_bar_set_show_close_button_gtk_tool_item_set_visible_vertical_gtk_widget_queue_allocate__imp__gtk_get_minor_version__imp__gtk_print_operation_run__imp__gtk_text_iter_forward_line__imp__gtk_tree_model_get_iter_gtk_widget_set_visible__imp__pango_attr_foreground_new__imp__gtk_info_bar_new__imp__EnterCriticalSection@4__imp__pango_layout_new_gtk_tool_button_set_label__imp__gtk_gl_area_get_context__imp__gtk_notebook_set_current_page__imp__pango_cairo_context_set_shape_renderer__imp__gtk_text_buffer_get_selection_bounds__imp__gtk_widget_get_style_context_gtk_tree_model_get__imp__g_static_resource_get_resource__imp__gtk_gl_area_new__imp__gtk_print_operation_set_unit__imp__gtk_widget_path_iter_set_state_g_list_sort__imp__pango_layout_set_attributes__imp__fwrite__imp__gdk_gl_context_get_use_es_gtk_widget_get_mapped__imp__gdk_window_show_gtk_adjustment_get_lower__imp__gtk_combo_box_text_new_gtk_button_get_label_gtk_widget_hide