pax_global_header00006660000000000000000000000064147137314310014516gustar00rootroot0000000000000052 comment=18a30b0361b500299bcbb4382c9f6a4dc7c41235 jp2a-1.3.2/000077500000000000000000000000001471373143100123555ustar00rootroot00000000000000jp2a-1.3.2/.dockerignore000066400000000000000000000003031471373143100150250ustar00rootroot00000000000000.gitignore .github Doxyfile.in README.md tests aclocal.m4 autom4te.cache compile config.h config.h.in config.log config.status configure depcomp install-sh Makefile Makefile.in missing stamp-h1 jp2a-1.3.2/.github/000077500000000000000000000000001471373143100137155ustar00rootroot00000000000000jp2a-1.3.2/.github/jp2a.jpg000066400000000000000000000370421471373143100152610ustar00rootroot00000000000000JFIFHHCreated with GIMPC     C  )   e]e3[9 HqgV߻cinI%Pje= ~5 6s۲6=Nc:rR.Vv&>ss&fi[;oz :WTU{@v+Y%i᎜깦37Ex~Q?E{/%ྂ]p nmUpe~ںlޢk.jTh\l _ęEéқ;7}+g)Uӭ{ ьz,X?#W$c9is`q3}>\Q􇍙6sh㲊'CyDm.Fs>+v>^\<_{ c.2@IlUIk[Z?=7lrP9͌/>ꈋzm[itf})68gO% *'!7#.2@IlUYo]cNr&r5݋;IS6`UyG;WpkR^Γ6 z @~}$|r/_\: ^'?VșϢ䍿\V6TTWIAީͳ{6w%.Psk[sCĩ&R)8ϴ?V屾[eSy~8F ܘ9%t:8+Uɹk[[d;<]%tz|\љAe︔hDK[QF͞}RUd:-{ d2*wʲgڒ K?5rO~ɃrQѯE㍿|\&w?~5 牚RXGb:/X:*V%Qt:ZuҰ^c^xWꗻ9KvzDK5-vչ<-w.^B}NOO:Dp$Yخ r67xʘX:4|uw6lढ़=ά'cWu{'w3jTNK[\:׎72aNPGSZ: dQjzT0U۵v୮d117 4560@!"$&2幸kJ?' -+c?~i^>#aP_=,CQX V1Mox `XM`Ckp' 'Cl#Q|*i,ٗU%*V yjZkohvd+T9ɤX5ډ$Q*bjkkEV7Vv얲`R+ ZhHG:E"ˌHQ/k.?#|U!jj:>ۋh%WnKVUSߚ7EoXR.S?" R垗R(/~SlHca$\"(EK=7?rp*^g3q h[zuk[b96v-X{%$X934J*2`ʑ'n&]>t?^8Y#=77r0*~g3qwexO![ahe.\ QmVkj'[~F(DVΟ#-Hf2"ש|&c ʋ- =7/r0*~g3qwoe>#x y0\ɿ^-T+.g1fn%*L!"LrM܌ L={je0 cx-|B ErunҼ«ֈ١lڡ˄ȊrM| L{_<HlGsq E"}eq^(WIyY,}{Ml Ǹy\SIuILeIqTcVYLE& < LErWjz`ڂȘ &@W}[zn>U=g6ɶI1al"#֒P, p\Q%J$D,Cw*1r[0k[Oq 8ș,*ܳq6~S=6q0)JM8k<`h=xi'6ziIPDcc_6B%7]d3 OAw3&mŵ3r,]M\~߬$u hPFYT$PBE"PB%WiH:_KfDzDr6pRsp(1J[)w_LtGᮑ^tB&^VutM@BP]1V(.TW kPE” Yrͳ/JT"*K RQ2,E0:-cm4hohY GR(]N鿽SI:^B٭ cY)#)*-ٞS G©oqQ:~_8PԚ kz$iC!Z٩c-3LRt"sTuw-5,rIfyU2:qDU_<"h$V Z[I-Қ!ӊrWt%=3# 9 1Zpe31yry +vL('c#U ,>'PyaV'17 RlcIXYTYa=[I5DZAhfmŚ2DdE=t2>#pO 5,srlK"DE9ȱazTg71Srn^gLDDu* 5eX_T㱙_ؑɮag+GgFv\mㄒNm oYB9k(FBGDئSQ鱓PK0å"VHHLOC~r}HPmK$dq4R1íR|1v$s2kYܧ+[``:7+'Mb|^IS*QvbC>&X}aYBq2cZCa4 )l1RL1lQ/1v$s2kYd*l1Q8%bʨLCyAPya^XIbO\W|F%•=1M&h<ЅTa]TKQo To{`?ĎfL,gY*;KC28"B5U*^Xr+IW+ѕ %qHVp\6)h +cV&))pr$A(Nvʰ1Jzwm%)AXW#tս;GX~12X#%$j)(Jw*.lsg@rW GFg+<[Vhvl9sMWE !1AQq245ar "R#0B3@Sb?g/+ݮ(1;{u8yz)ӣFVI6jS8}J6ƿ_a!!% =6|ʛ(Ξ }806w|,lP.aA-J Oqޭim%J4cӡ½T3f*:G~BCA4e8XX\!B8Mh|ѲU>a kkIͷ8K2fe x"FeJy}I=2;5'i5fC4Jd:fsd$PXZ>s.V#2Ҹxq18+Qo8W[tw. Hepni:Xi۞q¾e֯u>vDDL["hH>gZSm~I,IZY 4 V\ lZ[ARZC183; /oSiĄ,hWֻ$z/#j\TfCYa;s8vHJ;IaQ~[`INu6j G.7,ۉu>GGnٟjc#o?[WgB90Sg#EQ^0a8:;,0k'Z[Su`L,ÆOψx~iU:5C*Sm.Vq^U+_4 ]jeOA~tvQf084raq1Ikk?+KCZͿ2HxBqFzZҷ(i^D**ZۊK\T ԿmVt_ Hy_nsSSh^LucE;|rDaGxCÊeRĩ ,1j}U]c0!S3= Vt_ Hy_nsSShnLu48@u,,-=7q:{}y>ѾҙS2h2Vtls0 _r6#w>eDոg430%hg'wiBWucvD݄|C;U9旺5AmsNrhP2qtd=QR1 `ppLJ8q%ѱMB-D/_^uy>ѾҩS2h2񎻣]smȜwhNمyCIU^(`yW{q,yJ{H|_I=&BEMIRem]|C9;U9 ;iӷ_mLBi_-/!ƓlMS$F۝Z@h6U*jZε]P0}5j {4 V+g $[_-ǩC>880t,E: +CvXS0ݞ sJvysOuMA_t[Kp=|E:vkX(UĿ.5fK(7KЇ& =XX-Ɩoɳ+HSiࡽe{Jc_Ny u覫`L Sn8 %ydW%;̿7淺Ɇb& u57h:,ؙ$%C숌#׋6rq+ƈqK''pJRAz y.Ћya!x[ow0x[ y?o';6oM)W >dś ?tf}wl*<ʟ8oU8n"!*W ]H BuXKhATe+Apbp.-Y]Ut Qޚ-15\`RH*2#:ӑ=rӉq[6s*~> 0̸ umOO:ME;LgoHa 鯛]պ X9|טיSS p CV:-ʹtU54.շ?<7=2rm)F2mycW4]uw' M:oK_^eOKO7 *|AUdbnBa. 5IʍAmaWvRlXM+LJmɴ376 tw`96)Ffשׁ3T4Mn_4>L UVq|*~>\J|῰aS<.y/de4O|zFg+9F#z]S'8?U{4;S/G`ǔ|G]2}UBpi64%͗di(`pk̩xIq O85$bA2.P4+h$Cu ePnBOb [Y&R6ߍ/N*;>ިۃ_\I;+ IhFMl!ؐ0 >!>pԵBQ4XXLA/KK;Ci b)%, +7@ƋƋGy)msg~cbK2NQ Fp{E9|eBl;n pC@:3! itUdFueJzECp C/#H[;3OjݍO8I |!*3Ue ?ՇGj-59 |B5L- p(F#s8jqH% fʐ?)1!QAq a0@?!zH+w%>[rA;;Pa; 0cp5a, I :"ko`o@.+˛ D0[)ez-[ }^W E]N.)_lHX)U| 'طN+otd h${-=VC-݈'|+\LظN|cgLmṕܵė1,?aC)WRJ rv! S̺͂jK~2r%OFn0A帙;ORݭ 꽯;Xvٍ!xLjJaQDVG)8VLJ;sv}/-#M(JY@UkZ4$+#Q'vaƲfД4.Ǡ/c}5Js[MG~C Kq2v+! (V(vU6 3ma:z]ۄUAVq7ߺ(QHT7Li]^A5u帙;O!yfų_ J f LM`aN|2$FO=}+yn&N]`3Sa綺 6'|ؘ#x< qKhb.bվ}f7'i 3QAoJuc%[vNBOx{0"+6qoJ>^#йKtсx- ;9, 7v:mcb.g~i0;i@&l΂ۦڞ ^\F|Gm] q)nN?͝a>7~$f'Ԩ5 xâor.uB%iQD[\N4zq6*d`:\( } ;o'i/#Ogß(D w* {t%2S|x7? 1 e?x4 x2@զpH TF ) m~?) 0et7P@hgJDErڠVk $"p  XE$;OGm+:0\ OhR<b+d (!1AQ q0@a?6w4чdJer@_n`F^"w/Gabm'hZqYir.Q.E Llݕa_UBq{p{#'Ƿsq(Z?A#YpfΏQEOyjVu ?3lհv^p#5Z+ )IO"*bY,B1OPS&X",*"@[(X X?]1вRrFdOG#]V\RnGW6hLbܖ)X΅nPFd I2ILsAf%R|n*,bR, 7`&ۧl/ݢ^x)!%JmꧯC5H2}}Ճfc(RbHnReG2@K'PY !q4J- l2ܔ,n{{_磊>p3B)<49y#EfDK#2<ޗ}ՃPg$7t Z4@eY`P.-HFw{L';$!tʛ((2쫢!7Sy))ݩnXE7Q{0PV\$iAԏ@j}}#ft7Vw HFe$FZA!F3fAHaL;zs}BOr@VnUn-PS%BYW)0[Q$KvH{C=}ǫ'4BΌ`8K{IڰtTWlW(*֌CiuheXQ科ƀX (l UJحDan$ b_ !D@.wg*+kL(}}XHDxBxacTk =~հJS³Kʻ\#+n;Y @(>fgT8o9 އCw01hO42j5X -E5N V)j CVJk +R9th0`.O(\ʎ]}֠+AB<C .Y`e8 W>vMBATT2f[= yǕcTt `E5<:6P2*p[(ʎ7|X|4Tg蓰 T]UYix@Q L$7ZJ+kNSwVZ'\AARGTנҒ,N!t`=WW0R%&AZf\!\4;ˀ>_Yf'P3X;UHԆdhW_7\rQG+r$Tt(l:7jVXr(v$b.#q.7* ~VT6. $/"`1"L)0Б_M z[g(/ꊊGU1d 4]m'hH@_u-֪$v[,XS+EiJI ;ԷL":`(!1AQaq 0@?j"Çk0e^UzA;%C|g(J8(M S'\%SiSY Ǖ Y9W3|eB-ܢyNމ#ur^-Z!*tw.bZM6FR,X.t|2EQ0`mA#ܠ6]..V׷xpۖ3EdmNՉF%4Uvc45.CҤ믏V Ty*f-=o[R;9=x(@t|Ae!̷I'DZ@gHavD.i0甎?ǀ @A}ej+98u*i|KH!@fz@8W6~NòZz3)۶k 5פ&<ύ@A<χϏP 0lT ||x;:5!~Y%zBp?GTvk?wY nPת`<Q T}UGg1[ސb[$SHJZR./%r qתz?<iuY.p5Qø88y>=R jmNu g0 Y @Fr^C-a40SA*&,>ZG3W[VL 7ix fa>*C%jz]qL/4h#HMˍ?'ǪK\WqCF[|JJkMBh5%9#pjqk5Zbr%B]KbCcj Fҁ@h^+ _zFkyxuIsW`8_;,fd^ϢM{FjF o)bPL,o5z}^T_($P[f+ -r'PÌ*5z%5V1,J=&1 [YJN5r[& <[/X69葕Ut ً_!ǂ<`jvgTVypRwY%i~`$ȧ0i ᨰ39AN9tUkC143jhdgWΧ((_ yQyaG El|F5;3ĢsUMwQH %ݦSȔ=$D Zs> [f~@ ȻJPcI)H Z%&z'/঱\T__4D_/x7b|P=RrAЀ{, $y~R~^l`-;Hg/op@x+ u gq^'Rye??Ϙr+Vfxu/nTp%&=.zs}W _涬榃@$yi gjp2a-1.3.2/.github/workflows/000077500000000000000000000000001471373143100157525ustar00rootroot00000000000000jp2a-1.3.2/.github/workflows/full-check.yml000066400000000000000000000025711471373143100205170ustar00rootroot00000000000000# Version 20240908, by Eriberto Mota, modified by Christoph Raitzig name: full-check on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: install_dependencies run: sudo apt update && sudo apt install libjpeg-dev libpng-dev libwebp-dev libcurl4-gnutls-dev libncurses5-dev libexif-dev pkg-config - name: first_build run: | ./autogen.sh ./configure make sudo make install sudo make uninstall make distclean - name: second_build run: | ./autogen.sh ./configure make sudo make install - name: run_program run: | TERM=xterm-256color jp2a --colors .github/jp2a.jpg TERM=xterm-256color jp2a --background=light -b -f -x -y --colors .github/jp2a.jpg - name: run_tests run: | make test zig-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: install_dependencies run: sudo apt update && sudo apt install libjpeg-dev libpng-dev libwebp-dev libcurl4-gnutls-dev libncurses5-dev libexif-dev pkg-config - uses: goto-bus-stop/setup-zig@v2 - name: build with zig run: | ./autogen.sh CC="zig cc" ./configure make - name: run tests run: | make test jp2a-1.3.2/.github/workflows/publish-docker-image.yml000066400000000000000000000026641471373143100225000ustar00rootroot00000000000000name: Publish Docker image on Docker Hub on: release: types: [published] schedule: - cron: '21 12 21 * *' jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v4 - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: images: talinx/jp2a tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=schedule,pattern=nightly flavor: | latest=true - name: Build and push uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/arm/v7 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} jp2a-1.3.2/.gitignore000066400000000000000000000003161471373143100143450ustar00rootroot00000000000000*.swp *.o Makefile Makefile.in aclocal.m4 autom4te.cache compile config.h config.h.in config.log config.status configure depcomp install-sh missing src/.deps src/jp2a stamp-h1 Doxyfile doxygen-doc/ INSTALL jp2a-1.3.2/AUTHORS000066400000000000000000000002551471373143100134270ustar00rootroot00000000000000jp2a is written by Christian Stigen Larsen and Christoph Raitzig This program uses dynamically linked libraries from other authors. For an overview, see the file LICENSES. jp2a-1.3.2/BUGS000066400000000000000000000015441471373143100130440ustar00rootroot00000000000000TODO - What about making a Windows installer? - What about making a small GUI for windows? If run, open a file browser, then convert and display result in notepad, or internet explorer. - About process_scanline, it might be much better (clearer, faster) to pass a function pointer to the read pixels algorithm, so we don't have to do all those "if"s in the innerloop. Might also be slower, though, because of the increased stack pushing and popping. - Check j2pa --color ~/tmp/cola.jpg, should not get blue color there, because we are using grayscale colors! - Consider using Bresenham scaling (search for "Image scanling with Bresenham" on DDJ.com) - Consider using other libs for image conversions, e.g. would be nice to read GIF. (See gdlib.) BUGS - Floating-point calculation (and rounding) is not 100% equal from compiler to compiler. Try to fix this. jp2a-1.3.2/COPYING000066400000000000000000000431221471373143100134120ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. jp2a-1.3.2/ChangeLog000066400000000000000000000177551471373143100141460ustar00rootroot00000000000000CHANGES SINCE 1.3.2 - Fix Docker image missing libexif library. Thanks to PowerMeep (https://github.com/PowerMeep) CHANGES SINCE 1.3.1 - Fix segmentation fault that can occur when trying to parse a file of an unsupported file type. Thanks to Balló György (https://github.com/City-busz) CHANGES SINCE 1.3.0 - support Exif metadata (for image orientation) - support for WebP images - add option to center image in terminal - support for Zsh completion CHANGES SINCE 1.2.0 - Add edge shading - edge shading can be enabled by setting the desired edge threshold with --edge-threshold=N.N. Thanks to Oscar Saharoy (https://github.com/OscarSaharoy) CHANGES SINCE 1.1.1 - Fix images with very high aspect ratio, e.g. 3000:1 CHANGES SINCE 1.1.0 - support for PNG images - support for HTML (Living Standard) additionally to XHTML - (optional) support for other character encodings than ASCII CHANGES SINCE 1.0.9 - support for true color and 256 color palette output for terminals - support for bash completion CHANGES SINCE 1.0.8 - Fix images with very small height CHANGES SINCE 1.0.7 - Moved repository over to GitHub and made some corresponding changes - Reverted code to version 1.0.6 because of unfinished changes that didn't work. CHANGES SINCE 1.0.6 (svnversion 460) - Internal code changes for resizing. - Renamed `make test' to `make check'. - Some missing function signatures were added. - Using C99 keyword `restrict' in some places. CHANGES SINCE 1.0.5 (svnversion 452) - Support for GCC 2.95.4 (old C compilers in general) CHANGES SINCE 1.0.4 (svnversion 445) - Fixed problem with --invert / --background=light / --background=dark with HTML output. - Updated configure script from autoconf 2.59 to 2.60 CHANGES SINCE 1.0.3 (svnversion 440) - HTML output no longer uses the ' entity. CHANGES SINCE 1.0.2 (svnversion 432) - Added option --html-no-bold to set non-bold output. - Added option to --fill ANSI background colors. - Option --html-fill is now same as --fill and will be phased out. - Default HTML font changed from courier new to courier. - HTML output always uses
 tag.

CHANGES SINCE 1.0.1 (svnversion 427)
- Using span- instead of b-tags in HTML output.

CHANGES SINCE 1.0.0 (svnversion 421)
- Added option --html-title=...
- Added option --html-raw

CHANGES SINCE 0.9.22
- License changed from "GPL v2 or later" to "GPL v2".  This is just because
  I want to review the v3 license before deciding to apply it to jp2a, as it
  might require me to add things to the program.
- Minor code changes (in image.c)
- Distribution now also contains HTML manual pages for systems that do not support UNIX man.
- Version bumped to 1.0.0 (stable)

CHANGES SINCE 0.9.21 (rev. 412)
- Text color output is a bit more colorful.
- HTML-output is now Firefox-friendly.
- Added --html-fill to enable/disable background colors on HTML output.
- Options --background=light or =dark now affects HTML output background.

CHANGES SINCE 0.9.20
- Added color output for text (ANSI colors) and HTML (CSS colors).
- Changed default HTML fontsize from 4 to 8 pt.
- Fixed a bug that produced incorrect output when using --output and --html.
- Fixed a bug that gave incorret --term-fit when vieweing multiple files.

CHANGES SINCE 0.9.19
- A bash script is used for testing now.
- The tests were updated to use --width=78 (the old default) where appropriate.
- Cygwin support was added.
- term.h is now also sought in ncurses/term.h (for Cygwin support).
- The help text was shrunk.

CHANGES SINCE 0.9.18
- Default running mode is now "jp2a --term-fit" if you have --enable-termlib (which is also default).
- New options --term-fit, --term-width, --term-height to automatically fit image to terminal display.
- New options --background=dark and --background=light so you don't have to bother with --invert.
- Much better output quality as all source pixels are now read.
- Configure now accepts --enable-termlib (default) or --disable-termlib.
- Bugfix: In some cases, the last pixel(s) of the source images were not read.
- Will now gracefully exit if jpeg color precision is other than 8 bits per channels.

CHANGES SINCE 0.9.17
- Bugfix:  No more crashes when reading non-JPEG files on Windows.
- New option: --output=file, send output to given file
- New options: -x for shorthand --flipx, and -y for --flipy.
- New options: --red, --green, --blue.
- More natural RGB to Grayscale calculation.
- Updated manuals.
- Cleaner code.
- Faster code (most evident in large images).

CHANGES SINCE 0.9.16
- New feature: Download-support on win32 binary builds.
- Added option to --clear screen before writing each output image.
- Updated tests for win32 cygwin environment (but still incomplete).

CHANGES SINCE 0.9.15 AND 0.9.14 
- New feature:  Now follow HTTP redirects when downloading.
- Cleaner and faster code.
- Cleaner package organization.
- Improved `make test'.
- Binary is larger becase of debug-symbols; remove with `make install-strip'.
- Added HTML-manual for win32 binary distribution.

CHANGES SINCE 0.9.13
- Minor bugfix: --chars now correctly accepts minimum two chars.
- Changed package layout (added src/ and tests/).
- Added `make test' target.

CHANGES SINCE 0.9.12
- Bugfix: Fixed bug when viewing several files (in clear(), yadds wasn't completely cleared)
- Minor code cleanup.

CHANGES SINCE 0.9.11
- Some Linux build failed on this:  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
  This has been removed, and works well for the Linux distro tested on.

CHANGES SINCE 0.9.10
- New feature:  Can now download images from URLs (requires libcurl)
- New feature:  Added --debug (-d) for debug output with libcurl
- configure:    Added --enable-curl and --with-curl-config=PATH

CHANGES SINCE 0.9.9
- Using both --width and --height is equivalent to using --size
- Now correctly calculates width and height if one of --width or --height is used

CHANGES SINCE 0.9.8
- New feature: Added --flipx and --flipy options to flip the output image.
- New feature: Added --html and --html-fontsize for XHTML 1.0 output.
- Bugfix: The bugfix from 0.9.6 sneaked back into the 0.9.8 release, and is now removed.
- Code changes: The code is a little bit cleaner, and faster now for big output dimensions
- Added reference to The Independent JPEG Group in the man page, as the libjpeg license requires that.
- The help text now fits inside 80 characters in width.
- Default mode changed from --width=70 to --width=78

CHANGES SINCE 0.9.7
- Minor portability issues resolved (regarding size_t usage)
- Moved some redundant help text to the man page
- Updated and expanded man page

CHANGES SINCE 0.9.6
- Minor bugfix, for some images, the last output line would be a "black" line,
  this has been fixed with the use of ROUND in dst_y calculations.

CHANGES SINCE 0.9.5
- Fixed a major bug in the clear() function that overwrote the yadds buffer.
  The program should work much better now, especially on multiple input files.

CHANGES SINCE 0.9.4
- The option --border can now be specified simply as -b
- New option --invert or -i to invert output image

CHANGES SINCE 0.9.3
- jp2a now exits with error when no files are specified
- Function signatures changed; added const where applicable
- Reintroduced use of malloc
- Added check for alloca in configure.ac

CHANGES SINCE 0.9.2
- When reading multiple files, malloc complained when freeing memory.  Using
  alloca now instead, which does not complain (although it may seem a buffer
  overrun is lurking somewhere).
- Not using exit(), using return codes.  If error occurs, we always stop.
- Using `cat file.jpg | jp2a -' now does not print help message along with
  image.

CHANGES SINCE 0.9.1
- Much better output results, due to more accurate normalization and removal of
  missing scanlines in output image.
- Default mode is now "--width=70" instead of "--size=80x25", as this preserves
  JPEG aspect ratio in output.
- Configure does not check for memset function anymore
- to_dst_x and to_dst_y are now correct

CHANGES SINCE 0.9.0
- Added --border option
- Fixed buffer overrun bug when using big output dimensions
- Minor code cleanup
- Note that to_dst_x and to_dst_y in code might be wrong
jp2a-1.3.2/Dockerfile000066400000000000000000000007461471373143100143560ustar00rootroot00000000000000FROM ubuntu AS builder
WORKDIR /app
COPY . .
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y gcc make autoconf libjpeg-dev libpng-dev libwebp-dev libcurl4-gnutls-dev libncurses5-dev libexif-dev pkg-config
RUN ./autogen.sh && ./configure && make

FROM ubuntu
WORKDIR /app
RUN apt-get update && apt-get install -y libc6 libjpeg8 libpng16-16t64 libwebp7 libcurl3t64-gnutls libtinfo6 libexif12
COPY --from=builder /app/src/jp2a /usr/bin/jp2a
ENTRYPOINT ["jp2a"]
jp2a-1.3.2/Doxyfile.in000066400000000000000000000005031471373143100144660ustar00rootroot00000000000000PROJECT_NAME           = @PACKAGE_NAME@
PROJECT_NUMBER         = @PACKAGE_VERSION@
PROJECT_BRIEF          = "Convert JPEG and PNG images to ASCII"
OUTPUT_DIRECTORY       = doxygen-doc
STRIP_FROM_PATH        = @top_srcdir@
OPTIMIZE_OUTPUT_FOR_C  = YES
INPUT                  = include,doc
PREDEFINED             = FEAT_CURL
jp2a-1.3.2/LICENSES000066400000000000000000000231271471373143100135120ustar00rootroot00000000000000jp2a is distributed under the GNU General Public License v2.  See the file
COPYING for a copy of that license, and how you can apply that license to make
derivative works.

Although I do make use of other libraries, the source distribution does not
include any source-code from these.  However, the win32 version came with
precompiled library files, so I copy the licenses here.

jp2a makes use of the JPEG library by the Independent JPEG Group.  See
http://www.ijg.org

jp2a makes use of libcurl, which has the following license:

    COPYRIGHT AND PERMISSION NOTICE

    Copyright (c) 1996 - 2006, Daniel Stenberg, .

    All rights reserved.

    Permission to use, copy, modify, and distribute this software for any purpose
    with or without fee is hereby granted, provided that the above copyright notice
    and this permission notice appear in all copies.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
    NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
    DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
    OR OTHER DEALINGS IN THE SOFTWARE.

    Except as contained in this notice, the name of a copyright holder shall
    not be used in advertising or otherwise to promote the sale, use or other
    dealings in this Software without prior written authorization of the
    copyright holder.

The jp2a win32 binary distribution came with zlib1.dll from
http://www.zlib.org.  The zlib license is as follows:

    /* zlib.h -- interface of the 'zlib' general purpose compression library
      version 1.2.3, July 18th, 2005

      Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler

      This software is provided 'as-is', without any express or implied
      warranty.  In no event will the authors be held liable for any damages
      arising from the use of this software.

      Permission is granted to anyone to use this software for any purpose,
      including commercial applications, and to alter it and redistribute it
      freely, subject to the following restrictions:

      1. The origin of this software must not be misrepresented; you must not
         claim that you wrote the original software. If you use this software
         in a product, an acknowledgment in the product documentation would be
         appreciated but is not required.
      2. Altered source versions must be plainly marked as such, and must not be
         misrepresented as being the original software.
      3. This notice may not be removed or altered from any source distribution.

      Jean-loup Gailly jloup@gzip.org
      Mark Adler madler@alumni.caltech.edu

    */

The jp2a win32 binary distribution came with precompiled OpenSSL binaries from
http://www.openssl.org.  These have the following license:

      LICENSE ISSUES
      ==============

      The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
      the OpenSSL License and the original SSLeay license apply to the toolkit.
      See below for the actual license texts. Actually both licenses are BSD-style
      Open Source licenses. In case of any license issues related to OpenSSL
      please contact openssl-core@openssl.org.

      OpenSSL License
      ---------------

    /* ====================================================================
     * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * 1. Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * 2. Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in
     *    the documentation and/or other materials provided with the
     *    distribution.
     *
     * 3. All advertising materials mentioning features or use of this
     *    software must display the following acknowledgment:
     *    "This product includes software developed by the OpenSSL Project
     *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
     *
     * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
     *    endorse or promote products derived from this software without
     *    prior written permission. For written permission, please contact
     *    openssl-core@openssl.org.
     *
     * 5. Products derived from this software may not be called "OpenSSL"
     *    nor may "OpenSSL" appear in their names without prior written
     *    permission of the OpenSSL Project.
     *
     * 6. Redistributions of any form whatsoever must retain the following
     *    acknowledgment:
     *    "This product includes software developed by the OpenSSL Project
     *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
     *
     * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
     * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
     * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
     * OF THE POSSIBILITY OF SUCH DAMAGE.
     * ====================================================================
     *
     * This product includes cryptographic software written by Eric Young
     * (eay@cryptsoft.com).  This product includes software written by Tim
     * Hudson (tjh@cryptsoft.com).
     *
     */

     Original SSLeay License
     -----------------------

    /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
     * All rights reserved.
     *
     * This package is an SSL implementation written
     * by Eric Young (eay@cryptsoft.com).
     * The implementation was written so as to conform with Netscapes SSL.
     *
     * This library is free for commercial and non-commercial use as long as
     * the following conditions are aheared to.  The following conditions
     * apply to all code found in this distribution, be it the RC4, RSA,
     * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
     * included with this distribution is covered by the same copyright terms
     * except that the holder is Tim Hudson (tjh@cryptsoft.com).
     *
     * Copyright remains Eric Young's, and as such any Copyright notices in
     * the code are not to be removed.
     * If this package is used in a product, Eric Young should be given attribution
     * as the author of the parts of the library used.
     * This can be in the form of a textual message at program startup or
     * in documentation (online or textual) provided with the package.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     * 1. Redistributions of source code must retain the copyright
     *    notice, this list of conditions and the following disclaimer.
     * 2. Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     * 3. All advertising materials mentioning features or use of this software
     *    must display the following acknowledgement:
     *    "This product includes cryptographic software written by
     *     Eric Young (eay@cryptsoft.com)"
     *    The word 'cryptographic' can be left out if the rouines from the library
     *    being used are not cryptographic related :-).
     * 4. If you include any Windows specific code (or a derivative thereof) from
     *    the apps directory (application code) you must include an acknowledgement:
     *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
     *
     * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     * SUCH DAMAGE.
     *
     * The licence and distribution terms for any publically available version or
     * derivative of this code cannot be changed.  i.e. this code cannot simply be
     * copied and put under another distribution licence
     * [including the GNU Public Licence.]
     */
jp2a-1.3.2/Makefile.am000066400000000000000000000023311471373143100144100ustar00rootroot00000000000000VERSION = @VERSION@
SUBDIRS = src
man_MANS = man/jp2a.1
bashcompdir = @bashcompdir@
dist_bashcomp_DATA = completion/bash/jp2a
zshcompdir = @zshcompdir@
dist_zshcomp_DATA = completion/zsh/_jp2a
EXTRA_DIST = tests/??*.txt tests/??*.html tests/??*.jpg tests/??*.png tests/run-tests.sh tests/Makefile include/??*.h man/jp2a.1 Doxyfile.in LICENSES
MOSTLYCLEANFILES = $(DX_CLEANFILES)
CLEANFILES = Doxyfile

.PHONY: doc test check

test: check

check: all
	$(MAKE) -C tests check

if DOC
@DX_RULES@
editdx = sed -e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' -e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' -e 's|@top_srcdir[@]|$(top_srcdir)|g'
Doxyfile: Doxyfile.in
	$(editdx) $(srcdir)/$@.in > $@.tmp
	mv $@.tmp $@
else !DOC
Doxyfile:
	@echo "Building doxygen documentation not enabled."
	@echo "To build doxygen documentation:"
	@echo "1. Install autoconf-archive and doxygen"
	@echo "2. autoreconf -vi"
	@echo "3. ./configure"
	@echo "4. make Doxyfile"
	@echo "5. doxygen"
	@false
endif

doc: Doxyfile doc/*.md include/*.h
	@echo "Running doxygen..."
	doxygen
	@echo "Documentation build to doxygen-doc/"
	@echo "You can view the HTML documentation by opening doxygen-doc/html/index.html, e. g. with:"
	@echo "xdg-open doxygen-doc/html/index.html"
jp2a-1.3.2/NEWS000066400000000000000000000000161471373143100130510ustar00rootroot00000000000000See ChangeLog
jp2a-1.3.2/README000066400000000000000000000176321471373143100132460ustar00rootroot00000000000000jp2a
====

![full-check](https://github.com/Talinx/jp2a/workflows/full-check/badge.svg?branch=master)


jp2a is a simple JPEG/PNG/WebP to ASCII converter.

The source is available at . This project
used to be hosted on SourceForge.

License
-------

Copyright 2006-2016 Christian Stigen Larsen and 2020-2024 Christoph Raitzig  
Distributed under the GNU General Public License v2.

You can read the full license in the file COPYING.  jp2a also uses other
libraries.  These licenses can be found in the file LICENSES.

Example: Oswald the lucky rabbit
--------------------------------
                                                                 ......
                                                         .:lOKMMMMMMMMMM0l
                                                    .;dOMMMMMMMMMMMMMMMMMMW.
                                                .ckWMMMMMMMMMMMMMMMMMMMMMMMO
                                             .dXMMMMMMMMMMMMMMMMMMMMMMMMMMO
                                          .xWMMMMMMMMMMMMMMMMMMMMMMMMMMO:.
                                        lXMMMMMMMMMMMMMMMMMMMMMWOOxc'
                    .;lxOOOOOxdl:.    cMMMMMMMMMMMMMMMMWKklc'..
                'llc..   ..:oMMMMMMKxNMMMMMMMMMM0kl:'.
              :0'             cMMMMMMMMMMMMWd'.
            .K:l0              .MMMMMMMMMMl.
           ,K    W              ,MMMMMMMMMMMMN0dl'
           M.    M               MMMMMMMMMMMMMMMMMMKx:.
          cMMK                   WMMMMMMMMMMMMMMMMMMMMMXd'
          NMMM:                  MMMMMMMMMMMXWMMMMMMMMMMMMNd'
          KMMMW                  MMMMMMMMMMM' ;XMMMMMMMMMMMMMWd'
           MMMM                 XMMMMMMMMMMM    dMMMMMMMMMMMMMMMNc
      ''   NMKWl'             .KMMMMMMMMMMM'     :MMMMMMMMMMMMMMMMMd
     KMWMKOk    '           ,lXMMMMMMMMMMM;       .KMMMMMMMMMMMMMMMM0
     KMMMMM.                    .cOMMMMMW'          kMMMMMMMMMMMMMMMMX
      cOXMNXl.            ......   .MWd. .0cc:'      .NMMMMMMMMMMMMMMMk
            .cololoxKWWWXWMMMMMMM:  M   c:. .l0ok      oMMMMMMMMMMMMMMM
                      .'Mo,MMMMNk:lO' :l  .OMMMMl       .OMMMMMMMMMMMMN
                       X0'OkxkxOK;.  :: ,.XMMMMMMO    :O   lXMMMMMMMMk
                        kc,,o0M0.:;c'N  ko;lMMMMMM:'xMMMNWKO,.clxdl:.
                       ;00xkM:d ,   ..     oMMMMMM cMMMMMMMMl
                       c   N0l       .  .l:;;oKMMk  MMMMMMMMM0
                       O   ,.ocOc..l..k'   .:c;'O   0MMMMMMMX.
                      X     N..l  .c           K.   OMMMMMMM
                     .'     c.     :           M .  OMMM0,.;
                    :,   N.;W       ;          O...o .,.
                    d    M  ;X'     :l             :
                    d..':. lcKol,,,,'.:c,,'.cd;'o,'.
                      . ;:,WMMMMMMXx,; M0XXNNWM.
                           MMMMMMMM   .MMMMMMMM
                           MMMMMMMM   .MMMMMMMM.
                          :ONMMMMMM0:':MMMMMMMMM:
                ;c:,'',::lX'  '',''   .MMMMMMMMMMWK:c:
               x.          .lloc;.',lxl..lKMMMMMKl   M
              0           .;,;'......;::c'  ..     ;dl;l'
             ;O:        .d'              .lkk::::;,     'k
             N.'oc'.    M                   :            X
              lo:. ',::xN:                             .x0'
                .,lccccM .ll,.                . ;;:::;c'.0
                       .kl.  .c::lcccccc:cc::;  .''clccl.
                          'lcl:lc::,,'::cc:cc:c,..

The Oswald character is Copyright Walt Disney, and, unfortunately, not in the
public domain.  However, I believe that I can use this picture under the fair
use clause, for demonstrational purposes, especially in low-resolution, ASCII
format. If I am wrong, I will promptly remove it.

Installation
------------

Look in your system's package manager. I don't maintain Windows binaries
anymore.

Graphical UI
------------

[Letterpress](https://apps.gnome.org/Letterpress/) is a graphical user interface
for jp2a. Letterpress can be installed from
[Flathub](https://flathub.org/apps/io.gitlab.gregorni.Letterpress).

Docker
------

You can run jp2a using [Docker](https://www.docker.com/):
```
docker run -t --rm -e COLORTERM="$COLORTERM" -v "$(pwd)":/app talinx/jp2a [options] 
```
See [hub.docker.com/r/talinx/jp2a](https://hub.docker.com/r/talinx/jp2a) for details.

Building
--------

`jp2a` can be compiled as usual: `./configure && make && make install`

If you want to compile after cloning the git repo (i.e. generate the `configure` script yourself), you need autotools, automake and optionally autoconf-archive. You may need to specify the path to jpeglib. I usually just do

    autoreconf -vi
    ./configure --with-jpeg-prefix=/usr/local \
                --with-curl-config=`which curl-config`
    make -j

Before installing, you may want to check that jp2a works by running `src/jp2a`
on some `.jpg` and `.png` files. You can also use `make check`. When you're ready to install,

    make -j install

Extract the archive and follow the instructions inside 'install.txt' to build and
install it. For a default install, the corresponding `.so` (shared object) files
will be present in `/usr/local/lib/`

Next, run the command `ldconfig` (escalated privileges may be required) to configure dynamic linker run-time bindings. See
its man page for more details. The configure command should work after that.

If configure can't automatically find jpeglib, specify with

    ./configure --with-jpeg-include=PATH --with-jpeg-lib=PATH

or you can just type the prefix

    ./configure --with-jpeg-prefix=/usr/local/

You can also compile jp2a with libcurl, so it can automatically download images
from the net:

    ./configure --enable-curl

This will look for `curl-config` in $PATH, but you can specify it directly with
`--with-curl-config=PATH` if you need to.

### Documentation

jp2a is documented with [doxygen](https://www.doxygen.nl/). To build the documentation you need doxygen installed. It can then be built with:

    autoreconf -vi
    ./configure
    make doc

This will create HTML and LaTeX documentation in the doxygen-doc folder.

### Runtime dependencies
- [jpeglib](https://www.ijg.org/) or [libjpeg-turbo](https://libjpeg-turbo.org/)
- [libpng](http://libpng.org/pub/png/libpng.html)
- [libwebp](https://developers.google.com/speed/webp/)
- [curl](https://curl.haxx.se/) (optional)
- [ncurses](https://invisible-island.net/ncurses/ncurses.html) (optional)
- [libexif](https://libexif.github.io/)

### Build dependencies
- make (e.g. [GNU Make](https://www.gnu.org/software/make/))
- a C compiler like [gcc](https://gcc.gnu.org/)

If you generate the `configure` script yourself (i.e. run `autoreconf`) you also need these:

- autotools
- [automake](https://www.gnu.org/software/automake/)
- [autoconf](https://www.gnu.org/software/autoconf/autoconf.html)
- (optional, only required for building documentation) [autoconf-archive](https://www.gnu.org/software/autoconf-archive/)

Windows
-------

### Cross compiling

You can cross compile.

### WSL

You can use the Windows Subsystem for Linux.

### Compile with `configure`

The `configure` script requires a Bourne shell, so you got to install one (e.g. Bash).
The easiest way is to install [Cygwin](https://cygwin.com/). Make sure to install the used libraries (curl, jpeglib, libpng, ncurses) as well as gcc and make.
Open Cygwin and proceed as usual: `./configure && make && make install`

You can also "cross compile" with Cygwin so that you get a binary that does not depend on Cygwin.

### Compile without `configure`

You need a working jpeglib for Windows and set up include paths yourself.
You will need to manually type out a `config.h` file. Example:

    WIN32
    NDEBUG
    _CONSOLE
    PACKAGE_STRING=\"jp2a x.x.x-win32\"
    PACKAGE_BUGREPORT=\"chris-r@posteo.net\"
    HAVE_STRING_H
    HAVE_STDLIB_H
    FEAT_CURL
    HAVE_CURL_CURL_H
    CURL_STATICLIB
    FEAT_TERMLIB

You need to add jpeg.lib to the linker. If you want libcurl support, you need
that as well. It should be available from https://curl.haxx.se
jp2a-1.3.2/README.md000077700000000000000000000000001471373143100145072READMEustar00rootroot00000000000000jp2a-1.3.2/autogen.sh000077500000000000000000000003041471373143100143530ustar00rootroot00000000000000#!/bin/bash
autoreconf -vi

while (( "$#" )); do
  if [ $1 == "-c" ]; then
    ./configure --with-jpeg-prefix=/usr/local \
                --with-curl-config=`which curl-config`
  fi
  shift
done
jp2a-1.3.2/completion/000077500000000000000000000000001471373143100145265ustar00rootroot00000000000000jp2a-1.3.2/completion/bash/000077500000000000000000000000001471373143100154435ustar00rootroot00000000000000jp2a-1.3.2/completion/bash/jp2a000066400000000000000000000021111471373143100162150ustar00rootroot00000000000000# bash completion for jp2a                                 -*- shell-script -*-

_jp2a()
{
        local cur prev OPTS
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        prev="${COMP_WORDS[COMP_CWORD-1]}"
        OPTS="--help --verbose --debug --clear --colors --color-depth= --fill
        --grayscale --html --htmlls --xhtml --html-fill --html-no-bold --html-raw --border
        --invert --background= --flipx --flipy --version --width= --height=
        --red= --green= --blue= --html-fontsize= --size= --term-zoom
        --term-center --term-height --term-width --term-fit --output= --html-title=
	--chars= --edge-threshold= --edges-only"
        case $cur in
                --*)
						COMPREPLY=( $(compgen -W "${OPTS}" -- $cur) )
						# Add space if there is not a '=' in suggestions
						[[ ! "${COMPREPLY[@]}" =~ "=" ]] && compopt +o nospace
						return 0
                        ;;
        esac
        local IFS=$'\n'
        compopt -o filenames
        COMPREPLY=( $(compgen -f -- $cur) )
        return 0
}
complete -F _jp2a -o nospace jp2a

# ex: filetype=sh
jp2a-1.3.2/completion/zsh/000077500000000000000000000000001471373143100153325ustar00rootroot00000000000000jp2a-1.3.2/completion/zsh/_jp2a000066400000000000000000000065041471373143100162550ustar00rootroot00000000000000#compdef jp2a

_arguments -C \
  '--red=[Set RGB to grayscale conversion weight, default is 0.2989]::' \
  '--green=[Set RGB to grayscale conversion weight, default is 0.5866]::' \
  '--blue=[Set RGB to grayscale conversion weight, default is 0.1145]::' \
  '-[Read images from standard input.]' \
  '(-b --border)'{-b,--border}'[Print a border around the output image.]' \
  '--chars=[Select character palette used to paint the image. Leftmost character corresponds to black pixel, right-most to white.  Minimum two characters must be specified.]':: \
  '--clear[Clears screen before drawing each output image.]' \
  '--colors[Use true colors or, if true color is not supported, ANSI in output.]' \
  '--color-depth=[Use a specific color-depth for terminal output. Valid values are: 4 (for ANSI), 8 (for 256 color palette) and 24 (for truecolor or 24-bit color).]:colordepth:(4 8 24)' \
  '(-d --debug)'{-d,--debug}'[Print additional debug information.]' \
  '--edge-threshold=[Image gradient above which to shade lines and edges with directional glyphs (such as -/|\).]' \
  '--edges-only[Only draw edges - make sure you use it with the edge-threshold option so edges are drawn.]' \
  "(--fill --html-fill)--fill[When used with --color and/or --htmlls or --xhtml, color each character's background.]" \
  '(-x --flipx)'{-x,--flipx}'[Flip image in X direction.]' \
  '(-y --flipy)'{-y,--flipy}'[Flip image in Y direction.]' \
  '(-f --term-fit)'{-f,--term-fit}'[Use the largest image dimension that fits in your terminal display with correct aspect ratio.]' \
  '--term-height[Use terminal display height.]' \
  '--term-width[Use terminal display width.]' \
  '(-z --term-zoom)'{-z,--term-zoom}'[Use terminal display dimension for output.]' \
  '(-c --term-center)'{-c,--term-center}'[Center image in terminal.]' \
  '--grayscale[Convert image to grayscale when using --htmlls or --xhtml or --colors.]' \
  '--height=[Set output height, calculate width from aspect ratio.]':: \
  '(- *)'{-h,--help}'[Print program help.]' \
  '--htmlls[Produce HTML (Living Standard) output.]' \
  '--html[Produce strict XHTML 1.0 output (will produce HTML output from version 2.0.0 onward).]' \
  '--xhtml[Produce strict XHTML 1.0 output.]' \
  '(--fill --html-fill)--html-fill[Same as --fill (will be phased out).]' \
  '--html-fontsize=[Set fontsize to N pt, default is 4.]' \
  '--html-no-bold[Do not use bold characters with HTML output.]' \
  '--html-raw[Output raw HTML codes, i.e. without the  section etc. (Will use 
for version 2.0.0 and above.)]' \ '--html-title=[Set HTML output title]' \ '(-i --invert --background)'{-i,--invert}'[Invert output image. Use if your display has a dark background.]' \ '(-i --invert --background)--background=[dark or light. These are just mnemonics whether to use --invert or not. If your console has light characters on a dark background, use --background=dark.]:background:(dark light)' \ '--output=[Write output to file.]::' \ '--size=[Set output width and height.]::' \ '(-v --verbose)'{-v,--verbose}'[Verbose output.]' \ '(- *)'{-v,--version}'[Print program version.]' \ '--width=[Set output width, calculate height from ratio.]::' \ '*:images:->images' case "$state" in images) local -a image_files image_files=( *.{jpg,jpeg,png,webp} "http://" "https://" "file://" ) _multi_parts / image_files ;; esac jp2a-1.3.2/configure.ac000066400000000000000000000130631471373143100146460ustar00rootroot00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) AC_INIT([jp2a],[1.3.2],[chris-r@posteo.net], [jp2a], [https://github.com/Talinx/jp2a]) m4_ifdef([DX_INIT_DOXYGEN], [doc=true DX_INIT_DOXYGEN([jp2a])],[doc=false]) AM_INIT_AUTOMAKE(dist-bzip2 dist-zip) AM_CONDITIONAL([DOC], [test x$doc = xtrue]) AC_CONFIG_SRCDIR(src/jp2a.c) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile src/Makefile]) # Checks for programs. AC_PROG_CC # Checks for libraries. AC_ARG_WITH([jpeg-include], AS_HELP_STRING([--with-jpeg-include=PATH],[specify path to directory containing jpeglib.h -- http://www.ijg.org/]), [CPPFLAGS="$CPPFLAGS -I$withval"]) AC_ARG_WITH([jpeg-lib], AS_HELP_STRING([--with-jpeg-lib=PATH],[specify path to directory containing jpeglib lib file -- http://www.ijg.org/]), [LDFLAGS="$LDFLAGS -L$withval"]) AC_ARG_WITH([jpeg-prefix], AS_HELP_STRING([--with-jpeg-prefix=PATH],[this is the same as --with-jpeg-include=PATH/include and --with-jpeg-lib=PATH/lib]), [CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib"]) AC_ARG_WITH([curl-config], AS_HELP_STRING([--with-curl-config=PATH],[specify path to curl-config]), [curl_config_path="$withval" enable_curl="yes"], [curl_config_path="$PATH"]) AC_CHECK_LIB([jpeg], [jpeg_start_decompress], [LIBS="$LIBS -ljpeg"]) AC_CHECK_LIB([png], [png_create_read_struct], [LIBS="$LIBS -lpng"]) AC_CHECK_LIB([webp], [WebPGetInfo], [LIBS="$LIBS -lwebp"]) AC_CHECK_LIB([exif], [exif_data_new_from_file], [LIBS="$LIBS -lexif"]) # jp2a uses isfinite from math.h but that can be implemented as a macro so search for another actual function (floor) instead AC_SEARCH_LIBS([floor], [m]) if test "x$ac_cv_lib_jpeg_jpeg_start_decompress" != "xyes" ; then AC_MSG_ERROR([I need a working jpeglib; please specify --with-jpeg-lib=PATH or see --help for more explicit options. On many systems, this is installed in /usr/local/lib/ so you can try --with-jpeg-prefix=/usr/local/ ]) fi AC_ARG_ENABLE([curl], AS_HELP_STRING([--enable-curl],[enable to be to use libcurl (http://curl.haxx.se) to download images from the net (default: yes)]), [enable_curl=$enableval], [enable_curl="yes"]) AC_ARG_ENABLE([termlib], AS_HELP_STRING([--enable-termlib],[enable to use term/curses for detecting terminal dimensions (default: yes)]), [enable_termlib=$enableval], [enable_termlib="yes"]) AC_ARG_ENABLE([pure-ascii], AS_HELP_STRING([--enable-pure-ascii],[only support ASCII (and not UTF-8 or other character encodings) and ignore the locale (default: no)]), [pure_ascii=$enableval], [pure_ascii="no"]) AC_MSG_CHECKING([enable-curl]) AC_MSG_RESULT([$enable_curl]) if test "x$enable_curl" = "xyes" ; then AC_PATH_PROGS([curl_config], [curl-config], [no], [$curl_config_path]) if test "x$curl_config" != "xno" ; then curl_cflags="`$curl_config --cflags`" curl_libs="`$curl_config --libs`" CPPFLAGS="$CPPFLAGS $curl_cflags" AC_MSG_CHECKING([curl-config --cflags]) AC_MSG_RESULT([$curl_cflags]) AC_MSG_CHECKING([curl-config --libs]) AC_MSG_RESULT([$curl_libs]) fi if test "x$curl_libs" = "x" ; then curl_libs="-lcurl" fi AC_CHECK_LIB([curl], [curl_easy_init], [LIBS="$LIBS $curl_libs" AC_DEFINE([FEAT_CURL], [1], [Found working libcurl environment])], [ AC_MSG_WARN([I need a working libcurl (use --with-curl-config=PATH); download-support will be disabled]) enable_curl="no" ]) fi if test "x$pure_ascii" = "xyes" ; then AC_DEFINE([ASCII], [1], [only support ASCII, not UTF-8 or other encodings]) fi AC_CHECK_HEADER([jpeglib.h], [ AC_DEFINE([HAVE_JPEGLIB_H], [1], [Define to 1 if you have header file.]) ], [ AC_MSG_ERROR([required header file jpeglib.h not found, use --with-jpeg-include=PATH or see --help]) ]) if test "x$enable_curl" = "xyes" ; then AC_CHECK_HEADER([curl/curl.h], [ AC_DEFINE([HAVE_CURL_CURL_H], [1], [Define to 1 if you have the header file]) ], [ AC_MSG_WARN([required header file curl/curl.h not found, libcurl will be disabled (see --help)]) ]) fi AC_CHECK_HEADERS([fcntl.h curses.h term.h ncurses/term.h math.h limits.h locale.h stdlib.h string.h unistd.h wchar.h setjmp.h]) if test "$enable_termlib" = "yes" ; then # Some GNU/Linux systems (e.g., SuSE 4.3, 1996) don't have curses, but # rather ncurses. So we check for it. TERMLIBS= # Check for termlib before termcap because Solaris termcap needs libucb. TERMLIB_VARIANTS="ncurses curses termlib termcap terminfo" for termlib in ${TERMLIB_VARIANTS}; do AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="${TERMLIBS} -l${termlib}"; break]) done # don't bother warning on djgpp, it doesn't have a term library, it # ports each termcap-needing program separately according to its needs. if test -z "$TERMLIBS" && echo "$build" | grep -v djgpp >/dev/null; then AC_MSG_WARN([probably need a terminal library, one of: ${TERMLIB_VARIANTS}]) else LIBS="$LIBS $TERMLIBS" AC_DEFINE([FEAT_TERMLIB], [1], [Found working term/curses environment]) fi fi # Checks for bash-completion PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], , bashcompdir="${sysconfdir}/bash_completion.d") AC_SUBST(bashcompdir) PKG_CHECK_VAR(zshcompdir, [zsh-completion], [zshcompletionsdir], , zshcompdir="${datarootdir}/zsh/site-functions") AC_SUBST(zshcompdir) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_C_RESTRICT AC_TYPE_SIZE_T AC_CHECK_HEADER_STDBOOL # Checks for library functions. AC_FUNC_FORK AC_TYPE_PID_T AC_CHECK_FUNCS([memset atexit mbrlen memset setlocale strerror]) AC_HEADER_ASSERT AC_OUTPUT jp2a-1.3.2/doc/000077500000000000000000000000001471373143100131225ustar00rootroot00000000000000jp2a-1.3.2/doc/image pipeline.md000066400000000000000000000154171471373143100163240ustar00rootroot00000000000000# Image pipeline This page outlines the image pipeline of jp2a from the image being read to characters displayed. ## Reading images jp2a can process images in different file formats like [JPEG](https://en.wikipedia.org/wiki/JPEG) and [PNG](https://en.wikipedia.org/wiki/PNG). jp2a has one method for every supported image type: - [decompress_jpeg](@ref decompress_jpeg) - [decompress_png](@ref decompress_png) - [decompress_webp](@ref decompress_png) These methods read the image from a file stream and store their results in a [Image](@ref Image_) data structure. The original pixels of the image are not stored in this [Image](@ref Image_). Instead the pixels are generated while reading the image to account for adjusted display dimensions. The [Image](@ref Image_) saves the pixels in buffers that store the pixel line by line, i. e. the pixels of the first read line come first, followed by the pixels of the second line and so on. Should decoding fail in one of these methods, the next is called. This follows the order jpeg -> webp -> png -> jpeg and so on. When a method is called the second time, it prints errors and returns without calling the next. This way images can be printed even if the file extension is incorrect. ## Adjusting image dimensions jp2a adjust the dimensions of the pixel based on the terminal dimensions are user input. This [Image](@ref Image_) structure contains the image data in the (adjusted) display dimensions. jp2a also has to account for different image orientations. The [Exif](https://en.wikipedia.org/wiki/Exif) data of an image may specify an orientation/rotation/flip that is different from the pixel layout in the image file. ### Determining the display aspect ratio and dimensions The display aspect ratio and dimension is computed by the [aspect_ratio](@ref aspect_ratio) function. This function takes the terminal size or user specified dimensions into account as well as whether _x_ and _y_ dimensions should be switched. The displayed aspect ratio may differ from the original image aspect ration because terminal "pixels" (characters) are not perfect squares. _x_ and _y_ dimensions are switched if the image has to be rotated by 90° or 270° based on e. g. [Exif](https://en.wikipedia.org/wiki/Exif) metadata. The [Image](@ref Image_) structure fields `width` and `height` save the display dimensions without taking switching _x_ and _y_ dimensions into account. The `src_width` and `src_height` fields do take switching dimensions into account. ### Normalizing Before printing the image is normalized using the [normalize](@ref normalize) function. Multiple scanlines of the source image might contribute to one line in the displayed output. The displayed pixels accumulate colors during scanning. These accumulated values are divided by the number of scanlines used for that pixel to normalize them (which results in a displayed pixel having an average value from multiple source pixels). ### Reading images scanline by scanline Images are read scanline by scanline. A scanline is a horizontal line of pixels. In other words, the pixel are organized in a 2-dimensional grid which requires two loops to iterate. The outer loop loops over scanlines (_y_ or height dimension) and the inner loop over the pixels in that scanline (_x_ or width dimension). The inner loop is performed in one of these functions (depending on file type): - [process_scanline_jpeg](@ref process_scanline_jpeg) - [process_scanline_png](@ref process_scanline_png) There is no such method for WebP because the WebP library supports decoding a file in one go. This function needs a mapping from original image pixel coordinates to output pixel coordinates because generally the input and display dimensions differ. This is accomplished by the `resize_x`, `resize_y` and `lookup_resx` fields of the [Image](@ref Image_) struct. jp2a averages pixel along the input _y_ dimension while only considering one pixel along the _x_ dimension. Therefore `resize_y` rounds to the last scanline that should be taken into account for an output line while `lookup_resx` provides a direct mapping. These two fields are set beforehand in the [init_image](@ref init_image) function. `resize_x` and `resize_y` contain the scaling factor and are calculated as follows: - `resize_y = (display_height - 1) / (source_height - 1)` - `resize_x = (display_width - 1) / (source_width - 1)` `lookup_resx` is an array with as many pixels as the displayed image is wide. Its entries are: - `lookup_resx[i] = i * resize_x` `resize_x`, `resize_y` and `lookup_resx` work in original dimensions because they are utilized during reading of the image file. When the output _x_ and _y_ dimensions are switched, the source dimensions remain the same while the display dimensions need to be switched. Then the calculations are: - `resize_y = (display_width - 1) / (source_height - 1)` - `resize_x = (display_height - 1) / (source_width - 1)` - `lookup_resx[i] = i * resize_x` Note that `lookup_resx` with the same formula. However with a different value for `resize_x` and a different array length. It is now as long as the displayed image high. WebP does not make use of `resize_x`, `resize_y` and `lookup_resx` and the averaging mechanism above is also not utilized because the libwebp library supports scaling which is used instead. ## Displaying images After reading and normalizing the [Image](@ref Image_) struct contains the pixel data in the following fields: - `pixel`: luminosity - `red`: red channel - `green`: green channel - `blue`: blue channel - `alpha`: opacity These fields contain the pixel scanline by scanline. I. e. at index 0 is the pixel at the top left, at index src_width - 1 the pixel at the top right and so on. The ordering depends on the how the image was read from the image file. This differs from the displayed ordering if _x_ and _y_ dimensions need to be switched. The function [get_pixel](@ref get_pixel) converts the displayed _x_ _y_ coordinates to the index in these pixel buffers. The index depends upon the image orientation and user options (whether the output should be flipped along the _x_ or _y_ dimension). The image is printed to the console line by line. Each pixel of the [Image](@ref Image_) struct is converted to a character. The character is determined from the luminosity and opacity from the pixel. A linear function maps these to indexes in the character palette. The character is then appended to the current line. While ASCII characters are always one byte long in memory this is not the case for every UTF-8 character. To support UTF-8, two arrays are used that map the palette index to the start of the character and its length respectively. This information is then used to append the whole character to the current line. For color output the red, green and blue channels are encoded with terminal color escape sequences. jp2a-1.3.2/include/000077500000000000000000000000001471373143100140005ustar00rootroot00000000000000jp2a-1.3.2/include/aspect_ratio.h000066400000000000000000000013721471373143100166310ustar00rootroot00000000000000/*! \file * \noop Copyright 2006-2016 Christian Stigen Larsen * \noop Copyright 2020 Christoph Raitzig * * \brief Function for calculating the output width or height. * * \author Christian Stigen Larsen * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_ASPECT_RATIO_H #define INC_JP2A_ASPECT_RATIO_H /*! * \brief Calculate the output width or height, but not both. * * \param jpeg_width,jpeg_height dimensions of the input image * \param switch_x_y whether to switch x and y dimensions, this is the case when the stored pixels differ from the displayed pixels due to a rotation */ void aspect_ratio(const int jpeg_width, const int jpeg_height, const int switch_x_y); #endif jp2a-1.3.2/include/curl.h000066400000000000000000000023421471373143100151170ustar00rootroot00000000000000/*! \file * \noop Copyright 2020 Christoph Raitzig * * \brief Functions for downloading images (with cURL). * * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_CURL_H #define INC_JP2A_CURL_H #ifdef FEAT_CURL /*! * \brief Checks whether it is a supported URL. * * \param s the URL * \return 1 if it is a supported URL */ int is_url(const char* s); /*! * \brief Downloads an image. * * \param url URL of the image * \param debug true if cURL should print debug information * \return read-only file-descriptor that must be closed. */ int curl_download(const char* url, const int debug); #ifdef WIN32 /*! * \brief A custom write function. * * Required for Windows. Does the same as fwrite(). * * \param buffer buffer to read data from * \param size the size of one item * \param nmemb the number of items * \param userp the file stream to write to * \return the number of items written */ size_t passthru_write(void *buffer, size_t size, size_t nmemb, void *userp); /*! * \brief Actually download an image. */ void curl_download_child(void*); #else /*! * \brief Actually download an image. */ void curl_download_child(); #endif #endif #endif jp2a-1.3.2/include/html.h000066400000000000000000000103101471373143100151100ustar00rootroot00000000000000/*! \file * \noop Copyright 2020 Christoph Raitzig * * \brief HTML/XHTML functions. * * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_HTML_H #define INC_JP2A_HTML_H #include "config.h" /*! * \brief Prints the start of a HTML document. * * \param fontsize font size * \param fout stream to print to */ void print_html_document_start(const int fontsize, FILE *fout); /*! * \brief Prints the start of a HTML image. * * \param f stream to print to */ void print_html_image_start(FILE *f); /*! * \brief Prints the end of a HTML document. * * \param fout stream to print to */ void print_html_document_end(FILE *fout); /*! * \brief Prints the end of a HTML image. * * \param f stream to print to */ void print_html_image_end(FILE *f); #if ASCII /*! * \brief Prints a char of the output image for HTML. * * \param fout stream to print to * \param ch char to print * \param red_fg,green_fg,blue_fg foreground color * \param red_bg,green_bg,blue_bg background color */ void print_html_char(FILE *fout, const char ch, const int red_fg, const int green_fg, const int blue_fg, const int red_bg, const int green_bg, const int blue_bg); #else /*! * \brief Prints a char of the output image for HTML. * * \param fout stream to print to * \param ch char to print * \param red_fg,green_fg,blue_fg foreground color * \param red_bg,green_bg,blue_bg background color */ void print_html_char(FILE *fout, const char* ch, const int red_fg, const int green_fg, const int blue_fg, const int red_bg, const int green_bg, const int blue_bg); #endif /*! * \brief Prints a new line (for HTML, i.e. "
"). * * \param fout stream to print to */ void print_html_newline(FILE *fout); /*! * \brief Prints the start of a XHTML document. * * \param fontsize font size * \param fout stream to print to */ void print_xhtml_document_start(const int fontsize, FILE *fout); /*! * \brief Prints the start of a XHTML image. * * \param f stream to print to */ void print_xhtml_image_start(FILE *f); /*! * \brief Prints the end of a XHTML document. * * \param fout stream to print to */ void print_xhtml_document_end(FILE *fout); /*! * \brief Prints the end of a XHTML image. * * \param f stream to print to */ void print_xhtml_image_end(FILE *f); #if ASCII /*! * \brief Prints a char of the output image for XHTML. * * \param fout stream to print to * \param ch char to print * \param red_fg,green_fg,blue_fg foreground color * \param red_bg,green_bg,blue_bg background color */ void print_xhtml_char(FILE *fout, const char ch, const int red_fg, const int green_fg, const int blue_fg, const int red_bg, const int green_bg, const int blue_bg); #else /*! * \brief Prints a char of the output image for XHTML. * * \param fout stream to print to * \param ch char to print * \param red_fg,green_fg,blue_fg foreground color * \param red_bg,green_bg,blue_bg background color */ void print_xhtml_char(FILE *fout, const char* ch, const int red_fg, const int green_fg, const int blue_fg, const int red_bg, const int green_bg, const int blue_bg); #endif /*! * \brief Prints a new line (for XHTML, i.e. "
"). * * \param fout stream to print to */ void print_xhtml_newline(FILE *fout); #if ASCII /*! * \brief Converts a char to a HTML entity if necessary. * * For example, "<" is converted to "<". * * \param ch char to convert * \return the HTML entity or the original char if a conversion is not necassary */ const char* html_entity(const char ch); #else /*! * \brief Converts a char to a HTML entity if necessary. * * For example, "<" is converted to "<". * * \param ch char to convert * \return the HTML entity or the original char if a conversion is not necassary */ const char* html_entity(const char* ch); #endif /*! * \brief Prints the CSS for a HTML/XHTML document. * * \param fontsize font size * \param f stream to print to */ void print_css(const int fontsize, FILE *f); /*! * \brief Escapes the title as necesary. * * Takes the title in #html_title_raw and escapes chars to HTML entities as necessary and saves the resulting title in #html_title. * * \return true if successful, false otherwise */ int escape_title(); #endif jp2a-1.3.2/include/image.h000066400000000000000000000242641471373143100152430ustar00rootroot00000000000000/*! \file * \noop Copyright 2006-2016 Christian Stigen Larsen * \noop Copyright 2020-2024 Christoph Raitzig * * \brief Functions that work directly with images. * * Call decompress_jpeg() or decompress_png() to read an input image from a stream and print it. * Which is called does not matter in regards to functionality, if decompress_jpeg() fails decompress_png() is called and vice versa. * For efficiency call the function that is most likely to work. * * All other functions in this file are called by decompress_jpeg() or decompress_png() or one of the functions they call. * * \author Christian Stigen Larsen * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_IMAGE_H #define INC_JP2A_IMAGE_H #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #include #include "jpeglib.h" #include "png.h" #include "webp/decode.h" #include #include "html.h" /*! \enum Orientation * \brief Image orientation * * The displayed image orientation can differ from how the image is stored in a file based on Exif metadata. */ typedef enum { HORIZONTAL, MIRROR_HORIZONTAL, ROTATE_180, MIRROR_VERTICAL, MIRROR_HORIZONTAL_ROTATE_90, ROTATE_270, MIRROR_HORIZONTAL_ROTATE_270, ROTATE_90 } Orientation; /*! \struct Image_ * \brief Holds a decompressed image. * * #pixel, #red, #green, #blue, #alpha and #yadds are arrays of size #width * #height. */ typedef struct Image_ { int width; //!< width int height; //!< height Orientation orientation; //!< orientation int switch_x_y; //!< whether stored x-y-dimensions differ from displayed ones due to a rotation int src_width; //!< width in source orientation - differs from width if x and y dimensions are switched int src_height; //!< height in source orientation - differs from height if x and y dimensions are switched float *pixel; //!< luminosities (i.e. gray values) float *red; //!< red part float *green; //!< green part float *blue; //!< blue part float *alpha; //!< opacities int *yadds; //!< how many scanlines were used for a pixel, used by normalize() float resize_y; //!< Factor by which the output image is resized from the input image in the y dimension (height). For example for an output height of 40 and input height of 80 this equals approximately 0.5. float resize_x; //!< Factor by which the output image is resized from the input image in the x dimension (width). For example for an output width of 50 and input height of 100 this equals approximately 2.0. int *lookup_resx; //!< where to start and end using pixels of the input image to calculate a pixel of the output image along the x axis } Image; /*! * \typedef Image * \brief See #Image_ */ /*! \struct my_jpeg_error_mgr * \brief This struct is used for custom error handling with libjpeg. */ typedef struct my_jpeg_error_mgr { struct jpeg_error_mgr pub; //!< libjpeg's error manager jmp_buf setjmp_buffer; //!< where to jump to if an error occurs } my_jpeg_error_mgr; /*! * \typedef my_jpeg_error_mgr * \brief See #my_jpeg_error_mgr */ /*! * \brief Pointer to a #my_jpeg_error_mgr. */ typedef struct my_jpeg_error_mgr *my_jpeg_error_ptr; /*! * \brief WebP image data struct */ typedef struct { uint8_t* data; size_t size; } webp_data; /*! \struct error_collector * \brief Contains and collects errors that occur while decompressing an image. * * With this struct decompress_jpeg(), decompress_png() and decompress_webp() can be called recursively since #jpeg_status, #png_status and #webp_status can be used to determine whether a previous call failed or not. */ typedef struct error_collector { my_jpeg_error_mgr *jpeg_error; //!< contains information about a JPEG decompression error char *png_error_msg; //!< error message for a PNG decompression error char *webp_error_msg; //!< error message for a WebP decompression error int jpeg_status; //!< true if an error occurred during JPEG decompression, false otherwise int png_status; //!< true if an error occurred during PNG decompression, false otherwise int webp_status; //!< true if an error occurred during WebP decompression, false otherwise } error_collector; /*! * \typedef error_collector * \brief See #error_collector */ /*! * \brief Prints the top margin of an image * * \param image Image * \param f output stream */ void print_margin_top(const Image *image, FILE *f); /*! * \brief Prints the bottom margin of an image * * \param image Image * \param f output stream */ void print_margin_bottom(const Image *image, FILE *f); /*! * \brief Prints the start margin of an image * * \param image Image * \param f output stream */ void print_margin_start(const Image *image, FILE *f); /*! * \brief Prints the top or bottom of a border around an image. * * \param width width of the output image */ void print_border(const int width); /*! * \brief Prints an image. * * Calls print_image_colors() or print_image_no_colors(). * * \param image the output image * \param f the stream to print to */ void print_image(Image *image, FILE *f); /*! * \brief Prints an image with color. * * \param image the output image * \param chars the character palette * \param f the stream to print to */ void print_image_colors(const Image* const image, const int chars, FILE *f); /*! * \brief Prints an image without color. * * \param image the output image * \param chars the character palette * \param f the stream to print to */ void print_image_no_colors(const Image* const image, const int chars, FILE *f); /*! * \brief Clears the image (i.e. sets all pixels to black, alpha to max) * * \param i the image */ void clear(Image* i); /*! * \brief Normalizes the image. * * After decompressing the image into RAM the G/RGB values must not be between 0 and 1. The functions normalizes them so that they are. * * \param i the image */ void normalize(Image* i); /*! * \brief Prints a progress bar. * * \param progress The progress. Between 0 and 1 where 0 is 0% and 1 is 100% */ void print_progress(float progress); /*! * \brief Prints some information about the image and how it will be printed. * * \param jpg contains information about the JPEG image * \param orientation image orientation (read from Exif metadata) */ void print_info_jpeg(const struct jpeg_decompress_struct* jpg, const Orientation orientation); /*! * \brief Prints some information about the image and how it will be printed. * * \param png_ptr necessary for calling libpng functions * \param info_ptr contains information about the PNG image */ void print_info_png(const png_structp png_ptr, const png_infop info_ptr); /*! * \brief Prints some information about the image and how it will be printed. * * \param config WebP decoding information */ void print_info_webp(WebPDecoderConfig* config); /*! * \brief Processes a scanline of a JPEG image. * * \param jpg contains information about the JPEG image * \param scanline the scanline * \param i the output image */ void process_scanline_jpeg(const struct jpeg_decompress_struct *jpg, const JSAMPLE* scanline, Image* i); /*! * \brief Processes a scanline of a PNG image. * * Supports a bit-depth of 8 and G, GA, RGB and RGBA. * * \param row scanline (i.e. the row of pixels) * \param current_y the current height * \param color_components the number of color components (e.g. 4 for RGBA) * \param i the output image */ void process_scanline_png(const png_bytep row, const int current_y, const int color_components, Image* i); /*! * \brief Frees allocated memory of an image. * * \param i the image */ void free_image(Image* i); /*! * \brief Allocates memory for holding the pixels etc. Sets the width and height. * * \param i the image * \param switch_x_y whether to switch x and y dimensions, this is the case when the stored pixels differ from the displayed pixels due to a rotation */ void malloc_image(Image* i, int switch_x_y); /*! * \brief Sets internal values necessary for processing scanlines. * * \param i the struct to hold the output image * \param src_width width of the source image * \param src_height height of the source image */ void init_image(Image *i, int src_width, int src_height); /*! * \brief Get the image orientation * * Determine the image orientation from EXIF metadata. * * Rewinds the file. * * \param imageFP image file pointer */ Orientation get_orientation(FILE *imageFP); /*! * \brief Decompresses and prints an image. * * Calls decompress_webp() if the image is not a JPEG image. * Instead prints errors if there was an error when decompressing this image as JPEG previously. * * \param fin input stream, has to be seekable * \param fout stream to print the image to * \param errors contains previous errors and is used to save errors */ void decompress_jpeg(FILE *fin, FILE *fout, error_collector *errors); /*! * \brief Callback for errors while decompressing a JPEG image. * * \param jerr contains information about the error */ void jpeg_error_exit(j_common_ptr jerr); /*! * \brief Decompresses and prints an image. * * Calls decompress_jpeg() if the image is not a PNG image. * Instead prints errors if there was an error when decompressing this image as PNG previously. * * \param fin input stream, has to be seekable * \param fout stream to print the image to * \param errors contains previous errors and is used to save errors */ void decompress_png(FILE *fin, FILE *fout, error_collector *errors); /*! * \brief Read WebP image into a buffer * * \param fp input stream */ webp_data* get_webp_data(FILE *fp); /*! * \brief Free WebP image buffer * * \param data WebP data */ void free_webp_data(webp_data* data); /*! * \brief Decompresses and prints an image. * * Calls decompress_png() if the image is not a WebP image. * Instead prints errors if there was an error when decompressing this image as WebP previously. * * \param fin input stream, has to be seekable * \param fout stream to print the image to * \param errors contains previous errors and is used to save errors */ void decompress_webp(FILE *fp, FILE *fout, error_collector *errors); /*! * \brief Prints errors. * * Checks what errors have occurred and prints their error messages. * * \param errors the collected errors */ void print_errors(error_collector *errors); #endif jp2a-1.3.2/include/jp2a.h000066400000000000000000000032201471373143100150020ustar00rootroot00000000000000/*! \file * \noop Copyright 2006-2016 Christian Stigen Larsen * \noop Copyright 2020 Christoph Raitzig * * \brief The main function and a helper function. * * \author Christian Stigen Larsen * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_H #define INC_JP2A_H #ifdef _WIN32 #include #endif /*! * \brief The main function. * * \param argc argument count * \param argv the arguments */ int main(int argc, char** argv); /*! * \brief Reads from a stream into a buffer. * * This function is used to make a seekable stream from a non-seekable stream: * Read the contents of the non-seekable stream into a buffer (with this function) and open a stream to this buffer (with fmemopen()). * The buffer is (re)allocated as needed. * * \param fp stream to read into buffer * \param buffer the buffer to read into * \param buffer_size the allocated size of the buffer * \param actual_size the number of bytes read into the buffer * \return true if sucessful, false otherwise */ int read_into_buffer(FILE *fp, char **buffer, size_t *buffer_size, size_t *actual_size); #ifdef _WIN32 /*! * \brief fmemopen alternative for Windows. * * Windows does not support opening a file stream to part of the RAM. * This function creates a temporary file and writes the contents of the buffer to it. * * \param buf data to write to the file * \param size number of bytes to write * \param mode ignored, for compatibility with the actual fmemopen() * \return the file handle (or NULL if an error occurred) */ HANDLE fmemopen(void *buf, size_t size, const char *mode); #endif #endif jp2a-1.3.2/include/options.h000066400000000000000000000103021471373143100156400ustar00rootroot00000000000000/*! \file * \noop Copyright 2006-2016 Christian Stigen Larsen * \noop Copyright 2020 Christoph Raitzig * * \brief Functions for parsing command line arguments. * * \author Christian Stigen Larsen * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_OPTIONS_H #define INC_JP2A_OPTIONS_H //! size of the ASCII palette (in chars) #define ASCII_PALETTE_SIZE 256 //! default ASCII palette #define ASCII_PALETTE_DEFAULT " ...',;:clodxkO0KXNWM"; //! default title for HTML/XHTML documents #define HTML_DEFAULT_TITLE "jp2a converted image" //! default edge_threshold - very high so no edges will be drawn #define EDGE_THRESHOLD_DEFAULT 1000. extern int verbose; //!< produce verbose output extern int auto_height; //!< automatically calculate the output width from the height extern int auto_width; //!< automatically calculate the output height from the width extern int width; //!< output width extern int height; //!< output height extern int use_border; //!< print a border around images extern int invert; //!< invert output (color/gray channels, not alpha) extern int flipx; //!< flip output along x axis extern int flipy; //!< flip output along y axis extern int centerx; //!< center output along the x axis extern int centery; //!< center output along the y axis extern int html; //!< produce HTML output extern int xhtml; //!< produce XHTML output extern int html_fontsize; //!< font size for HTML/XHTML output extern int colorfill; //!< also fill the background extern int convert_grayscale; //!< produce grayscale output extern const char *html_title_raw; //!< HTML title extern char *html_title; //!< HTML title with escaped HTML entities extern int html_rawoutput; //!< produce only the image part and not the rest of the website extern int html_bold; //!< use bold characters in HTML output extern int debug; //!< print debug information extern int clearscr; //!< clear the screen before printing an image extern float edge_threshold; //!< image gradient above which edges should be drawn with /-\| characters extern int edges_only; //!< only draw edges - make sure you use it with the edge-threshold option so edges are drawn extern int ascii_palette_length; //!< number of charactrs in the palette extern char ascii_palette[]; //!< the palette #if ! ASCII extern unsigned char ascii_palette_indizes[]; //!< indizes of the first byte of each char in the palette extern char ascii_palette_lengths[]; //!< byte lengths of the chars in the palette #endif extern float redweight; //!< weight for red extern float greenweight; //!< weight for green extern float blueweight; //!< weight for blue extern float RED[256]; //!< red channel lookup table extern float GREEN[256]; //!< green channel lookup table extern float BLUE[256]; //!< blue channel lookup table extern float ALPHA[256]; //!< alpha channel lookup table extern float GRAY[256]; //!< gray channel lookup table extern const char *fileout; //!< name of the output file (or - for stdout) extern int usecolors; //!< produce colored output extern int colorDepth; //!< output color bit depth (4 for ANSI, 8 for 256 colors, 24 for true color) extern int termfit; //!< the way the output dimensions are calculated extern int term_width; //!< width of the terminal extern int term_height; //!< height of the terminal #define TERM_FIT_ZOOM 1 //!< stretch image to fill the terminal #define TERM_FIT_WIDTH 2 //!< calculate the width (based on the height) #define TERM_FIT_HEIGHT 3 //!< calculate the height (based on the width) #define TERM_FIT_AUTO 4 //!< use the largest possible dimensions while retaining the input image aspect ratio /*! * \brief Prints version information. */ void print_version(); /*! * \brief Prints usage, version information etc. */ void help(); /*! * \brief Calculates red, green, blue, gray and alpha 8-bit to float lookup tables. * * \param red,green,blue weights for each color */ void precalc_rgb(const float red, const float green, const float blue); /*! * \brief Parses the command line arguments. * * Options are saved with the global variables. * Exits if help or the version is printed. * * \param argc argument count * \param argv the arguments */ void parse_options(int argc, char** argv); #endif jp2a-1.3.2/include/round.h000066400000000000000000000007151471373143100153030ustar00rootroot00000000000000/*! \file * \noop Copyright 2006-2016 Christian Stigen Larsen * \noop Copyright 2020 Christoph Raitzig * * \brief Round macro. * * \author Christian Stigen Larsen * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_ROUND_H #define INC_JP2A_ROUND_H /*! * \brief Rounds a float to the nearest integer and casts to integer. */ # define ROUND(xfloat) (int) ( 0.5f + xfloat ) #endif jp2a-1.3.2/include/terminal.h000066400000000000000000000014621471373143100157670ustar00rootroot00000000000000/*! \file * \noop Copyright 2020 Christoph Raitzig * * \brief Functions for querying terminal features. * * \author Christoph Raitzig * \copyright Distributed under the GNU General Public License (GPL) v2. */ #ifndef INC_JP2A_TERMINAL_H #define INC_JP2A_TERMINAL_H /*! * \brief Get the terminal dimensions. * * \param width_,height_ stores the dimensions * \param error stores an error (if one occurs) * \return 1 success\n * 0 terminal type not defined\n * -1 termcap database inaccessible\n * -2 environment variable TERM not set\n */ int get_termsize(int* width_, int* height_, char** error); /*! * \brief Checks whether the terminal supports true color. * * \return true if the terminal supports true color, false otherwise */ int supports_true_color(); #endif jp2a-1.3.2/man/000077500000000000000000000000001471373143100131305ustar00rootroot00000000000000jp2a-1.3.2/man/jp2a.1000066400000000000000000000201131471373143100140430ustar00rootroot00000000000000.TH jp2a 1 "September 22, 2024" "version 1.3.0" "USER COMMANDS" .SH NAME jp2a \- convert JPEG, PNG and WebP images to ASCII .SH SYNOPSIS .B jp2a [ .I options ] [ .I filename(s) | URL(s) ] .LP .SH DESCRIPTION .B jp2a will convert JPEG, PNG and WebP images to ASCII characters. You can specify a mixture of files and URLs. .SH OPTIONS .TP .BI \- Read JPEG, PNG and WebP image from standard input .TP .B \-\-background=light \-\-background=dark If you don't want to mess with \-\-invert all the time, just use these instead. If you are using white characters on a black display, then use --background=dark, and vice versa. .TP .B \-b \-\-border Frame output image in a border .TP .BI \-\-chars= ... Use the given characters when producing the output ASCII image. Default is " ...',;:clodxkO0KXNWM". .TP .BI \-\-colors Use truecolor (or ANSI color if truecolor is not supported) for text output and CSS color for HTML output. .TP . BI \-\-color\-depth= ... Use a specific color-depth for terminal output. Valid values are: 4 (for ANSI), 8 (for 256 color palette) and 24 (for truecolor or 24-bit color). .TP .B \-d \-\-debug Print debugging information when using libcurl to download images from the net. .TP .B \-f \-\-term\-fit Use the largest dimension that makes the image fit in your terminal display. .TP .B \-\-term\-height Use terminal display height and calculate width based on image aspect ratio. .TP .B \-\-term\-width Use terminal display width and calculate height based on image aspect ratio. .TP .B \-z \-\-term\-zoom Use terminal display width and height. .TP .B \-c \-\-term\-center Center image in terminal. .TP .B \-\-fill When used with \-\-html and \-\-color, then color each output character's background color. For instance, if you want to use fill-output on a light background, do jp2a --color --html --html-fill --background=light somefile.jpg --output=dark.html To do the same on a light background: jp2a --color --html --html-fill --background=dark somefile.jpg --output=light.html The default is to have fill disabled. .TP .B \-x \-\-flipx Flip output image horizontally .TP .B \-y \-\-flipy Flip output image vertically .TP .BI \-\-height= N Set output height. If only --height is specified, then output width will be calculated according to the source images aspect ratio. .TP .B \-h \-\-help Display a short help text .TP .B \-\-grayscale Converts image to grayscale when using \-\-html or \-\-colors. .TP .B \-\-html Make ASCII output in strict XHTML 1.0. (Will output in HTML for version 2.0.0 and above.) .TP .B \-\-htmlls Make ASCII output in HTML (Living Standard), suitable for viewing with web browsers. This is useful with big output dimensions, and if you want to check the result with a browser with small font. .TP .B \-\-xhtml Make ASCII output in strict XHTML 1.0. .TP .B \-\-html\-fill Same as \-\-fill. You should use that option instead. .TP .B \-\-html\-no\-bold Do not use bold text for HTML output. .TP .B \-\-html\-raw Output only the image in HTML codes, leaving out the rest of the webpage, so you can construct your own. (Will use
for version 2.0.0 and above instead of
.) .TP .BI \-\-html\-fontsize= N Set fontsize when using \-\-html output. Default is 4. .TP .BI \-\-html\-title= ... Set HTML output title. .TP .BI \-\-output=... Write ASCII output to given filename. To explicitly specify standard output, use \-\-output=\-. .TP .B \-i \-\-invert Invert output image. If you view a picture with white background, but you are using a display with light characters on a dark background, you should invert the image. .TP .BI \-\-red= ... .TP .BI \-\-green= ... .TP .BI \-\-blue= ... When converting from RGB to grayscale, use the given weights to calculate luminance. The default is red=0.2989, green=0.5866 and blue=0.1145. .TP .BI \-\-size= WIDTHxHEIGHT Set output dimension. .TP .B \-v \-\-verbose Print some verbose information to standard error when reading each JPEG image. .TP .BI \-\-width= N Set output width. If you only specify the width, the height will be calculated automatically. .TP .B \-V \-\-version Print program version. .TP .B \-\-zoom Sets output dimensions to your entire terminal window, disregarding source image aspect ratio. .TP .B \-\-edge\-threshold= ... Specifies an image gradient above which to shade lines and edges with directional glyphs (such as -/|\\). The right value to pick up the edges nicely will depend on the image but might be around 0.5. .TP .B \-\-edges-only Only draw edges, so that the resulting image is like a line drawing or edge detector. This option should be used in conjunction with \-\-edge\-threshold so that edges are drawn. .SH RETURN VALUES jp2a returns 1 when errors are encountered, zero for no errors. .SH EXAMPLES Convert and print imagefile.jpg using ASCII characters in 40 columns and 20 rows: .PP .B jp2a \-\-size=40x20 imagefile.jpg .PP Download an image off the net, convert and print: .PP .B jp2a http://www.google.com/intl/en/logos/easter_logo.jpg .PP Output picture.jpg and picture2.jpg, each 80x25 characters, using the characters " ...ooxx@@" for output: .PP .B jp2a \-\-size=80x25 --chars=" ...ooxx@@" picture.jpg picture2.jpg .PP Output image.jpg using 76 columns, height is automatically calculated from aspect ratio of image.jpg .PP cat image.jpg | .B jp2a \-\-width=76 \- .PP If you use jp2a together with ImageMagick's convert(1) then you can make good use of pipes, and have ImageMagick do all sorts of image conversions and effects on the source image. For example: .PP .B magick somefile.gif jpg:\- | .B jp2a \- \-\-width=80 .PP Check out convert(1) options to see what you can do. Convert can handle almost any image format, so with this combination you can convert images in e.g. PDF or AVI files to ASCII. .PP jp2a uses a very basic scaling algorithm for every image format except WebP. To get better quality, convert an image to WebP to make use of the scaling built into the libwebp library: .PP .B cwebp \-quiet image.jpg \-o \- | .B jp2a \- .PP Although the default build of jp2a includes automatic downloading of files specified by URLs, you can explicitly download them by using curl(1) or wget(1), for example: .PP .B curl \-s http://foo.bar/image.jpg | .B magick \- jpg:- | .B jp2a \- .PP You can pass the \-\-edge\-threshold option to highlight the edges of the image, or add the \-\-edges\-only option to draw only the edges, to produce a line drawing. .PP .B jp2a \-\-edge\-threshold=0.5 \-\-edges\-only imagefile.jpg .SH DOWNLOADING IMAGES FROM THE NET If you have compiled jp2a with libcurl(3), you can download images by specifying URLs: .B jp2a https://user:pass@foo.com/bar.jpg The protocols recognized are ftp, ftps, file, http, https and tftp. If you need more control of the downloading, you should use curl(1) or wget(1) and jp2a read the image from standard input. jp2a uses pipe and fork to download images using libcurl (i.e., no exec or system calls) and therefore does not worry about malevolently formatted URLs. .SH GRAYSCALE CONVERSION You can extract the red channel by doing this: .B jp2a somefile.jpg --red=1.0 --green=0.0 --blue=0.0 This will calculate luminance based on Y = R*1.0 + G*0.0 + B*0.0. The default values is to use Y = R*0.2989 + G*0.5866 + B*0.1145. .SH PROJECT HOMEPAGE The latest version of jp2a and news is always available from https://github.com/Talinx/jp2a. .SH SEE ALSO cjpeg(1), djpeg(1), jpegtran(1), convert(1), cwebp(1) .SH BUGS jp2a does not interpolate when resizing (except for WebP images). If you want better quality, try using cwebp(1) to convert the image to WebP before using jp2a to get correct scaling. .PP Another issue is that jp2a skips some X-pixels along each scanline. This gives a less precise output image, and will probably be corrected in future versions. .SH AUTHOR Christian Stigen Larsen and Christoph Raitzig jp2a uses jpeglib to read JPEG files. jpeglib is made by The Independent JPEG Group (IJG), who have a page at http://www.ijg.org jp2a uses libpng to read PNG files. libpng's homepage: http://libpng.org/pub/png/libpng.html jp2a uses libwebp to read WebP files. libwebp's homepage: https://developers.google.com/speed/webp/ .SH LICENSE jp2a is distributed under the GNU General Public License v2. jp2a-1.3.2/src/000077500000000000000000000000001471373143100131445ustar00rootroot00000000000000jp2a-1.3.2/src/Makefile.am000066400000000000000000000001771471373143100152050ustar00rootroot00000000000000bin_PROGRAMS = jp2a jp2a_SOURCES = aspect_ratio.c html.c terminal.c curl.c jp2a.c options.c image.c AM_CPPFLAGS = -I../include jp2a-1.3.2/src/aspect_ratio.c000066400000000000000000000025111471373143100157640ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "options.h" #include "round.h" void aspect_ratio(const int jpeg_width, const int jpeg_height, const int switch_x_y) { // the 2.0f and 0.5f factors are used for text displays that (usually) have characters // that are taller than they are wide. const int stored_width = switch_x_y ? jpeg_height : jpeg_width; const int stored_height = switch_x_y ? jpeg_width : jpeg_height; #define CALC_WIDTH ROUND(2.0f * (float) height * (float) stored_width / (float) stored_height) #define CALC_HEIGHT ROUND(0.5f * (float) width * (float) stored_height / (float) stored_width) // calc width if ( auto_width && !auto_height ) { width = CALC_WIDTH; // adjust for too small dimensions while ( width==0 ) { ++height; aspect_ratio(stored_width, stored_height, 0); } while ( termfit==TERM_FIT_AUTO && (width + use_border*2)>term_width ) { width = term_width - use_border*2; height = 0; auto_height = 1; auto_width = 0; aspect_ratio(stored_width, stored_height, 0); } } // calc height if ( !auto_width && auto_height ) { height = CALC_HEIGHT; // adjust for too small dimensions if ( height==0 ) { height = ( stored_height == 1 )? 0 : 1; } } } jp2a-1.3.2/src/curl.c000066400000000000000000000050231471373143100142550ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "curl.h" #include "config.h" #ifdef FEAT_CURL #ifdef WIN32 #include #include #endif #include #ifdef HAVE_CURL_CURL_H #include "curl/curl.h" #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef WIN32 #include #include #define close _close #define pipe(x) _pipe(x, 256, O_BINARY) #endif // local variables to curl.c int fd[2], debugopt; const char* URL; int is_url(const char* s) { return !strncmp(s, "ftp://", 6) | !strncmp(s, "ftps://", 7) | !strncmp(s, "file://", 7) | !strncmp(s, "http://", 7) | !strncmp(s, "tftp://", 7) | !strncmp(s, "https://", 8); } #ifdef WIN32 size_t passthru_write(void *buffer, size_t size, size_t nmemb, void *userp) { FILE *f = (FILE*) userp; return f!=NULL? fwrite(buffer, size, nmemb, f) : 0; } #endif #ifndef WIN32 void curl_download_child() #else void curl_download_child(void*) #endif { FILE *fw; CURL *curl; #ifndef WIN32 close(fd[0]); // close read-end #endif if ( (fw = fdopen(fd[1], "wb")) == NULL ) { fputs("Could not open pipe for writing.\n", stderr); exit(1); } curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, URL); if ( debugopt ) curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1); // fail silently curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); // redirects curl_easy_setopt(curl, CURLOPT_WRITEDATA, fw); #ifdef WIN32 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, passthru_write); #endif curl_easy_perform(curl); curl_easy_cleanup(curl); fclose(fw); close(fd[1]); // close write-end curl_global_cleanup(); #ifdef WIN32 _endthread(); #endif } int curl_download(const char* url, const int debug) { #ifndef WIN32 int pid; #endif URL = url; debugopt = debug; if ( pipe(fd) != 0 ) { fputs("Could not create pipe\n", stderr); exit(1); } #ifndef WIN32 if ( (pid = fork()) == 0 ) { // CHILD process curl_download_child(); exit(0); } else if ( pid < 0 ) { fputs("Could not fork.\n", stderr); exit(1); } #else if ( _beginthread(curl_download_child, 0, NULL) <= 0 ) { fputs("Could not create thread", stderr); exit(1); } #endif // PARENT process #ifndef WIN32 close(fd[1]); // close write end of pipe #endif return fd[0]; } #endif jp2a-1.3.2/src/html.c000066400000000000000000000122051471373143100142540ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "config.h" #include #include #include #include "html.h" #include "options.h" void print_html_document_start(const int fontsize, FILE *f) { fputs("\n" "\n" " \n" " \n", f); fprintf(f, " %s\n", html_title); fputs( " \n" " \n" "\n", f); } void print_html_image_start(FILE *f) { fputs("
\n", f);
}

void print_html_document_end(FILE *f) {
	fputs("\n\n", f);
}

void print_html_image_end(FILE *f) {
	fputs("
\n
\n", f); } #if ASCII void print_html_char(FILE *f, const char ch, const int r_fg, const int g_fg, const int b_fg, const int r_bg, const int g_bg, const int b_bg) #else void print_html_char(FILE *f, const char* ch, const int r_fg, const int g_fg, const int b_fg, const int r_bg, const int g_bg, const int b_bg) #endif { if ( colorfill ) { fprintf(f, "%s", r_fg, g_fg, b_fg, r_bg, g_bg, b_bg, html_entity(ch)); } else fprintf(f, "%s", r_fg, g_fg, b_fg, html_entity(ch)); } void print_html_newline(FILE *f) { fputs("
", f); } void print_xhtml_document_start(const int fontsize, FILE *f) { fputs( "\n" "\n" "\n" "\n", f); fprintf(f, "%s\n", html_title); fputs( "\n" "\n" "\n", f); } void print_xhtml_image_start(FILE *f) { fputs("
\n", f);
}

void print_xhtml_document_end(FILE *f) {
	fputs("\n\n", f);
}

void print_xhtml_image_end(FILE *f) {
	fputs("
\n
\n", f); } #if ASCII void print_xhtml_char(FILE *f, const char ch, const int r_fg, const int g_fg, const int b_fg, const int r_bg, const int g_bg, const int b_bg) #else void print_xhtml_char(FILE *f, const char* ch, const int r_fg, const int g_fg, const int b_fg, const int r_bg, const int g_bg, const int b_bg) #endif { if ( colorfill ) { fprintf(f, "%s", r_fg, g_fg, b_fg, r_bg, g_bg, b_bg, html_entity(ch)); } else fprintf(f, "%s", r_fg, g_fg, b_fg, html_entity(ch)); } void print_xhtml_newline(FILE *f) { fputs("
", f); } void print_css(const int fontsize, FILE *f) { fputs("body {\n", f); fputs(!invert? " background-color: white;\n" : "background-color: black;\n", f); if ( centerx || centery ) fputs( " margin: 0;\n padding: 0;\n", f); // only perform CSS reset in these conditions for backward compatibility fputs( "}\n" ".ascii {\n" " font-family: Courier;\n", f); // should be a monospaced font if ( !usecolors ) fputs(!invert? " color: black;\n" : " color: white;\n", f); fprintf(f, " font-size:%dpt;\n", fontsize); if ( centerx && centery ) fprintf(f, " display: flex;\n min-height: 100vh;\n align-items: center;\n justify-content: center;\n"); else if ( centerx ) fprintf(f, " display: flex;\n justify-content: center;\n"); else if ( centery ) fprintf(f, " display: flex;\n min-height: 100vh;\n align-items: center;\n"); if ( html_bold ) fputs( " font-weight: bold;\n", f); else fputs( " font-weight: normal;\n", f); fputs( "}\n", f); } #if ASCII const char* html_entity(const char ch) { // if a html entity is larger than 6 // chars, change escape_title accordingly static char s[2]; switch ( ch ) { #else const char* html_entity(const char* ch) { switch ( ch[0] ) { #endif case ' ': return " "; break; case '<': return "<"; break; case '>': return ">"; break; case '&': return "&"; break; default: #if ASCII s[0]=ch; s[1]=0; return s; break; #else return ch; #endif } } int escape_title() { if ( strlen(html_title_raw)==0 ) { return 1; } html_title = calloc(strlen(html_title_raw)*6 +1, sizeof(char)); // at most // 6 characters are returned by html_entity for each character if ( html_title==NULL ) { return 0; } int j = 0; int sizeNew; char* newChar; for (int i = 0; i < strlen(html_title_raw); i++) { if ( html_title_raw[i]=='&' ) { // otherwise HTML entities could not be // used on purpose html_title[j++] = '&'; continue; } #if ASCII const char* newChar = html_entity(html_title_raw[i]); #else char tempString[2]; tempString[0] = html_title_raw[i]; tempString[1] = '\0'; const char* newChar = html_entity(tempString); #endif sizeNew = strlen(newChar); for (int k = 0; k < sizeNew; k++) { html_title[j+k] = newChar[k]; } j += sizeNew; } if ( realloc(html_title, (j+1) * sizeof(char))==NULL ) return 0; return 1; } jp2a-1.3.2/src/image.c000066400000000000000000001023541471373143100143770ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020-2024 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #include #include #ifdef HAVE_STRING_H #include #endif #include #include "jpeglib.h" #include "png.h" #include "webp/decode.h" #include #include #include #include "aspect_ratio.h" #include "image.h" #include "jp2a.h" #include "options.h" #include "html.h" #include #define ROUND(x) (int) ( 0.5f + x ) static char DIRECTIONAL_CHARS[4] = "=/|\\"; void print_margin_top(const Image *image, FILE *f) { if ( centery && !( html || xhtml ) ) { int total_margin = term_height - image->height; if ( use_border ) { total_margin -= 2; } if ( total_margin <= 0 ) return; int margin_top = (int) floor(total_margin / 2); for ( size_t i = 0; i < margin_top; i++ ) { fprintf(f, "\n"); } } } void print_margin_bottom(const Image *image, FILE *f) { if ( centery && !( html || xhtml ) ) { int total_margin = term_height - image->height; if ( use_border ) { total_margin -= 2; } if ( total_margin <= 0 ) return; int margin_bottom = (int) ceil(total_margin / 2); for ( size_t i = 0; i < margin_bottom; i++ ) { fprintf(f, "\n"); } } } void print_margin_start(const Image *image, FILE *f) { if ( centerx && !( html || xhtml ) ) { int total_margin = term_width - image->width; if ( use_border ) { total_margin -= 2; } if ( total_margin <= 0 ) return; int margin_start = (int) floor(total_margin / 2); for ( size_t i = 0; i < margin_start; i++ ) { fprintf(f, " "); } } } void print_border(const int width) { #ifndef HAVE_MEMSET int n; #endif #ifdef WIN32 char *bord = (char*) malloc(width+3); #else char bord[width + 3]; #endif #ifdef HAVE_MEMSET memset(bord, '-', width+2); #else for ( n=0; nwidth); } (!usecolors? print_image_no_colors : print_image_colors) (image, ascii_palette_length - 1, f); if ( use_border ) { print_margin_start(image, f); print_border(image->width); } print_margin_bottom(image, f); if ( html && !html_rawoutput ) print_html_image_end(f); else if ( xhtml && !html_rawoutput ) print_xhtml_image_end(f); } int get_pixel_index(const Image* const image, const int x, const int y) { float fx; float fy; switch (image->orientation) { case HORIZONTAL: case MIRROR_HORIZONTAL_ROTATE_90: fx = flipx ? image->width - x - 1 : x; fy = flipy ? image->height - y - 1 : y; break; case MIRROR_HORIZONTAL: case ROTATE_270: fx = flipx ? x : image->width - x - 1; fy = flipy ? image->height - y - 1 : y; break; case ROTATE_180: case MIRROR_HORIZONTAL_ROTATE_270: fx = flipx ? x : image->width - x - 1; fy = flipy ? y : image->height - y - 1; break; case MIRROR_VERTICAL: case ROTATE_90: fx = flipx ? image->width - x - 1 : x; fy = flipy ? y : image->height - y - 1; break; } const int cx = fx < 0 ? 0 : fx > image->width - 1 ? image->width - 1 : fx; const int cy = fy < 0 ? 0 : fy > image->height - 1 ? image->height - 1 : fy; if ( image->switch_x_y ) { return cy + cx * image->src_width; } return cx + cy * image->src_width; } typedef struct { float x; float y; } vec2; vec2 get_image_gradient(const Image* const image, const int x, const int y) { const float kernel_x[4] = { -1., 0., 1., 0. }; const float kernel_y[4] = { -1., 1., 0., 0. }; const float patch[4] = { image->pixel[get_pixel_index(image, x , y )], image->pixel[get_pixel_index(image, x+1, y )], image->pixel[get_pixel_index(image, x , y+1)], image->pixel[get_pixel_index(image, x+1, y+1)], }; vec2 grad = {0., 0.}; for( int i = 0; i < 4; ++i ) { grad.x += kernel_x[i] * patch[i]; grad.y += kernel_y[i] * patch[i]; } return grad; } float magnitude( const vec2 v ) { return sqrtf( v.x*v.x + v.y*v.y ); } float direction( const vec2 v ) { return atan(v.y / v.x); } void print_image_colors(const Image* const image, const int chars, FILE* f) { for ( int y=0; y < image->height; ++y ) { print_margin_start(image, f); if ( use_border ) fprintf(f, "|"); for ( int x=0; x < image->width; x += 1 ) { const int pixel_index = get_pixel_index(image, x, y); float Y = image->pixel[pixel_index]; float R = image->red [pixel_index]; float G = image->green[pixel_index]; float B = image->blue [pixel_index]; float A = image->alpha[pixel_index]; R *= A; G *= A; B *= A; const vec2 gradient = get_image_gradient(image, x, y); int pos = ROUND((float)chars * Y); if( edges_only && magnitude(gradient) < edge_threshold ) { pos = 0; } int i = invert? pos : chars - pos; i = ROUND((float)i * A); char ch[MB_LEN_MAX + 1]; #define PRINTF_FORMAT_TYPE "%s" #if ASCII char* char_start = &ascii_palette[i]; size_t char_len = 1; #else char* char_start = &ascii_palette[ascii_palette_indizes[i]]; size_t char_len = ascii_palette_lengths[i]; #endif if( magnitude(gradient) > edge_threshold ) { // scale the gradient direction in the range -2 to 2, then add .5 to offset direction bins to match character directions float direction_scaled = direction(gradient) / M_PI * 4. + .5; // use +4 and fmod to bring the direction into the range 0-4, then use (int) to get an index 0-3 into DIRECTIONAL_CHARS array char_start = &DIRECTIONAL_CHARS[ (int) fmod(direction_scaled + 4., 4.) ]; char_len = 1; } memcpy(ch, char_start, char_len); ch[char_len] = '\0'; const float min = 1.0f / 255.0f; if ( !html && !xhtml ) { if ( usecolors ) // reset colors, the terminal could be colored by default fprintf(f, "\e[0m"); // reset colors if ( colorDepth==4 ) { const float t = 0.1f; // threshold const float i = 1.0f - t; int colr = 0; int highl = 0; // ANSI highlite, only use in grayscale if ( Y>=0.95f && RG && R-t>B ) colr = 31; // red else if ( G-t>R && G-t>B ) colr = 32; // green else if ( R-t>B && G-t>B && R+G>i ) colr = 33; // yellow else if ( B-t>R && B-t>G && Y<0.95f ) colr = 34; // blue else if ( R-t>G && B-t>G && R+B>i ) colr = 35; // magenta else if ( G-t>R && B-t>R && B+G>i ) colr = 36; // cyan else if ( R+G+B>=3.0f*Y ) colr = 37; // white } else { if ( Y>=0.7f ) { highl=1; colr = 37; } } if ( !colr ) { if ( !highl ) fprintf(f, PRINTF_FORMAT_TYPE, ch); else fprintf(f, "\e[1m" PRINTF_FORMAT_TYPE "\e[0m", ch); } else { if ( colorfill ) colr += 10; // set to ANSI background color fprintf(f, "\e[%dm" PRINTF_FORMAT_TYPE, colr, ch); // ANSI color } } else if ( colorDepth==8 ) { int type = 38; // 38 = foreground; 48 = background if ( colorfill ) type += 10; // set to background color if ( convert_grayscale || (Rmin) ) { if ( Y < 0.15 ) { if ( colorfill ) fprintf(f, "\e[38;5;%dm", 0); fprintf(f, "\e[%d;5;0%dm" PRINTF_FORMAT_TYPE, type, 0, ch); } else if ( Y > 0.965 ) { if ( colorfill ) fprintf(f, "\e[38;5;%dm", 244); fprintf(f, "\e[%d;5;%dm" PRINTF_FORMAT_TYPE, type, 231, ch); } else { if ( colorfill ) fprintf(f, "\e[38;5;%dm", ROUND(24.0f*Y*0.5f) + 232); fprintf(f, "\e[%d;5;%dm" PRINTF_FORMAT_TYPE, type, ROUND(24.0f*Y) + 232, ch); } } else { if ( colorfill ) fprintf(f, "\e[38;5;%dm", 16 + 36 * ROUND(5.0f*Y*R) + 6 * ROUND(5.0f*Y*G) + ROUND(5.0f*Y*B)); // foreground color fprintf(f, "\e[%d;5;%dm" PRINTF_FORMAT_TYPE, type, 16 + 36 * ROUND(5.0f*R) + 6 * ROUND(5.0f*G) + ROUND(5.0f*B), ch); // color } } else if ( colorDepth==24 ) { int type = 38; // 38 = foreground; 48 = background if ( colorfill ) type += 10; // set to background color if ( convert_grayscale || (Rmin) ) { if ( colorfill ) fprintf(f, "\x1b[38;2;%d;%d;%dm", ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f)); fprintf(f, "\x1b[%d;2;%d;%d;%dm" PRINTF_FORMAT_TYPE, type, ROUND(255.0f*Y), ROUND(255.0f*Y), ROUND(255.0f*Y), ch); } else { if ( colorfill ) fprintf(f, "\x1b[38;2;%d;%d;%dm", ROUND(255.0f*Y*R), ROUND(255.0f*Y*G), ROUND(255.0f*Y*B)); // foreground color fprintf(f, "\x1b[%d;2;%d;%d;%dm" PRINTF_FORMAT_TYPE, type, ROUND(255.0f*R), ROUND(255.0f*G), ROUND(255.0f*B), ch); // color } } } else if ( html ) { // HTML output // either --grayscale is specified (convert_grayscale) // or we can see that the image is inherently a grayscale image if ( convert_grayscale || (Rmin) ) { // Grayscale image if ( colorfill ) print_html_char(f, ch, ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y), ROUND(255.0f*Y), ROUND(255.0f*Y)); else print_html_char(f, ch, ROUND(255.0f*Y), ROUND(255.0f*Y), ROUND(255.0f*Y), 255, 255, 255); } else { if ( colorfill ) print_html_char(f, ch, ROUND(255.0f*Y*R), ROUND(255.0f*Y*G), ROUND(255.0f*Y*B), ROUND(255.0f*R), ROUND(255.0f*G), ROUND(255.0f*B)); else print_html_char(f, ch, ROUND(255.0f*R), ROUND(255.0f*G), ROUND(255.0f*B), 255, 255, 255); } } else if ( xhtml ) { // XHTML output // either --grayscale is specified (convert_grayscale) // or we can see that the image is inherently a grayscale image if ( convert_grayscale || (Rmin) ) { // Grayscale image if ( colorfill ) print_xhtml_char(f, ch, ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y*0.5f), ROUND(255.0f*Y), ROUND(255.0f*Y), ROUND(255.0f*Y)); else print_xhtml_char(f, ch, ROUND(255.0f*Y), ROUND(255.0f*Y), ROUND(255.0f*Y), 255, 255, 255); } else { if ( colorfill ) print_xhtml_char(f, ch, ROUND(255.0f*Y*R), ROUND(255.0f*Y*G), ROUND(255.0f*Y*B), ROUND(255.0f*R), ROUND(255.0f*G), ROUND(255.0f*B)); else print_xhtml_char(f, ch, ROUND(255.0f*R), ROUND(255.0f*G), ROUND(255.0f*B), 255, 255, 255); } } } if ( usecolors && !html && !xhtml ) fprintf(f, "\e[0m"); if ( use_border ) fputc('|', f); if ( html ) print_html_newline(f); else if ( xhtml ) print_xhtml_newline(f); else fputc('\n', f); } } void print_image_no_colors(const Image* const image, const int chars, FILE *f) { #if ASCII #ifdef WIN32 char *line = (char*) malloc(image->width + 1); #else char line[image->width + 1]; #endif line[image->width] = 0; #else #ifdef WIN32 char *line = (char*) malloc(image->width * MB_LEN_MAX + 1); #else char line[image->width * MB_LEN_MAX + 1]; #endif line[image->width * MB_LEN_MAX] = 0; #endif for ( int y=0; y < image->height; ++y ) { print_margin_start(image, f); int curLinePos = 0; for ( int x=0; x < image->width; ++x ) { const int pixel_index = get_pixel_index(image, x, y); const float lum = image->pixel[pixel_index]; const float opacity = image->alpha[pixel_index]; const vec2 gradient = get_image_gradient(image, x, y); int pos = ROUND((float)chars * lum); if( edges_only && magnitude(gradient) < edge_threshold ) { pos = 0; } int i = invert? pos : chars - pos; i = ROUND((float)i * opacity); char* char_dest = &line[curLinePos]; #if ASCII char* char_start = &ascii_palette[i]; size_t char_len = 1; #else char* char_start = &ascii_palette[ascii_palette_indizes[i]]; size_t char_len = ascii_palette_lengths[i]; #endif if( magnitude(gradient) > edge_threshold ) { // scale the gradient direction in the range -2 to 2, then add .5 to offset direction bins to match character directions float direction_scaled = direction(gradient) / M_PI * 4. + .5; // use +4 and fmod to bring the direction into the range 0-4, then use (int) to get an index 0-3 into DIRECTIONAL_CHARS array char_start = &DIRECTIONAL_CHARS[ (int) fmod(direction_scaled + 4., 4.) ]; char_len = 1; } memcpy(char_dest, char_start, char_len); curLinePos += char_len; line[curLinePos] = '\0'; } fprintf(f, !use_border? "%s\n" : "|%s|\n", line); } #ifdef WIN32 free(line); #endif } void clear(Image* i) { memset(i->yadds, 0, i->src_height * sizeof(int) ); memset(i->pixel, 0, i->width * i->height * sizeof(float)); for ( int j = 0; j < i->width * i->height; ++j ) { i->alpha[j] = 1.0; } memset(i->lookup_resx, 0, (1 + i->src_width) * sizeof(int) ); if ( usecolors ) { memset(i->red, 0, i->width * i->height * sizeof(float)); memset(i->green, 0, i->width * i->height * sizeof(float)); memset(i->blue, 0, i->width * i->height * sizeof(float)); } } void normalize(Image* i) { float *pixel = i->pixel; float *red = i->red; float *green = i->green; float *blue = i->blue; int x, y; for ( y=0; y < i->src_height; ++y ) { if ( i->yadds[y] > 1 ) { for ( x=0; x < i->src_width; ++x ) { pixel[x] /= i->yadds[y]; if ( usecolors ) { red [x] /= i->yadds[y]; green[x] /= i->yadds[y]; blue [x] /= i->yadds[y]; } } } pixel += i->src_width; if ( usecolors ) { red += i->src_width; green += i->src_width; blue += i->src_width; } } } void print_progress(float progress) { int pos; #define BARLEN 56 static char s[BARLEN]; s[BARLEN-1] = 0; pos = ROUND( (float) (BARLEN-2) * progress ); memset(s, '.', BARLEN-2); memset(s, '#', pos); fprintf(stderr, "Decompressing image [%s]\r", s); fflush(stderr); } void print_info_jpeg(const struct jpeg_decompress_struct* jpg, const Orientation orientation) { fprintf(stderr, "Source width: %d\n", jpg->output_width); fprintf(stderr, "Source height: %d\n", jpg->output_height); fprintf(stderr, "Source color components: %d\n", jpg->output_components); switch ( orientation ) { case HORIZONTAL: fprintf(stderr, "Orientation: 1 (Horizontal/normal)\n"); break; case MIRROR_HORIZONTAL: fprintf(stderr, "Orientation: 2 (Mirror horizontal)\n"); break; case ROTATE_180: fprintf(stderr, "Orientation: 3 (Rotate 180)\n"); break; case MIRROR_VERTICAL: fprintf(stderr, "Orientation: 4 (Mirror vertical)\n"); break; case MIRROR_HORIZONTAL_ROTATE_90: fprintf(stderr, "Orientation: 5 (Mirror horizontal and rotate 90)\n"); break; case ROTATE_270: fprintf(stderr, "Orientation: 6 (Rotate 270)\n"); break; case MIRROR_HORIZONTAL_ROTATE_270: fprintf(stderr, "Orientation: 7 (Mirror horizontal and rotate 270)\n"); break; case ROTATE_90: fprintf(stderr, "Orientation: 8 (Rotate 90)\n"); break; } fprintf(stderr, "Output width: %d\n", width); fprintf(stderr, "Output height: %d\n", height); fprintf(stderr, "Output palette (%d chars): '%s'\n", ascii_palette_length, ascii_palette); } void print_info_png(const png_structp png_ptr, const png_infop info_ptr) { fprintf(stderr, "Source width: %d\n", png_get_image_width(png_ptr, info_ptr)); fprintf(stderr, "Source height: %d\n", png_get_image_height(png_ptr, info_ptr)); fprintf(stderr, "Source channel count: %d ", png_get_channels(png_ptr, info_ptr)); switch ( png_get_color_type(png_ptr, info_ptr) ) { case PNG_COLOR_TYPE_GRAY: fprintf(stderr, "(G)\n"); break; case PNG_COLOR_TYPE_GRAY_ALPHA: fprintf(stderr, "(GA)\n"); break; case PNG_COLOR_TYPE_PALETTE: fprintf(stderr, "(Palette)\n"); break; case PNG_COLOR_TYPE_RGB: fprintf(stderr, "(RGB)\n"); break; case PNG_COLOR_TYPE_RGB_ALPHA: fprintf(stderr, "(RGBA)\n"); break; } switch ( png_get_interlace_type(png_ptr, info_ptr) ) { case PNG_INTERLACE_NONE: fprintf(stderr, "Source interlacing: None\n"); break; case PNG_INTERLACE_ADAM7: fprintf(stderr, "Source interlacing: Adam7\n"); break; } fprintf(stderr, "Source bit depth: %d\n", png_get_bit_depth(png_ptr, info_ptr)); fprintf(stderr, "Output width: %d\n", width); fprintf(stderr, "Output height: %d\n", height); fprintf(stderr, "Output palette (%d chars): '%s'\n", ascii_palette_length, ascii_palette); } void print_info_webp(WebPDecoderConfig* config) { fprintf(stderr, "Source width: %d\n", config->input.width); fprintf(stderr, "Source height: %d\n", config->input.height); if ( config->input.has_alpha ) { fprintf(stderr, "Has alpha channel: Yes\n"); } else { fprintf(stderr, "Has alpha channel: No\n"); } if ( config->input.has_animation ) { fprintf(stderr, "Has animation: Yes\n"); } else { fprintf(stderr, "Has animation: No\n"); } fprintf(stderr, "Output width: %d\n", width); fprintf(stderr, "Output height: %d\n", height); fprintf(stderr, "Output palette (%d chars): '%s'\n", ascii_palette_length, ascii_palette); } void process_scanline_jpeg(const struct jpeg_decompress_struct *jpg, const JSAMPLE* scanline, Image* i) { static int lasty = 0; const int y = ROUND( i->resize_y * (float) (jpg->output_scanline-1) ); // include all scanlines since last call float *pixel, *red, *green, *blue, *alpha; pixel = &i->pixel[lasty * i->src_width]; red = green = blue = NULL; alpha = &i->alpha[lasty * i->src_width]; if ( usecolors ) { int offset = lasty * i->src_width; red = &i->red [offset]; green = &i->green[offset]; blue = &i->blue [offset]; } while ( lasty <= y ) { const int components = jpg->out_color_components; int x; for ( x=0; x < i->src_width; ++x ) { const JSAMPLE *src = &scanline[i->lookup_resx[x] * jpg->out_color_components]; const JSAMPLE *src_end = &scanline[i->lookup_resx[x+1] * jpg->out_color_components]; int adds = 0; float v, r, g, b; v = r = g = b = 0.0f; while ( src <= src_end ) { if ( components != 3 ) v += GRAY[src[0]]; else { v += RED[src[0]] + GREEN[src[1]] + BLUE[src[2]]; if ( usecolors ) { r += (float) src[0]/255.0f; g += (float) src[1]/255.0f; b += (float) src[2]/255.0f; } } ++adds; src += components; } pixel[x] += adds>1 ? v / (float) adds : v; alpha[x] = 1.0; if ( usecolors ) { red [x] += adds>1 ? r / (float) adds : r; green[x] += adds>1 ? g / (float) adds : g; blue [x] += adds>1 ? b / (float) adds : b; } } ++i->yadds[lasty++]; pixel += i->src_width; alpha += i->src_width; if ( usecolors ) { red += i->src_width; green += i->src_width; blue += i->src_width; } } lasty = y; } void process_scanline_png(const png_bytep row, const int current_y, const int color_components, Image* i) { static int lasty = 0; const int y = ROUND( i->resize_y * (float) current_y ); // include all scanlines since last call float *pixel, *red, *green, *blue, *alpha; pixel = &i->pixel[lasty * i->src_width]; red = green = blue = NULL; alpha = &i->alpha[lasty * i->src_width]; if ( usecolors ) { int offset = lasty * i->src_width; red = &i->red [offset]; green = &i->green[offset]; blue = &i->blue [offset]; } while ( lasty <= y ) { int x; for ( x=0; x < i->src_width; ++x ) { int adds = 0; float v, r, g, b, a; v = r = g = b = a = 0.0f; for ( int j = i->lookup_resx[x] ; j < i->lookup_resx[x+1]; ++j ) { png_byte* src_pixel = &(row[j * color_components]); if ( color_components < 3 ) { v += GRAY[src_pixel[0]]; if ( color_components == 2 ) a += ALPHA[src_pixel[1]]; } else { v += RED[src_pixel[0]] + GREEN[src_pixel[1]] + BLUE[src_pixel[2]]; if ( usecolors ) { r += (float) src_pixel[0]/255.0f; g += (float) src_pixel[1]/255.0f; b += (float) src_pixel[2]/255.0f; } if ( color_components == 4 ) a += ALPHA[src_pixel[3]]; } ++adds; } pixel[x] += adds>1 ? v / (float) adds : v; if ( usecolors ) { red [x] += adds>1 ? r / (float) adds : r; green[x] += adds>1 ? g / (float) adds : g; blue [x] += adds>1 ? b / (float) adds : b; } if ( color_components == 1 || color_components == 3 ) { alpha[x] = 1.0; } else { if ( a == 0.0 ) alpha[x] = 0.0; else alpha[x] = adds>1 ? a / (float) adds : a; } } ++i->yadds[lasty++]; pixel += i->src_width; alpha += i->src_width; if ( usecolors ) { red += i->src_width; green += i->src_width; blue += i->src_width; } } lasty = y; } void free_image(Image* i) { if ( i->pixel ) free(i->pixel); if ( i->alpha ) free(i->alpha); if ( i->red ) free(i->red); if ( i->green ) free(i->green); if ( i->blue ) free(i->blue); if ( i->yadds ) free(i->yadds); if ( i->lookup_resx ) free(i->lookup_resx); } void malloc_image(Image* i, int switch_x_y) { i->orientation = HORIZONTAL; i->switch_x_y = switch_x_y; i->pixel = i->red = i->green = i->blue = i->alpha = NULL; i->yadds = NULL; i->lookup_resx = NULL; i->width = width; i->height = height; i->src_width = switch_x_y ? height : width; i->src_height = switch_x_y ? width : height; i->yadds = (int*) malloc(i->src_height * sizeof(int)); i->pixel = (float*) malloc(width*height*sizeof(float)); i->alpha = (float*) malloc(width*height*sizeof(float)); if ( usecolors ) { i->red = (float*) malloc(width*height*sizeof(float)); i->green = (float*) malloc(width*height*sizeof(float)); i->blue = (float*) malloc(width*height*sizeof(float)); } // we allocate one extra pixel for resx because of the src .. src_end stuff in process_scanline_jpeg and the equivalent in for PNG i->lookup_resx = (int*) malloc( (1 + i->src_width) * sizeof(int)); if ( !(i->pixel && i->alpha && i->yadds && i->lookup_resx) || (usecolors && !(i->red && i->green && i->blue)) ) { fprintf(stderr, "Not enough memory for given output dimension\n"); free_image(i); exit(1); } } void init_image(Image *i, int src_width, int src_height) { int dst_x; if ( src_height > 1 ) i->resize_y = (float) (i->src_height - 1) / (float) (src_height - 1); else i->resize_y = 1; i->resize_x = (float) (src_width - 1) / (float) (i->src_width ); for ( dst_x=0; dst_x <= i->src_width; ++dst_x ) { i->lookup_resx[dst_x] = ROUND( (float) dst_x * i->resize_x ); } } Orientation get_orientation(FILE *imageFP) { char orientationTag[13] = "Top-left"; // default to horizontal/normal size_t size; unsigned char data[1024]; ExifData *edata; ExifLoader *loader; loader = exif_loader_new(); while ( 1 ) { size = fread(data, 1, sizeof(data), imageFP); if (size <= 0) { break; } if (!exif_loader_write(loader, data, size)) { break; } } rewind(imageFP); edata = exif_loader_get_data(loader); exif_loader_unref(loader); if ( edata ) { ExifEntry *entry = exif_content_get_entry(edata->ifd[EXIF_IFD_0], EXIF_TAG_ORIENTATION); if ( entry ) { exif_entry_get_value(entry, orientationTag, sizeof(orientationTag)); } exif_data_unref(edata); } if ( strcmp(orientationTag, "Top-left" ) == 0) { return HORIZONTAL; } else if ( strcmp(orientationTag, "Top-right" ) == 0) { return MIRROR_HORIZONTAL; } else if ( strcmp(orientationTag, "Bottom-right" ) == 0) { return ROTATE_180; } else if ( strcmp(orientationTag, "Bottom-left" ) == 0) { return MIRROR_VERTICAL; } else if ( strcmp(orientationTag, "Left-top" ) == 0) { return MIRROR_HORIZONTAL_ROTATE_90; } else if ( strcmp(orientationTag, "Right-top" ) == 0) { return ROTATE_270; } else if ( strcmp(orientationTag, "Right-bottom" ) == 0) { return MIRROR_HORIZONTAL_ROTATE_270; } else if ( strcmp(orientationTag, "Left-bottom" ) == 0) { return ROTATE_90; } return HORIZONTAL; } void decompress_jpeg(FILE *fp, FILE *fout, error_collector *errors) { if ( errors->jpeg_status ) { print_errors(errors); return; } Orientation orientation = get_orientation(fp); int switch_x_y = 0; if ( orientation == MIRROR_HORIZONTAL_ROTATE_90 || orientation == ROTATE_270 || orientation == MIRROR_HORIZONTAL_ROTATE_270 || orientation == ROTATE_90 ) { switch_x_y = 1; } int row_stride; my_jpeg_error_mgr jerr; struct jpeg_decompress_struct jpg; JSAMPARRAY buffer; Image image; jpg.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = jpeg_error_exit; if ( setjmp(jerr.setjmp_buffer) ) { errors->jpeg_error = &jerr; errors->jpeg_status = 1; jpeg_destroy_decompress(&jpg); rewind(fp); decompress_webp(fp, fout, errors); return; } jpeg_create_decompress(&jpg); jpeg_stdio_src(&jpg, fp); jpeg_read_header(&jpg, TRUE); jpeg_start_decompress(&jpg); if ( jpg.data_precision != 8 ) { fprintf(stderr, "Image has %d bits color channels, we only support 8-bit.\n", jpg.data_precision); exit(1); } row_stride = jpg.output_width * jpg.output_components; buffer = (*jpg.mem->alloc_sarray)((j_common_ptr) &jpg, JPOOL_IMAGE, row_stride, 1); aspect_ratio(jpg.output_width, jpg.output_height, switch_x_y); if ( verbose ) print_info_jpeg(&jpg, orientation); if ( height != 0 && width != 0 ) { malloc_image(&image, switch_x_y); clear(&image); init_image(&image, jpg.output_width, jpg.output_height); image.orientation = orientation; while ( jpg.output_scanline < jpg.output_height ) { jpeg_read_scanlines(&jpg, buffer, 1); process_scanline_jpeg(&jpg, buffer[0], &image); if ( verbose ) print_progress((float) (jpg.output_scanline + 1.0f) / (float) jpg.output_height); } print_image(&image, fout); free_image(&image); jpeg_finish_decompress(&jpg); } jpeg_destroy_decompress(&jpg); } void jpeg_error_exit(j_common_ptr jerr) { my_jpeg_error_ptr myerr = (my_jpeg_error_ptr)jerr->err; longjmp(myerr->setjmp_buffer, 1); } void decompress_png(FILE *fp, FILE *fout, error_collector *errors) { if ( errors->png_status ) { print_errors(errors); return; } Image image; int number_bytes_to_check = 8; char header[number_bytes_to_check]; if ( fread(&header, 1, number_bytes_to_check, fp) != number_bytes_to_check || png_sig_cmp(header, 0, number_bytes_to_check) ) { errors->png_error_msg = "Not a PNG file: Wrong signature"; errors->png_status = 1; rewind(fp); decompress_jpeg(fp, fout, errors); return; } png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if ( !png_ptr ) { fprintf(stderr, "Unable to setup PNG reading, skipping file.\n"); return; } png_infop info_ptr = png_create_info_struct(png_ptr); if ( !info_ptr ) { fprintf(stderr, "Unable to setup PNG reading, skipping file.\n"); png_destroy_read_struct(&png_ptr, NULL, NULL); return; } if ( setjmp(png_jmpbuf(png_ptr)) ) { errors->png_error_msg = "Not a valid PNG file."; errors->png_status = 1; png_destroy_read_struct(&png_ptr, &info_ptr, NULL); rewind(fp); decompress_webp(fp, fout, errors); return; } png_init_io(png_ptr, fp); png_set_sig_bytes(png_ptr, number_bytes_to_check); png_read_info(png_ptr, info_ptr); int png_width = png_get_image_width(png_ptr, info_ptr); int png_height = png_get_image_height(png_ptr, info_ptr); aspect_ratio(png_width, png_height, 0); if ( verbose ) print_info_png(png_ptr, info_ptr); if ( height != 0 && width != 0 ) { malloc_image(&image, 0); clear(&image); // peform transformations (after printing the info): if ( png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_PALETTE ) png_set_palette_to_rgb(png_ptr); if ( png_get_bit_depth(png_ptr, info_ptr) < 8 ) { if ( png_get_channels(png_ptr, info_ptr) < 3 ) { png_set_expand_gray_1_2_4_to_8(png_ptr); } else { png_set_expand(png_ptr); } } if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) png_set_tRNS_to_alpha(png_ptr); if ( png_get_bit_depth(png_ptr, info_ptr) == 16 ) png_set_strip_16(png_ptr); int number_of_passes = png_set_interlace_handling(png_ptr); png_read_update_info(png_ptr, info_ptr); init_image(&image, png_width, png_height); if ( verbose ) print_progress(0.0); if ( png_get_interlace_type(png_ptr, info_ptr) == PNG_INTERLACE_NONE ) { png_bytep row_pointer = png_malloc(png_ptr, png_width * png_get_channels(png_ptr, info_ptr) * 1); for ( int y = 0; y < png_height; y++ ) { png_read_row(png_ptr, row_pointer, NULL); process_scanline_png(row_pointer, y, png_get_channels(png_ptr, info_ptr), &image); if ( verbose ) print_progress((float) y/png_height); } png_free(png_ptr, row_pointer); } else { png_bytepp row_pointers = png_malloc(png_ptr, png_height * sizeof(png_bytep)); for ( int i = 0; i < png_height; ++i ) row_pointers[i] = NULL; for ( int i = 0; i < png_height; ++i ) row_pointers[i] = png_malloc(png_ptr, png_width * png_get_channels(png_ptr, info_ptr) * 1); // png_read_image would do the same thing, but progress could not be displayed for ( int passes = 0; passes < number_of_passes; ++passes ) { png_read_rows(png_ptr, row_pointers, NULL, png_height); if ( verbose ) print_progress((float) (passes + 1)/number_of_passes); } for ( int y = 0; y < png_height; y++ ) { process_scanline_png(row_pointers[y], y, png_get_channels(png_ptr, info_ptr), &image); } for ( int i = 0; i < png_height; ++i ) png_free(png_ptr, row_pointers[i]); png_free(png_ptr, row_pointers); } if ( verbose ) print_progress(1.0); png_read_end(png_ptr, NULL); print_image(&image, fout); free_image(&image); } png_destroy_read_struct(&png_ptr, &info_ptr, NULL); } webp_data* get_webp_data(FILE *fp) { webp_data* data_struct = malloc(sizeof(webp_data)); uint8_t buffer[1024]; size_t bytes_read; size_t data_size = 0; size_t data_allocated_size = 16384; uint8_t* data = malloc(data_allocated_size); while ( 1 ) { bytes_read = fread(buffer, 1, sizeof(buffer), fp); if ( bytes_read <= 0 ) { break; } size_t new_data_size = data_size + bytes_read; if ( new_data_size > data_allocated_size ) { data_allocated_size *= 2; data = realloc(data, data_allocated_size); } uint8_t* dest = data + data_size; memcpy(dest, buffer, bytes_read); data_size = new_data_size; } data_struct->data = data; data_struct->size = data_size; return data_struct; } void free_webp_data(webp_data* data) { free(data->data); free(data); } void decompress_webp(FILE *fp, FILE *fout, error_collector *errors) { if ( errors->webp_status ) { print_errors(errors); return; } Orientation orientation = get_orientation(fp); int switch_x_y = 0; if ( orientation == MIRROR_HORIZONTAL_ROTATE_90 || orientation == ROTATE_270 || orientation == MIRROR_HORIZONTAL_ROTATE_270 || orientation == ROTATE_90 ) { switch_x_y = 1; } Image image; WebPDecoderConfig config; WebPInitDecoderConfig(&config); webp_data* img_data = get_webp_data(fp); if ( WebPGetFeatures(img_data->data, img_data->size, &config.input) != VP8_STATUS_OK ) { errors->webp_error_msg = "Unable to determine WebP features, possibly not a WebP"; errors->webp_status = 1; free_webp_data(img_data); rewind(fp); decompress_png(fp, fout, errors); return; } aspect_ratio(config.input.width, config.input.height, switch_x_y); if ( verbose ) print_info_webp(&config); if ( height != 0 && width != 0 ) { malloc_image(&image, switch_x_y); clear(&image); init_image(&image, image.src_width, image.src_height); image.orientation = orientation; if ( image.src_width != config.input.width || image.src_height != config.input.height ) { // scale the image using the webp library instead of by jp2a // this should provide smoother and faster scaling config.options.use_scaling = 1; config.options.scaled_width = image.src_width; config.options.scaled_height = image.src_height; } config.output.colorspace = MODE_RGBA; image.resize_x = 1.0f; image.resize_y = 1.0f; if ( WebPDecode(img_data->data, img_data->size, &config) != VP8_STATUS_OK) { errors->webp_error_msg = "Error decoding WebP image"; errors->webp_status = 1; free_image(&image); free_webp_data(img_data); rewind(fp); decompress_png(fp, fout, errors); return; } WebPRGBABuffer* u = (WebPRGBABuffer*) &config.output.u; uint8_t* rgba = u->rgba; for ( size_t i = 0; i < image.width * image.height; i++ ) { if ( usecolors ) { image.red[i] = rgba[i * 4] / 255.0f; image.green[i] = rgba[i * 4 + 1] / 255.0f; image.blue[i] = rgba[i * 4 + 2] / 255.0f; } image.pixel[i] = RED[rgba[i * 4]] + GREEN[rgba[i * 4 + 1]] + BLUE[rgba[i * 4 + 2]]; image.alpha[i] = rgba[i * 4 + 3] / 255.0f; } for ( size_t i = 0; i < image.src_height; i++ ) { image.yadds[i] = 1; } print_image(&image, fout); free_image(&image); WebPFreeDecBuffer(&config.output); } free_webp_data(img_data); } void print_errors(error_collector *errors) { if ( errors->jpeg_status ) { my_jpeg_error_mgr *jerr = errors->jpeg_error; struct jpeg_common_struct cinfo; cinfo.err = &jerr->pub; (jerr->pub.output_message) ((j_common_ptr)&cinfo); } if ( errors->png_status ) { fprintf(stderr, "%s\n", errors->png_error_msg); } if ( errors->webp_status ) { fprintf(stderr, "%s\n", errors->webp_error_msg); } } jp2a-1.3.2/src/jp2a.c000066400000000000000000000143211471373143100141450ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "config.h" #ifdef HAVE_UNISTD_H #include #endif #include #include #include #ifdef HAVE_STRING_H #include #endif #include "jp2a.h" #include "options.h" #include "image.h" #include "curl.h" #ifdef WIN32 #include #include #define close _close #include #endif int main(int argc, char** argv) { int store_width, store_height, store_autow, store_autoh; FILE *fout = stdout; // FILEs from downloads and pipes are not seekable. // Solution: Copy in a buffer and use fmemopen. char *buffer = NULL; size_t buffer_size = 0; error_collector errors; int retval = 0; #ifdef FEAT_CURL FILE *fr; int fd; #endif FILE *fp; int n; #if ! ASCII setlocale(LC_ALL, ""); #endif parse_options(argc, argv); store_width = width; store_height = height; store_autow = auto_width; store_autoh = auto_height; if ( strcmp(fileout, "-") ) { if ( (fout = fopen(fileout, "wb")) == NULL ) { fprintf(stderr, "Could not open '%s' for writing.\n", fileout); free(html_title); return 1; } } if ( html && !html_rawoutput ) print_html_document_start(html_fontsize, fout); else if ( xhtml && !html_rawoutput ) print_xhtml_document_start(html_fontsize, fout); free(html_title); for ( n=1; n 4 && strcmp(".png", argv[n] + (urllen - 4)) == 0 ) decompress_png(buffer_f, fout, &errors); else if ( urllen > 5 && strcmp(".webp", argv[n] + (urllen - 5)) == 0 ) decompress_webp(buffer_f, fout, &errors); else decompress_jpeg(buffer_f, fout, &errors); fclose(buffer_f); } #ifdef _WIN32 CloseHandle(handle); #endif } fclose(fr); close(fd); if ( errors.jpeg_status && errors.png_status && errors.webp_status ) retval = 1; continue; } #endif // read files if ( (fp = fopen(argv[n], "rb")) != NULL ) { if ( verbose ) fprintf(stderr, "File: %s\n", argv[n]); int namelen = strlen(argv[n]); if ( namelen > 4 && strcmp(".png", argv[n] + (namelen - 4)) == 0 ) decompress_png(fp, fout, &errors); else if ( namelen > 5 && strcmp(".webp", argv[n] + (namelen - 5)) == 0 ) decompress_webp(fp, fout, &errors); else decompress_jpeg(fp, fout, &errors); fclose(fp); if ( errors.jpeg_status && errors.png_status && errors.webp_status ) retval = 1; continue; } else { fprintf(stderr, "Can't open %s\n", argv[n]); return 1; } } if ( html && !html_rawoutput ) print_html_document_end(fout); else if ( xhtml && !html_rawoutput ) print_xhtml_document_end(fout); if ( buffer_size != 0 ) { free(buffer); } if ( fout != stdout ) fclose(fout); return retval; } int read_into_buffer(FILE *fp, char **buffer, size_t *buffer_size, size_t *actual_size) { #define BUFFER_ALLOC_INCREMENTS 16384 *actual_size = 0; if ( *buffer_size == 0 ) { *buffer_size = BUFFER_ALLOC_INCREMENTS; *buffer = malloc(*buffer_size); if ( *buffer == NULL ) { fprintf(stderr, "Not enough memory. Skipping an image.\n"); *buffer_size = 0; return 0; } } char *current = *buffer; while ( !feof(fp) ) { *actual_size += fread(current, 1, BUFFER_ALLOC_INCREMENTS, fp); if ( *actual_size == *buffer_size ) { *buffer_size += BUFFER_ALLOC_INCREMENTS; if ( debug ) fprintf(stdout, "Reallocating to: %ld\n", *buffer_size); current = realloc(*buffer, *buffer_size); if ( current == NULL ) { fprintf(stderr, "Not enough memory. Skipping an image.\n"); *buffer_size -= BUFFER_ALLOC_INCREMENTS; return 0; } *buffer = current; } current = *buffer + *actual_size; } if ( debug ) fprintf(stderr, "Size: %ld\n", *actual_size); return 1; } #ifdef _WIN32 HANDLE fmemopen(void *buf, size_t size, const char *mode) { TCHAR temp_path[1024]; DWORD temp_path_len = GetTempPathA(1024, temp_path); if ( temp_path_len == 0 || temp_path_len > 1024 ) return NULL; TCHAR temp_file_name[MAX_PATH]; UINT unique = GetTempFileNameA(temp_path, "jp2a", 0, temp_file_name); if ( unique == 0 ) return NULL; HANDLE outputf = CreateFileA(temp_file_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); DWORD bytes_written = 0; BOOL written = WriteFile(outputf, buf, size, &bytes_written, NULL); if ( written == FALSE ) return NULL; DWORD retval = SetFilePointer(outputf, 0, NULL, FILE_BEGIN); if ( retval == INVALID_SET_FILE_POINTER ) return NULL; return outputf; } #endif jp2a-1.3.2/src/options.c000066400000000000000000000347431471373143100150160ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020-2024 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "config.h" #include #include #include #include #include #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_CURSES_H #include #endif #ifdef HAVE_TERM_H #include #endif #include "jp2a.h" #include "options.h" #include "terminal.h" #include "html.h" // Default options int verbose = 0; int auto_height = 1; int auto_width = 0; int width = #ifdef FEAT_TERMLIB 0; #else 78; #endif int height = 0; int use_border = 0; int invert = 1; int flipx = 0; int flipy = 0; int centerx = 0; int centery = 0; int html = 0; int xhtml = 0; int colorfill = 0; int convert_grayscale = 0; int html_fontsize = 8; int html_bold = 1; const char* html_title_raw = HTML_DEFAULT_TITLE; char* html_title = NULL; int html_rawoutput = 0; int debug = 0; int clearscr = 0; float edge_threshold = EDGE_THRESHOLD_DEFAULT; int edges_only = 0; int term_width = 0; int term_height = 0; int usecolors = 0; int colorDepth = 0; int termfit = #ifdef FEAT_TERMLIB TERM_FIT_AUTO; #else 0; #endif int ascii_palette_length = 23; #if ASCII char ascii_palette[ASCII_PALETTE_SIZE + 1] = ASCII_PALETTE_DEFAULT; #else char ascii_palette[ASCII_PALETTE_SIZE * MB_LEN_MAX + 1] = ASCII_PALETTE_DEFAULT; unsigned char ascii_palette_indizes[ASCII_PALETTE_SIZE] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}; char ascii_palette_lengths[ASCII_PALETTE_SIZE] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; #endif // Default weights float redweight = 0.2989f; float greenweight = 0.5866f; float blueweight = 0.1145f; // calculated in parse_options float RED[256], GREEN[256], BLUE[256], ALPHA[256], GRAY[256]; const char *fileout = "-"; const char* version = PACKAGE_STRING; const char* copyright = "Copyright 2006-2016 Christian Stigen Larsen\n" "and 2020-2024 Christoph Raitzig"; const char* license = "Distributed under the GNU General Public License (GPL) v2."; const char* url = PACKAGE_URL; void print_version() { fprintf(stderr, "%s\n%s\n%s\n", version, copyright, license); } void help() { print_version(); fputs( "\n" #ifdef FEAT_CURL "Usage: jp2a [ options ] [ file(s) | URL(s) ]\n\n" "Convert files or URLs from JPEG/PNG/WebP format to ASCII.\n\n" #else "Usage: jp2a [ options ] [ file(s) ]\n\n" "Convert files in JPEG/PNG/WebP format to ASCII.\n\n" #endif "OPTIONS\n" " - Read images from standard input.\n" " --blue=N.N Set RGB to grayscale conversion weight, default is 0.1145\n" " -b, --border Print a border around the output image.\n" " --chars=... Select character palette used to paint the image.\n" " Leftmost character corresponds to black pixel, right-\n" " most to white. Minimum two characters must be specified.\n" " --clear Clears screen before drawing each output image.\n" " --colors Use true colors or, if true color is not supported, ANSI\n" " in output.\n" " --color-depth=N Use a specific color-depth for terminal output. Valid\n" " values are: 4 (for ANSI), 8 (for 256 color palette)\n" " and 24 (for truecolor or 24-bit color).\n" " -d, --debug Print additional debug information.\n" " --edge-threshold=N.N Image gradient above which to shade lines and edges with directional glyphs (such as -/|\\).\n" " --edges-only Only draw edges - make sure you use it with the edge-threshold option so edges are drawn.\n" " --fill When used with --color and/or --htmlls or --xhtml, color\n" " each character's background.\n" " -x, --flipx Flip image in X direction.\n" " -y, --flipy Flip image in Y direction.\n" #ifdef FEAT_TERMLIB " -f, --term-fit Use the largest image dimension that fits in your terminal\n" " display with correct aspect ratio.\n" " --term-height Use terminal display height.\n" " --term-width Use terminal display width.\n" " -z, --term-zoom Use terminal display dimension for output.\n" " -c, --term-center Center image in terminal.\n" #endif " --grayscale Convert image to grayscale when using --htmlls or --xhtml\n" " or --colors\n" " --green=N.N Set RGB to grayscale conversion weight, default is 0.5866\n" " --height=N Set output height, calculate width from aspect ratio.\n" " -h, --help Print program help.\n" " --htmlls Produce HTML (Living Standard) output.\n" " --html Produce strict XHTML 1.0 output (will produce HTML output\n" " from version 2.0.0 onward).\n" " --xhtml Produce strict XHTML 1.0 output.\n" // Obsoletely Fabulous " --html-fill Same as --fill (will be phased out).\n" " --html-fontsize=N Set fontsize to N pt, default is 4.\n" " --html-no-bold Do not use bold characters with HTML output\n" " --html-raw Output raw HTML codes, i.e. without the section etc.\n" " (Will use
for version 2.0.0 and above.)\n" " --html-title=... Set HTML output title\n" " -i, --invert Invert output image. Use if your display has a dark\n" " background.\n" " --background=dark These are just mnemonics whether to use --invert\n" " --background=light or not. If your console has light characters on\n" " a dark background, use --background=dark.\n" " --output=... Write output to file.\n" " --red=N.N Set RGB to grayscale conversion weight, default 0.2989f.\n" " --size=WxH Set output width and height.\n" " -v, --verbose Verbose output.\n" " -V, --version Print program version.\n" " --width=N Set output width, calculate height from ratio.\n" "\n" #ifdef FEAT_TERMLIB " The default mode is `jp2a --term-fit --background=dark'.\n" #else " The default mode is `jp2a --width=78 --background=dark'.\n" #endif " See the man-page for jp2a for more detailed help text.\n" "\n", stderr); fprintf(stderr, "Project homepage on %s\n", url); fprintf(stderr, "Report bugs to <%s>\n", PACKAGE_BUGREPORT); } void precalc_rgb(float red, float green, float blue) { int n; float sum = red + green + blue; red /= sum; green /= sum; blue /= sum; for ( n=0; n<256; ++n ) { RED[n] = ((float) n) * red / 255.0f; GREEN[n] = ((float) n) * green / 255.0f; BLUE[n] = ((float) n) * blue / 255.0f; ALPHA[n] = ((float) n) / 255.0f; GRAY[n] = ((float) n) / 255.0f; } } void parse_options(int argc, char** argv) { // make code more readable #define IF_OPTS(sopt, lopt) if ( !strcmp(s, sopt) || !strcmp(s, lopt) ) #define IF_OPT(sopt) if ( !strcmp(s, sopt) ) #define IF_VARS(format, v1, v2) if ( sscanf(s, format, v1, v2) == 2 ) #define IF_VAR(format, v1) if ( sscanf(s, format, v1) == 1 ) int n, files, fit_to_use; for ( n=1, files=0; n ASCII_PALETTE_SIZE * MB_LEN_MAX ) { fprintf(stderr, "Too many characters specified (max %d)\n", ASCII_PALETTE_SIZE); exit(1); } #endif // don't use sscanf, we need to read spaces as well strcpy(ascii_palette, s+8); #if ASCII ascii_palette_length = strlen(ascii_palette); #else int i = 0; int count = 0; size_t curCharlen; while ( ascii_palette[i] != '\0' ) { ascii_palette_indizes[count] = i; curCharlen = mbrlen(ascii_palette + i, MB_LEN_MAX, NULL); ascii_palette_lengths[count] = curCharlen; if ( curCharlen == -1 ) { fprintf(stderr, "Error with custom chars: %s\n", strerror(errno)); exit(1); } else if ( curCharlen == -2 ) { fprintf(stderr, "Error while parsing custom chars."); exit(1); } i += curCharlen; count++; } if ( count > ASCII_PALETTE_SIZE ) { fprintf(stderr, "Too many characters specified (max %d)\n", ASCII_PALETTE_SIZE); exit(1); } ascii_palette_length = count; #endif continue; } fprintf(stderr, "Unknown option %s\n\n", s); help(); exit(1); } // args ... if ( !files ) { fputs("No files specified.\n\n", stderr); help(); exit(1); } #ifdef FEAT_TERMLIB if ( (width || height) && termfit==TERM_FIT_AUTO ) { // disable default --term-fit if dimensions are given termfit = 0; } #endif if ( termfit || centerx || centery ) { char* err = ""; if ( get_termsize(&term_width, &term_height, &err) <= 0 ) { fputs(err, stderr); fputc('\n', stderr); exit(1); } #ifdef __CYGWIN__ // On Cygwin, if I don't decrement term_width, then you'll get extra // blank lines for some window sizes, hence we decrease by one. --term_width; #endif fit_to_use = termfit; if ( termfit == TERM_FIT_AUTO ) { // use the smallest of terminal width or height // to guarantee that image fits in display. if ( term_width <= term_height ) fit_to_use = TERM_FIT_WIDTH; else fit_to_use = TERM_FIT_HEIGHT; } switch ( fit_to_use ) { case TERM_FIT_ZOOM: auto_width = auto_height = 0; width = term_width - use_border*2; height = term_height - 1 - use_border*2; break; case TERM_FIT_WIDTH: width = term_width - use_border*2; height = 0; auto_height += 1; break; case TERM_FIT_HEIGHT: width = 0; height = term_height - 1 - use_border*2; auto_width += 1; break; } } // only --width specified, calc width if ( auto_width==1 && auto_height == 1 ) auto_height = 0; // --width and --height is the same as using --size if ( auto_width==2 && auto_height==1 ) auto_width = auto_height = 0; if ( ascii_palette_length < 2 ) { fputs("You must specify at least two characters in --chars.\n", stderr); exit(1); } if ( (width < 1 && !auto_width) || (height < 1 && !auto_height) ) { fputs("Invalid width or height specified\n", stderr); exit(1); } if ( redweight < 0 || greenweight < 0 || blueweight < 0 ) { fputs("Weights can't be negative.\n", stderr); exit(1); } if ( !isfinite(redweight) || !isfinite(greenweight) || !isfinite(blueweight) ) { // This can happen if a number can not be represented as floating point, e.g. 3e400. fputs("Did not understand a weight - possibly to large.\n", stderr); exit(1); } if ( (redweight + greenweight + blueweight) == 0.0 ) { fputs("At least one weight must be non-zero.\n", stderr); exit(1); } if ( *fileout == 0 ) { fputs("Empty output filename.\n", stderr); exit(1); } if ( html && xhtml ) { fputs("Only HTML or XHTML possible, using HTML.\n", stderr); xhtml = 0; } if ( html || xhtml ) { if ( !escape_title() ) { fprintf(stderr, "Not enough memory."); exit(1); } } if ( edges_only && edge_threshold == EDGE_THRESHOLD_DEFAULT ) { fputs("If you pass the --edges-only option, you must also pass the --edge-threshold= option.\n", stderr); exit(1); } precalc_rgb(redweight, greenweight, blueweight); } jp2a-1.3.2/src/terminal.c000066400000000000000000000043311471373143100151240ustar00rootroot00000000000000/* * Copyright 2006-2016 Christian Stigen Larsen * Copyright 2020 Christoph Raitzig * Distributed under the GNU General Public License (GPL) v2. */ #include "terminal.h" #include "config.h" #include #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_CURSES_H #include #endif #ifdef FEAT_TERMLIB #ifdef HAVE_TERM_H #include #else #ifdef HAVE_NCURSES_TERM_H #include #endif #endif #ifdef WIN32 #define WIN32_LEAN_AND_MEAN #include #endif #endif #include int get_termsize(int* _width, int* _height, char** err) { static char errstr[1024]; #ifndef WIN32 char *termtype = getenv("TERM"); char term_buffer[2048]; int i; #endif errstr[0] = 0; if ( err != NULL ) *err = errstr; #ifdef FEAT_TERMLIB #ifdef WIN32 CONSOLE_SCREEN_BUFFER_INFO io; if ( !GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &io) ) { strcpy(errstr, "Could not determine console window size."); return -1; } *_width = io.srWindow.Right - io.srWindow.Left; *_height = io.srWindow.Bottom - io.srWindow.Top; return 1; #else if ( !termtype ) { strcpy(errstr, "Environment variable TERM not set."); return -2; } i = tgetent(term_buffer, termtype); // There seems to be some confusion regarding the tgetent return // values. The following two values should be swapped, according // to the man-pages, but on Mac OS X at least, they are like this. // I've also seen some indication of a bug in curses on USENET, so // I leave this one like this. if ( i == 0 ) { snprintf(errstr, sizeof(errstr)/sizeof(char) - 1, "Terminal type '%s' not recognized.", termtype); return 0; } if ( i < 0 ) { strcpy(errstr, "Could not access the termcap database."); return -1; } *_width = tgetnum("co"); *_height = tgetnum("li"); return 1; #endif // non-WIN32 #else strcpy(errstr, "Compiled without termlib support."); return 0; #endif // FEAT_TERMLIB } int supports_true_color() { char *colorterm = getenv("COLORTERM"); if ( colorterm==NULL ) { return 0; } // some terminals have COLORTERM set, although true color is not supported if ( strcmp(colorterm, "rxvt")==0 ) { return 0; } return 1; } jp2a-1.3.2/tests/000077500000000000000000000000001471373143100135175ustar00rootroot00000000000000jp2a-1.3.2/tests/10h.txt000066400000000000000000000005121471373143100146460ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMNNMMMMMMMMMMMMMNXXWMMMMMMMMMMM MW:'XMMMMMMMMMMx. .oWMMMMMMMMM M0..xN;.';'.;OM00NX' .XWo::;.,OM MO oN. 'NN, .NMMMx .0MWOkoc cM MO oN. .xx. ,WWO, ;cxX. ;k. ;X Mx oN. .lclxNM0llllllxWxcldoclO W; ,XN' ;MMMMMMMMMMMMMMMMMMMMMMM MWNMMMNNNMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/110x30-i-b.txt000066400000000000000000000070401471373143100155620ustar00rootroot00000000000000+--------------------------------------------------------------------------------------------------------------+ | | | | | | | | | | | ,ldOxdc. .;clxkOOOOOxol:. | | .kMMMMMN: .lx0WMMMMMMMMMMMMW0d; | | .dNWMWW0, lWMMMMMMMMMMMMMMMMMMX: | | ':colc,. ....... ....... oMMN0kxoood0NWMMMMMMMK, .......... | | cKKKKKKKd;. .oKKKKKKKxcoO0KNNNNK0Od:'. :o:, .'dWMMMMMMN: ..,ldxOKKXNNNNNXX0xdc. | | .oMMMMMMMO:. .kMMMMMMMMMMMMMMMMMMMMMWXx. ;XMMMMMMX; lXNMMMMMMMMMMMMMMMMMWk:. | | .oMMMMMMMO:. .kMMMMMMMMWN0OO0NWMMMMMMMWx;. cNMMMMMMx. dMMWX0xolcclokNMMMMMMWXl | | .oMMMMMMMO:. .kMMMMMMWx;' ';xWMMMMMMWNl 'o0MMMMWWk. :ko,.. .,OMMMMMMMMd | | .oMMMMMMMO:. .kMMMMMMWl '0MMMMMMMMx. .kWMMMMM0l' ..,lxkKWMMMMMMMMx. | | .oMMMMMMMO:. .kMMMMMMWl .kMMMMMMMMk. 'lkWMMMWNO' .,:lx0KXWNXKXMMMMMMMMx. | | .oMMMMMMMO:. .kMMMMMMWl ,KMMMMMMMWd .oXMMMMMXo,. ;d0WMMMWW0c'..dMMMMMMMMx. | | .oMMMMMMMO:. .kMMMMMMMx;. 'cOMMMMMMMNK: .cOWMMMMMMKxodddddddl. 'OMMMMMMXO; dMMMMMMMMd | | .oMMMMMMMO:. .kMMMMMMMWXKkxxkKNWMMMMMMWd,. .;0WWMMMMMMMMMMMMMMMMMX; ,KMMMMMMNKo.',c0MMMMMMMMKl::.| | .oMMMMMMMO:. .kMMMMMMMWWWMMMMMMMMMMWOd:. ,kXNMMMMMMMMMMMMMMMMMMMMX; .oKNMMMMMMWNNWNXXWMMMMMMMMXO;| | .oMMMMMMMO:. .kMMMMMMWkco0XNNNNNX0kc. 'x0OOOOOOOOOOOOOOOOOOOOOOk' ..cOXXNNNNXko:,,dXNNNNXKx:,.| | .,xMMMMMMMk:. .kMMMMMMWl ..'''''... ......................... ..'''''.. ..'''''. | | ;kXNMMMMMMWd. .kMMMMMMWl | | oNMMMMMMWNk. .kMMMMMMWl | | .kMMMMMNd;. .kMMMMMMWl | | ,oddoc, :ddddddo' | | | | | | | | | | | +--------------------------------------------------------------------------------------------------------------+ jp2a-1.3.2/tests/160x49.txt000066400000000000000000000173211471373143100151370ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMXOdcc:ld0WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNX0xdlccc:::ccldk0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMNXo.. ;dKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXXOoc;'. .':lkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMKd, .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKkl;;. .:xXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM0d' .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNo. .cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMNKl. ,o0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX: cKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMKxo:::ldONWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXc ...... .cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMWX000OkkkO000KNWMMMMMWNK00000000000XMMWNK0kxxxxxkOKXWWMMMMMMMMMMMMMNX: .;loxkOkkxo;. ..dMMMMMMMMMMMMMMMWWNXKOkxxxxxxxxkO0XNWMMMMMMMMMMMMM MMMMMMMWNd'''''''''''ckKMMMMMXOl'''''''''''dXkoc,'........,;cdOXMMMMMMMMMMMNKc .;;oOKWMMMMMMMW0d, .dMMMMMMMMMMMWX0xoc:;,............';:ox0WWMMMMMMMMM MMMMMMMWXc 'd0MMMMMKx, .;. ..:d0WMMMMMMMMNXkckXXNMMMMMMMMMMMWWo. .dMMMMMMMMWKxl;'. .,lOWWMMMMMMM MMMMMMMWXc 'd0MMMMMKk, .;xKMMMMMMMWWNNWMMMMMMMMMMMMMMMMx'. .'xMMMMMMMWNl. ,d0MMMMMMM MMMMMMMWXc 'd0MMMMMKx, .lKNMMMMMMMMMMMMMMMMMMMMMMMMMMd. .lOMMMMMMMNX: ..'',,,'.. .dWMMMMMM MMMMMMMWXc 'd0MMMMMKx, .';:cc;'. .cOMMMMMMMMMMMMMMMMMMMMMMMMWNl cKNMMMMMMMNXc .,coxk00KKK0Ol'. cXWMMMMM MMMMMMMWXc 'd0MMMMMKx, 'lx0XNNNX0dc. .oWMMMMMMMMMMMMMMMMMMMMMMMKk; .,xMMMMMMMMMNKc .,lkKWWMMMMMMMMMKk, :0NMMMMM MMMMMMMWXc 'd0MMMMMKx, lNWMMMMMMMWNo. cKNMMMMMMMMMMMMMMMMMMMMWWd'. :0XMMMMMMMMMWXkcxKNMMMMMMMMMWNXKxl' ;0XMMMMM MMMMMMMWXc 'd0MMMMMKx, lWWMMMMMMMMMOc. ;kXMMMMMMMMMMMMMMMMMMMMKd, .lOMMMMMMMMMMMMWWNWMMMMMWNX0kdlc;,. ;0XMMMMM MMMMMMMWXc 'd0MMMMMKx, lWWMMMMMMMMMKk, ,dKMMMMMMMMMMMMMMMMMMN0c. ..oNWMMMMMMMMMMMMMMMMMWX0xoc;'. ;0XMMMMM MMMMMMMWXc 'd0MMMMMKx, lWWMMMMMMMMM0d' ,kKMMMMMMMMMMMMMMWNOd;. .:dKNMMMMMMMMMMMMMMMXOdc;.. .,:llo' ;0XMMMMM MMMMMMMWXc 'd0MMMMMKx, lWMMMMMMMMWWd. cXWMMMMMMMMMMMMWWkc. .:xNNNNNNNNNNNNWWMMMNKc. ;xKWWMNK: ;0XMMMMM MMMMMMMWXc 'd0MMMMMKx, ;x0NWMMMWNOo' .dWMMMMMMMMMMMMW0o' .,;c::::::::::ld0MMMOl' .'xMMMMMNK: :0NMMMMM MMMMMMMWXc 'd0MMMMMKx, .':loddlc' 'l0MMMMMMMMMMMMKx; .'xMMMx,. .'xMMMMWKx, ,dOXK0NM MMMMMMMWXc 'd0MMMMMKx, .lXWMMMMMMMMMXOOc. .'xMMMk;. ;dxkdl;. .,;::kM MMMMMMMWXc 'd0MMMMMKx, ;xKMMMMMMMMMX0l.. .'xMMMKx, ... .dM MMMMMMMWXc 'd0MMMMMKx, .;d0WMMMMMMMMX0l'. ..xMMMWNd'. .... .,xM MMMMMMMNXc 'd0MMMMMKx, ,oc,.. ..,:okKWMMMMMMMMMMOl;..'''''''''''''''''''''''''''''''',:OMMMMMX0o;'.. ..,cdOkk:.. ..';cdkXM MMMMMMMNK: 'd0MMMMMKk, lWNKOxddddddddxkKNWMMMMMMMMMMMMMX00OO000000000000000000000000000000000KNMMMMMMMWX0xxdddddddxOKNWMMMKkxddddddxk0KNWMMM MMMMMMMKx, ,dKMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMWWKOl. ;OXMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMXOc.. lNWMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMXO; .,kMMMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMWWd. .c0NMMMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMKd, .:xKMMMMMMMMMKx, lWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMWNo.. ..':okKMMMMMMMMMMMXk:...........oWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMKkxdxk0NWMMMMMMMMMMMMMWX0xxxxxxxxxxxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/1x1-inv.txt000066400000000000000000000000021471373143100154530ustar00rootroot00000000000000' jp2a-1.3.2/tests/2xnormal-b.txt000066400000000000000000000101641471373143100162430ustar00rootroot00000000000000+------------------------------------------------------------------------------+ |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM| |MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM| |MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM| |MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM| |MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM| |MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM| |MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM| |MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN| |MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k| |MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK| |MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM| |MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM| |MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM| |MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM| |MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM| |MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM| |MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM| |MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN| |MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k| |MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK| |MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| +------------------------------------------------------------------------------+ jp2a-1.3.2/tests/40x40.txt000066400000000000000000000031501471373143100150360ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk0MMMMMMMMMMMMMMMMXkxkXMMMMMMMMMMMMMM MMk .XMMMMMMMMMMMMMWO; 'KMMMMMMMMMMMMM MMo OMMMMMMMMMMMMMk. cWMMMMMMMMMMMM MMo OMMMMMMMMMMMMW; .KMMMMMMMMMMMM MM0,cNMMMMMMMMMMMMW' . oMMMMMMMMMMMM MMKOOXMN00KWOxKMMMW' ckc :MMMWXkxkNMMM MWc''xMk''cd..,OMMW:oNMX. :MMWx;...cXMM MW, oMo .. 'XMWONMMM; :MMk. lMM MW, oMo cWMWMMMM: cMW, .. .0M MW, oMo .; .KMMMMMW, xMW'.xKd xM MW, oMo .OX: kMMMMMN. 0MW:xMMN. dM MW, oMo ,WMk xMMMMMO 'NMWOWMWO. dM MW, oMo ;MMX. oMMMMW: dMMMWNx:. dM MW, oMo ,MMN. oMMMMO 'NMMMX: .. dM MW, oMo ,MMK. dMMMW: oMMMMd .k' dM MW, oMo 'NMd kMMMx lxx0X. xN' dM MW, oMo ;o. .KMMK. :0 0X. lN MW, oMo ;WMNc :0. cc .d MW, oMo dMMk :X. : MW, oMo .. .lNMN:........lWo. ,; .d MW' oMo ;KddOWMMN000000000XMWOdxXXdd0W MX. oMo ;MMMMMMMMMMMMMMMMMMMMMMMMMMMMM Mx dMo ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMM N, OMo ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMM M; ,NMo ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMM Mo dMMo ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMM Mk.:NMMd..:MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MN0NMMMN00KMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/Makefile000066400000000000000000000000431471373143100151540ustar00rootroot00000000000000check: test test: ./run-tests.sh jp2a-1.3.2/tests/dalsnuten-256-light-x.html000066400000000000000000000150511471373143100202700ustar00rootroot00000000000000 jp2a converted image
........................................................................................'''''''',,,,,,,,;;;;;;::::::ccccccccclll
........................                      ............................................''''''''',,,,,,,,;;;;;;:::::::cccccccc
....................                               ..........................................''''''''',,,,,,,;;;;;;::::::ccccccc
..........                                              .......................................'''''''',,,,,,,;;;;;;:::::::ccccc
....                                                          ..................................''''''''',,,,,;;;;;;;;::::::cccc
                                                                   ...............................'''''''',,,,,,,;;;;;;::::::::c
                                                                       ..............................''''''',,,,,,;;;;;;::::::::
                                                                         .............................''''''',,,,,,,;;;;;;::::::
                                                                           ............................'''''''',,,,,,,;;;;;:::::
                                                                             ............................''''''',,,,,,;;;;;;;:::
                                                                             ..............................''''''',,,,,,;;;;;;;:
                                                                                ............................''''''',,,,,,,,;;;;;
                                                                                ............................'''''''',,,,,,,,;;;;
                                                                                  ..........................'''''''',,,,,,,,;;;;
                                                                                  ...........................''''''',,,,,,;;;;;;
                                                                                   ...........................'''''',,,,,,;;;;;;
                                                                                     ........................''''''',,,,,,,;;;;;
                                                                ...'''...          .........................'''''',,,,,,,;;;;;;:
                                                  .....'',;cccldddxxxxxxxdc,.    .........................''''''',,,,,,;;;;;;:::
                                            ..;:lodddddxxxxxxkkkkkkkkkOOOOOOkdl:,'......................''''''',,,,,,;;;;;;;::::
:;;'.....                ......         .,coddddddxxxxxkkkkkkkOOOOOOOOOO0000000000Oxxdoc:,............'''''',,,,,,,;;;;;;::::::c
ddooolllccc:::;;;;;;;;::;;::clloolccccoxxkkkkkkkkkkkkkOOO0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0xol::loooxxdxdxdl:::ddkOkOxklclooxdd
kxxxdddooooolllollooodddddolooxxxxxkOO000000000000000KKKKKKXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWW
OOkkkxxxddddddddddddxxxkkkkkkxxkOOOOOO000KKKKXKKKKKXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNWNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWMMMMMM
00OOOkkkxxxxxxxkkkkkkkOOOO00000OOO00KKKKKKKKKXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWNNNNNWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMM
K00000OOOOOOOOOOOOOOOO0000KKKKKKK0000KKKXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMM
KKK000000000OO000000000KKKKKKKXXXXXKKKKXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMM
XKKKKK00000000000KKKKKKKKKXXXXXXXXXXXXXXXXXNNNNNNNNWWWWWWNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMM
XXXKKKKKKKK00000000000KKKKKXXXXXXXXNNXXXXXXXXNNNNWWWWWWWWWNNNNNNNNWNNWWWWWWWWMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
NXXKOOO0K0OkkkkkkkkkkkkkkkkkkkOOOOOkkxxxxxxxxxkKWWWWWWWWW000KKXXKXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWW
XXK0OkO0Okdl:;:::;;;;;;::cc::cllllcccllllllloodKWWWWWWWWWNN000KXXNNNNNWWNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWMMW
XXK000Okxoc;....,,,;;:ldkOkook0000kOOOO0000K0OO0NNNNNNWNNWWWWNNNNNWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWMMMMM
NXXXK0kdlc:'   ';;;:;;lkO0Ok0KXXXXK00KXXNNNNNNNNNWWWWWNNNNNNNNWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWMMMMMMWWWWWWWWWWWWWMWWMWWMWWMMMMMMMM
XKK00Oxxo;.     ...'';xOOO0KKXXXNNNNNNNNNWWWNNWWWWNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWMMMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMM
KOOxkxxxo:..   ..;coxOO0KKKXXXNNNNNNNNWWWWNNWWNNNNNNNWWWWWWWWWWWWWWWWWWWWMMMMMMMMWWWWWWWWWWWWWWWWWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMM
XXXKK0kxdo:;,,;coodxkOO0KKXXNNNNWNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWMWWMMMMMMWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMWWMMMMMMMM
XXXKKK0OkxxdddxkkOO000000KKKXXXNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NXXXXKK00OOOOO000000KKKKKXXXXXXNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NXXNNXXXKKK00KKKKKXKXXXNXNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNXXXXXXXXXXXXXXNNNNNNNWWWNNWWWNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWNNNNNNNNNNXNXNNNNNNNWNNNNWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMM
WWWWNNNWNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWWMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWNNNWWNWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWWWWWWWWWWWWWNWNNNNWWWWWWWWWWWWWWWWWWWMWWMMMMMMMMMMMMMMMMMMMMMMMWMWWMWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
MWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWMMMMMMMMMMMMMMMMMMMMMMWWWWMMWMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWWWWWWWWWWWMMMMWWWWMMMMMWMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMM
WWWWWWWMWWWWWWMWMWWWMMMMWMWMMMMMMMMMMMMMMMMMMMMWMMWMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWMWMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/dalsnuten-256-light.html000066400000000000000000000145641471373143100200330ustar00rootroot00000000000000 jp2a converted image
........................................................................................'''''''',,,,,,,,;;;;;;::::::ccccccccclll
........................                      ............................................''''''''',,,,,,,,;;;;;;:::::::cccccccc
....................                               ..........................................''''''''',,,,,,,;;;;;;::::::ccccccc
..........                                              .......................................'''''''',,,,,,,;;;;;;:::::::ccccc
....                                                          ..................................''''''''',,,,,;;;;;;;;::::::cccc
                                                                   ...............................'''''''',,,,,,,;;;;;;::::::::c
                                                                       ..............................''''''',,,,,,;;;;;;::::::::
                                                                         .............................''''''',,,,,,,;;;;;;::::::
                                                                           ............................'''''''',,,,,,,;;;;;:::::
                                                                             ............................''''''',,,,,,;;;;;;;:::
                                                                             ..............................''''''',,,,,,;;;;;;;:
                                                                                ............................''''''',,,,,,,,;;;;;
                                                                                ............................'''''''',,,,,,,,;;;;
                                                                                  ..........................'''''''',,,,,,,,;;;;
                                                                                  ...........................''''''',,,,,,;;;;;;
                                                                                   ...........................'''''',,,,,,;;;;;;
                                                                                     ........................''''''',,,,,,,;;;;;
                                                                ...'''...          .........................'''''',,,,,,,;;;;;;:
                                                  .....'',;cccldddxxxxxxxdc,.    .........................''''''',,,,,,;;;;;;:::
                                            ..;:lodddddxxxxxxkkkkkkkkkOOOOOOkdl:,'......................''''''',,,,,,;;;;;;;::::
:;;'.....                ......         .,coddddddxxxxxkkkkkkkOOOOOOOOOO0000000000Oxxdoc:,............'''''',,,,,,,;;;;;;::::::c
ddooolllccc:::;;;;;;;;::;;::clloolccccoxxkkkkkkkkkkkkkOOO0000KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0xol::loooxxdxdxdl:::ddkOkOxklclooxdd
kxxxdddooooolllollooodddddolooxxxxxkOO000000000000000KKKKKKXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWW
OOkkkxxxddddddddddddxxxkkkkkkxxkOOOOOO000KKKKXKKKKKXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNWNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWMMMMMM
00OOOkkkxxxxxxxkkkkkkkOOOO00000OOO00KKKKKKKKKXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWNNNNNWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMM
K00000OOOOOOOOOOOOOOOO0000KKKKKKK0000KKKXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMM
KKK000000000OO000000000KKKKKKKXXXXXKKKKXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMM
XKKKKK00000000000KKKKKKKKKXXXXXXXXXXXXXXXXXNNNNNNNNWWWWWWNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMM
XXXKKKKKKKK00000000000KKKKKXXXXXXXXNNXXXXXXXXNNNNWWWWWWWWWNNNNNNNNWNNWWWWWWWWMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
NXXKOOO0K0OkkkkkkkkkkkkkkkkkkkOOOOOkkxxxxxxxxxkKWWWWWWWWW000KKXXKXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWW
XXK0OkO0Okdl:;:::;;;;;;::cc::cllllcccllllllloodKWWWWWWWWWNN000KXXNNNNNWWNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWMMW
XXK000Okxoc;....,,,;;:ldkOkook0000kOOOO0000K0OO0NNNNNNWNNWWWWNNNNNWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWMMMMM
NXXXK0kdlc:'   ';;;:;;lkO0Ok0KXXXXK00KXXNNNNNNNNNWWWWWNNNNNNNNWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWMMMMMMWWWWWWWWWWWWWMWWMWWMWWMMMMMMMM
XKK00Oxxo;.     ...'';xOOO0KKXXXNNNNNNNNNWWWNNWWWWNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWMMMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMM
KOOxkxxxo:..   ..;coxOO0KKKXXXNNNNNNNNWWWWNNWWNNNNNNNWWWWWWWWWWWWWWWWWWWWMMMMMMMMWWWWWWWWWWWWWWWWWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMM
XXXKK0kxdo:;,,;coodxkOO0KKXXNNNNWNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWMWWMMMMMMWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMWWMMMMMMMM
XXXKKK0OkxxdddxkkOO000000KKKXXXNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NXXXXKK00OOOOO000000KKKKKXXXXXXNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NXXNNXXXKKK00KKKKKXKXXXNXNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
NNNNNNNXXXXXXXXXXXXXXNNNNNNNWWWNNWWWNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWNNNNNNNNNNXNXNNNNNNNWNNNNWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMM
WWWWNNNWNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWWMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWNNNWWNWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWWWWWWWWWWWWWNWNNNNWWWWWWWWWWWWWWWWWWWMWWMMMMMMMMMMMMMMMMMMMMMMMWMWWMWWWWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
MWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWMMMMMMMMMMMMMMMMMMMMMMWWWWMMWMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWWWWWWWWWWWMMMMWWWWMMMMMWMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMM
WWWWWWWMWWWWWWMWMWWWMMMMWMWMMMMMMMMMMMMMMMMMMMMWMMWMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWMWMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/dalsnuten-256-x.html000066400000000000000000000150461471373143100171670ustar00rootroot00000000000000 jp2a converted image
KKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKK00000000000OOOOOOOOkkkkkkkkxxxxxxddddddooooooooolll
KXXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKK00000000OOOOOOOOOkkkkkkkkxxxxxxdddddddoooooooo
XXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKK000000000OOOOOOOOOkkkkkkkxxxxxxddddddooooooo
XXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXKKKKKKKKKKK000000000OOOOOOOOkkkkkkkxxxxxxdddddddooooo
XXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXKKKKKKKKKKK00000000OOOOOOOOOkkkkkxxxxxxxxddddddoooo
NNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkxxxxxxddddddddo
NNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkxxxxxxdddddddd
NNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXKKKKKKKKK00000000OOOOOOOkkkkkkkxxxxxxdddddd
NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkxxxxxddddd
WWWWWWWWWWMMMMMMMMMMMMMMMMMWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkxxxxxxxddd
WWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXXXXKKKKKKKKK0000000000OOOOOOOkkkkkkxxxxxxxd
WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkkkxxxxx
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkkxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKK00000000OOOOOOOOkkkkkkkkxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXXKKKKKKKK00000000OOOOOOOkkkkkkxxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK00000000OOOOOOkkkkkkxxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXKKKKKKKKKK000000OOOOOOOkkkkkkkxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWNXK0OOO00XNNNNNNNNNNXXXXXXXXXXKKKKKKKK0000000OOOOOOkkkkkkkxxxxxxd
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXXK00OOkxoool:::;;;;;;;:okXNNNNXXXXXXXXXKKKKKKKKK0000000OOOOOOOkkkkkkxxxxxxddd
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX0xdlc:::::;;;;;;,,,,,,,,,'''''',:ldkOKXXXXXKKKKKKKKK0000000OOOOOOOkkkkkkxxxxxxxdddd
dxxO0KXXXNNWWWMMMMMMMMMWNXKK00XNWMMMMMMNKkoc::::::;;;;;,,,,,,,''''''''''..........';;:codk0KKK00000000OOOOOOkkkkkkkxxxxxxddddddo
::ccclllooodddxxxxxxxxddxxddollcclooooc;;,,,,,,,,,,,,,'''...................................;clddlccc;;:;:;:lddd::,',';,lolcc;::
,;;;:::ccccclllcllccc:::::clcc;;;;;,''........................................                                                  
'',,,;;;::::::::::::;;;,,,,,,;;,''''''...................................                                                       
..''',,,;;;;;;;,,,,,,,''''.....'''.........................                                                                     
......''''''''''''''''..........................                                                                                
............''................................                                                                                  
...........................................                                                                                     
...................................  ........                                                                                   
 ...'''...',,,,,,,,,,,,,,,,,,,''''',,;;;;;;;;;,.         .........                                                              
....','.',:ldxdddxxxxxxddooddollllooolllllllcc:.           ......                                                               
......',;cox0XX0kkkxxdl:,',cc,....,''''......''.                                                                                
 .....,:lodOWMWOxxxdxxl,'.',............                                                                                        
.....';;cxKWMMMWXXKOOx;'''......                                                                                                
.'';,;;;cd0XWMWX0xoc;''.......                                                                                                  
......,;:cdxkkxocc:;,''.....                                                                                                    
.......',;;:::;,,''............                                                                                                 
 ........'''''.................                                                                                                 
 ..  .................. .                                                                                                       
       ..............                                                                                                           
             . .                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
jp2a-1.3.2/tests/dalsnuten-256.html000066400000000000000000000145611471373143100167230ustar00rootroot00000000000000 jp2a converted image
KKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKKKKK00000000000OOOOOOOOkkkkkkkkxxxxxxddddddooooooooolll
KXXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKKK00000000OOOOOOOOOkkkkkkkkxxxxxxdddddddoooooooo
XXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKKKK000000000OOOOOOOOOkkkkkkkxxxxxxddddddooooooo
XXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXKKKKKKKKKKK000000000OOOOOOOOkkkkkkkxxxxxxdddddddooooo
XXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXKKKKKKKKKKK00000000OOOOOOOOOkkkkkxxxxxxxxddddddoooo
NNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkxxxxxxddddddddo
NNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkxxxxxxdddddddd
NNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXKKKKKKKKK00000000OOOOOOOkkkkkkkxxxxxxdddddd
NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkxxxxxddddd
WWWWWWWWWWMMMMMMMMMMMMMMMMMWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkxxxxxxxddd
WWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXXXXKKKKKKKKK0000000000OOOOOOOkkkkkkxxxxxxxd
WWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK000000000OOOOOOOkkkkkkkkxxxxx
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKKK00000000OOOOOOOOkkkkkkkkxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKK00000000OOOOOOOOkkkkkkkkxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXXKKKKKKKK00000000OOOOOOOkkkkkkxxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNXXXXXXXXXXKKKKKKKKK00000000OOOOOOkkkkkkxxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNXXXXXXXXKKKKKKKKKK000000OOOOOOOkkkkkkkxxxxx
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWNXK0OOO00XNNNNNNNNNNXXXXXXXXXXKKKKKKKK0000000OOOOOOkkkkkkkxxxxxxd
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXXK00OOkxoool:::;;;;;;;:okXNNNNXXXXXXXXXKKKKKKKKK0000000OOOOOOOkkkkkkxxxxxxddd
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX0xdlc:::::;;;;;;,,,,,,,,,'''''',:ldkOKXXXXXKKKKKKKKK0000000OOOOOOOkkkkkkxxxxxxxdddd
dxxO0KXXXNNWWWMMMMMMMMMWNXKK00XNWMMMMMMNKkoc::::::;;;;;,,,,,,,''''''''''..........';;:codk0KKK00000000OOOOOOkkkkkkkxxxxxxddddddo
::ccclllooodddxxxxxxxxddxxddollcclooooc;;,,,,,,,,,,,,,'''...................................;clddlccc;;:;:;:lddd::,',';,lolcc;::
,;;;:::ccccclllcllccc:::::clcc;;;;;,''........................................                                                  
'',,,;;;::::::::::::;;;,,,,,,;;,''''''...................................                                                       
..''',,,;;;;;;;,,,,,,,''''.....'''.........................                                                                     
......''''''''''''''''..........................                                                                                
............''................................                                                                                  
...........................................                                                                                     
...................................  ........                                                                                   
 ...'''...',,,,,,,,,,,,,,,,,,,''''',,;;;;;;;;;,.         .........                                                              
....','.',:ldxdddxxxxxxddooddollllooolllllllcc:.           ......                                                               
......',;cox0XX0kkkxxdl:,',cc,....,''''......''.                                                                                
 .....,:lodOWMWOxxxdxxl,'.',............                                                                                        
.....';;cxKWMMMWXXKOOx;'''......                                                                                                
.'';,;;;cd0XWMWX0xoc;''.......                                                                                                  
......,;:cdxkkxocc:;,''.....                                                                                                    
.......',;;:::;,,''............                                                                                                 
 ........'''''.................                                                                                                 
 ..  .................. .                                                                                                       
       ..............                                                                                                           
             . .                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
                                                                                                                                
jp2a-1.3.2/tests/dalsnuten-640x480-gray-low.jpg000066400000000000000000000747341471373143100207270ustar00rootroot00000000000000JFIFHH SExifMM* (12<i(CanonCanon DIGITAL IXUS 50HHAdobe Photoshop CS Macintosh2006:07:13 17:23:34Mac OS X 10.4.7Ƃΐ0220֐    @8 2006:07:06 21:25:052006:07:06 21:25:05 _ v~( HHJFIFHH Adobe_CMAdobed            x" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?m,gOcƵ@5@ جx(QgHVi)x) ǂ8>$ mlIH6ŃjbԔ(rԔx!Y,PsRSUn`V'5%5qA{RSI<׵IMx \{PԔ.1R.qRԔb[`% ) )jRKRR2R )nj9d$Nj9)/j Jjjث=XIOΝ)!YUo_KUI%,:dbP+6]cjr֏9%( ~t }Iy*7}v[mZ?y:餧l7_0â=͖?[-E2+cIe_۲+[Sи!8"o`:j״4佾!%"r +\ <"zJDUrJ1⨢* ~-w~է流={Z[1-*}J\]COjgx|2LKCG׽yAB0RSwsʩͪ\ɿn%7#c,c/4QVy. QӨSOmc~JUs9}]}֟γX vB IN7UlUv$u&I $MxDWY{,mmS2zN6Su}G/i3*.|DInuv`zά2*O׏Ը@X{YvxQ/IOUkIk|bs}y_ZHZYQcO޼$+.WQ0$9nz&G^[SpowO߻ؼrm%?q-k[mD>q-w[86an0nn)A:f06 ENq:vrGՎKK##I)cP=Pc$L7<w}%Z?"w=8-ֿ}{դ$^ _5E ll=rJjI\|}:+5 Ơmjd;<$y>?z^%+$I= c%1 Jblq]|ObRS Q I.$:vK.7UP϶}Sǻ$U{C7MOsW<5CF tޯn!kJ}oц*&DRNבG/;:[~͍h4pZz{,9Ys2L>΂?ucf~wIM|d$mO23pqyoj{$<߱ ܋m|JI6Sh%3;G2T]a&2H]%*u=wXjc N.%-D@?t%v%Tus(h%DSn$10TF%2:&2yM8O%?zl;'1?wMTAIMd9m?A1&|RS';]>iA<>)L$̀8LgS<4gȰ)@J$kJI-rpjH@oוO|kR~I)`t4^J )RO com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-13T15:20:28Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIM9t2nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM x JFIFHH Adobe_CMAdobed            x" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?m,gOcƵ@5@ جx(QgHVi)x) ǂ8>$ mlIH6ŃjbԔ(rԔx!Y,PsRSUn`V'5%5qA{RSI<׵IMx \{PԔ.1R.qRԔb[`% ) )jRKRR2R )nj9d$Nj9)/j Jjjث=XIOΝ)!YUo_KUI%,:dbP+6]cjr֏9%( ~t }Iy*7}v[mZ?y:餧l7_0â=͖?[-E2+cIe_۲+[Sи!8"o`:j״4佾!%"r +\ <"zJDUrJ1⨢* ~-w~է流={Z[1-*}J\]COjgx|2LKCG׽yAB0RSwsʩͪ\ɿn%7#c,c/4QVy. QӨSOmc~JUs9}]}֟γX vB IN7UlUv$u&I $MxDWY{,mmS2zN6Su}G/i3*.|DInuv`zά2*O׏Ը@X{YvxQ/IOUkIk|bs}y_ZHZYQcO޼$+.WQ0$9nz&G^[SpowO߻ؼrm%?q-k[mD>q-w[86an0nn)A:f06 ENq:vrGՎKK##I)cP=Pc$L7<w}%Z?"w=8-ֿ}{դ$^ _5E ll=rJjI\|}:+5 Ơmjd;<$y>?z^%+$I= c%1 Jblq]|ObRS Q I.$:vK.7UP϶}Sǻ$U{C7MOsW<5CF tޯn!kJ}oц*&DRNבG/;:[~͍h4pZz{,9Ys2L>΂?ucf~wIM|d$mO23pqyoj{$<߱ ܋m|JI6Sh%3;G2T]a&2H]%*u=wXjc N.%-D@?t%v%Tus(h%DSn$10TF%2:&2yM8O%?zl;'1?wMTAIMd9m?A1&|RS';]>iA<>)L$̀8LgS<4gȰ)@J$kJI-rpjH@oוO|kR~I)`t4^J )RO 1/320 56/10 0220 2006-07-06T21:25:05+02:00 2006-07-06T21:25:05+02:00 266/32 159/32 0/3 95/32 5 False 0 2 False False 5800/1000 4294967295 640 480 2 Canon Canon DIGITAL IXUS 50 1 72/1 72/1 2 1 2006-07-13T17:23:34+02:00 2006-07-13T17:23:34+02:00 2006-07-13T17:23:34+02:00 Adobe Photoshop CS Macintosh adobe:docid:photoshop:62e9d615-1426-11db-996e-bb4a78cc89ac image/jpeg AdobedC##""  P  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw?!<% (J% B}BPڞ(J(J(M BP% (JBP&(M (M BhM BhM 4% FBhKjКBhM1 0Кa1 M 4&К铤$$$$PJI$I$I(LII$$$$2I&&J&Q4&LM dТSBd%1M &LӤ$$tI:tI$I$I$LII$&I$&I2d$2d(I2dɓ&*)(LQ)&)ɗ$$I$'I$I$I$$I$$$d$$&Ld&L2dɒQ)QL2b2<Jd2ea<% <% (I$PI$I$LI$I&I$$$$$&LdɒL2dЙ2dɓ&LS&2b)S&L<''J<% BtI$I$M $I$$LILdLdɒL$ɓ&Lɓɓ<SɊbQ)b1_!<$:P(O $I$I$PII$$P$$d2d$$ɓ&LdɒQL1L2d2b1Q)&LBxO BxO BP$I$I$I$LI$dLI&I2I&J&I2d&L$ɓ&L2d2e1LSE1L1L낒INII$I$I$I2I$dI$$$$$&LdBdɓ&I2dɓ<S&2eЙF&)JdNtI$JО$dI$$dLILdɒL$ɓ&L$ɓ&LE2b2e1QLE2eBtNI$I$I&I%%dLI$II2ILd&Ldɓ$2dɒQL2dɓ)%2&)/N:P$I$I$$I'L$$II$$d$2IQI2d&L2d&L2dɓ(LE2eR!쓧N$PI$dI2I)$II$$d$$&I2d&L2I&L$ɓ&LE2dɈQ)Jd2eRI:tI$II$$IQI$$$$II2ILd&Ldɓ&I2dɓ&L%1LJP 4&!4&!N$I$I$I2I&I$LII$$$$d$$&L2d&L2I&L2b2bL2dɊ퓤$I$I$I$$II$$I&I2I&I$&I2IL2I&L$ɓ&L2dɓ&L1ɡD0$$I$I$I$II$$I&I$$$$d$$ɒL2I&L2dɓ&L1L1LL2b‰_tI$I$I$I$I2I&I$I$$$&I$&I2IL2I&L$ɓ&L2dE2dɠĨTS$WӤI$I$I$I$I&I$$I&I$$$$$&Ld&L2I&L2dɓ&hSIQ*%2b2KI$I$I$I$I$I2I&I$I2I&I2II2ILd&Ldɓ&L2d6(b2dD)L2I$I$I$I$I$I$$dI2I$$&I2ILd)M)&L2dɓ&I2d2eɓ2etI$I$I$I$I$LI&I$LdLd{!;"]c@$kQ9T&Ld&I2dҚS2dɓɔJdɊb2LTJdtI$I$I$I$I$I2I$$$c@n^-Bl14;g2U2>c&şoX<U;2o?Ĕ- 8qu ʿdG+ w3>l=t{Z$ɓ%*2dҙ4L2d)ɔS<S(ɊӤI$I$I$I$I&I$I2g9n֎I0 zfO[Z;KDb"OsNYo>A+:{YWYs$-鍊>oQ7zm鷦ޛzv8#BOzy>KNV=ƼMRɓ&L2d&L2LJbSSTIL2%ӤI$I$I$I$II$qʯnn%-e@?1cf׻ى,ow77E7fA.Qܛrbɥ1*;4Ҕ&ܟr.}oa,{uZUuWc xjɆY6xq3*˨[^Bd&L2dɓ&Ҙң)2bTe4ҢJiQ%е_YoMli$ZZL1ީ; #zLfb,oވ-pwʒI$I$H{30]'J KX 땲w-k<)ڼcwV時 I2JWWqd,o-g ;ߖve]i7"\*$ĨTK(SJiM)4)4)JR*U;Ŧߴ2v5k>Um{-2ťw?Lc_!Ͱw`2CܮdxBRSJdҘLĨ%2iQɥFSɉQѬҦ aLZTŧGV^,wމO'@!4^l^h'"Ys֟'65V|J;G)kjM} }`ϤƴGk{v ~GsOpr`~(wlPбΰrzVD{iM)JRRҔg?/?ص~FU~?prZݶvUXsx䜔&_M齮 iAxϳeu}}MR5:-pGoFX5: gmS԰oqeW5ou,_1([ya)w2M4>'lIf/<_._Q e8>}@$bA8M*$:Z=$kCԃÔ LmOBrqMFd.o  {rZ jY! Tj^pRܔ>iB9P9y%@ĦRJdJJR|%-1{rsrP|K> TfݴZ>mWphuAi?Kب liHQmi02uH9y cfߏs._ ѭ12I55VcsX2hli:6~ˣ)[}'"x}z[DLrl ʑ{L@ 32jsֺ?Pv"G[[ s\#TW3gV{ HRkCÔÓNrrv"%&B8pAB\ӪʃBM)iOpxX5D<- % KT"&JRRR ےҒR)JRiM))M)JIJdJR)JSJKkÔÔÔÔKr}ɋHD@D@l#6 . PɄ'%E')RHJGR|qKqJ|% (M hLOm<4%i $EE1$IJdI$ҒI/H9L 0%>oO@DDDDD VY)ݪ ʊA[ɥ4!)M6 %ҚTI)))JRRҔ))P%4yM)JiJSJR&)I$LI$I_ @'ܤnM6&.QĨʉ)FSF9 DBRStQ䔥I&JS%%J"$|j}Jc [JI4KpKr[M%8)JR(\Ʈ];ph- !ݻ*$i+ ]X{B1D|9?C>6N?" zGk|/@W#Rn _r ܠ,scŝYDn?f*o܊4hKDx(Ʉ3THYFڠa:W:PI>xyLkiKIb#(g{f}N >nw&t~jkq)ARAa3X0ù1E-Ok|;)ҙ- 2SLAM{ԶKNO)iQO<%)%&O)$UQ[i[ed8rٕc7n969&"Y%GBLo;5 ƅnưߟut!:S6E "У(Ϥ<`8j|w;dH}&8IVDoi Q=nj PsxMnox[/c>ݤOIrM2uw['"O&ӉL״pwq&8ޤYC! $r/qN"SJm@1Ӕi<$|ܑ )q>!4ܞJ_}%)-)09)LJiJR()O&LI'_XDfĢv۱Gfw@%YWkplus YNiadhnZMܴ7S7s@!7]N*W"Kf]sq!DZ Ix(SL&%6l)I T`xja J:)q))$>:'m%?dҔ꘤I)L2t&)$i:&#z߷v?lp.>:Ō!7t7q%a4s $ zkl`*_RhW=u]c% h w C9]i_pLIP3u J@H6[0;(3MN`$B䃻K N"cEL)9LxQU8v(IHHJxR)Д%8on$iD)J@yI$I$Ҝr$Nǻ;ӔZ[5v% pq!x895֢!Y"eWkDXWC^vJȸqTG !LD(12c%IR09)iإ)K/S)Hu1:|R$3p?I-R)JR<ڗ <򖼔Ӣ@2hH:&H I$H$I_Dʛ\=e VDBǻMUd@fx T9Yp:3h--<TPKJ!9ݐLx]5JG 8P$ςa:m&JGD L5HSDji)$()HR(Npu?4ڧ?) i<*me"JdJSJI$P&H$冩@4QQTvX{+,ú ):4]OW}wb bC%SXJoL}ɴLJ8t$\9M&$_)4ɧMS#(Rn @i*@uMo" )>e8~{5:#D}Od3p )4P7d 2HK-[RJBR|&JR3|ҏѢQ) %Kj8qe>)w&I"$ B)4dNt%)R>J;ئ'(<0-(TKL]'Eڤ]P)nBRR.LO`DCFOhJa6H%(蔦:@)INܗ)TL :&"J}e.w&O RI2IӄO*)$$8 $4~iS]8R=zy?r[nMS$#fSDǔb{d9)JE4Gc\ H%)M:)R|SR1r]L'JTe)1H2d% 'I.RLd$I$d؄SnɁ%6I60vɉ'QtBxMN=5PTIx}% |)rS hS ƦSM%H 3)N4SkU O)I$'<$I&JS' ':d)LI$/–*@a؉O"BEL|JS)LIH9>0wޤ<'iۂbS'ML%H?84 ljM&o4;&7d)DL?dҔp-H JiJRI$OR $$I$9_Z'N >IH!S&Db#(m1)[I SmOR Ok nM#xM۔R1R?SDRSR$I)LI)쟼(E2IP4I$Lt$t$ STmS'.JiK"N&r)iO)=BRe;DjSD9<&4)JiHJ{ORdI$Jd9RR:I&I$ I$I$I(_S>S[w)S H7N@SHc C<tSΒuH.4IJR$I<&O2FxBZJg&I$IBII$$I$I$R/)LJRpvNJ`=OtI2i)M$NP)JiI$2INt7t)'> $I$I$I$I jp2a converted image
......................................................''''',,,,;;;;:::::cccccl
.............                  ..........................''''',,,,;;;;::::cccc
....                                ......................''''',,,,;;;;::::ccc
                                         ...................''''',,,,;;;:::::c
                                            ..................'''',,,,;;;;::::
                                              .................''''',,,,;;;;::
                                               ..................'''',,,,;;;;;
                                                 .................''''',,,,,;;
                                                  ................''''',,,,;;;
                                                   ................'''',,,;;;;
                                       .....       ...............'''',,,,;;;;
                            .',;;:clodxxxkkkko:,................'''',,,,;;;;::
:;'.....      ...'...  .':ldddxxxkkkOOOOOOO0000000xxdlc;'....'''',,,,;::;;:::c
xxdooolllllloooolloxxkOO00000OO000KKKXXXXXXXXXXXXXXXXNNNXK0KXNNNNN00XNWWNKKXNX
OOkkxxxxxxxxxkkOOOkkO0000KKXXXXXXXXXXXXXXNNNNNNNNNNNWWNNNWWWWWWWWWWWWWMMMMMMMM
K000OOOOOOOO0000KKKKK0KKXXXXXXNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMM
KKKK00000000KKKKXXXXXXXXXXNNNNNNWWNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMM
XXK00K0OOOOOOO0000KKKK000000KNWWWWWKXNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XK0OOko:;;;;;;colcddddddddddxNWWWWNNKKXXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWMMW
NXKOxl;. .,;;lOOkOXXK00KXXNXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWMMM
KOkxxc.   .;cx00KXXNNNNNNWNWWWNNNWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMM
XXKOkdc::ldxkO0KXXNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMM
XXXK0OOOO000KKKKXXXNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
NNNXXXKKXXXXXXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWNNNNNNNNNNNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWNNWWWWWNWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWWMMMWWMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWMWWWMMMMMMMMMMMMMMMMMMMWWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/dalsnuten-color.html000066400000000000000000004335411471373143100175300ustar00rootroot00000000000000 jp2a converted image
......................................................''''',,,,;;;;:::::cccccl
.............                  ..........................''''',,,,;;;;::::cccc
....                                ......................''''',,,,;;;;::::ccc
                                         ...................''''',,,,;;;:::::c
                                            ..................'''',,,,;;;;::::
                                              .................''''',,,,;;;;::
                                               ..................'''',,,,;;;;;
                                                 .................''''',,,,,;;
                                                  ................''''',,,,;;;
                                                   ................'''',,,;;;;
                                       .....       ...............'''',,,,;;;;
                            .',;;:clodxxxkkkko:,................'''',,,,;;;;::
:;'.....      ...'...  .':ldddxxxkkkOOOOOOO0000000xxdlc;'....'''',,,,;::;;:::c
xxdooolllllloooolloxxkOO00000OO000KKKXXXXXXXXXXXXXXXXNNNXK0KXNNNNN00XNWWNKKXNX
OOkkxxxxxxxxxkkOOOkkO0000KKXXXXXXXXXXXXXXNNNNNNNNNNNWWNNNWWWWWWWWWWWWWMMMMMMMM
K000OOOOOOOO0000KKKKK0KKXXXXXXNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMM
KKKK00000000KKKKXXXXXXXXXXNNNNNNWWNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMM
XXK00K0OOOOOOO0000KKKK000000KNWWWWWKXNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
XK0OOko:;;;;;;colcddddddddddxNWWWWNNKKXXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWMMW
NXKOxl;. .,;;lOOkOXXK00KXXNXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWMMM
KOkxxc.   .;cx00KXXNNNNNNWNWWWNNNWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMM
XXKOkdc::ldxkO0KXXNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMM
XXXK0OOOO000KKKKXXXNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
NNNXXXKKXXXXXXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWNNNNNNNNNNNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWNNWWWWWNWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWWWWWWWWWMMMWWMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
WWWWMWWWMMMMMMMMMMMMMMMMMMMWWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/dalsnuten-invert.txt000066400000000000000000000043631471373143100175700ustar00rootroot00000000000000......................................................''''',,,,;;;;:::::cccccl ............. ..........................''''',,,,;;;;::::cccc .... ......................''''',,,,;;;;::::ccc ...................''''',,,,;;;:::::c ..................'''',,,,;;;;:::: .................''''',,,,;;;;:: ..................'''',,,,;;;;; .................''''',,,,,;; ................''''',,,,;;; ................'''',,,;;;; ..... ...............'''',,,,;;;; .',;;:clodxxxkkkko:,................'''',,,,;;;;:: :;'..... ...'... .':ldddxxxkkkOOOOOOO0000000xxdlc;'....'''',,,,;::;;:::c xxdooolllllloooolloxxkOO00000OO000KKKXXXXXXXXXXXXXXXXNNNXK0KXNNNNN00XNWWNKKXNX OOkkxxxxxxxxxkkOOOkkO0000KKXXXXXXXXXXXXXXNNNNNNNNNNNWWNNNWWWWWWWWWWWWWMMMMMMMM K000OOOOOOOO0000KKKKK0KKXXXXXXNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMM KKKK00000000KKKKXXXXXXXXXXNNNNNNWWNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMM XXK00K0OOOOOOO0000KKKK000000KNWWWWWKXNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW XK0OOko:;;;;;;colcddddddddddxNWWWWNNKKXXNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWMMW NXKOxl;. .,;;lOOkOXXK00KXXNXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWMMM KOkxxc. .;cx00KXXNNNNNNWNWWWNNNWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMM XXKOkdc::ldxkO0KXXNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMM XXXK0OOOO000KKKKXXXNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM NNNXXXKKXXXXXXNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM WWNNNNNNNNNNNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM WWWWWWWNNWWWWWNWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM WWWWWWWWWWWWMMMWWMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM WWWWMWWWMMMMMMMMMMMMMMMMMMMWWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/dalsnuten-jp2a-2000x2000-md5.txt000066400000000000000000000000101471373143100206320ustar00rootroot000000000000008004000 jp2a-1.3.2/tests/dalsnuten-normal.txt000066400000000000000000000043631471373143100175510ustar00rootroot00000000000000KKKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKKKKKKKKK000000OOOOOkkkkxxxxdddddoooool XXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXKKKKKKK000000OOOOOkkkkxxxxddddoooo XXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXKKKKKKK00000OOOOOkkkkxxxxddddooo NNNNNNNNNNWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNXXXXXXXXKKKKKK00000OOOOOkkkkxxxdddddo NNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNXXXXXXXKKKKKK00000OOOOkkkkxxxxdddd WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNNNNNXXXXXXKKKKKK00000OOOOOkkkkxxxxdd WWWWMMMMMMMMMMMMMMMWWMMWWWWWWWWWWWWWWWNNNNNNNNNXXXXXXXKKKKK000000OOOOkkkkxxxxx WMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNXXXXXXKKKKKK00000OOOOOkkkkkxx MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWNNNNNNNNXXXXXXKKKKK00000OOOOOkkkkxxx MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWNNNNNNNNXXXXXXKKKKK00000OOOOkkkxxxx MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWNXK00KNNNNNNNXXXXXXKKKKK0000OOOOkkkkxxxx MMMMMMMMMMMMMMMMMMMMMMMMMMMWKOkxxdolc:;;;,,,,cdk0XXXXXKKKKKK0000OOOOkkkkxxxxdd dxO00KKXNNNNNNXK0O0KXNNXOdl:::;;;,,,'''''''.......;;:loxO0000OOOOkkkkxddxxdddo ;;:cccllllllccccllc;;,''.....''...................... ..... ... ... . '',,;;;;;;;;;,,''',,'.................... ....''''''''.................. .......................... .......'''''''............... .. ...'',cdxxxxxxoclo::::::::::; .... ..';lxXM0kxxl'','........ . .',;;oKWMN0xo;..... ...',:oddl:;,'.... .....''''.......... ........... jp2a-1.3.2/tests/edges-only-invert.txt000066400000000000000000000120501471373143100176310ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMM===MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM========MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM=========MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM=================MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM|/MMMMMM\\MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM====/MMMMMMMMMMMMM=====MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM/==MMMMMMMMMMMMMMMMMMM\\MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM|\==MM===//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM||MMMMMMMMMMMMMMMMMMMMMM\\=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM======MMMMMMMMMMMMMMMMMMMMMMMMM======MMMMMMMMMMMMMMM||MMMM=========MMMMMMMMM|\\MMMMMMMMMMMMMMMMMMM=======MMMMMMMMMMMMMM MMMMMMM===========MMMMMMM==========MM=============MMMMMMMMMMM||M===/===M==\\MMMMMMMMMMM||MMMMMMMMMMM===================MMMMMMMMM MMMMMM|/MMMMMMMM\\MMMMMMMMMMMMMMM\\===/MMMMMMMM=====MMMMMMMMM|\==//MMMMMMMM|\MMMMMMMMMM||MMMMMMMM=/======MMMMMMMMMM=====MMMMMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMM=MMMMMMMMMMMMMMM\===MMMMMMMM/MMMMMMMMMMM||MMMMMMMMMM/|MMMMMMM/=/MMMMMMMMMMMMMMMMMMMM\\=MMMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMMMMM====MMMMMMMMMM\\\MMMMMMMMMMMMMMMMMMMM||MMMMMMMMM///MMMMMM||MMMM==========MMMMMMMMMM\\MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMM=========MMMMMMMMMM|\MMMMMMMMMMMMMMMMMMM||MMMMMMMM|/MMMMMMMM||MM==/===MMMM\\=MMMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMM/=/MMMMM\\\MMMMMMMMM||MMMMMMMMMMMMMMMMMMM//MMMMMMMM//MMMMMMMM|\=/==MMMMMMMMMM/|MMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMM||MMMMMMMM|\=MMMMMMMM||MMMMMMMMMMMMMMMMM=//MMMMMMM=//MMMMMMMMMM\=/MMM=========//MMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMM||MMMMMMMMMM\MMMMMMMM||MMMMMMMMMMMMMMMM///MMMMMM=///MMMMMMMMMMMMMM=========MMMMMMMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMM||MMMMMMMMMM/|MMMMMMM||MMMMMMMMMMMMMM=//MMMMMMM///MMMMMMMMMMMMMM=/==/MMMMM====\MMMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMM||MMMMMMMM////MMMMMMM|/MMMMMMMMMMMM=///MMMMMMM/|M========MMMMM////MMMMMMM/===M||MMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMM|\========//MMMMMMMMM//MMMMMMMMMM////MMMMMMMMM\===========MMMM//MMMMMMMM||MMMM/|MMMMMMMM||MMMMM MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMMM=====//MMMMMMMMMMM//MMMMMMMM////MMMMMMMMMMMMMMMMMMMMMM||M||MMMMMMMMMM\\==/=//MMMMMMMM|\====M MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMM=//MMMMMMMM=//MMMMMMMMMMMMMMMMMMMMMMMM||M||\MMMMMMMMMM\==//MMMMMMMMMMMM==M\M MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMMM=MMMMMMMMMMMMM==///MMMMMMM=//MMMMMMMMMMMMMMMMMMMMMMMMMM||MMM\\==MMMMMMMMMMM====MMMMMMMMMM==/M MMMMMM||MMMMMMMMM|MMMMMM||MMMMMMMM/================/MMMMMMMMMM\===========================//MMMM\=============================/M MMMMMM/|MMMMMMMMM|MMMMMM||MMMMMMM||MMMM=======/MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM=========MMMMMM=======/MMMMM MMMMM///MMMMMMMM||MMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMM//MMMMMMMMMM//MMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMM\|MMMMMMMMMM=//MMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMM|\MMMMMMMM=//MMMMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMM|\MMMMM=///MMMMMMMMM||MMMMMMM||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMM|\======/MMMMMMMMMMM\\=======//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/edges-only.txt000066400000000000000000000120501471373143100163240ustar00rootroot00000000000000 === ======== ========= ================= |/ \\ ====/ ===== || || /== \\ |\== ===// || \\= ====== ====== || ========= |\\ ======= =========== ========== ============= || ===/=== ==\\ || =================== |/ \\ \\===/ ===== |\==// |\ || =/====== ===== || | || = \=== / || /| /=/ \\= || | || ==== \\\ || /// || ========== \\ || | || ========= |\ || |/ || ==/=== \\= || || | || /=/ \\\ || // // |\=/== /| || || | || || |\= || =// =// \=/ =========// || || | || || \ || /// =/// ========= || || | || || /| || =// /// =/==/ ====\ || || | || || //// |/ =/// /| ======== //// /=== || || || | || |\========// // //// \=========== // || /| || || | || =====// // //// || || \\==/=// |\==== || | || =// =// || ||\ \==// == \ || | || = ==/// =// || \\== ==== ==/ || | || /================/ \===========================// \=============================/ /| | || || =======/ ========= =======/ /// || || || // // || || \| =// || || |\ =// || || |\ =/// || || |\======/ \\=======// jp2a-1.3.2/tests/edges.txt000066400000000000000000000120501471373143100153450ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMM===MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM========MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM=========MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM=================MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM|/.. \\KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM====/'. .=====MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM|| ||MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW/==. .\\WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM|\== ===//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW|| \\=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMWx======okXMMMMMMMMMMMMMMMMMMMMMM======MMMMMMMMMMMMMMN|| ========= |\\KMMMMMMMMMMMMMMMMMM=======MMMMMMMMMMMMMM MMMMMMW===========WMMMMWN==========MM=============MMMMMMMMMMN|| ===/===O==\\ .||MMMMMMMMMMM===================MMMMMMMMM MMMMMW|/''''''''\\KMMMMXOl'''''''\\===/'.......=====MMMMMMMMN|\==//KMMMMMMW|\ ||MMMMMMMM=/======..........=====WMMMMMMM MMMMMW|| |0MMMMK|| .=. ..\===MMMMMNXk/XNMMMMMMMMM||. /|MMMMMMW/=/'. .\\=WMMMMM MMMMMW|| |0MMMMK|| ==== \\\WMMMMMWWWMMMMMMMMMMM||.. ///MMMMMW|| ========== .\\MMMMM MMMMMW|| |0MMMMK|| ========= |\MMMMMMMMMMMMMMMMMMM|| |/KNMMMMMN|| ==/===00KK\\=. ||WMMMM MMMMMW|| |0MMMMK|| /=/0XNNX\\\ ||WMMMMMMMMMMMMMMMMMM// //MMMMMMMN|\=/==KWMMMMMMMK/| ||NMMMM MMMMMW|| |0MMMMK|| ||NWMMMMMW|\= ||KNMMMMMMMMMMMMMMM=//. =//XMMMMMMMWX\=/NMM=========// ||XMMMM MMMMMW|| |0MMMMK|| ||WWMMMMMMM0\' ||xKMMMMMMMMMMMMMM///. =///KMMMMMMMMMWWWW========='.. ||XMMMM MMMMMW|| |0MMMMK|| ||WWMMMMMMMX/| ||xKMMMMMMMMMMMM=//. ///XMMMMMMMMMMMMM=/==/ ====\. ||XMMMM MMMMMW|| |0MMMMK|| ||WWMMMMMM//// |/OXMMMMMMMMMM=///. /|0========MMMMM//// /===0|| ||XMMMM MMMMMW|| |0MMMMK|| |\========//. //NWMMMMMMMM////. .\===========XMMK// ||XWMN/| ||NMMMM MMMMMW|| |0MMMMK|| .=====// //MMMMMMMM//// .||M||,. .\\==/=// |\====N MMMMMW|| |0MMMMK|| =//WMMMMMMM=//. .||M||\. \==//. ==:\k MMMMMW|| |0MMMMK|| = ==///KMMMMMM=//. .||MMK\\== ...==== ==/d MMMMMW|| |0MMMMK|| /================/XMMMMMMMKk\===========================//MMWW\=============================/0 MMMMMN/| |0MMMMK|| ||WNKO=======/KNWMMMMMMMMMMX00O00000000000000000000000000KNMMMMMMW0=========KWMMMK=======/KNWMM MMMMM/// ||KMMMMK|| ||WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWW//. //XMMMMK|| ||WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMX\| =//WMMMMK|| ||WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMW|\ =//0NMMMMMK|| ||WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMM|\ =///KMMMMMMMK|| ||WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMM|\======/KMMMMMMMMMX\\=======//WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMN0000XNWMMMMMMMMMMWNK00000000XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/flip-xy-invert.txt000066400000000000000000000035501471373143100171600ustar00rootroot00000000000000 'odddd: ,cdd, lWMMMMk. ;OWMMM0, lWMMMMk. :XMMMMMNo. lWMMMMk. .kMMMMM0; .cdxkOOko:cdkOOOkxc. .oxxxxxxxxxxxxxxxc. ,cdkOOOkxoOWMMMMk. .OMMMMMo ,kKNMMMMMN0do0WMMMMO. ;XMMMMMMMMMMMMMWk. ,0WMMMMMWWWMMMMMMMk. .OMMMMMo .kMMMMMx. ;XMMMM0' 'xOOOOOOXMMMMMKc. ,KMMMMMKl,';c0MMMMMk. .OMMMMMo .xMMMMMd.'c0WMMW0; .oXMMMXo. dMMMMMK, lWMMMMk. .OMMMMMo .xMMMMMXKNWX0xl,. 'OWMMWk' .kMMMMMk. lWMMMMk. .OMMMMMo .xMMMMMKo:,. .. :KMMMNo. .dMMMMMK; lWMMMMk. .OMMMMMo dMMMMM0;....,ckXo cNMMMWd ;XMMMMMXd:;cdKMMMMMk. .OMMMMMo .dXWMMMWXKXNWWXO; ,KMMMMN: . 'o0WMMMMMMWNNMMMMMk. .OMMMMMo .,clodddoc:,. :NMMMMM0c'..':xx ':lodol;.'lllll, ;lloll' .kWMMMMMWNXNWMMO .ckOx; .oXMMMMMMMMMWXc :XMMMk. .:oxOOOkxl;. .cxOd, jp2a-1.3.2/tests/grind-256-fill.txt000066400000000000000000001641221471373143100166270ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind-2grayscale-256-fill.txt000066400000000000000000001663211471373143100206640ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind-2grayscale-ANSI-fill.txt000066400000000000000000000341171471373143100210770ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind-2grayscale-fill-x.html000066400000000000000000004303661471373143100207470ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-2grayscale-fill.html000066400000000000000000004300441471373143100204730ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-2grayscale-truecolor-fill.txt000066400000000000000000002571721471373143100223730ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind-2grayscale-x.html000066400000000000000000002454721471373143100200250ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-2grayscale.html000066400000000000000000002451501471373143100175510ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-ANSI-fill.txt000066400000000000000000000413021471373143100170370ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind-blue.txt000066400000000000000000000045761471373143100163240ustar00rootroot00000000000000K0KKK00KOkllo';, 0XXNXKOK00OOkxdl. O0XNNNXKXK00OOkc' . WWWNWNNXNX0K00x:. .. WWWNNXKKXXKKK0ko,. NNNNNNKOKx0K0kOko;''. NNWNXNXxK0KxxdxOkdoc;'...................................... NWWNNNXNXNK0000Oo;'...................''........''..............,;;;,........... XXNNNWXX0Kk0Okol:.....',:,,;'';col;,:loolc,,',,;lc;,;cc,',,'''':doodo;,,,,,;;;;c XNNXXNKX0O:;:;;,',,,,,,cccll::dxddoodxxddo:;;,clllc:cl:;;,,,,,,;cllll;;;;;;;;;;: K0K0KW0Okdc,,,;;;;;;;ldxdllc::oddlllccllc:::::occ::::::::::::::::ccccclllllllloo NXKKXXKOO0Ooc:cc::::oxxdolccccllclcllooloooodoxdooooddoddooodddxxxkxxkkkkxxxxxxx XXXKXWXXXXXXXK00koooloodddxxxdddddddddxxxxkkxkOkxxxxkxxxxxxkOOOOOkkkkkkkkOOOOkkO KKK0kOkkO0KKKXKKKKKKk:.....':xOkkkxxdoddxxkkkOkxxxxkkkOOkkkOOOOkxkkOOOOOkOOOOOO0 0XKXOxkkxdxkOKKKXKKXKd...'...';lO00OkxdoxdxxxOxkkxxkkxkOOOO00000000KKKK0KKKKKKKK OKNX0OxkddOkodKOKOO0l'...k'..O'.:O00OOkxxdxkk0kkkkkOOkOO0K0K0KK00O000KKKKKXKK0KO NO0XXKXXkx00OOKkOOkx;c0k'x' .Ooo;ck0K0OOOkxkk00OOOOOOxxxkOO00KKKKXXXKX00KXXKKKOk N00NNKXXKKK0Ok0K00KxdddxooolokkkooxkOOOOOkOxkkkoccddodxddxxxxdK0kkk0XKXKKKKKXKK0 WK0XNXNNXXXKXKK0XK0d:;NK;O0K0K00c:d0lk00O00O0O0K0kkookddoolcoodx0kddOdxkxkOOO0O0 NKKXNXXXKXXKKKK0K0Ox0000OOOOOkkkdodkdk0KXNKO0O0Nkkxx0KKOxdxxkddOOx0OkOxxkOOKN0XN NX0XNNXNNWNNWNX0kx0::cK0:kocccxk0OOOxdk0KK0O0OONNNNNNNXK0kkOk0X0Ok00XXOkOXNNNKXN WN0XNNNNNXXKKKK0xdOc:cKO;xl'''xO:ckKkdxKOdkkOkONXKXNNNXKKKKKXNNKOO0OOKN0KXNXXXKX WXXNWWWWNWWXOxK0dd0dod00dkkddxkkxxkOOOO0OdxxkOKXddk0K0XNNWWNNNNNNNXK0KNNNNNXXKKX MNWMWWWWNNX0kc;;,;c,',ol,::'''dx:;::clx0OxdxKXX0kk0NNNNWWNNNNWWWNWXXKkxkkOO000OO MWWWWWWWN0dlcc::::c::;;;;;;:c::cld::cloxkkkONWWWWWWNWWWWWWWWWNNNNWNWW0kdxkkkkkkk WWNNWWNXK0xlc::::;;;:;:::::dkOxONK0xlcllloodxkkOOkkk00XXNNWWWWXKNWWWWNK0KNX0xddd WWWWWNX0dccc::::;;;:;;:::::kkO0KNXXOc:::::ccccccclccllodkKXXNXK0KXXXX0KXNNNXkdoo MWWWNXK0xl::;;;;;;;;;;;:::ckO0NWOc::;;;;;:::::::c:::ccloOKOxOKXOxkkdooloooooolod WWWWWWKxcc:;,,;;;,;;;;::cclodd0Nd::;,;;;,;;;::::::::cccccoddodkO0O00Oxddoxdollol WWWWWKxlcc;;;;;;;;;;:::;::clllodl::;;,;;;,;;;::c:::::ccc::ccloxKK0K0xxxllolllooo jp2a-1.3.2/tests/grind-color-256.txt000066400000000000000000000525251471373143100170220ustar00rootroot00000000000000''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW ,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW .......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM  ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM .....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM .....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN .......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx ..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk ..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx ......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo ..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll ...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll ......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::  .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;  .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.  .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  .   ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .  .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............      ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,; ......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::   ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;:: .....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc:: ....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc:: jp2a-1.3.2/tests/grind-color-ANSI.txt000066400000000000000000000240741471373143100172360ustar00rootroot00000000000000''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW ,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW .......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM  ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM .....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM .....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN .......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx ..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk ..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx ......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo ..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll ...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll ......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::  .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;  .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.  .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  .   ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .  .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............      ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,; ......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::   ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;:: .....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc:: ....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc:: jp2a-1.3.2/tests/grind-color-dark-fill-x.html000066400000000000000000002533371471373143100207510ustar00rootroot00000000000000 jp2a converted image
''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW
.......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM
 ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM
.....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM
.....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN
.......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx
..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk
..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx
......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo
..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll
...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll
......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::
 .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;
 .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.
 .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  . 
 ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .
 .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............
     ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,;
......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::
  ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;::
.....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc::
....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc::
jp2a-1.3.2/tests/grind-color-dark-fill.html000066400000000000000000002530231471373143100204740ustar00rootroot00000000000000 jp2a converted image
''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW
.......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM
 ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM
.....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM
.....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN
.......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx
..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk
..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx
......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo
..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll
...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll
......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::
 .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;
 .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.
 .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  . 
 ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .
 .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............
     ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,;
......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::
  ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;::
.....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc::
....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc::
jp2a-1.3.2/tests/grind-color-dark-x.html000066400000000000000000001452671471373143100200270ustar00rootroot00000000000000 jp2a converted image
''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW
.......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM
 ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM
.....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM
.....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN
.......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx
..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk
..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx
......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo
..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll
...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll
......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::
 .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;
 .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.
 .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  . 
 ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .
 .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............
     ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,;
......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::
  ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;::
.....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc::
....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc::
jp2a-1.3.2/tests/grind-color-dark.html000066400000000000000000001447531471373143100175610ustar00rootroot00000000000000 jp2a converted image
''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW
.......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM
 ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM
.....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM
.....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN
.......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx
..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk
..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx
......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo
..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll
...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll
......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::
 .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;
 .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.
 .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  . 
 ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .
 .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............
     ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,;
......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::
  ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;::
.....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc::
....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc::
jp2a-1.3.2/tests/grind-color-truecolor.txt000066400000000000000000000756251471373143100205320ustar00rootroot00000000000000''..;';ldd00MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW ,...''',;ccoKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNW .......'';:xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMM  ...',..,,:oKWMMMMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMM .....c,:,:lcoxk0XXXXXXXNNNNNNNNNNNNNNNWWWWMMMMMMMMMMMMMMMMMM .....,..:::;ldkO0KKKKXXXXKKK0000KKKKKKXXNNNNWWWWWNNNNNNNNNNN .......',;:ox0000OO0O0OxdxkkddxkOOOOkO0OO0KXXXXKkkkO00OOOkkx ..,..,;ckkkkkkkkkxdddxdcclollclxkkxddxkxkO00KK00OkkO00OOOkkk ..'..:::xkxxdxxoc:cddddoodddddxxxxodkkkkOOOOOOOkkkkkkkkkkkxx ......,';,;:ldddooddodxxxxxxxxkxxkoxxxxxxkkkxxxdxxddddddoooo ..';;;::cc::clco0XXKKkollodxxkxkkxokkkkkxdxxxddxxxddooddolll ...,cccc;l:;c::l0NKxNKd0occodddxxookkkxxxxxdddddddoolollllll ......::':;,c;lOocOcW0;xko,;ccldlcodddoodddooooolcclclccc:::  .....''.,'.'.'cc,c;::,,c:;;;,:l:,,cooddoxddddlcllc:cclllcc;  .....''.,'...:l;.l.'..'lo'l,.'.'''.';c;',ccc:c,.,,,;,;'..'.  .. .... ...;,:o:'l,olc,',';;...'.' ......,,,,..,....,'.  .   ..   ...'..:,:d:'d,kOd,dl.,c.;;;,' ............,,.. ..  . .  .    ...clcxlokl;o:ddl'clc:;.,;:'..c;.......  .............      ..,codxxxxkkkkkkxxoooxdl;,;'.        ..........;::;;,,; ......';looodxddddddc;,,..,lllc::,,'',''...  ....   .'..';::   ...,coodddxxxxxddd;'...';odddooooooollc:,....''..'''...;:: .....,ldxkkxkkkxxddo:;' :dxxxxxxddddddoool:;::;,,,;;::::cc:: ....'codxkkkkkxxddoollc;oxxkkxkkxxddddddoodollc,''';;cc:cc:: jp2a-1.3.2/tests/grind-color-x.html000066400000000000000000002553311471373143100171020ustar00rootroot00000000000000 jp2a converted image
OO00xOxl::..                                                
k0XKOOOkxooc.                                               
KXXXX0KOOxd;                                                
NXKXOk00kkdc.                                               
KXKX0okdkdloc;,........                                     
0XXXKk00dddxl:,'........................                    
00KXK00Okxdc;....''.'.';:;,,::;,'''','.''.......,,,'..''',,;
00k0Kkxo,,,,,,,,,;:::;:oolcllol;,,;::;,;,'......',,'..''',,,
00O0Kddd;,;;:;;codo::::cc:::::;;;;c:,,,,''''''',,,,,,,,,,,;;
KK00X0kOxkxdl:::cc::c:;;;;;;;;,;;,c;;;;;;,,,;;;:;;::::::cccc
00Oxxxddooddoloc.....,cllc:;;,;,,;c,,,,,;:;;;::;;;::cc::clll
0XXkooooxldxoddl. .; .:.cooc:::;;cc,,,;;;;;:::::::cclcllllll
00K0KKddOdxkoxl'co'o .x;,ckxool:loc:::cc:::cccccloololoooddd
N0XX0XOO0kO0O0Oookoxddkkodxxxkdldkkocc::c;::::lollodoollloox
N0KX0XOO0kO0K0dlx0l0O00OlcOlk0O0OOOKOxoxOkooodok0kkkxkxO00OK
N0XNKXKXNXK0xkdcdOlkclokOkOxx0K0O0ONXXKXX0kkkk0Kk00K0kOXNNXN
WKXWNNXXKO00dkd:dO:k,':k:l0ko0xxxkONKKXKKKKKKXXKkk00NXXNNXNK
WXNWWWKKKolo;lc,lxcd::lOolodx0kxdO00ox0KKXXXXNNXK0000KXKXX0K
WWNNNXKkoc:;;;;,,,,,,;;ccc;:lxkxOXNNNNNNNNXXXXXX0KK0xddxxkkx
XXXXXKOxlccc:;::::::oxkkXKkllloddkkOOkOO0KKNNXK0XNNNKO00Oxdd
NNXX0kocc:::;;;;;:::xOKXKOxc:::cccccccllodk0000OO00OOO000xdd
XXXK0kl:;,,;,,,;;::cdxONd:;;;;;;::::::cccldxddxkkkxxddddoodd
XKKXOoc:;,,,,,;;::cclloxc;;,,;,,;;::::::cc:cllokOOOxxoodoodd
jp2a-1.3.2/tests/grind-color.html000066400000000000000000002550151471373143100166340ustar00rootroot00000000000000 jp2a converted image
OO00xOxl::..                                                
k0XKOOOkxooc.                                               
KXXXX0KOOxd;                                                
NXKXOk00kkdc.                                               
KXKX0okdkdloc;,........                                     
0XXXKk00dddxl:,'........................                    
00KXK00Okxdc;....''.'.';:;,,::;,'''','.''.......,,,'..''',,;
00k0Kkxo,,,,,,,,,;:::;:oolcllol;,,;::;,;,'......',,'..''',,,
00O0Kddd;,;;:;;codo::::cc:::::;;;;c:,,,,''''''',,,,,,,,,,,;;
KK00X0kOxkxdl:::cc::c:;;;;;;;;,;;,c;;;;;;,,,;;;:;;::::::cccc
00Oxxxddooddoloc.....,cllc:;;,;,,;c,,,,,;:;;;::;;;::cc::clll
0XXkooooxldxoddl. .; .:.cooc:::;;cc,,,;;;;;:::::::cclcllllll
00K0KKddOdxkoxl'co'o .x;,ckxool:loc:::cc:::cccccloololoooddd
N0XX0XOO0kO0O0Oookoxddkkodxxxkdldkkocc::c;::::lollodoollloox
N0KX0XOO0kO0K0dlx0l0O00OlcOlk0O0OOOKOxoxOkooodok0kkkxkxO00OK
N0XNKXKXNXK0xkdcdOlkclokOkOxx0K0O0ONXXKXX0kkkk0Kk00K0kOXNNXN
WKXWNNXXKO00dkd:dO:k,':k:l0ko0xxxkONKKXKKKKKKXXKkk00NXXNNXNK
WXNWWWKKKolo;lc,lxcd::lOolodx0kxdO00ox0KKXXXXNNXK0000KXKXX0K
WWNNNXKkoc:;;;;,,,,,,;;ccc;:lxkxOXNNNNNNNNXXXXXX0KK0xddxxkkx
XXXXXKOxlccc:;::::::oxkkXKkllloddkkOOkOO0KKNNXK0XNNNKO00Oxdd
NNXX0kocc:::;;;;;:::xOKXKOxc:::cccccccllodk0000OO00OOO000xdd
XXXK0kl:;,,;,,,;;::cdxONd:;;;;;;::::::cccldxddxkkkxxddddoodd
XKKXOoc:;,,,,,;;::cclloxc;;,,;,,;;::::::cc:cllokOOOxxoodoodd
jp2a-1.3.2/tests/grind-flipx-x.html000066400000000000000000004444311471373143100171070ustar00rootroot00000000000000 jp2a converted image
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKKXxkd::';,'..,'
WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkdxlll:;,;,.....
MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXdolc;,,,''.....,
WNKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOdc:;,,'.......::
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMN0c;;,;'.'. .....
MMWXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNko;,''.... .. ..
MMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMWXOo:,'...,,.. . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWMMMMMMN0oc;,,'..',..... 
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNNNNWWWWWNkc:;,,,:.;'..... 
MMMMMMMMMMMMMMMMMMMMMMMMWWWWWWNNNNNNXXXNNNXNNWNNNXXXXXXXXXX0ddololo;,;o';'......
MMMMMMMMMMMMMWMMMMMMWWWWWWNNNXXXXXXXXKXKKXKXXXXNXXXXXXXKKKOdocc:;ldc;.,,d'... ..
WWWWNNNNNNNNNNWWWWWWWNNNNNXXKXKKKKKKK00000KKKKKKXXXXXXKKK0000dxl;,;cd;..'.... .'
OO000KKKKXXXKKKXNNNNNNNXXXXKKK0000000O00O00000KKXXXKKKKKKK00OOko:;;,,'..........
xkkOOOO00K0OOOkkKXXXNXXKK00000kkO0OOOOOkxxkOOkxxO0KK0KKO000K00Oo:;;'',.... .....
dxxxkkOOO0OOxxxxOKKKKK00OxxkOkxxkOOOOkolllldkxolldOOkkOkOO00000Okxcc::',.. ..'''
xkkxOOOOO00xddxkO000000OOxddxxddddkkkxoccclloolc:ckkdxkxkOOOO0OOOxxxxd''.'..'...
kkkkO000K000KOO0KKKXKK000Oxkkxdxdokkxxdllclloll::lxxoooddxkxxkxkkkOOOx:,,, ';...
xkkkOOOO0OO0OOO0OOO000O0Okkxxxxddoxxdxxdooddoolc:ldxdddcccoxxxxxxkkOOdc,:' ,;';'
xxxxkkkxxxxxxxxxxkkO0OOOOOOkOkOkklkxxxxxxdddoooooooooolc:;:dxxdddxxxd::;:...'...
ddxxxxddddxxxxxkkkkkkkkOkkkxkkkkxoxkkkkkkkkxkkxkxxxdddddllcodddolodol;,:,...... 
ooooooddddddodddddxxxkkkxxkkkxxxxoxkxxkkkkkdxxxxxkxxxxxxdxkOkkxl,;'.',''........
lllooooxdxddxdxxxdddxkkkkkkxxkkxxloxddxxxdxxxxxxddollcoddoodooolc:.,''''.. .'...
lllooddollodxxxkkxxxxkxxddkkkOkkOxlxkkkxkkkxxxdllclx0KXXXXOoclllccllc;;,;;;:,'..
llcloodddooodddddodddxxdxdxkkkkkOkokkkkdkxxxocccookKXXXXXKoc:ccc:;:cclolccc:...'
llllollloooooooddxxddddxxxOkkkkkkklxkkxoxxdolc:cxO0XXKOXXKd:;:c:;;:l:clc::l,.. '
cclcllloolloddxxdoodddodxdxddxkkkxlxdddoddoolclOKO'KN0;XNN0o:;;c;'oo;;ccll;'....
:;;:lccccllolllooooooloddoooooddddcocddddoc:,:cOX0'XW0;XOkKOc;;c:'ll;;ol'.''..',
cc:cccccll:cc::cloooooddddxddodoolccldo:;::,'ckkc:,XW0;0..dOo:;c;.;,''c;.....'' 
::ccllllc::;:clllcooodoxxxdloxkxd:,,:oo,';::;cxd'',xOo:l,;,::'','.'............ 
ccclllccccccclllcldddddxxddOkdddl,;::ll:,;,,,,,,;;,,;;cl:l:::.''..;,..''... ... 
';c:::cllod;cc:;:cddddoolo,do.','.'',cc;',,;';c:''',..,k..Od'..,'.::'';;... ... 
..,.'.':,.'',;'.,c;;l:c:,,;:ll,...'''.',.':x.l0k'...',,x..lok,....;:'';;... ... 
 .. .'''';''..;..cl;;;c:'..,:;;; ''.'....';:,:c;,,,''''.....:''............ ... 
  .  ..,:;'...,'..,;:;;,........ ...''...'',;;;;::;,,,,;'';:;.....   ... .. .'. 
 ..   ..'. ...''..',',,'..       ''''.'..,c:....';kO0o;0..O0O'cl,.'.   .... ... 
..... ... ....;'.....''....   .  ,,',,:'.cd:..ld,:XXXd:K'.0K0'od,.,'.    .. ..  
.. .. . . .'.,;'..  .  .......'' ',,;;c'.,,..lkd';kxxc;l''::;''.........     .. 
....      ...''...     ...'..;;:..',:;c'.'',,,,,,,,,,,,',,,;;.;:..;;....     .. 
 ..  ...........    .........;cc'.',;::'.';;:clc';dxkc;x..kKO'xO:cdc....      . 
;,''',,,,,;,''...  .....  . .',,'...;c:,.:dxkkOk:l000OkOxx0K0OO00Oxc'...        
;,,;;;::c:;...... ......  . .      ..,;,,:odxkdxxxkkkOOOkkxxxddxxxdol:,...      
;;;;;;;;:,' ........   ..           ',,,:ccloo';lolcoxxxxxddodxdddolc;...    .  
;;;:,'.',,.  . .....  .. ...''....',;;::clll:.' ,c,;:odddddddxxddoool;.... .... 
;:c;..  ..     .........;;:::ccccclllllooool.   ...;;oddddxxxddddodoocl:,...... 
c:;,.   .........'....';:ccclollllllooododoo'   ..','ddddddddxxxddddoooc'...    
ccc;,,;;:cc;,',:;'',;'',::lloodooooooooddddxdol.  .',ddxxxxxxxxxdxxddol:,'....  
::c:cc:c:c:cc;;;,'';:,',cloooooododddddxxxddddo,  ..,odddxxxkxxkxxxxxdoc'....   
c:cccc;:;:;,,;;;;;c:::clllooodddddddxxxkkxkkxdd: .;:ccldddxxkkkxxxkkkdol:'..  . 
c::cc::cc;;'...',:coolloolodddddddddxkkkxxkkxxdc.;cllooddddxxxkkkkkkkxooc,......
:::llc:cc;,:;,;'.cclloddolodddddoddxxxkkxxkkxdddolllloddxddxxxkxxxxxxxdol:'.....
jp2a-1.3.2/tests/grind-flipx.html000066400000000000000000004440621471373143100166420ustar00rootroot00000000000000 jp2a converted image
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKKXxkd::';,'..,'
WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkdxlll:;,;,.....
MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXdolc;,,,''.....,
WNKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOdc:;,,'.......::
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMN0c;;,;'.'. .....
MMWXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNko;,''.... .. ..
MMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMWXOo:,'...,,.. . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWMMMMMMN0oc;,,'..',..... 
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNNNNWWWWWNkc:;,,,:.;'..... 
MMMMMMMMMMMMMMMMMMMMMMMMWWWWWWNNNNNNXXXNNNXNNWNNNXXXXXXXXXX0ddololo;,;o';'......
MMMMMMMMMMMMMWMMMMMMWWWWWWNNNXXXXXXXXKXKKXKXXXXNXXXXXXXKKKOdocc:;ldc;.,,d'... ..
WWWWNNNNNNNNNNWWWWWWWNNNNNXXKXKKKKKKK00000KKKKKKXXXXXXKKK0000dxl;,;cd;..'.... .'
OO000KKKKXXXKKKXNNNNNNNXXXXKKK0000000O00O00000KKXXXKKKKKKK00OOko:;;,,'..........
xkkOOOO00K0OOOkkKXXXNXXKK00000kkO0OOOOOkxxkOOkxxO0KK0KKO000K00Oo:;;'',.... .....
dxxxkkOOO0OOxxxxOKKKKK00OxxkOkxxkOOOOkolllldkxolldOOkkOkOO00000Okxcc::',.. ..'''
xkkxOOOOO00xddxkO000000OOxddxxddddkkkxoccclloolc:ckkdxkxkOOOO0OOOxxxxd''.'..'...
kkkkO000K000KOO0KKKXKK000Oxkkxdxdokkxxdllclloll::lxxoooddxkxxkxkkkOOOx:,,, ';...
xkkkOOOO0OO0OOO0OOO000O0Okkxxxxddoxxdxxdooddoolc:ldxdddcccoxxxxxxkkOOdc,:' ,;';'
xxxxkkkxxxxxxxxxxkkO0OOOOOOkOkOkklkxxxxxxdddoooooooooolc:;:dxxdddxxxd::;:...'...
ddxxxxddddxxxxxkkkkkkkkOkkkxkkkkxoxkkkkkkkkxkkxkxxxdddddllcodddolodol;,:,...... 
ooooooddddddodddddxxxkkkxxkkkxxxxoxkxxkkkkkdxxxxxkxxxxxxdxkOkkxl,;'.',''........
lllooooxdxddxdxxxdddxkkkkkkxxkkxxloxddxxxdxxxxxxddollcoddoodooolc:.,''''.. .'...
lllooddollodxxxkkxxxxkxxddkkkOkkOxlxkkkxkkkxxxdllclx0KXXXXOoclllccllc;;,;;;:,'..
llcloodddooodddddodddxxdxdxkkkkkOkokkkkdkxxxocccookKXXXXXKoc:ccc:;:cclolccc:...'
llllollloooooooddxxddddxxxOkkkkkkklxkkxoxxdolc:cxO0XXKOXXKd:;:c:;;:l:clc::l,.. '
cclcllloolloddxxdoodddodxdxddxkkkxlxdddoddoolclOKO'KN0;XNN0o:;;c;'oo;;ccll;'....
:;;:lccccllolllooooooloddoooooddddcocddddoc:,:cOX0'XW0;XOkKOc;;c:'ll;;ol'.''..',
cc:cccccll:cc::cloooooddddxddodoolccldo:;::,'ckkc:,XW0;0..dOo:;c;.;,''c;.....'' 
::ccllllc::;:clllcooodoxxxdloxkxd:,,:oo,';::;cxd'',xOo:l,;,::'','.'............ 
ccclllccccccclllcldddddxxddOkdddl,;::ll:,;,,,,,,;;,,;;cl:l:::.''..;,..''... ... 
';c:::cllod;cc:;:cddddoolo,do.','.'',cc;',,;';c:''',..,k..Od'..,'.::'';;... ... 
..,.'.':,.'',;'.,c;;l:c:,,;:ll,...'''.',.':x.l0k'...',,x..lok,....;:'';;... ... 
 .. .'''';''..;..cl;;;c:'..,:;;; ''.'....';:,:c;,,,''''.....:''............ ... 
  .  ..,:;'...,'..,;:;;,........ ...''...'',;;;;::;,,,,;'';:;.....   ... .. .'. 
 ..   ..'. ...''..',',,'..       ''''.'..,c:....';kO0o;0..O0O'cl,.'.   .... ... 
..... ... ....;'.....''....   .  ,,',,:'.cd:..ld,:XXXd:K'.0K0'od,.,'.    .. ..  
.. .. . . .'.,;'..  .  .......'' ',,;;c'.,,..lkd';kxxc;l''::;''.........     .. 
....      ...''...     ...'..;;:..',:;c'.'',,,,,,,,,,,,',,,;;.;:..;;....     .. 
 ..  ...........    .........;cc'.',;::'.';;:clc';dxkc;x..kKO'xO:cdc....      . 
;,''',,,,,;,''...  .....  . .',,'...;c:,.:dxkkOk:l000OkOxx0K0OO00Oxc'...        
;,,;;;::c:;...... ......  . .      ..,;,,:odxkdxxxkkkOOOkkxxxddxxxdol:,...      
;;;;;;;;:,' ........   ..           ',,,:ccloo';lolcoxxxxxddodxdddolc;...    .  
;;;:,'.',,.  . .....  .. ...''....',;;::clll:.' ,c,;:odddddddxxddoool;.... .... 
;:c;..  ..     .........;;:::ccccclllllooool.   ...;;oddddxxxddddodoocl:,...... 
c:;,.   .........'....';:ccclollllllooododoo'   ..','ddddddddxxxddddoooc'...    
ccc;,,;;:cc;,',:;'',;'',::lloodooooooooddddxdol.  .',ddxxxxxxxxxdxxddol:,'....  
::c:cc:c:c:cc;;;,'';:,',cloooooododddddxxxddddo,  ..,odddxxxkxxkxxxxxdoc'....   
c:cccc;:;:;,,;;;;;c:::clllooodddddddxxxkkxkkxdd: .;:ccldddxxkkkxxxkkkdol:'..  . 
c::cc::cc;;'...',:coolloolodddddddddxkkkxxkkxxdc.;cllooddddxxxkkkkkkkxooc,......
:::llc:cc;,:;,;'.cclloddolodddddoddxxxkkxxkkxdddolllloddxddxxxkxxxxxxxdol:'.....
jp2a-1.3.2/tests/grind-flipxy-x.html000066400000000000000000004444311471373143100173000ustar00rootroot00000000000000 jp2a converted image
:::llc:cc;,:;,;'.cclloddolodddddoddxxxkkxxkkxdddolllloddxddxxxkxxxxxxxdol:'.....
c::cc::cc;;'...',:coolloolodddddddddxkkkxxkkxxdc.;cllooddddxxxkkkkkkkxooc,......
c:cccc;:;:;,,;;;;;c:::clllooodddddddxxxkkxkkxdd: .;:ccldddxxkkkxxxkkkdol:'..  . 
::c:cc:c:c:cc;;;,'';:,',cloooooododddddxxxddddo,  ..,odddxxxkxxkxxxxxdoc'....   
ccc;,,;;:cc;,',:;'',;'',::lloodooooooooddddxdol.  .',ddxxxxxxxxxdxxddol:,'....  
c:;,.   .........'....';:ccclollllllooododoo'   ..','ddddddddxxxddddoooc'...    
;:c;..  ..     .........;;:::ccccclllllooool.   ...;;oddddxxxddddodoocl:,...... 
;;;:,'.',,.  . .....  .. ...''....',;;::clll:.' ,c,;:odddddddxxddoool;.... .... 
;;;;;;;;:,' ........   ..           ',,,:ccloo';lolcoxxxxxddodxdddolc;...    .  
;,,;;;::c:;...... ......  . .      ..,;,,:odxkdxxxkkkOOOkkxxxddxxxdol:,...      
;,''',,,,,;,''...  .....  . .',,'...;c:,.:dxkkOk:l000OkOxx0K0OO00Oxc'...        
 ..  ...........    .........;cc'.',;::'.';;:clc';dxkc;x..kKO'xO:cdc....      . 
....      ...''...     ...'..;;:..',:;c'.'',,,,,,,,,,,,',,,;;.;:..;;....     .. 
.. .. . . .'.,;'..  .  .......'' ',,;;c'.,,..lkd';kxxc;l''::;''.........     .. 
..... ... ....;'.....''....   .  ,,',,:'.cd:..ld,:XXXd:K'.0K0'od,.,'.    .. ..  
 ..   ..'. ...''..',',,'..       ''''.'..,c:....';kO0o;0..O0O'cl,.'.   .... ... 
  .  ..,:;'...,'..,;:;;,........ ...''...'',;;;;::;,,,,;'';:;.....   ... .. .'. 
 .. .'''';''..;..cl;;;c:'..,:;;; ''.'....';:,:c;,,,''''.....:''............ ... 
..,.'.':,.'',;'.,c;;l:c:,,;:ll,...'''.',.':x.l0k'...',,x..lok,....;:'';;... ... 
';c:::cllod;cc:;:cddddoolo,do.','.'',cc;',,;';c:''',..,k..Od'..,'.::'';;... ... 
ccclllccccccclllcldddddxxddOkdddl,;::ll:,;,,,,,,;;,,;;cl:l:::.''..;,..''... ... 
::ccllllc::;:clllcooodoxxxdloxkxd:,,:oo,';::;cxd'',xOo:l,;,::'','.'............ 
cc:cccccll:cc::cloooooddddxddodoolccldo:;::,'ckkc:,XW0;0..dOo:;c;.;,''c;.....'' 
:;;:lccccllolllooooooloddoooooddddcocddddoc:,:cOX0'XW0;XOkKOc;;c:'ll;;ol'.''..',
cclcllloolloddxxdoodddodxdxddxkkkxlxdddoddoolclOKO'KN0;XNN0o:;;c;'oo;;ccll;'....
llllollloooooooddxxddddxxxOkkkkkkklxkkxoxxdolc:cxO0XXKOXXKd:;:c:;;:l:clc::l,.. '
llcloodddooodddddodddxxdxdxkkkkkOkokkkkdkxxxocccookKXXXXXKoc:ccc:;:cclolccc:...'
lllooddollodxxxkkxxxxkxxddkkkOkkOxlxkkkxkkkxxxdllclx0KXXXXOoclllccllc;;,;;;:,'..
lllooooxdxddxdxxxdddxkkkkkkxxkkxxloxddxxxdxxxxxxddollcoddoodooolc:.,''''.. .'...
ooooooddddddodddddxxxkkkxxkkkxxxxoxkxxkkkkkdxxxxxkxxxxxxdxkOkkxl,;'.',''........
ddxxxxddddxxxxxkkkkkkkkOkkkxkkkkxoxkkkkkkkkxkkxkxxxdddddllcodddolodol;,:,...... 
xxxxkkkxxxxxxxxxxkkO0OOOOOOkOkOkklkxxxxxxdddoooooooooolc:;:dxxdddxxxd::;:...'...
xkkkOOOO0OO0OOO0OOO000O0Okkxxxxddoxxdxxdooddoolc:ldxdddcccoxxxxxxkkOOdc,:' ,;';'
kkkkO000K000KOO0KKKXKK000Oxkkxdxdokkxxdllclloll::lxxoooddxkxxkxkkkOOOx:,,, ';...
xkkxOOOOO00xddxkO000000OOxddxxddddkkkxoccclloolc:ckkdxkxkOOOO0OOOxxxxd''.'..'...
dxxxkkOOO0OOxxxxOKKKKK00OxxkOkxxkOOOOkolllldkxolldOOkkOkOO00000Okxcc::',.. ..'''
xkkOOOO00K0OOOkkKXXXNXXKK00000kkO0OOOOOkxxkOOkxxO0KK0KKO000K00Oo:;;'',.... .....
OO000KKKKXXXKKKXNNNNNNNXXXXKKK0000000O00O00000KKXXXKKKKKKK00OOko:;;,,'..........
WWWWNNNNNNNNNNWWWWWWWNNNNNXXKXKKKKKKK00000KKKKKKXXXXXXKKK0000dxl;,;cd;..'.... .'
MMMMMMMMMMMMMWMMMMMMWWWWWWNNNXXXXXXXXKXKKXKXXXXNXXXXXXXKKKOdocc:;ldc;.,,d'... ..
MMMMMMMMMMMMMMMMMMMMMMMMWWWWWWNNNNNNXXXNNNXNNWNNNXXXXXXXXXX0ddololo;,;o';'......
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNNNNWWWWWNkc:;,,,:.;'..... 
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWMMMMMMN0oc;,,'..',..... 
MMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMWXOo:,'...,,.. . .
MMWXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNko;,''.... .. ..
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMN0c;;,;'.'. .....
WNKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOdc:;,,'.......::
MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXdolc;,,,''.....,
WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkdxlll:;,;,.....
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKKXxkd::';,'..,'
jp2a-1.3.2/tests/grind-flipxy.html000066400000000000000000004440621471373143100170330ustar00rootroot00000000000000 jp2a converted image
:::llc:cc;,:;,;'.cclloddolodddddoddxxxkkxxkkxdddolllloddxddxxxkxxxxxxxdol:'.....
c::cc::cc;;'...',:coolloolodddddddddxkkkxxkkxxdc.;cllooddddxxxkkkkkkkxooc,......
c:cccc;:;:;,,;;;;;c:::clllooodddddddxxxkkxkkxdd: .;:ccldddxxkkkxxxkkkdol:'..  . 
::c:cc:c:c:cc;;;,'';:,',cloooooododddddxxxddddo,  ..,odddxxxkxxkxxxxxdoc'....   
ccc;,,;;:cc;,',:;'',;'',::lloodooooooooddddxdol.  .',ddxxxxxxxxxdxxddol:,'....  
c:;,.   .........'....';:ccclollllllooododoo'   ..','ddddddddxxxddddoooc'...    
;:c;..  ..     .........;;:::ccccclllllooool.   ...;;oddddxxxddddodoocl:,...... 
;;;:,'.',,.  . .....  .. ...''....',;;::clll:.' ,c,;:odddddddxxddoool;.... .... 
;;;;;;;;:,' ........   ..           ',,,:ccloo';lolcoxxxxxddodxdddolc;...    .  
;,,;;;::c:;...... ......  . .      ..,;,,:odxkdxxxkkkOOOkkxxxddxxxdol:,...      
;,''',,,,,;,''...  .....  . .',,'...;c:,.:dxkkOk:l000OkOxx0K0OO00Oxc'...        
 ..  ...........    .........;cc'.',;::'.';;:clc';dxkc;x..kKO'xO:cdc....      . 
....      ...''...     ...'..;;:..',:;c'.'',,,,,,,,,,,,',,,;;.;:..;;....     .. 
.. .. . . .'.,;'..  .  .......'' ',,;;c'.,,..lkd';kxxc;l''::;''.........     .. 
..... ... ....;'.....''....   .  ,,',,:'.cd:..ld,:XXXd:K'.0K0'od,.,'.    .. ..  
 ..   ..'. ...''..',',,'..       ''''.'..,c:....';kO0o;0..O0O'cl,.'.   .... ... 
  .  ..,:;'...,'..,;:;;,........ ...''...'',;;;;::;,,,,;'';:;.....   ... .. .'. 
 .. .'''';''..;..cl;;;c:'..,:;;; ''.'....';:,:c;,,,''''.....:''............ ... 
..,.'.':,.'',;'.,c;;l:c:,,;:ll,...'''.',.':x.l0k'...',,x..lok,....;:'';;... ... 
';c:::cllod;cc:;:cddddoolo,do.','.'',cc;',,;';c:''',..,k..Od'..,'.::'';;... ... 
ccclllccccccclllcldddddxxddOkdddl,;::ll:,;,,,,,,;;,,;;cl:l:::.''..;,..''... ... 
::ccllllc::;:clllcooodoxxxdloxkxd:,,:oo,';::;cxd'',xOo:l,;,::'','.'............ 
cc:cccccll:cc::cloooooddddxddodoolccldo:;::,'ckkc:,XW0;0..dOo:;c;.;,''c;.....'' 
:;;:lccccllolllooooooloddoooooddddcocddddoc:,:cOX0'XW0;XOkKOc;;c:'ll;;ol'.''..',
cclcllloolloddxxdoodddodxdxddxkkkxlxdddoddoolclOKO'KN0;XNN0o:;;c;'oo;;ccll;'....
llllollloooooooddxxddddxxxOkkkkkkklxkkxoxxdolc:cxO0XXKOXXKd:;:c:;;:l:clc::l,.. '
llcloodddooodddddodddxxdxdxkkkkkOkokkkkdkxxxocccookKXXXXXKoc:ccc:;:cclolccc:...'
lllooddollodxxxkkxxxxkxxddkkkOkkOxlxkkkxkkkxxxdllclx0KXXXXOoclllccllc;;,;;;:,'..
lllooooxdxddxdxxxdddxkkkkkkxxkkxxloxddxxxdxxxxxxddollcoddoodooolc:.,''''.. .'...
ooooooddddddodddddxxxkkkxxkkkxxxxoxkxxkkkkkdxxxxxkxxxxxxdxkOkkxl,;'.',''........
ddxxxxddddxxxxxkkkkkkkkOkkkxkkkkxoxkkkkkkkkxkkxkxxxdddddllcodddolodol;,:,...... 
xxxxkkkxxxxxxxxxxkkO0OOOOOOkOkOkklkxxxxxxdddoooooooooolc:;:dxxdddxxxd::;:...'...
xkkkOOOO0OO0OOO0OOO000O0Okkxxxxddoxxdxxdooddoolc:ldxdddcccoxxxxxxkkOOdc,:' ,;';'
kkkkO000K000KOO0KKKXKK000Oxkkxdxdokkxxdllclloll::lxxoooddxkxxkxkkkOOOx:,,, ';...
xkkxOOOOO00xddxkO000000OOxddxxddddkkkxoccclloolc:ckkdxkxkOOOO0OOOxxxxd''.'..'...
dxxxkkOOO0OOxxxxOKKKKK00OxxkOkxxkOOOOkolllldkxolldOOkkOkOO00000Okxcc::',.. ..'''
xkkOOOO00K0OOOkkKXXXNXXKK00000kkO0OOOOOkxxkOOkxxO0KK0KKO000K00Oo:;;'',.... .....
OO000KKKKXXXKKKXNNNNNNNXXXXKKK0000000O00O00000KKXXXKKKKKKK00OOko:;;,,'..........
WWWWNNNNNNNNNNWWWWWWWNNNNNXXKXKKKKKKK00000KKKKKKXXXXXXKKK0000dxl;,;cd;..'.... .'
MMMMMMMMMMMMMWMMMMMMWWWWWWNNNXXXXXXXXKXKKXKXXXXNXXXXXXXKKKOdocc:;ldc;.,,d'... ..
MMMMMMMMMMMMMMMMMMMMMMMMWWWWWWNNNNNNXXXNNNXNNWNNNXXXXXXXXXX0ddololo;,;o';'......
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWNNNNNNNNNNNNWWWWWNkc:;,,,:.;'..... 
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWMMMMMMN0oc;,,'..',..... 
MMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMWXOo:,'...,,.. . .
MMWXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNko;,''.... .. ..
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMN0c;;,;'.'. .....
WNKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOdc:;,,'.......::
MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXdolc;,,,''.....,
WWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkdxlll:;,;,.....
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKKXxkd::';,'..,'
jp2a-1.3.2/tests/grind-flipy-x.html000066400000000000000000004444311471373143100171100ustar00rootroot00000000000000 jp2a converted image
.....':lodxxxxxxxkxxxddxddollllodddxkkxxkkxxxddodddddoloddollcc.';,;:,;cc:cll:::
......,cooxkkkkkkkxxxddddoollc;.cdxxkkxxkkkxdddddddddoloollooc:,'...';;cc::cc::c
 .  ..':lodkkkxxxkkkxxdddlcc:;. :ddxkkxkkxxxdddddddooolllc:::c;;;;;,,;:;:;cccc:c
   ....'codxxxxxkxxkxxxdddo,..  ,oddddxxxdddddodoooooolc,',:;'',;;;cc:c:c:cc:c::
  ....',:loddxxdxxxxxxxxxdd,'.  .lodxddddoooooooodooll::,'';,'';:,',;cc:;;,,;ccc
    ...'coooddddxxxdddddddd','..   'oododooollllllolccc:;'....'.........   .,;:c
 ......,:lcoododdddxxxddddo;;...   .loooolllllccccc:::;;.........     ..  ..;c:;
 .... ....;loooddxxdddddddo:;,c, '.:lllc::;;,'....''... ..  ..... .  .,,'.',:;;;
  .    ...;clodddxdoddxxxxxoclol;'oolcc:,,,'           ..   ........ ',:;;;;;;;;
      ...,:lodxxxddxxxkkOOOkkkxxxdkxdo:,,;,..      . .  ...... ......;:c::;;;,,;
        ...'cxO00OO0K0xxOkO000l:kOkkxd:.,:c;...',,'. .  .....  ...'',;,,,,,''',;
 .      ....cdc:Ox'OKk..x;ckxd;'clc:;;'.'::;,'.'cc;.........    ...........  .. 
 ..     ....;;..:;.;;,,,',,,,,,,,,,,,''.'c;:,'..:;;..'...     ...''...      ....
 ..     .........'';::''l;cxxk;'dkl..,,.'c;;,,' ''.......  .  ..';,.'. . . .. ..
  .. ..    .',.,do'0K0.'K:dXXX:,dl..:dc.':,,',,  .   ....''.....';.... ... .....
 ... ....   .'.,lc'O0O..0;o0Ok;'....:c,..'.''''       ..',,','..''... .'..   .. 
 .'. .. ...   .....;:;'';,,,,;::;;;;,''...''... ........,;;:;,..',...';:,..  .  
 ... ............'':.....'''',,,;c:,:;'....'.'' ;;;:,..':c;;;lc..;..'';''''. .. 
 ... ...;;'':;....,kol..x,,'...'k0l.x:'.,'.'''...,ll:;,,:c:l;;c,.';,''.,:'.'.,..
 ... ...;;''::.',..'dO..k,..,''':c;';,,';cc,''.','.od,olooddddc:;:cc;dollc:::c;'
 ... ...''..,;..''.:::l:lc;;,,;;,,,,,,;,:ll::;,ldddkOddxxdddddlclllccccccclllccc
 ............'.',''::,;,l:oOx,''dxc;::;',oo:,,:dxkxoldxxxodoooclllc:;::cllllcc::
 ''.....;c'',;.;c;:oOd..0;0WX,:ckkc',::;:odlccloododdxddddooooolc::cc:llccccc:cc
,'..''.'lo;;ll':c;;cOKkOX;0WX'0XOc:,:coddddcocddddoooooddoloooooolllollccccl:;;:
....';llcc;;oo';c;;:o0NNX;0NK'OKOlclooddodddxlxkkkxddxdxdodddoodxxddolloolllclcc
' ..,l::clc:l:;;:c:;:dKXXOKXX0Oxc:clodxxoxkkxlkkkkkkkOxxxddddxxddooooooolllollll
'...:ccclolcc:;:ccc:coKXXXXXKkoocccoxxxkdkkkkokOkkkkkxdxdxxdddodddddooodddoolcll
..',:;;;,;;cllcclllcoOXXXXK0xlclldxxxkkkxkkkxlxOkkOkkkddxxkxxxxkkxxxdolloddoolll
...'. ..'''',.:clooodooddoclloddxxxxxxdxxxddxolxxkkxxkkkkkkxdddxxxdxddxdxoooolll
........'','.';,lxkkOkxdxxxxxxkxxxxxdkkkkkxxkxoxxxxkkkxxkkkxxxdddddoddddddoooooo
 ......,:,;lodolodddoclldddddxxxkxkkxkkkkkkkkxoxkkkkxkkkOkkkkkkkkxxxxxddddxxxxdd
...'...:;::dxxxdddxxd:;:cloooooooooodddxxxxxxklkkOkOkOOOOOO0Okkxxxxxxxxxxkkkxxxx
';';, ':,cdOOkkxxxxxxocccdddxdl:clooddoodxxdxxoddxxxxkkO0O000OOO0OOO0OO0OOOOkkkx
...;' ,,,:xOOOkkkxkxxkxddoooxxl::llollclldxxkkodxdxkkxO000KKXKKK0OOK000K000Okkkk
...'..'.''dxxxxOOO0OOOOkxkxdkkc:cloollcccoxkkkddddxxddxOO000000Okxddx00OOOOOxkkx
'''.. ..,'::ccxkO00000OOkOkkOOdlloxkdllllokOOOOkxxkOkxxO00KKKKKOxxxxOO0OOOkkxxxd
..... ....,'';;:oO00K000OKK0KK0OxxkOOkxxkOOOOO0Okk00000KKXXNXXXKkkOOO0K00OOOOkkx
..........',,;;:okOO00KKKKKKKXXXKK00000O00O0000000KKKXXXXNNNNNNNXKKKXXXKKKK000OO
'. ....'..;dc;,;lxd0000KKKXXXXXXKKKKKK00000KKKKKKKXKXXNNNNNWWWWWWWNNNNNNNNNNWWWW
.. ...'d,,.;cdl;:ccodOKKKXXXXXXXNXXXXKXKKXKXXXXXXXXNNNWWWWWWMMMMMMWMMMMMMMMMMMMM
......';'o;,;ololodd0XXXXXXXXXXNNNWNNXNNNXXXNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
 .....';.:,,,;:ckNWWWWWNNNNNNNNNNNNWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
 .....,'..',,;co0NMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
. . ..,,...',:oOXWMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNMMM
.. .. ....'',;okNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXWMM
..... .'.';,;;c0NMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
::.......',,;:cdONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKNW
,.....'',,,;clodXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMM
.....,;,;:lllxdkWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWW
',..',;'::dkxXKKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
jp2a-1.3.2/tests/grind-flipy.html000066400000000000000000004440621471373143100166430ustar00rootroot00000000000000 jp2a converted image
.....':lodxxxxxxxkxxxddxddollllodddxkkxxkkxxxddodddddoloddollcc.';,;:,;cc:cll:::
......,cooxkkkkkkkxxxddddoollc;.cdxxkkxxkkkxdddddddddoloollooc:,'...';;cc::cc::c
 .  ..':lodkkkxxxkkkxxdddlcc:;. :ddxkkxkkxxxdddddddooolllc:::c;;;;;,,;:;:;cccc:c
   ....'codxxxxxkxxkxxxdddo,..  ,oddddxxxdddddodoooooolc,',:;'',;;;cc:c:c:cc:c::
  ....',:loddxxdxxxxxxxxxdd,'.  .lodxddddoooooooodooll::,'';,'';:,',;cc:;;,,;ccc
    ...'coooddddxxxdddddddd','..   'oododooollllllolccc:;'....'.........   .,;:c
 ......,:lcoododdddxxxddddo;;...   .loooolllllccccc:::;;.........     ..  ..;c:;
 .... ....;loooddxxdddddddo:;,c, '.:lllc::;;,'....''... ..  ..... .  .,,'.',:;;;
  .    ...;clodddxdoddxxxxxoclol;'oolcc:,,,'           ..   ........ ',:;;;;;;;;
      ...,:lodxxxddxxxkkOOOkkkxxxdkxdo:,,;,..      . .  ...... ......;:c::;;;,,;
        ...'cxO00OO0K0xxOkO000l:kOkkxd:.,:c;...',,'. .  .....  ...'',;,,,,,''',;
 .      ....cdc:Ox'OKk..x;ckxd;'clc:;;'.'::;,'.'cc;.........    ...........  .. 
 ..     ....;;..:;.;;,,,',,,,,,,,,,,,''.'c;:,'..:;;..'...     ...''...      ....
 ..     .........'';::''l;cxxk;'dkl..,,.'c;;,,' ''.......  .  ..';,.'. . . .. ..
  .. ..    .',.,do'0K0.'K:dXXX:,dl..:dc.':,,',,  .   ....''.....';.... ... .....
 ... ....   .'.,lc'O0O..0;o0Ok;'....:c,..'.''''       ..',,','..''... .'..   .. 
 .'. .. ...   .....;:;'';,,,,;::;;;;,''...''... ........,;;:;,..',...';:,..  .  
 ... ............'':.....'''',,,;c:,:;'....'.'' ;;;:,..':c;;;lc..;..'';''''. .. 
 ... ...;;'':;....,kol..x,,'...'k0l.x:'.,'.'''...,ll:;,,:c:l;;c,.';,''.,:'.'.,..
 ... ...;;''::.',..'dO..k,..,''':c;';,,';cc,''.','.od,olooddddc:;:cc;dollc:::c;'
 ... ...''..,;..''.:::l:lc;;,,;;,,,,,,;,:ll::;,ldddkOddxxdddddlclllccccccclllccc
 ............'.',''::,;,l:oOx,''dxc;::;',oo:,,:dxkxoldxxxodoooclllc:;::cllllcc::
 ''.....;c'',;.;c;:oOd..0;0WX,:ckkc',::;:odlccloododdxddddooooolc::cc:llccccc:cc
,'..''.'lo;;ll':c;;cOKkOX;0WX'0XOc:,:coddddcocddddoooooddoloooooolllollccccl:;;:
....';llcc;;oo';c;;:o0NNX;0NK'OKOlclooddodddxlxkkkxddxdxdodddoodxxddolloolllclcc
' ..,l::clc:l:;;:c:;:dKXXOKXX0Oxc:clodxxoxkkxlkkkkkkkOxxxddddxxddooooooolllollll
'...:ccclolcc:;:ccc:coKXXXXXKkoocccoxxxkdkkkkokOkkkkkxdxdxxdddodddddooodddoolcll
..',:;;;,;;cllcclllcoOXXXXK0xlclldxxxkkkxkkkxlxOkkOkkkddxxkxxxxkkxxxdolloddoolll
...'. ..'''',.:clooodooddoclloddxxxxxxdxxxddxolxxkkxxkkkkkkxdddxxxdxddxdxoooolll
........'','.';,lxkkOkxdxxxxxxkxxxxxdkkkkkxxkxoxxxxkkkxxkkkxxxdddddoddddddoooooo
 ......,:,;lodolodddoclldddddxxxkxkkxkkkkkkkkxoxkkkkxkkkOkkkkkkkkxxxxxddddxxxxdd
...'...:;::dxxxdddxxd:;:cloooooooooodddxxxxxxklkkOkOkOOOOOO0Okkxxxxxxxxxxkkkxxxx
';';, ':,cdOOkkxxxxxxocccdddxdl:clooddoodxxdxxoddxxxxkkO0O000OOO0OOO0OO0OOOOkkkx
...;' ,,,:xOOOkkkxkxxkxddoooxxl::llollclldxxkkodxdxkkxO000KKXKKK0OOK000K000Okkkk
...'..'.''dxxxxOOO0OOOOkxkxdkkc:cloollcccoxkkkddddxxddxOO000000Okxddx00OOOOOxkkx
'''.. ..,'::ccxkO00000OOkOkkOOdlloxkdllllokOOOOkxxkOkxxO00KKKKKOxxxxOO0OOOkkxxxd
..... ....,'';;:oO00K000OKK0KK0OxxkOOkxxkOOOOO0Okk00000KKXXNXXXKkkOOO0K00OOOOkkx
..........',,;;:okOO00KKKKKKKXXXKK00000O00O0000000KKKXXXXNNNNNNNXKKKXXXKKKK000OO
'. ....'..;dc;,;lxd0000KKKXXXXXXKKKKKK00000KKKKKKKXKXXNNNNNWWWWWWWNNNNNNNNNNWWWW
.. ...'d,,.;cdl;:ccodOKKKXXXXXXXNXXXXKXKKXKXXXXXXXXNNNWWWWWWMMMMMMWMMMMMMMMMMMMM
......';'o;,;ololodd0XXXXXXXXXXNNNWNNXNNNXXXNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
 .....';.:,,,;:ckNWWWWWNNNNNNNNNNNNWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
 .....,'..',,;co0NMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
. . ..,,...',:oOXWMMMMMMMMMMMMMMWWMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNMMM
.. .. ....'',;okNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXWMM
..... .'.';,;;c0NMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
::.......',,;:cdONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKNW
,.....'',,,;clodXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMM
.....,;,;:lllxdkWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWW
',..',;'::dkxXKKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
jp2a-1.3.2/tests/grind-green.txt000066400000000000000000000045761471373143100164750ustar00rootroot00000000000000OkO0Okxkdo:;:... k0KK0Oxkkxdolcc; xkKKKXKO0Oxxddo,. . XXXXXXK000kkxdc'. NXKKKKxkO0kkxdl;. KK00KXkxOlxkxool;.... OKXK0XOlkxOolcldoll:,........... ................... 0KKXKX0000kdxxxoc,'....................................... ................ OOO0KN00k0dxdoc:,.......'..'..,;::,,,:c:;;'''''';,''',,........';;;;,'.'''',,,;: K00kOXOOkk:,,,,'''''''',;;;:,,looccclloolc,,,,::;:;;;:;''.......,;;;,...'''',,,, 0kOxkNOdxo:''',,,;,,,:lll:::;:cooccc::cc:;;;;;l::;;,,,''.''..'''.''...'.'''',,,, XK00KX0ddxd:;;;:::;:cdoll::::::;;:;;;;;,,,,,,'c,'''',''''''''',,,,,,,,,,;,,,,,;; KKK00XK0kkkkkOddl:;;;:::::c::;,;;;,;;',''',,';c,'''',,,'''',,,;,,,,;;;;;;;;::::: 00OOxxxxxddoclolcccc:'.....';clcc:;;,',',.'''c,..'.''';,,,',,,,',,,,;;:c:;;::cc: OXKXkoddolodloddllloo:.......',:lllc:;;;:,'',c,''''''',,,,,,,,;,;;;;;;:;:::::::: OKXKOkddolxxlcOdlddo;.. .x' .O'.,llolc:;:;;:,l'''',;;;;,,;:;;;;;,;;;;:c:::cclcll NOOXK0KKxoOOkx0klxdc,:0k.x. .Ool,;oOxoodoc;loo::;;::::::;:::::;:cllcclccccc:lool N00XNO0XOk00kk00k00xdddxooolokkkooxkxxkOxccdxkxl:::;;c;;;::;;:ccclllollccc::ccld WK0XNOOXxokOod0O0K0o:;NK,O00O00Oc:o0ldOOxdxOKO0K0kkllkodoolcoooxOkdxkoddoxkxxdO0 NK0XNKKX00KK00K0KOOx000OOOOOOkkkdodkdxOKKK0O0OOXkkxxO0KOxdxdxddOOk00OOkkk00KNKXN WK0XNXKNKKNNK0KOdx0:;:K0:ko:::xkOOOOddk00OOO0OONNNNXXXK0OkkkkOK0OO00XX0kOXNNNXNN WN0XNNXNNXXKOk0OddOc::0O,xl'..dO::xKkox0OokxkkOWXKXXX0K00KKKXXXKkdO00KNKXXNXXNXX WXXNWNNWKOK0dd00od0olo0OdkxdddkkxxkOOO00OdxxkOKKddk00O0KXNNXNNKK0kO0KXNNWNNNNKXX WNNWNXXXK00kl;,,',:'.'lc':;...ox;,;;clx0kddx00K0kkOKXKXXKKKKKXXXOOkOkxkkOOO000kO NNNNXXXK0Odolc::::c:::;;;;;:c:ccld::cldxkkkOXNNWWNNXXXXXKKKKKKXK00OKKxxddxxxkkkk XKKKKKK0OOdlccc:::;::::::ccdkOxONKKxllllodddxkkOOkkkOOKKKKXXK000KNXXNKOk000kxddx XXXXKK0kollc::::::::::::c::kk0KXNXXOcccccccclcllllllooodxOO0K0OO0KKKK0KKXXXKkddo XXKK00Okdlc:;;;;;;;;;;;:::ck00NWOcc:::::::cc:cccc:ccccooxkkdxkkxxxxddooddddddodd KKKKK0Odlc:;,,;;;,;;;;::cclodd0Wd::;,;;;,;;;::::::cccclclloooodxxxkkkxddoxdooddo K00KK0xlcc;;;;;;;,;;:::;ccclloodl::;,,;;;,;;;::c:::::ccc::clllokkkOkdxxoooollddd jp2a-1.3.2/tests/grind-nobold-x.html000066400000000000000000002454741471373143100172500ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-nobold.html000066400000000000000000002451521471373143100167740ustar00rootroot00000000000000 jp2a converted image
'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
'....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM
,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW
.......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM
 .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM
'. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM
..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO
''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd
...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk
..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx
.......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd
...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll
....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll
....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll
.'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c
 .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:
 ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,
 ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..
 ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .  
  .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....
 ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....
        ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.
      ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;
 ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;
    ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c
  .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc:
......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c
......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll:::
jp2a-1.3.2/tests/grind-red.txt000066400000000000000000000045761471373143100161470ustar00rootroot00000000000000OO000kxOdo;;:... kKXXX0kOOkxdolc; xkKXXXK0K0kkxxo,. NNNNXNK0KKOOkxc' NNXXXKxk00Okkxl;. NNXKKXkdOlxkkooc;'.............. 0XNXKXOcOkOoc:lxoolc;'........................... 0XXNNNKK0KOxxkkxl;;'''................''..'.......... ...... kO0KXN0KO0kkxxoc;'''.''',.''.',:cc;,;:cc:;,''''',,....... ...........'',,;: 000k0XO0Ok:;;;:,,;,,,'';;;::;;oddllloooooc;,,,::;:;,,;'... ......''.........'',, kkOdxNkdkdc,,,;:::::;coooccc:clddllccclc:;;;;,:;;,,'''......................'''' KKOO0KOddkdc;:cccc:clxdolc:::::;;:;;;;;,,,,,,,c,'''','........',,,,,,;;;;;,,,,;; K0KOkXK0kOOkkkddl:;;;:::;:c::;',,,,;;,,,,;;;,:c;,,,,,,,,,,,,;::::;;:::;::cccc::c 0OOkoddddoxdloooooooc' ...,clcc:;,,',',',;,c;'''',,;:;;,,;;;;,,;;;::cc:::ccllc OKKXdlodlclolxkxdddxx: . .';odoc;;,,:,,',c,,,'',,';;;;;:::c::ccclllcllllloll kKXKkxoolcxxc:Odoxdo,. x. .k..'odolc:;:;;:;l;,,,;::;:;:ccccccc::ccclollodododo XOOX00XXdokkdd0xoxdl';kd.x. .klc';oOkdool::lodlcc:cc:;;;::ccclllodddoollodoldxdo N00XN0KX0O00kk00kO0xdddxloolokxklldxxxxkd:cdxkxc;;;;,:;',:;;;;olllldxddooollooox WK0KNO0XxxOOxx0O0K0l;,XO'kOOO0OO:;o0lxOOxdxkdk0K0kxclkodllc:ooodOkddklddoxkkkxO0 NK0KNKKX00KK00K0KOOdOOOOOOkkOkkkdodkdxOK0KOOOOOXkkxdO0KOdoxdxddOOk00OOxkO00KNKXN WK0XNX0XKXNNXKKkddO;,;0k,xl;;;dkOOOOddk0000O0O0NNNNXXNK0kxkkkOK0OO00XX0kOXNNWXNN WN0XWNNNNNXK0OKOooO:,;Ox.d:...dk,,xKkld0koxxkkOWXKXXXKK00K0KXXXKOxO00KWKXXNXXNXX MXXWWWWWKKX0xoOOlo0lclOOoxxoodxkxdxkOOO0koxxkOKXdxk0K0KXNNNNNNXNXK0KKXNNWXNNNXXX MNWMWWWNXXKOo,....;...:;.,'...ld'.'';:d0kddkKXN0kk0XNNNNWNXXXNNNKX0K0OOOOOOO0Oxk WWWWWWWNX0dlcc:;;;::;;,,,,,;;;::co;;:ldkkkk0NWWWWWWNWWWWNNNNNXNXXNXNNkxoddddxxxx WNXXNNNX0Odcc::::;;::::::::odxdkN00xlllloddxkOO00OOO0KXXNNWWWNKKXWNWWN0OKK0kdddd WWWWNNKOocc:::::;;;;;;;:::;kkO0KXXXkc::c:ccclcllllllooddk0XXNXK0KXXXXKXXNNNKkddo WWNNXKKOdc:;;,,;,,,,;,,;;::kO0NWOc:;;;;;;:::::::c::cclodO0OxkO0kxkkxdddddxxxxodo NNNNNX0dc:;,'',,,',,,;:::cloodOWo;;,',;,',,;;;::::::cclclodooodkOkOOOxxdoxddddxd NXXXNKdlc:,,,,,,,,,;;;:;::clllodc;;,'',,,',;;::::::::ccc::ccclokOkOOxxxoodoooddd jp2a-1.3.2/tests/grind-truecolor-fill.txt000066400000000000000000002565631471373143100203440ustar00rootroot00000000000000'''..,,,;lxoxXOXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW '....',',;;:cookWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWM ,'.......,;;;;lOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNWW .......'..'',:o0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNWMM  .....;,..,,,:lxXMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ......,;'c',:lclxkO0XXXXXXXXXNNNNNNNNNNNNNNNNNNNWWWWWWMMMMMMMMMMMMMMMMMMMMMMMM '. ...':.',lcc;;lldkO0KKKXXXXXXXXXXXKKKKKKKKKXXXXXXNNNWWWWWMMMMWWWWWWWWWWWMMMM ..........,',,,cxO0000000KKKKKK0O000OOkOO00O000O0KKKKKXXXNNNNXK0000KXKK0000OOO ''......''c:clxkO0000OOkOOkOOxllldxdollodkOOOkkdxkkxxk00KKKKK0xdxxkO0OOOkkxxxd ...,..;.::kkOOkkkkkkkkxdddoxxo::cllolccldxkkkoxxdxkxkO000KKKKK0OkOO0000O0Okkkk ..','.,;:;dkkkxxxxxxoc:cldoddollooodddddxddxklxxkkkkOOOOOOOOkkkkkkkkkkkkkkkkxx .......,;';ccllcoxxdoloodxdxxxxxxxxxkkkkkkkkdoxkxxxxkkkkkkkkkxxxxxxddddddddddd ...''...''',,,:cloooxxxxxdooldddxxkxkxxxxxxxldxxkxxxxxkkkxxxdxxxxxdddoddooooll ....:cccclccc::ccccclOXXXXXKkoolllodxxkdkkkkokkkOOkkxdxxxxdxdxxddddolloddollll ....,ccccl,:lc,::;::o0XNOxNNxk0xlccoodddxxxdlkkkkxxxkxxxddddddddddooloolllllll .'.....,oo':c:.::,cdKko0xlWWco0Odc;;:looddllcddddddddddoooooooolllllclcccl:::c  .' ........''.',':ll;':llOk:''lxl,;;;';ol:;;cdxkxoodxxdooodlclccc:;:cllclccc:  ... '..;;.':,.'..'lkc.cl,'',',:c:';;,':c:,,,';;;:xocoolododl:::cc;llccc::cc:,  ... ...''.','....lc;'.,;',''''cdo.cc'....'''..';c:,.';c::;;c;.',''''',''..'..  ... ...... ...',';ll;.;:,ccc:,,,,,,,'...''.'. ........,;;;;'..,....';,..  .     .. ...  ..''.;d,l0Kc.ox,KXXl,cl'.;ol.,;,,',.     ......'....',.... ...  ....  ..     ....,,..;''::,';;,ccc;,:lc''''.,:;;,'..;,,......     ..,,...      ....         ...,lxdxOdxKKd:dxlOOOl,lxddol:.,::,...,;;'..........  ....''''......'.       ...,cloddxxddxxxkkkkkxxdddcdddoc;,;,.            ............';::;;;;,,;  ........':loooddxddddddddl;,::...;llll:::;,'...''......   .... .. ..,'..,;::;     ...;coodddddddddxdddodc''..   .cooooololllllllccc:;,..............   .,::c   .....,coddxxxxxxxxxxxxdol.'. .lodddddddoddoooodooolc:'';;,',;;,;;:c::;;;:cc: ......'codxkkkkkkkxxxdddolcc:, ,ddxkkxxkkxxddddddoooooolcccc:,,,,,,;::c;:c:::c ......:oodxkkkkxkxxxxdddooollc:ldxxkkkxxkxxxddoddddoooodololl;','';;;clccll::: jp2a-1.3.2/tests/grind.jpg000066400000000000000000001641271471373143100153370ustar00rootroot00000000000000JFIFHHXExifMM* (12<i(CanonCanon DIGITAL IXUS 50HHAdobe Photoshop CS Macintosh2006:07:18 16:29:13Mac OS X 10.4.7Ƃΐ0220֐    @2 2006:07:06 21:40:332006:07:06 21:40:33 _ _ v~(HHJFIFHH Adobe_CMAdobed            x" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?p\ʶ01s]YY~-J28Ste_NSֳmʲ}5*dovٿj£lTnVE]X{9E #KͦKֆĶs67{_^=5N-Xf$G;\.+LuN`KK,sF}? z龯R,eޑ` 6 <T׶X;j}_V˫.eocsXk9UmB0UM9}zI]$HE pH9J]$RI$I%)$IJB61cОE5sf=51izOivG{^߾:Z$9Z~k~Rư=>hk6cG׷W*uS/]Xvh$4@ݿ/dg}TYd}k ~}?t WN*l7_H86D~N=/{,qjt,܆v%m.z}۾~-Gg϶ֻv׾yv;-NZf[ͭ?gŹ9lʷ۷sЦHwM:g־F`li# YVm72yƋ+:9ۀa{#vko/q`55;qMqb@-%V뜷_i'Qe#K tgO<(Yn>'8kNf;.Foo$34㵧c6.+JqӢC{Gv呯HB ܆1cJů0>v85SxCl `Set*NkA'FIMQ.c0Î@EC<(然Q0,tBwYkFaAXqZ5cxi Q Vp˽\Gh푺YW8YmI q8wՌ\X+%ER8Mڵn}:~q~Pci{YmI뱾KX__zeh(ɨ82):OC11\=j}nc?A?7Řw;w#+?_Og]-pylsh'M|ݏKimr}6wɯg5I ߖ_cEՕbU~Hݿ+@]:j淿!uv _-|#vgmj5y/s:01ՆH}=Z90 75ڞ`x & ߐ2sPl}ne@5Ψ sAh\?#B[H vḑUݻ&"'.s.a$E\! ٰ]ޘiIJ7Jem -ofb0XH"D5WsЇ! k>.US{mvAuŌ$8 cY2ă, >0{"Qs@eqv9p.=ֻ3{H:uYxl]qiO?;G*mpqqm$}ڣfE\5Tg45dl=԰;wiS]gl1.X ߵU9مq 5;w}PwP<6NDqXcuK("lsg~*XƗNRo l!q#HadG)Ū5W [{{U~uژ0],_79Pf`v=ês)q {fGcGg=EaY~3mdSK,cmnOEj)@0zx1Ckchyw=ц;z7J&@kFѫywa=&.fuN1Mد c̷k\]Y7{[V<5?(u+(mU0$@>gWcm-_Kɱ%^? Ar}][|g?]>]n 63O;p ^TH׷DDukss]IcWYfe|.yYCKsغ\~mX:7ţ=y32<7ܪJ:@7{m{Yh{C\IkIiBkȻY m8'ղݧn+PʯuªXtKi-sKGk󳋜>w],{ cůڪ4=}qF@CA cc|O;vnx!uo{P/e$'FLN}X M:C%yiП 481&ld{}/{ @!=M7x2Io}o}*2ou& k`CSh.Y}UV6պƸkC}>~Z=͖ ?<zlvݶ#tːݔY@Gvssk=E~՗=~$鴖o& h=]~mu!;ӻn{Ʊ/wݞϠ9Ne?qk]$-2Qzz07@ gҴS;c61ٓShmV~:&z3QȲU,6XIoE]4 0~ϻvSufR\K\ k~mKobd%+NM*s7kꕵXX.{XnƱm{ϬcbWcŭ{]W?O'ԳGw9=8<Sd~f?b?.WXظ8taәcEu<9Kʟ.ٿIb|aUG`adJ1d4F7*k[/VJλպ^kn󱌆mln/fbNnN-974W[k6-s쪺/{("}[Ea;`3ş[U_ڦKm{Vcrţn%v@{NZݾVz˺9Cjo+i>єo>*mmT8Hkd[L j߷%^*:<es] <oݻeʍht8ֻnhŨWUlxh:9KcU|쪖du.c l8sڢ/D|ď2~-ߣ 2lh$p۽zzT[C2q} !G}-֮cN]9ݷc\v4}B!um܋>zՌ5uU6HcCߦ 4.òڜHh{~ ow}CwVZ=rC]#U-ιײ8"WڿYY3;18K~cv=7/aO_$J|K Z@?Guo{I^MnkC֘h*U=Jceda0q}g:OeS7-wӎvI૮ƿ7?%.Cn/mӤ[>q~ZsIRƑw)o'fWX{l  77{]s6Ubןv%Aml|5Ĺ̦6uTg󗾿[eLwql?bʫs[p?GjނueۻA;`v6MctoOkU~㑔`i}%sx Ekɑ啟1Va55Ӱ9 --z~~/mv)yeJ1(@^:wlWкM]wcnEg%UCKm4?kMtzedvI[킟CZhQ(fv.Vǚ־qS}̹L)E[=zVTsf[{58@[%._ދ̖],u֗?fߣ[z-+mEXk mNkjԛۍFEC vzns7=YvMƥK0u,wU_sv5n:4.gXYU6i 4ýwk; $u,S]v6=ͷnWc\ϡlZ'>^1fV`}ѲʽM5m"J:XC[O55ͨ7D:d,hOESQt[[M{KvwIum N3;m +5smg՛F#-ȱ]Ԇ =6ÛiӠݻ:mi.?-iSH?^~X/ s'K@:=:s[mm+qh֚Ͽm,~[^7inr=uk~wm=^nu~c k꾏aFWSfxsKeV׷v@V ~,ss6)wPǪ^{7a3~V ׵׃76gϠqϋ s}[M{vI.$tvo~{Pݍho` Hp9f\:nkk;tmgD#Ӳ/^rۥ1}>}fa9dG۾$m=ȑrv Ҵ:~.Ojj繰{\~vP;Y.լe.xPfn1r#ysRmomDR*s8~hW6aG &?v=4uuo!xS?$Ci$Fybc;.TŏpeK@iۑ6{UO{ qݻY`v[׼T7)vKZ7=m&{zffsiɝZ=M?w\GR͡2C {Y}N$3hP\%p~ _mlSpXgHs/7-nWt''1cdj&|6.Sf3ZX>ݛY7 Di$E9N ZC{q^ݿO~bu;Zɝi$Pd9OighlP>?I |֌>E/ۮi#mwe0pd~w; c"IHvj`ٌ܂Fkah ; @wAk#NO찴D~OJxF}}790CkƠάsݻE`Է!}٣^l=7nguݎcYn{4c9g[)tVlˋ6ݮGE=Eև5c;oQ@=1}A!Mck=LR{+sGuO«Lw0O~Ƒֻ|w9gi"-қM1+p[U`ݸ{61;u͵!Rcmkkvvs֍9zKϒQΫMb4Oimc\SnW6ǹ#sW yIcF?WҪ6L{5: s\HqYbtïC?Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-07-18T14:28:32Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM?@grind@nullboundsObjcRct1Top longLeftlongBtomlongRghtlong@slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong@urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM xJFIFHH Adobe_CMAdobed            x" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?p\ʶ01s]YY~-J28Ste_NSֳmʲ}5*dovٿj£lTnVE]X{9E #KͦKֆĶs67{_^=5N-Xf$G;\.+LuN`KK,sF}? z龯R,eޑ` 6 <T׶X;j}_V˫.eocsXk9UmB0UM9}zI]$HE pH9J]$RI$I%)$IJB61cОE5sf=51izOivG{^߾:Z$9Z~k~Rư=>hk6cG׷W*uS/]Xvh$4@ݿ/dg}TYd}k ~}?t WN*l7_H86D~N=/{,qjt,܆v%m.z}۾~-Gg϶ֻv׾yv;-NZf[ͭ?gŹ9lʷ۷sЦHwM:g־F`li# YVm72yƋ+:9ۀa{#vko/q`55;qMqb@-%V뜷_i'Qe#K tgO<(Yn>'8kNf;.Foo$34㵧c6.+JqӢC{Gv呯HB ܆1cJů0>v85SxCl `Set*NkA'FIMQ.c0Î@EC<(然Q0,tBwYkFaAXqZ5cxi Q Vp˽\Gh푺YW8YmI q8wՌ\X+%ER8Mڵn}:~q~Pci{YmI뱾KX__zeh(ɨ82):OC11\=j}nc?A?7Řw;w#+?_Og]-pylsh'M|ݏKimr}6wɯg5I ߖ_cEՕbU~Hݿ+@]:j淿!uv _-|#vgmj5y/s:01ՆH}=Z90 75ڞ`x & ߐ2sPl}ne@5Ψ sAh\?#B[H vḑUݻ&"'.s.a$E\! ٰ]ޘiIJ7Jem -ofb0XH"D5WsЇ! k>.US{mvAuŌ$8 cY2ă, >0{"Qs@eqv9p.=ֻ3{H:uYxl]qiO?;G*mpqqm$}ڣfE\5Tg45dl=԰;wiS]gl1.X ߵU9مq 5;w}PwP<6NDqXcuK("lsg~*XƗNRo l!q#HadG)Ū5W [{{U~uژ0],_79Pf`v=ês)q {fGcGg=EaY~3mdSK,cmnOEj)@0zx1Ckchyw=ц;z7J&@kFѫywa=&.fuN1Mد c̷k\]Y7{[V<5?(u+(mU0$@>gWcm-_Kɱ%^? Ar}][|g?]>]n 63O;p ^TH׷DDukss]IcWYfe|.yYCKsغ\~mX:7ţ=y32<7ܪJ:@7{m{Yh{C\IkIiBkȻY m8'ղݧn+PʯuªXtKi-sKGk󳋜>w],{ cůڪ4=}qF@CA cc|O;vnx!uo{P/e$'FLN}X M:C%yiП 481&ld{}/{ @!=M7x2Io}o}*2ou& k`CSh.Y}UV6պƸkC}>~Z=͖ ?<zlvݶ#tːݔY@Gvssk=E~՗=~$鴖o& h=]~mu!;ӻn{Ʊ/wݞϠ9Ne?qk]$-2Qzz07@ gҴS;c61ٓShmV~:&z3QȲU,6XIoE]4 0~ϻvSufR\K\ k~mKobd%+NM*s7kꕵXX.{XnƱm{ϬcbWcŭ{]W?O'ԳGw9=8<Sd~f?b?.WXظ8taәcEu<9Kʟ.ٿIb|aUG`adJ1d4F7*k[/VJλպ^kn󱌆mln/fbNnN-974W[k6-s쪺/{("}[Ea;`3ş[U_ڦKm{Vcrţn%v@{NZݾVz˺9Cjo+i>єo>*mmT8Hkd[L j߷%^*:<es] <oݻeʍht8ֻnhŨWUlxh:9KcU|쪖du.c l8sڢ/D|ď2~-ߣ 2lh$p۽zzT[C2q} !G}-֮cN]9ݷc\v4}B!um܋>zՌ5uU6HcCߦ 4.òڜHh{~ ow}CwVZ=rC]#U-ιײ8"WڿYY3;18K~cv=7/aO_$J|K Z@?Guo{I^MnkC֘h*U=Jceda0q}g:OeS7-wӎvI૮ƿ7?%.Cn/mӤ[>q~ZsIRƑw)o'fWX{l  77{]s6Ubןv%Aml|5Ĺ̦6uTg󗾿[eLwql?bʫs[p?GjނueۻA;`v6MctoOkU~㑔`i}%sx Ekɑ啟1Va55Ӱ9 --z~~/mv)yeJ1(@^:wlWкM]wcnEg%UCKm4?kMtzedvI[킟CZhQ(fv.Vǚ־qS}̹L)E[=zVTsf[{58@[%._ދ̖],u֗?fߣ[z-+mEXk mNkjԛۍFEC vzns7=YvMƥK0u,wU_sv5n:4.gXYU6i 4ýwk; $u,S]v6=ͷnWc\ϡlZ'>^1fV`}ѲʽM5m"J:XC[O55ͨ7D:d,hOESQt[[M{KvwIum N3;m +5smg՛F#-ȱ]Ԇ =6ÛiӠݻ:mi.?-iSH?^~X/ s'K@:=:s[mm+qh֚Ͽm,~[^7inr=uk~wm=^nu~c k꾏aFWSfxsKeV׷v@V ~,ss6)wPǪ^{7a3~V ׵׃76gϠqϋ s}[M{vI.$tvo~{Pݍho` Hp9f\:nkk;tmgD#Ӳ/^rۥ1}>}fa9dG۾$m=ȑrv Ҵ:~.Ojj繰{\~vP;Y.լe.xPfn1r#ysRmomDR*s8~hW6aG &?v=4uuo!xS?$Ci$Fybc;.TŏpeK@iۑ6{UO{ qݻY`v[׼T7)vKZ7=m&{zffsiɝZ=M?w\GR͡2C {Y}N$3hP\%p~ _mlSpXgHs/7-nWt''1cdj&|6.Sf3ZX>ݛY7 Di$E9N ZC{q^ݿO~bu;Zɝi$Pd9OighlP>?I |֌>E/ۮi#mwe0pd~w; c"IHvj`ٌ܂Fkah ; @wAk#NO찴D~OJxF}}790CkƠάsݻE`Է!}٣^l=7nguݎcYn{4c9g[)tVlˋ6ݮGE=Eև5c;oQ@=1}A!Mck=LR{+sGuO«Lw0O~Ƒֻ|w9gi"-қM1+p[U`ݸ{61;u͵!Rcmkkvvs֍9zKϒQΫMb4Oimc\SnW6ǹ#sW yIcF?WҪ6L{5: s\HqYbtïC8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMhttp://ns.adobe.com/xap/1.0/ 1/50 28/10 0220 2006-07-06T21:40:33+02:00 2006-07-06T21:40:33+02:00 181/32 95/32 0/3 95/32 5 False 0 3 False False 5800/1000 4294967295 320 240 2 Canon Canon DIGITAL IXUS 50 1 72/1 72/1 2 1 2006-07-18T16:29:13+02:00 2006-07-18T16:29:13+02:00 2006-07-18T16:29:13+02:00 Adobe Photoshop CS Macintosh adobe:docid:photoshop:c7ef042c-180c-11db-a440-b54e0b41fa8f image/jpeg (ICC_PROFILEappl scnrRGB XYZ acspAPPLappl-appl rXYZgXYZbXYZ0wtptDchadX,rTRCgTRCbTRCdesc=cprtAdscmXYZ tK>XYZ Zs&XYZ (W3XYZ Rsf32 B&lcurv3descCamera RGB ProfileCamera RGB Profilemluc enUS$esES,LdaDK4deDE,fiFI(frFU<itIT,rnlNL$noNO xptBR(JsvSE*jaJPkoKR2zhTW2zhCNKameran RGB-profiiliRGB-profil fr Kamera000 RGB 000000exOMvj_ RGB r_icϏPerfil RGB para CmaraRGB-kameraprofilRGB-Profil fr Kamerasvg: RGB cϏeNRGB-beskrivelse til KameraRGB-profiel CameratT| RGB \ |Perfil RGB de CmeraProfilo RGB FotocameraCamera RGB ProfileProfil RVB de l appareil-phototextCopyright 2003 Apple Computer Inc., all rights reserved.Adobed         @(  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?:~kMq2f )Yb$@2Ao*Zj~2g& t#H~;2>/%`\'҃/lE;僝Kdȏ#{Oxmqrޜze Bjr2ckpq o#ym2u]Fi wT,kW Ysm<Gv$gt Hb˦'%_ґ'AA!™ ثWb]v*UثWb]v*UثWb]v*UثWbZfURhTl@2Kp93 U!޹P&f"<ЁyS[^iZmVvOu41,&qiStqc.2zNk9$Rs91MLE&63ZDUu9I }#@P"-AAY]IᘞNrͤ|:{UBLQoVcJ4Mkc8#Fफ़[)^\ 3r$Y0J;0YeƥV~>@d y8bIE㍂Y {Wɢ%6ޟpzl7B .-xd 2e5v*UثWb]v*UثWb]v*UثWb]v*Uت]kv:Z 鲒J@U ԏ1meG+8*0:Z4#} d~c6#)5~"&8q*y8񍙿{}= v71Ef KwzxiVW{i[+q'G*a[*dB#kVccenR;/ d86ǽZ[1w&JOł1 +Ƽ7.L#;IN7c, E$'c;v*UثWb]v*UثWb]v*UثWb]PwMtOS ` "m AJ} MXϢpǰvbGv=;; A]d.LV?_@G1<M{)9sKYƙj[[KKq||#xSMȡYm~\HygRKĨ$EM&4l)D"-brd@C}=M-<2'=;˅aFv15(esnPV< &U2 Gϊ$l椗mX۷D+p9ɏ$n?.)L' emn$*bZч9l@pAFt&x,1+ϑ3T_xTJ['9 gI EbB/HHᣳ)$Z]38C@ȲTQL{nuhͪ:Ӕr DU1Lzq"om lZimc]½Ɗ,(I~AdBTljxiMkqmMg-QnzdJmzO@`#6'bvZ{Y*c N+5{T`̀{Ěp}/ {MavWaWb]v*Uث*WSzثMʃ|0Bq^BHR n+|Ah$0E:8SP fJ"([,ri߻,]OJc>u6!Դw5 N/ɷRK3q2sm]YR;+OC=C!r#dFn-%0$Ry{􋐯q-8M鴬"i?N4~6r`Pǘ\S)+zK<-³DS,Kȕ*Y=~%c WrD ns1 :#e@hn?ɑyq t O Y @Pn<QnfIm%INl)|y`HfZ>=ՀB%}fc%Z|&˩;{R&֧߂sZȒR(h(;R n'#EF[_zA;-Qp&P>:xWj$.<+mtҡwm<)*xH޿FD@DŘ!].kwȔҨ}#Qg& ADžxjli]v*UثWb_:PAlлOK@/,ܘ$XK2 s*@wi5eոx߷9\[~^\1v=0֩QHFNO8>ˏut&#"kͽipqvHd%Ԏ~'U? 2DP'߾B|w H#}JSHl\ UKzPT,Tt뀲 {޾"ELWH2%nkB6 Yp Fݲ6ǁZ;@ȆA79pPjhNj^Ie~)Q}m|9{? |@ބr˩FzFHgSYo-W햌-g .1ގI:b^j3TS516RۋIKȐj6`H`H_^LM4ƀ–&`xU:F~d I0 BƐpN᢭\9?h/|8we ukM=RrR[JБN͔dd]1Vbcڭz[%/\8?h9* TFnrr!UȜZxJ.,§qCSӨ w" ,*y7iFR5~RPզ sdk=A}وul1Y˭DE:)P|r3 ^jl0eD;:e2){ǩ5"1Qm2Pt:CGͦjƋ?bR`,7CMCO[I}ڽqŚ]ƑΨOBOl02N5GLkʴXUCcj̗I%p`jNNHAkY\s!1 7WZLwhd 'Z99m65/In!fޯG -jq i0 ^MFݽF):2HQHN%DXJC]S(WLMhoR*cH~_;ܤ2 4"6ĪfA9b[wk-i[rI}6JĪPG#v^' U/FxHv^l~6e qE1̴=M^fjy(<"G-q먩@26<0r(^̩s3Or7㑞AL%E߮C\E3%^ U v-GmB74pL׼#)Yu`|<)+"Ȍ0" :aixʴqN lh>9ٍ%:n -,ʏIjMNq#o($^JLdgrkM<68-`Z(JQ<֙M4}?3;!41Jk_$A^B~aZxVcwfQiA S) Tf0`0ĆGdntјfDe@IS qtȄ;HZзLa07$>=G\Dmd:({ 8Z΢WNY Ol.en…]U^4\ 9z5\xfڊubYyٕ`"<3#L grDMuR|Đ -Hץ+QC7H1<2tV1?٥I29;?Q'ozPA1M܃U)$o5Zmկש2QcJhn]ifR8|xm'ȸz }%P 'քTI*  FGS՝j҂>(O؈FX]M%k$Hz7cUrڰ!ܦiZ`,E:(vr -J !pqj;Pd "ۀdj+TYGXub(!onE=2[FWX[&I/z f4l&զVT+KƕN<*d_yYU+HqܝcQi_YU`V)J-rB)<V Q(҂ bMnͰEb͸ĊM)yx31*i D܈+Mlòjh%Nlª51 T'랔jZIP  )ݎum 6#?N< 3%6p@2;?G iO#2[+)|9v0! @ҹg:m;OQOT5@=plLIJ4phSG_o.3& 4Zcۉ 8֊V43e;7Vt| 1HbU 81"$R&k3_b#j9:l\\q%E#D"0PuBzbfeZ H-_N2ţ?x(-$^Aݘ0Hd|Bjs H.<yP0HBN 2\H=H9Z|AWJ%n*iʧx dPP2?J ފ+hĞc"@޾-(]b-ʁ(DQݻW 4>gPb; H#H(QiFRbxy6o:(Q6?Nd-4jaƕ_pC5{>BֽI]1ԺJ,Zq$õM!+k~YY^[tMw ukTSZ8g,:Cgky+5ՇjT iuTkYTcxe yE H-9~kRND*Ԛ,>wx1⬠OC*j-eV$aĸ1G$WJ17)GwT*2ɦ1u >#T Y8| :.OTΠӖ`\N)8 *IEJd\@GC?dZCOM)HՔ#}^WёK˶̪ߥ 2UǭHu̼(cOn䨆L䧄N$LƃӾԦWށ8˧1rZF2A S-Y@ Ilm hGi:UjrjX,ȁB~KNΤG0yBY/eKf#cN*˗gx빰΋){RTU0Q㛪_Cd<:okCTW Q +Mqq7^4ժ\|9wDpLj|r2 *6J*wD61l82@@`uS,nn]+BRIaDc ־'cgzf2Vj}\`ubNТI*}v98ՄA=_0![i1f" փW)i警h7-T]@ y9#׷hd*P?iI? Kcے&! N4A;*Ѫ)/XpʛL4o^vk0L@n5-Yͪ.j"!VN8݀ %r<3%W,3́=vζ#tGiBƅ}aG&D~ͼv}ĤLUJP |^>Xh#8L|r8`RT[Z N{)(G3Z,=;dlaM7;=򼓈(ziZseJP_q{>+PM%} {Ĉ8M)ǖZbrJͽ/)ed`J`wY$g~[OA +R}Kw%r-?z¦#(f VZxս#@xzr#e jzep*65 Sfxeq I4 \T:? S/|>S7U$PK+SOJ`aŽ J34"{ka$<:T;ezxI 䚅ԗ ,CCK$+1]Y#C/y{--滼-^SL""IR]eygm}b%bH%*⻌4.Ap $ߒ?|ClmVV_}.w f/;4Dѹxkf SiKb~J#!Wd,seZ}̱|7<%ykv; E(Ch,3HpZNIӯ>Vc4]O?A mLÌ N[zã8}Rذ^`-1PGxzqe/QABzЮW02F'a\n_sןJzN( AlY ģLEtG'` 4*UnKIxiebeYxv`I5T;PCv_(Fo89ȩlnG ~/cSo8D z{Ji듎ReTSA*TS?+Mt5q}o*w3IA^Tb#$e% `e|t!8*cUİ#o7''꿥lMqt#4ŹԣU a~47l&2ۻ|Q$v*ѫ?˥R,O%}i̪'Fc*Sy(4|ؠo5nWN֢Rd"?u2:LOvoJ'z(]hd":iU_7!TKGQcBU@*2G$Ku8e==F|U2/ d hDDj "Ttƿ첳I,LAK WՏB1Ʀ'!H]IsݲM)SJvt8ef"ǟ%$/kɌ$J:uL@A6a`E4H#ziM`L"5c("T4r8gR%ކDr;سo6T2X:n9b1UH9/9bQw l Q‡jvM6 ֭gС% ̓ Xw@1s +K!:ez3-fyV4xa/G!Mp]]}]j^VQݔƀz4,c&XoRo-crZ[=A@S֙ՑkIHdK;Vbi(IQ֨TvU B鷓+ha1uOz*` t;-Z֔nNţyʰ6pF8H#IJ: 7ZUMa]V{hźI˨Anۑ b:MKZK1 2L̮dT_d r-M6RJܤJkdF9ԾK,uwΌ|fM?k4hV@|'򾔷ֱKif+(ޥ{(\3޶I4o2yW[:x$V2Ҽb'o_rx7Wfu̷`BAL7uZn-U^=$Z[0?~C7ic?~_=Ŕu`*74ɷVҴ(zSqǛ/A~晥 ̖VZ`\-RLmJӥpi)Zigly![QQ\4l#~Y44N kϖ0͕=w5ڊ=r :EXUJ~+dm^#ԟ^P)q'I>\LJL4 hb}n1& їģQ|l6!P0Һ (",(! ֣rA'wF gi!?\AkxO$p,%DhءՕ *U"{Zb;e,%;r:eLGŶ2K#ʂ1.1 Z|LPD$.df<{ؙ$P8.e305&5|džJMYRDE92V;LD^ꗕ+a<&Nu ^(ܛfx9c*xtˀEH3o"q9A÷ey;ڥꋵ:VA:r/Qӕ;S|G!ciu+9yY=簫A d5 6h_m4f K-z\Zzanios+@h39)Vh/Rrߕ;dIa0>F^e@yW,mnȍ,\zC!߹ԵkmA$C(wRA5-L[XLx*I ʮ^Cr[lz$({ű+*Bq5!|Yl3BR3ޛ[h1zi*ƎkNez`=R.ޜXW4Y ̢D f] O$jCV8zBGINmI;P:C~5(Y SM11 YtIG-7z cN lbz4R;`VWڵ z`ibXo=X0ܞ_Vwmv/-$828x#V͔,%w5Zߑ%h|F`k>oߘ%HJ~?b5g,Ֆ3647L^3CAU5͐ݭy* v w )r!6kNP1d@gVkB%bG(f_9Vm09ncHMF  '(v;j?/2-RԴ$@=MH߯)i4"e ߉9g͘<:uzGPCܨ^%y0 414JFdn-:FpN. ,9]aN*'qw OÑXS|Tb Q)m'8쐌q VnAֻ~,χfd<m &k87F4ߧdrh2c'MsE(ҵR.ZRiJi|HXF'a&6U7 '~@"]^ mrw 'FUQȑZVcHc5<{0ΗjT[Ex-&SqH9U,cp BD~pf-ZNwYJΎ66#8ͣ$xϯ{/R"L( @1$#[U4[[xjP3],4XE?kee\l΋Wצd)nXPo)_uޣ Qo \^KP\UG6Ń |yi` 滅at,COZƝ}FȪ̦W5Sɐ@YD195H_UuK /xnTQ!k,2/Z}-A32&5ovHfTk6tX@5s S9a2WG>+٠,xRdV4@Ay ;Vspݘ5~.WMݤ<j.Tcu+Yԗ7 F,v1&z liFTԠ7&E;ŵko ;"Iv% ({Rvf*Kƫb-g%'(՛q;X6MX?r^$5m8Ƣ{QLbAn*zchD j`37BaLewvoyeXvfx.R^&y慘+h V͘tIJK?;.aAq#v255:;/B)my]ToN}K%|G60]f _E? 0_0Ί\Q]WyʇRX%5#SSʼ~YFN̏CƅogV3 N[UDJcШBII'r0סfNFgyI.!1}S8xMRE=KR̮Z*PEti!R7H9mK5+dH-į*P@!@ VPLlYVB(ʘaο(a#սS4Z^h2 <"@bzIZΟqq+Y[[fTf%^D TLý쮶2E "J- bddNm淶A㛗݃`e)K͗֗ז"Kh%-܀['/d2=|6bךU-FʷaEx2b%8_6 Ҷ.1#'G+.O{6C$ +xPc1Kdd40IbDIVP*GXk6䞕cȣڥOQώHFsIqI#1 gJ*€h\oMm4>'FkLR7.?Y5LG^}" yn< lz|9Ql؞ZsD>,sw+VV &z?5;!oy\zDR ;+\(‘@xPVP)$vZR[q}&J># OpKE^F`gOW!d>T9qqIK y5 :Fa,p4'm|)ηs 2kr1:`J|*3ZyR1WW``"4{Km@55lǜg) $$X[T4:tDUb(#t/jz f +F'(ϫ>|)i\Y>.4;Sl9  4Py ] vvMʔpjb9)xr凒MzD0,Xyv2HebWZHxjAx;y+hEzň)$2x%s/.ŭW$qhRE'&|42oH:o_kO59oJdA5L!1|va#Pʃ#bMKgPJOFOž< :$zH?*pH#5Nj<#[]]i<גX^[Tp`)uzLkh]reUIx+!*bRSo\eSsqBoltȮ`[()GP(Mmim!ƍ7T'1)+V ̒XGQTKeՋKe2$MV)R.ˍ@\F"YƵ , &Rx8)ZNVg$#Sga\B_(Rzer t:&:(}/@~rP^H+#Bڴ*A˵vVS.y;ryS)|b^{ſ[ 4(0TK+/1K~u%cPPuru~oU*JƜMv54E^ "ND z'˧e],vS6O"q*_;P%w܏)+vaVJ{1]pB])'~n7EG+ҧ2 RA09Ul.;t25Ù ̌:8q"]pPc2с ЍfAOnf%D,d/8REߧor͘QV$MnʆX '!Hnye(߼*'E RZmUD;WsaHʗxԒIv<Jlkv=<=LX"2$);%z H rPMPlS+Di|_)*R>"u2M,Ԥg%":.;f@ia/*"=>>?{eK!CӌbZ|L aoN#sbLx"<:[QE1SCF9c>!a)Y߉oX-pғ#ASFm4cɴ_4[y"*Q|L|_̒R:4E5ݿeYI9\ڥ@4"ޜzZ<ƀlKӍ5L Z)dlI4# TSKvQfqFFQ(퀱nCn<)׽FAJ$en Fw~LU$ AȂN5h-_*v 4WYOtmsZPH00XȎOt3jsxk8 j4o1rD WڍyiHۓWmګ<0&Os+zȦUJ5`5?[u}uk4SZ1BI e$0Z-n&dHk(z֮y%ȜA`NVCk勯O==v֒C,Vn&Te#_׼[0yNm"@9۱OydAk8W :OiourH+/ ᔬ!K}*LE0o?4Y{{[ R qNJF7#@=&Ӊ= y>mS}=#9^RALSr#4*ˍ u5!*˶>!G[M)8z4ٕ JdBut=TӎPLmVa+ S0^I5kBܨj՗!W$ oYzSa t +JƢXe!Տ *G07[I%Ai7I)9E@8z%i9S|H5|4l` r+U3a9$qjҠT-|v4$Ħq?Zw!% p YJ;K"n,E1F@ #ag >8,c"AHK=vqBVu*OCu,~S3]s=gH((6Zo0zݵn*?,y|HލkTՠr!OZ&h9Qv:%jG/| ETT-.@.&N̐!bc54@y4T)E,}@FD H5K[O֬meY>xPTTqbx'v[$yn|μT"1Zq8j;Q(^k<0몚>| WѢi#TB؀#?3S'`}:DC1j;(rtgN0ov/2VTWk4˕27ȧZƩ!PvheޫKdSo$+"K*Q'F2o)^~vCWWM@+ǭ~* =cweIo Vfj($lPCE ,~ecY  )Vf 1F̧)zd-Z75`̧q7䌊D)V;hA:/N´W吔C8n*ۡ3:qtxq܋W$X80.ɪ::mTK\֟Sza%V,p#2'We+ӯ4*ϧs%/8QRp3"op>%-^4 cމ9'$ p)u],2 ?AV+MV&U4dQHZM:v)nzHzqqQԎBbPXm徶ޢEPY-M@pқ*땢ٰhzlw`) &T lci U *wjGNxIeďPʅ0zGW0,Mm!s$4OB@=z1!I$Dȉ `dLI1]Ѻr)SEЎp ESZOZo,1YI&Smн7Ncضh䳷GB 2_gb:Ex%W[]/J(7C8Ii1%VӖ+O"QT.T!f_8Wy^! Vx֛?UtA )]6_ib2lq^O"V|m.G*VTQwF\d2&vdH Լ|wԯc-iQ[)( Uh߱0R[*)#?(}o`b$e9rVOEa:(jS []VIqeb>ֽzc4=&)4G)*YA ;i;8Qgj rиJ9ę9r(6 vLY4 ZוkxN_i@@e+M#A H7j@CQDXsĪȑF´ /9aW@ ePp!eޏ#XD}" P ޛMSM>MX! y1 RcFFFC1yS8y+wQZ{d%,Ib൅-X^\ݔVR6cma͌-jD4P+@2Y`#bApN'Q>3Dѡ *r;1;y6J17j pSdIznuaI%́ ֧Ʉ{fϡyn.єFi':iFUx`$ϥ7鰨;}f!ƥX¼jFv[ùǏllq.CrSF$5ڧ (5q!p #qdrŒ +!z,@0͎DGui;Md%X+*YdGlŤHW5JˊD9Wެ5p>Mx.Nš&7LL| \ yHD^8X,ּhMyTc(w Cy A1GIa#t22-E xa@\1$u$D eP_X%)uuf ?&L:MB;x^feޝ`VPOJTi #SJ[\ߒ$@EN) >Wֵ)&ڂWqJҤt! gMELBD^GP: r28iɈ 14Mː5ڵ&oe~`"V-*pda8("l K4hI'cV2.* ґUP$$46b9EI7K4WJI@)]AU,inD AN"&kN}>:E0>D,'~i,V?+igMXZAT@ժk@y8W>!C  .N򵭕ª*y)%SʟjS"K8k$e({{)lN2Ս64c.Қ3UMxrXҥŜ1Lpi\ARTѪ r:m-;qph7CWli J#1B!);Y+E7olz+ʕFfY#X:~ Ph)U&2JՄ ve/bI@Kk$(%Aʕ4c;c7V =]`QHBdUx.\b;k0JFeMAciJd*Ř*^@[=T0\l;fFG8s)Zȃԯu`DsdDI5gUB@$*[};RTI 7Dkx?j~Z,e`}qFa7+^?hdj6"vUWUnYkN8}FV* QhOajp2a-1.3.2/tests/grind.txt000066400000000000000000000045761471373143100153770ustar00rootroot00000000000000OOO00kxOdd:::... OKKXKOxOkkxdolc; kOKXXXK00Okxxxo;. . XXXXXNK000OOkxl,. NXXXXKxk00Okkxl:. XXKKKXOx0oxkkodl:'... ... 0KNXKXOlOkOolcoxoll:,.............................. 0KXXXXKK0KOxxxkdc,,..................................... ................ OO0KXN00O0xkxdlc,.....'',.''..,:c:;,;:cc:;,''''';,''',,.........;;,,'...''',,;;: KK0k0XOOOk:;;;;'',''''';;;::,;loolcclooooc;,,,::::;;;:,'........,;;,,...'''',,,, OkOxkNOdko:'',,;;;;;;:lllcc:;:loollccccc:;;;;;c:;;;,,,''......'..''..'''''',,,;; XK0O0X0ddxxc;;:c::::lddolc::c:::;:;:;;;;;;;;;,l,,',,,,,,''''',,;;;;;;;;;:;;;;;:: KKK00XK0kOkkOOddl:;;;:::::ccc:;;;;;;;,;,,;;;,:l;;;;,;;;,,,,;;::::;;::::::ccccccc 00OOxxxdxdxdoodoolloc'......;collc:;;,,,;,,;;l;',,,,;;::;;,;:;;;;;;;::cc::cccllc OXKXkoddolododxxooddd:.......',:oool:;;;c;,,;l;,;,,,,,;;;;;::::::::cccccclccllll OKXKOkddolxxccOdoxxo;. .x. .O'.,oddllc:c::c:o;,;;;::::;:ccc:cc::::ccllccloodooo XOOXK0KXxoOOxx0xoxxl,:Ok.x. .Ool,;oOkdodoc:oodccc:ccc::::ccccccllooololloooldddo N00XN0KX0O00kk00O00xdddxooolokkkooxkxxkOxlldxkxl:::;;c:;;:::::llllloddooollloood WK0XN00XxxOOdx0OKK0o:;X0,OO0O00Oc:o0lxOOxxkOOO0K0kxllkodoolcoooxOkddkoddoxkkkxO0 NK0XNKKX00KK00K0KOOd000OOOOOOkkkdodkdxOKKK0O0OOXkkxxO0KOddxdxddOOk00OOxkk00KNKXN WK0XNXKXKXNNXKKOdx0:;:KO;xo:::xkOOOOddk00OOO0OONNNNXXNK0OkkkkOK0OO00XX0kOXNNNXNN WN0XNNNNNXXKOOKOddOc;:0O,xc...dk;:xKkox0OokkkkOWXKXXXKK00KKKXXXKkxO00KNKXXNXXNXX WXXNWWWWK0K0xd00oo0olo0OdkxoddkkxxxOOO00OoxxkOKKddk0KOKXXNNNNNXXKO0KKXNNWNNNNKXX MNNWWNNNKKKko;,,.,:...cc';,...ox;,,;:cd0kddx0KX0kkOXXXXXXXKXXNNX00O0OkkkOOO000kk WWNNNNNXKOdllc::::c::;;,;,,;c::cld::cldxkkkONWWWWWNNNNNNXXXXXXXXKXKXXkxddxxxxxkx NXKKXXXK0Odlccc:::;::::::::dxkxONKKxllllodddxkOOOOkOO0KKXXNNXX00KNXNNXOO0K0Oxddd NNNNXXKkoccc:::::;::;;:::::kkOKKNXXOcccccccclcllllllooodxO0KX0000KXXKKKXNXXKkddo NNXXK00Odl::;;;;;;;;;;;;;:ck00NWOc::;:;;;::::cccc:ccccookOkxxOOkxxkddooddddddodd XXXXXK0dlc;,,,,,,,,;;;::cclodd0Wd::;,,;,,,;;::::::cccclclodoooxkkkkOkxddoxdodddo XKKKX0xlc:;;,,;,,,;;;::;::clllodc:;;,,;;;,;;;::c:::::ccc::clllokOkOkxxxoooollddd jp2a-1.3.2/tests/html-raw.txt000066400000000000000000000021451471373143100160150ustar00rootroot00000000000000XNMMWk0MMM
ol'c0x:Oco
0X0MMMMMMM
jp2a-1.3.2/tests/html-title-entities.html000066400000000000000000000104201471373143100203070ustar00rootroot00000000000000 C&amp;"&'<script>
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMXdcl0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0dcc:clkXMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNo.  ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXOc'      .:kWMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMK,    dMMMMMMMMMMMMMMMMMMMMMMMMMMMKl;.          .xWMMMMMMMMMMMMMMMMMMMMMMMMM
MMMM0'    dMMMMMMMMMMMMMMMMMMMMMMMMMMWo              .OMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNl   ,0MMMMMMMMMMMMMMMMMMMMMMMMMMN:               cNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMKo:lOWMMMMMMMMMMMMMMMMMMMMMMMMMMNc     ...       .OMMMMMMMMMMMMMMMMMMMMMMMM
MMMMX0OkO0KWMMWK00000XMN0xxxOXWMMMMMMN:   ;okkx;      .dMMMMMMMWNKkxxxxOXWMMMMMM
MMMWd'''''cKMMXl'''''dkc'....;dXMMMMMNc.;oKMMMM0,      dMMMMMW0o:,......;o0WMMMM
MMMWc     '0MMK,     ..       .:0MMMMNkkXNMMMMMWo      dMMMMKl'           ,OWMMM
MMMWc     '0MMK,                ;KMMMWNWMMMMMMMMx.    .xMMMWl              ,0MMM
MMMWc     '0MMK,                 lNMMMMMMMMMMMMMd     .OMMMN:    .','.      dMMM
MMMWc     '0MMK,      .;c;.      .OMMMMMMMMMMMMWl     cNMMMNc  ,ok0K0l.     cWMM
MMMWc     '0MMK,     'xXNXd.      oMMMMMMMMMMMMK;    .xMMMMNc.lKWMMMMK,     :NMM
MMMWc     '0MMK,     lWMMMWo      cNMMMMMMMMMMWd.    :XMMMMWkxNMMMMWXx'     ;XMM
MMMWc     '0MMK,     lWMMMMO.     ;XMMMMMMMMMMK,    .OMMMMMMWWMMWXkl;.      ;XMM
MMMWc     '0MMK,     lWMMMMK,     ,KMMMMMMMMMNc    .oWMMMMMMMMW0o;.         ;XMM
MMMWc     '0MMK,     lWMMMMX;     ,KMMMMMMMMNo.    :XMMMMMMMMKl'    .,.     ;XMM
MMMWc     '0MMK,     lWMMMM0'     ;XMMMMMMMWx.    ,0MMMMMMMM0;     ,d0;     ;XMM
MMMWc     '0MMK,     lMMMMWd      cWMMMMMMWk.    .xNNNNNNWMNc     ;KWN:     ;XMM
MMMWc     '0MMK,     ;0WMWO'      dMMMMMMM0'     .;:::::l0MO'    .xMMN:     :NMM
MMMWc     '0MMK,      'ldl'      '0MMMMMMK;             .xMx.    .xMMK,     ,OKN
MMMWc     '0MMK,                 lWMMMMXOc              .xMk.     ;xd;       ,:k
MMMWc     '0MMK,                ;KMMMMXl.               .xMK,      ..          d
MMMWc     '0MMK,               ;0MMMMXl.                .xMWd.       ..       .x
MMMNc     '0MMK,     ,c.    .,oKMMMMMO;.'''''''''''''''',OMMXo'.   .,dk:.   .;dX
MMMN:     '0MMK,     lNOddddxKWMMMMMMX0O00000000000000000NMMMW0xdddxKWMKxdddkKWM
MMMK,     ,KMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWKl      ;XMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MXc.      lWMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MX;      .kMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWd      cNMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMK,    :KMMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMWo..'oKMMMMMX:.....oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMKxx0WMMMMMMW0xxxxxKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/html-title.txt000066400000000000000000000010121471373143100163350ustar00rootroot00000000000000 just testing
XNMMWk0MMM
ol'c0x:Oco
0X0MMMMMMM
jp2a-1.3.2/tests/jp2a-colorful-horizontal-270.jpg000066400000000000000000000760331471373143100214060ustar00rootroot00000000000000JFIFffExifII*bj(1 r2i  GIMP 2.10.382024:09:04 13:59:14 pJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( +>$>v 829[kl<,0ۣ$[/ɱ8ҲK_~) B=[H.#]RHar0;`wZ``*QEr (((((gO@28\uHIǠ$~x :*zΟ+Iuq$IQՇ((((((򿎱ӝA1-ώģcׂW:ΏeiS麄^eˆ=Ab忳ی p0»ih<7X؛`X0 }e\'xBpouVRV z'5ד,n!::*RV (Q@Q@Q@5kOtԮRTu'Yy3ǥXy?~u|FІU\[A׆NN=|F" l\נ@4zn|Y XēFGϦI\ߘ{H̎RbQ `0ַ-), )28aU}0n5j&[]iq"vևD ȮP`=xiΣOq#^>b;/^][ynxtL @݂[Knz2zWkޥldo,͌==EPEPEPEPEPEP3*)f`w'`b<}"Vlb׉W-|O-{^J]W>[;m~>I$F>א2O k׫Z5}ypfX/WJW$(%u&L?VW?OׂW&3i(gcqU-}` ЊlEoiR4Y?^[x+If#28'POӦ=u[Z}s$1~+*88UF ]fmmZԟ_#vU󽷜G 'Q7U q;c9AX> @;=bS5­rOqש+e t"|>&@0تx@ZӼ#fޱ'${+z:HěZFfjJ(ټmUĿF`;t]r.xkhvE#.Y<F#zH+)2EVyQQU+sgj6m,~?1<ߎ?ATIV4 Ϙ=1v* eqsOEcO}urgQOL`j䨬mt-'EqMEs?遘:1돥9JŬgp4lx}J騪1_%؅'{mgz ( (9ȕ?U>+P1kīzs?2O k׫~'zӃq^&_TY?^ ^oOA5ďuH[OysM,* &3tIJjW

x?Zo#jUYv X{J,ҫOTS.ۘɲԥW2 c5jE|֗lr\zWUHMOSN0fF}?P+|f]Irэ):ntOVk5.;n3?WIKi<m78@+YӯOrΖ"=yQE}aEPd!Y@+uMZ+̰`y!':k^_V}i"x$sa5^.u?>@-J&?\u}=-Bf*T0`p ѝU@:z{uOS.,^wڧ'HʮX= r1CH^IVqGSàF DAMUf,7d{ogb1&M̩9LFxO{++H\i:`X=q=ZmNU%I&xxր1$2i)o?~UiWF(\$ .Kv2s9?{֎u<)qo!dDv<Q@Q@ߏJ?Z*ȕ?UcIH'z? i_BZ 8䌯ȯ׬ {7zJsG:$}\WW7J*ʿl?l*KG'kyNja=?ºy# qI+`H*FH*)"_|E|9V]hV]tQAf`?$}id & zW;4 !X]$^VƝ\>>|8,EAP5=!6 n3xֽ'I-uX ˈY8'tcO٢48V (ΰR!'~##=M:Q0\^pZ8Q+jRB@=3N<yS"f'${=?֬igڡO:d 77q?{ 9gDmy#tX ϟt>mLGq^LK{ #w3`ٞ}Or/QKߴ8xEWtk&#=z%h G  F?֯h4wĴb<8u^ݾ?:ޢ((Zы^%^gJo<3/?/dWЖz2׫K^]8?'oOA5~&_TY?^ ^NqH_ď=Ɵyݬ9;z/NWTGK#}1W[Z\^;/+"*'hqP[6}<6.Xl{UǏ9{ld$q6OͼU⫏\a.,\#0^f_@:x-4$ l2 #z眪֬ r W>l׳nzsZ;7|<aߠ?OXZA &]'ַWIZ@FG*DT$8[=rLȯ׬ {7zJGl:6/p^x?Cդin,&lXN$8r y?bgוӅL-#v?w53AddzI9.s>V %;(QEt$7_Y\YΥ6@20y_ )g5@|6xg(t=}*d [Y>L310s<]=/4#pۿַ\֥_h g\8pA:ܢ1Dž78Ax*Q0~yooaVQEV\G( #dol<Uf~>snAڴ ʖ?zcupgbͻ2Hp0:qSQ@&M'SڒSю*[k#m&\J6lv^?ZEQEx_t^v1GqܞqdZƓqa7ݕp⢢n-Gs :tUU➨䑤;Y{|#)AvL~N_~h mbq1nw) 1q ¢ =8F5C. X]_~ƐđDUQ:+>5^&_TY?^ _Cjv_:]՗4{; h/g^>eZqt켏4V8j^F7?b;~>Յdmc]Y}ѣ5gs.:4yj+;Q]xQEQEQEQEQEQEQEQEQEQE http://ns.adobe.com/xap/1.0/ ICC_PROFILElcms@mntrRGB XYZ   9acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C      L!;Q^׆*~]r5@k*3.eO@?_?<LaA_}#rdDdvx|".M̀p7I9 ^(&d+tm[r^DžJ/kr`#3d2. y2q9%#s+G5s.ѺN)CbQ4rdػ5iN7=Ǭ@k1ح}jnAjzosEɐ$#"@]Z7IGp5} GPn&Yq6@|H5bThΗ' գxۘOiѠ@t4w^92c t,v`1`x]{*GPzΛ0 գxۘOiѠ@t4w^2Rhpx}`*kBϛL8+2*q գxۘOiѠ@t4w^_}t-Mi;QhTH6ۮ@(*%ٿb>xzY" Ѽmh :M; ٺu@ir7~> Rt~ $XbK5bP6@]Z7IGp5q7\t96ף㇯u_S"cV.b$"E@nos<#54Fk6nP=QZ$$g:LCƨW/ P, DL}0 h.{Ofѣ͛:wTδJ ]u.[נ +E6"izW<=> sHos<#54Fk6nP<9W VmuWI $ iD2l4+lV>I4Vn`u=fFh xTWNl4HxNz,69w\2Dϒ!3t "Ѽmh :M;ݛ7MZc ,:F$$cdL74|e"T353Aniǥ@nos<#54Fk",S3,dL/+%$35T>˲lRPnos<#54Fk|79n=O.dL/˂+E~o@hEHR>*d F0:3Y@4h.3fwx~RhGݔyFe¥s0d́/ r^z],Mt)\2&x\ G+_ɨIGp5q7\t1zXe˕(zA=[}ɏ> 9npX%O.WZ ѣ͛:wTV뽐 ^V5Ms@IGp5q7\tŻ5ׇ"25:25&ׅlqӺ)|Վ&+V;nW@ѣ͛:wTosgg6ѵѣ͛:wT4T.`^2- 504@P%1!`p.`,/gչy5uQ>fX~O{g@Îհ}ؘcvao(bDzW3΋ S oٍ)FqNGDqܱ`ԍ+JqUDr]QoMAojFA㵅%`I=9BF>K-bee Otv>6B!N۠ -՗*cjG$eCZֳ>i0ocJ̏X&Y_ U_&\gTP ]TumJ=klBμ}יOڴke$+r%Z `%{Kz~Q4&c1njԑ qn( H5hAŏI//]yD:I,@>vJm(CDqnL5#H#>ƉeEV"r=hTShޗ﮼`:Z@M}[kr:)Rֿ:fJj}(mI%-ȧs+>GZMf*Z ߋ^y}|>֫Cn 'R;+4m I] 6ء,Ꝗ37#+֟bz1-:ylkzʒOǯ<}uv;nҹSHG&Gjlem\JO2$U&|,$θt:jZK^ga#Plbw<}{be6i{BWBR6PhL6*$0V^y}|>?wkF/spG=f!j28SYび (O MdΞ"15|5Ī%XQk//]yc'}-䋱ll^zdv?2}I+X1P6ĝğ4ڒ&rKG6G4"s[?Dt>WR.$x/HY>-y3Я{cHϲYYzQN|Ql#&i*_7l1quQXmF,tsF؇#-y3ն__ ׳ܢ I3 lx]m;8U)El9ÞK#$#QXRY 0X|ZK^gzr*'=#lik )ok:]^v {zN*!^ +5ZHEcIWD=hNX1 K[Em?.t38lxntѸ{j=f;v6} [?f;ѱk[9m(]yJHɳ+h t)G^ga#:֫t[I@=,}?FڹVh Ȣd@ggX#V>  !4qr13PQ"2Aa#0BRpS`?֖pkNL~: TѶ^<9/vOAdHBf6\"L PkAxi( nL[$Wh$hx|ɬɍ<7E,G9;r؍H]vY0&׹g9DDiSPX@Ʌ Ph n[i )?Rx @R|C@-aEҰSEFS#!d:BH`1vP8VXrv8v@Iڛ(k6@dX BOc=^Qƽ2#_ KAܶ#gu-oQ2r; I Z)b>! yۖl}B- ٵH襈 n[i Ζ (襈 n[i Ζ6X* (Pp!wYڕ:vBv/Džh n[i Sj &uҘ(H^}@": ~#lFݤ.+Z$ެ뇈uG & K,v p;Q5 KAܶ#gu1|!0 .. KAܶ#guqXD!S(8^Xrv8vo |Ix4ahgXhLbĸ<$Pp.3YV#H]tsg .0NnƚC띹( }B-M@ciSned.Ѭn|!}B-IVABěE?gkjM,[I2m_vo  Lq$agaH uU"${OH]thxCL&wyuzYoEvo wmm҅T9EGaAꖑXe?H?= q3!14P2A"a#0BQR`$Sp?ˑ I/cX!ev-=?ݯ+2↲?]{H _pc QVӝ$b@RSN$j0$FB~v$-sU{v})hk0bÀPHVI Nfϼ{;^9 omjՒu"G㘆VmޖM ag/ ce_o}ԋ&s Yf ,ۭ58IM$N`Cj;6R>Ēq2V7{خY)#9i)Hqavߩtqق3I}qefxc祗r:< Cpq8H(); h89Tv`妒_\@])h+au102\`2|IM$NYMf`D[6ݦ }JQق3I}qtRӻh9Lv`妒_\@],&)K륜{ZD~ f HZi% ubke)Jn>}W)#9i)nEelMw+K륜w[q6*@1L6Џyar60@_\@],&VNx bȇe@U&[륜י;ݣ$eNYMy%*θ]V҄,i \@],&g][ZR;:g15Qj\yi}2Y7}qt'[PSfR`Fb!Z'o?'p]8L!1A "2QaBqs#034Rbr$@C%5PS႓`cp?jHRz`D]$zsPF HQOMǓ*J22=Ф ABW4&Q;wZ 1Hkx|\lk_t̬YeƷ=0 15@mtJD IcB@XUAk raՙL(0'z&ZΚZϼLVMHO$PB n(òNe^Qe fxVY'lK޺ uxހ"*P;H  ca)tI[FL%J8J2B⩁yJMIRTs%fPyvf#!dJYIB&'gY&E.ܡ-,q~ QVoѶ%TB-wBBR.0 [cpH))$5P6ES1@#x|/[-sbCa_D mifKan0V\V$T: /&RMnOD&T%%YeGiͬ9$zStcJw%O7qъ*w㘕ZK"U k6eFT8K^j<[ف |-(WVٛPU2a [ V84I^QnVYԙ7҉jE:-o>]q.sAqA nHWB-Jj8 %*Zc<}CsVeGfb9{ &d'R,ɘS& bUzfN0WO(Ds B-/<5mMm amT k[U6Ytͬ$)jHkkpvJm}LUs.KGODj'S-kG P ӄ( A:Mn-j j8ho٨f}H^vsVeGfb9{6Ki3VefɀCg+Q`!*L-ՙ)/Or?C AfbrepRb|l <ꆠ߄M "F>okJm]Ht%aJ P^.W0>%fPyvf#/ 1*뢐fNXUT6YUeLuV k>퇶oBnKeEmk_!uj\9[Wj]&Om$$=Y!X,Co kzkr\\LKk{>r+2̣1=~ϤOk-ɇv*fd!7*:B|N5$"׫Y&1D] )$&&%&lL_ą2x)!`]5j.kBf O{dVlY$&ƲϻȌ:'ݐbf@:A 5zCΜC/bP%e$hr+2̣1=ԫaxDFxN% QbsH#FJzTɃtD')V ej&ؖ] ^֍/ĤYgܭE_h>Ē.ֻ3&JBʐ =U0H$ Ĭ2s#e$ìr i˺aҠCA#i0SGPNuG:rYJMI*;V3D8ԒB^pyڰ_ ~#H=a JiAMSld&[Lo+[0M[nV_ x5kboT ()|n*<,,KFEfwٌFϬ) &,Jq!Af]6tfL2Z`#i X>pJVeFV^.#*%iv 9w|\`|J̠(G2;NsE't:TwTQ\L% \t%\П.X+H[ RBYX4y찺w-}6YU\\$а+ wĪwh2R$S]ާ9t%l Pxy(xheSPeNX%׷Ĭ2s#eB QAHU_M60d(PL eU4J@JEfͬ49$ I`" M*A=싫oYރ['ZC]yw\$w@K=Շ$I K0t)]T=SnݾBJ 1] JrQD5&xٰ36Z JT}t54I 16{5]`./S'^(8FĤNLuѨwjB/az`i);l"ԻJ_YPZ\ai:e_-)G2;Ov_;6%gi@3.%h@M=DFQ5D\"T0A7{#lyA w"rzcȦ~|]{]&p%LAgv!<棙/Ԅ;E;ɔ h#Gi%OHbNTO;JGӚdvh1Q@`X/S*RJ*]%zٸg#/̅)Ͽrd#GTFus#eC:D8@]-}A6&%!x"UuWDyq_Xs⾰,!1AQaq 0@P`p?!du8(/! (q.E)aDJ\šn~PVK ==izӕxj$ǽ%Ndр&Fr1>#cVv^Z&ؐ -H-!1u!,Q+M!yaI&u^2fAv i 6 4Ŏs%HjKYgxXjH*>/`mP7M+|`[~^ɞ54*Wn>0qv6LCrW#gYd,=[sx4˰oE=*7jQs4mCpzJ>.H{T-ZVgw:↋[yEc`lp֯s׵8kJ]H}IzFT}ցW|l eȽ'W¢ WXEMnI%}7lMQ)i[8nMN*G X"o,buڦv* $/KT[UFF!f *=)g֨V8PLFzx^HLTE + ohFؾ/V1IJ-Eʼ,^ %kTI< Ni  ;m"m=$\s~VJr>Ms2yӚDӐH;^pqfsbXhԶ36ũ**@T#|Y3O2FXzlRWÅkkl;>s߮Pmʏ+%]9S'y1oe}9޲@F2mo;2ԸPD=i93 `""NHw:TƼ8cCD=@#R9 j3lp&TA<$Gt-0 1=UCήA9y+BBz ̓*nPA%[<ʆr9 AF+!Q2HW2v`d|Zε3R`P)IKJJ;Q`xT;n6T5$ Mk$ŤI?a!@H0tϥ'=ʛs~h !nGZ9VdyDaN)FZˎlR۱o} M}c_!ȝNWs-Fi0/HhV\.@mB%N&Td$qy)i D0>p!. |&&Hƨ^f -F'E S4Lb̊g Y%[|anVVDon>((Wq>'{-(MksUK^2ȁnjL8/kZZl+:![ڬ"Zp7q 8d*TH:>xotYo"iMQw fm4r9DRZsu) %yP" d~N;z/[g P,e0+Cs1fECwoP许B7h(mcRO ?T^xa<(%zq|ޡ<u7;JTa.%p{xX**gUiIZSGZ+͗.<ҥG1:aOa MьQ0ϒdƁ3{(%DIoqDtE@|_M2Ǵ~<exT#0Ubs/z Nj;ʳ)9VAYNyIxn2|R Tw (*N[Jh#Y'v)W s]f"N±VD q 3!Ѣ%*hFP]:00j%σxExe]Hr. #F!`mqNM1z13MFCk@L;T0pkO vtL90bk ˲/}ޭKzK/jjo 7($bB%t3l GtэdKoq\tVKr -R:15&{;U9G:DnsՔ6ROE㗻ƈjv{ ]\j XD<^$)7Ud,WI+`AXInIXGFIζZ|ͭ"ٷM2pH01IOE#jHTf*UQeO1 Kᰅ0PAĸ"Z$ݧى"-f%֗=c{@&e=tEG~Z1|<(ԟm I_b^[Ռ^OsZ9YbBcYE& mT;ˋ;vLj߹H0ǑnOKUNO2 R.XY/"Z2FɱDZڷm>-6ZVčqK^ԣ:L#x#uwa$O˚xsbx(#[w2jxQPy%ԉQ['(&3ٚ{O GVtc|ĕnnTxN mjMI}*nEb#Z9w^('*Q*18,2@!\]h٢bHv砆L\jƄGlY{K7Y廟/o?;]?V྾W+vCbه4+lRB/ԤM w~oO20z7WހF6B)=RS\Ԭ>)@00ebNl= XmF)< k~[_!6>k5^y@_{$4 ҟb[UrӈN? Ҳ=-y⬜ ǔC"M7_J* [txH  I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$7,I$I$I$I$I$I$I$I$I$@ $I$I$I$ڤI$I$I$ $I$I$I"$I$I$ $I$I$I 0$I$I I$I$I$I"I$I$I$I$I$I$I$I$I$HHI$I$I$BFڼI$@$@$H$I$$$RdI I$II$I$m&I$n$H$I$I $I#n5I$$H$I$I$IvII#$AI$ I$H۲MlI%I I$H$I$FݒkdHI$HI I$6ZhAI$HI$dػLA $$I$$v$@$I$m&[mi$ I$A$ $I#n5 oIH$ I$IjIaDI AI  I$MlI$I$I$I$I$I$ܒkdI$I$I$I$I$I$d[$I$I$I$I$I$I(ni$$I$I$I$I$I$I#>I$$I$I$I$I$I$I I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$+! 1AQaPq0p`?P"R*'8F'Λ*vJqQ@BQvJ9O)-`e?3TN1XX _ d(KgE7!N_SKߊA8I^z`goJ"HQO Ϭ5ӣ_SK߉P )r}OSTę䳼*:Aw`qpq:68qr&j8 5}Nt0bY%xN0=E睩C5ת:M: da#(a :a*49+&wcmշ_V}XO)#pG%kn"׉C7эw0~,oW22Fre[\׋c=Ȗ+tSS[ee ɗ,U.-xš)a9NܮYV亗$0%+ ΥthQmv{&g*U.-xsWo\H$ѱ'Cg7Tu.Ik& /,Dqrx2yTu.Ik&A* e2ʷ%Թ%|ܑ)enKrK^)5oQ`YV亗$VV9+CG*U.-xA>`G65~ ;}e[\'0s4(0zrkEFB˻'/.^"e-(ç*U.-o,QwcuȺ{E|e[\Nv>_8 *ܗR䖼Rjٵ)=λcfXĖ^aq2<\oőhVF̀>nlR䖼Rj^*n ,Aeqݧ%>sE}ovK^)5y¶_' .k&1H4tm߂Rj, ¯0륵S~K^)5y#]1to߷b],!1AQaq 0@P`p?.\@ygps_cerhb `uvPI!DXLdy#lV Q^Bn&`azwy"K#y8( DÈwNJW"\ =BP^l‡v{mn^iĮM:Jɒ8 ,tcY@;m0Ib:s^V *YU*e#`yIֱb^6;Jr`V2+ NU%aFزDK=س#"Ӫ=|@ٗ †{`W9CyXUy3 %ǧ!%5x`25-x΀١\<! në8$0ƶ9Fm*.@A:0-@Q"(##lnz l;ȦS8- r8Q*"H&/2?F/ P 'G92.*\̴lBd3A =_TtmSPI{AŪ= slW9P&TC<Σ Zך DT&8]2^_}h#–c,L<@c|X  7e,f4}0v<?jHuDx #,\g.gb^:MXD5xML^sCX*iABAA$Ei m-BLĶfRjeP!vm}CQ~NPPj~Ubٌ͌8Og깺4˛h2z9:R=WK HP ;dxS D5A(.t2(n#&(R5ꕀ@FmA3`Zt(ј$!$iY htpAXJ! "tLD\9cBF@:3]/ ! !% J+A((x>!_q0Vxc` ar}?ḯO#"Od|N)Ei8ͪ71Ϧ\U+XtM P/(S;|ByP\ðsؼ>brSsQ&@:u@s"rl,BPvEB&s j}R: ˾9\ʰHR&FYJ1.[Y+nAP:[HC/YwnHjzb>9U3%{< |EHM= [pC0PkHxxDZ $A;x 0["$Bf6pp133u<DI,򺨀!^3:oتY`S62<߁ FjݼjuYCO%$3IIy)P& JِJ Q CL?FxPEOR_oM/vzz."g D{"̟EQkz+ cA43RL59&[KUr8S.S"P%'pǘ\jxvh Y .3wS&N;o>q7?8!C&pD<m@mx%u\v!Ю|@bC 8pU %+ (<AM* y*Yꅌ zI(J K CrD)V4$+!kH$0r&3'C50Wǟ"C;6G) ڡ q{d&f_b6'2HCbI{G.IK=HZ6@Tb+ab q^|h뽗 XAKZE9E4ג x?CZ3 ?H)501''ŻSn"1X5v`9(@Qk3j'qXF{yzT<C<HN@a>泿D  rI"N3(+SWtc8Idhx$Ӆ.Eu,";b0}ՐuUCoNG/trOKxhQ(x.2Zv|FĬ@T1kJÔ;o'/c@DbSaRjPxFݷA~b\wE@U B~,rf~ p|鿥'|xyHe6h{KH\ a`]yuʑcگUUܛ #xطM2ftO?_\\q 힀 %l'<+$'|ZI7?X|;)%l2/rJ*#k>Ny"4sjp2a-1.3.2/tests/jp2a-colorful-horizontal-270.txt000066400000000000000000004322011471373143100214360ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK0NMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXxc:cokXMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0dc::::::OMM MMMMMMMNko:;;:oOWMMMMMMMX0000000000000000000000000000000000000Oxoc:::::::ckWMM MMMMMMK'........cNMMMMMMd:::::::::::::::::::::::::::::::::::::::::::::::lKMMMM MMMMMMl..........xMMMMMMd:::::::::::::::::::::::::::::::::::::::::::::ckWMMMMM MMMMMMl..........xMMMMMMd::::::::::::::::::::::::::::::::::::::::::coONMMMMMMM MMMMMM0'........:NMMMMMMd::::::::::::::::::::::::::::::::::::::cldOXMMMMMMMMMM MMMMMMMNxl:;;:lkWMMMMMMMX00000000000000000000000000000000000KKXNMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMX00000000000000000000000000000000000000000000000000WMM MMMMMMMMMMMMMMMMMMMMMMMMdccccccccccccccccccccccccccccccccccccccccccccccccccXMM MMMMMMMMMMMMMMMMMMMMMMMMdccccccccccccccccccccccccccccccccccccccccccccccccccXMM MMMMMMMMMMMMMMMMMMMMMMMMkccccccccccccccccccccccccccccccccccccccccccccccccccXMM MMMMMMMMMMMMMMMMMMMMMMMMMNKxcccccccccccccccccccccccccccccccccccccccccccccccXMM MMMMMMMMMMMMMMMMMMMMMMMMMWklcccclOXXXXXXXXXXXXXXKxcccccccoKXXXXXXXXXXXXXXXXWMM MMMMMMMMMMMMMMMMMMMMMMMMNoccccccKMMMMMMMMMMMMMMMMMKlccccccxMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMxcccccckMMMMMMMMMMMMMMMMMMMKccccccc0MMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMXcccccccKMMMMMMMMMMMMMMMMMMMMdccccccoWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMOccccccc0MMMMMMMMMMMMMMMMMMMMdcccccclWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMOcccccccoNMMMMMMMMMMMMMMMMMM0cccccccoWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMXccccccccoKWMMMMMMMMMMMMMMNxccccccccOMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMxccccccccclxOKNNWWWWNXKOxlccccccccoWMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMNocccccccccccccccllccccccccccccccoNMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMNxccccccccccccccccccccccccccccckNMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXxcccccccccccccccccccccccclONMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0xlcccccccccccccccccokKWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXK0kxxxddxxxkO0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWO0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMXl..';lx0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOllllllOMMMMMMMMMMMMMMMMMM MMMMMMMMMMMK:;',.;':kNMMMMMMMMMMMMMMMMMMMMMMMMMMMM0l',',',,dMMMMMMMMMMMMMMMMMM MMMMMMMMMMNl;:';':,00XMMMMMMMMMMMMMMMMMMMMMMMMMMNx,:';':,;;dMMMMMMMMMMMMMMMMMM MMMMMMMMMWxc;c;c;ldXNNMMMMMMMMMMMMMMMMMMMMMMMMNkcc;c;c;c;c:xMMMMMMMMMMMMMMMMMM MMMMMMMMM0ol:l;l;O0XMMMMMMMMMMMMMMMMMMMMMMMMW0ol;l;l;l;l:cckMMMMMMMMMMMMMMMMMM MMMMMMMMWkll:o:ocXKXMMMMMMMMMMMMMMMMMMMMMMW0dlco:o:o:o:ocllkMMMMMMMMMMMMMMMMMM MMMMMMMMNxlocdcdoNKXMMMMMMMMMMMMMMMMMMMMMKxololdcocdcdcxlooOMMMMMMMMMMMMMMMMMM MMMMMMMMXxldcxcdlNXXMMMMMMMMMMMMMMMMMMWKkddoloodcdoOcdcxldoOMMMMMMMMMMMMMMMMMM MMMMMMMMNkoxlklxlXXXMMMMMMMMMMMMMMMMWKOdxdxdoddkoK0KlxlkoxdOMMMMMMMMMMMMMMMMMM MMMMMMMMWOoxlOlkl00XMMMMMMMMMMMMMWN0OokoxdxdoxdKONXKlklOoxx0MMMMMMMMMMMMMMMMMM MMMMMMMMMKxkoOoOo0xKNWMMMMMMMMWXKxOdOoOdkxkxxKKMMWXKoOo0dkx0MMMMMMMMMMMMMMMMMM MMMMMMMMMWOOd0oOo0dOx000NXXKKO0xOo0dOd0xkkOK0MMMMWXXdOo0dOk0MMMMMMMMMMMMMMMMMM MMMMMMMMMMW0xKd0dKx0x0kkOOOxOx0d0dKx0dKkOKXMMMMMMWXXd0dKx0O0MMMMMMMMMMMMMMMMMM MMMMMMMMMMMW0Kx0xXxKxKkOOO0x0kKd0dXxKxXXXWWMMMMMMWKXxKxXx0OKMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMNkKxXkKkKOOO00k0kXxKxXOXXWMMMMMMMMMMWXNxKxXkK0KMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWW0NOXkXO000KkKONkNKWNWMMMMMMMMMMMMWKNkXkNOK0KMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMWWXNXKXXWKWNMNMMMMMMMMMMMMMMMMMWKNkXkNOXKXMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNWKNKWXNXNMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMNWNNMMMMMMMMMMMMMWWKW0X0XXKNXMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMKXONKXXXMMMMMMMMW0XON0X0XKKK0NKWMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMM0XkX0KXKMMMMMMW0NkXkNOXOX0K00NkWXMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0NONON0XXXMMMMMMNkNONkN0XOX0K00XkN0WMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMW0NOXOX0KMMMMMMM0XkNkNONKX0X0K00XkN0WMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWONkXkXKXMMMMMMWOKxNkN0NMMWWKK00XkXOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWkNONONXXMMMMMMNkXkWONMMMMMMXK00XkXOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWkNkXkNKKMMMMMMNOXkNONMMMMMMNK00XkNOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWONONONKKWWMMMMNkXkWONMMMMMMXK00XkNOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWkNONON0KXXMMMMNkXkW0NMMMMMMXK00XkWXWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0NONON0X0KNXWNNkXkW0NNWWWKXKK00NOWMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMNWONON0KOKK0KONkXkWONkN0XOX0K00NOWWMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMM0XON0XOKK0K0NkXkWONkNOXOX0K00XkXOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWW0N0KOKK0K0NkXkWkNkNOXOX0K00XkXOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNXKXX0KONkXkNOXkNOXOX0K00XkNOWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNWXWNWNWNWNWNWWNWNWNWNMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-colorful.png000066400000000000000000001007071471373143100167110ustar00rootroot00000000000000PNG  IHDRWN zTXtRaw profile type exifxڭi sY8rdY~>ruʲ%pqq#q"Qţ2_Ǹ_Uq.~}>}89yѾ>s%g{;'ެFr>,4M}68oSs^gU>((-a1_X_5f}8x,! _>^}m6I;7Ox Q~;ğ6/`Ν ~~y 輢kg_x/&)_lgsK#MrxR#{+wr9aK~3vv^[SdW~ 7p6Ff 3Y~FhD aZ@p1W78R2D8H@$e_fM0β贜&I]GT6qx&Ѕ!ÞbM4D:4C+7/jg@}V5 _D"ƞlj Fi{B*]M?0W>\6 C5G#cR< `|a㥰S _Vٰ]4ײQYϽc'f(t@r4uЛ砣֠`*v9Kw9lI2 wY|]ϸ 5R,: >ss(]zI{Zv-*e;s,zw= Fo*XLPB2 ړTD8k{ ,ʁH6HU)kI,t rx孅 tI׹w vX3,jݑl0bA~sa[TBuCL5 ]!ю@Zh>=ǭvX{߾ ' '- qBfc#nO- #~?~?'!]Kk~SotbKdvoH,n7#R<+ZWռ2J1R*C1քdeCOM :m]8P,ˊрu7E]>cKߑJh\.1L^F_8[_VF~ՃJՌ5@ޟ^ 4k H'A2<0N[vilO& /|y!r該L)k"-`훶 uzn01xw$ۭAWCo!B/; ҫQ=:H<# [ nCkٌ'c ɺw uBP Nc.>+E<,9r']YZ*R[]>lHƄSHPQ lSo4`,Jc|DR2.UȐ.s*Ҕ55Ef-ּn`P.#O-#AHâf{͠vաǮoRoQ+_̓OxJqʆowO =V]5؋l2Mu HP<g}^VWlQ=H:376Mg3evF:CΎDz0W3Ŝ)7+/EMlT߻>|2*i6kfx#)@ȓJYN4k ^ktN"[N7zB\\{ quI>gt' LD,<&(- RȠZx]BepA?PePG60 8YzULA1+ˇ1҂WކPjGnN2pC~=fk0ޣ_(s@UVD4"]t VCڙubFUE7`k!8H 4DQy$a$qZv8}Go! @iz2#_k ߸\͉:!Qw;fr!r+g@B c- 2bPc>b5QR/t1'IL٨[\/*)9f`# 8?+BV#/RdX/1Uz}Wk q|/\#e/FLiCCPICC profilex}=H@_S*dNVDE EjVL.& IZpc⬫ ~89:)HK -b<8ǻ{wP+2j4l&bQ1^D}Ð,cN_.³9ՌH< LA*L]| """"""wnk2+ M`z*k2 }|p VzpzDDDDDDB߶d~ɼ6:E L.&з>\nΌQ(`d~\;9/k5GQY<5[ 'ہˀcZ[D(p ʀ@65M@*Z`GVDĻDB__.~(`Muk7ysڴг[!"hsw2j!\D'wv`-$wC\do/Z"":"O(ύ5ck2&a/07Eݬ/ILGAÁȴ>֫-(`&0|r%pu~GDtd!~g0v!&jk9gM̏6{Ӭjo?<ۗZ0X[S sӀW׀7֎*k9dBy$6#Wgyߦtǚ*] >k9k{yIv0x "D`𒯡7p8>|㎈^`p ʭmDDtn>iY{b{Zd hD&nv?-{o4iS}k7y qLʢ;pJ(t{-$<_F?tTi)}KRVZ3/fݚkO4g|L<Ǣ^6>0 '0~F;2D7p]7<B]צdbB?|=zk(%?#"'P4&6gm]=]`.rDDDBogM 8f`.ZL4]:d {#z0/C&?m9 | f"7UY|=|]lYxj|gMRߕz5%HéL4kvv S}_~ylbdv!g~ 2NEWDg$  ފMD?-o +;J/%Y/`>kaWӗ~-ȋ=k|L5ڗ\j-8;!is/ _C r7Dlch2j9t%ɽSd^v]/A<<ȄWJ>r&(Z=\G7GIU['> #Ye ,DQ{z6!{"?>:w {cOP`^DDBn^YVR _mA@}fZܻTMraIVtmذI %&ɺ:.+.#IAk&x_b"}P]P BP5,=DפaV=$뤘$ , }/Aw(hn`Jh p1ٻ-5DlcwhSl,I^ɲKim) ֥3KǼ"%$ikgZ䃯BoH]( ?w:Ǒ9>m0/ZIMz 0 Sc PlBGLYdDGB\ϧ5#zD;"l:2L9Lu)r5Vc._>~2w^)3 nPd< 1s&% :X#.ol?DŽ &[JUk𲽯yaq?[L#?͉1|5g|żH[kswڦ7Z@%b# f5ZydюX2oMBE;.}|{XkEnVhjkm(PW>עUn|y.;2ugټ,:L٣{W6-ȲE`WD {!2&vsT}+hʭDkǸ ?'"sI}"Zb6:E pʐٽI!(.`o3"d'%SvwE7e>;$7}IIhM?_WoO)[rɗݐ>mEdϒ栥R8h>9bž=P@n6pa3 |dCLXtq\{غ'5XD&"_hAV41xkMA[ϥЮſݷ&[IRr&fm"YA Pom>cj-tT?{3Ip5)!d?7ͺT߫M!&vϳS5{\fUYsWRw}zk2uk2_E*_[J9 8dzMff|5"RAC/MiH iy)6Q Scfu92/Ef !OEk?|cyy P{!IY6k-u/torݟHwcr˅i+<.wyaj|5QtPC~+/# P>5LJlub ktUkm<`~ΘǹUXEnϿ,Gb I-rnpOppO K ccLJ{k.wMp } '|U,^YD(k[b6Sya;6 l#""9 10I M9k6\o!XԛH{6%#"GDDl!DtPS=m6oAjJd6^6eC_v8p%8 nE7܁*>7a ա2p ɂ+9|G䷟dCe'etTNvh-)ɶc< A"J("" (.$&$r!$p.GR|7 8o?Bf_"cm{}徆i(oG &ۃ-L_0߄^k <Vr[j!)w@OjWm}MC[0fD!#" ',C Zrn2E&@$˯6"zgX--%VL5&PDfFkȤAoۅ7-n_{ۭ@>  >& VpLpYԑT qB_!0w Ռ%ˋ-s:oikG~vI@ (|HBm{[A )rw]>2AϘIۡ~}- A/K/^zZj /u=R}fD$􈈈-EH̛Qx= lGa}d^vO[詳VۭA)swա\^C*qDD#"":"]Bmk#"6DE=+=Dlm菢pP?]\@-boLԁoL{ U;"" ɺ;ߝ|tcn(lU$ZCP Q4kVg+c].fT ۽NRLUV}kQd{-ZVu&ipI|d x 0kvBcK-Qn9>(7yAJ.""zD>q^E?V?ζIZ*.VF3i'AQ&VR=#g*~T.w*dն]<,L7&"K`wv>mW{p]C=A["ߡ]S;Z0묅 ,v@Ar w2׹,΅UF@lL'\?h̀uB֜V<rH)?k {X8:Bo߯}}}|0V_HVTmY,EE=*)J9W0Ɋ*b t9l5 7To^|&ǀ EY__=(W|c~Bȏ"ۧJr-;Th p[U>`R[H88KnEC \ؕ L2? --99*pm4w9l95ʳֺKQ/<Yk_v%Q*Wv됙k硜-3i0}߀X)>2z|Jxm-Y\" =Hǥ_}߰ZY]Б܋I57dN}3_Qіz&g+9-N[XCk[]O{ Q|^kmWTk#k`OnzdY B_n0aw~vڒr=?ږ <7=jd/= FښT3#weBoFf+YsB俇EG<y`4W;PT &}+y|o5 /broBzz=>e<[zY`gLkW6WED ُ7B򏹳cpEd+F6C&2l3aF$h-Ȥ|} tk&$Y3 ]cccKAIj:6@õ"mZnЮ]6?"G_Q/2ULkEvb"W/xAkQY=p2 =M팂"f_'ZZ=qA2(@ o׵Vbԟ,,z]n֐Khh[쾋`:X1R5kP}w%e!hnge-zDgNOF1*qu/=+t$F crh'25CKSDuGnLa?1l "7TT'cYanB>Y31^ #S4~)rAf,m5 ?9(p"e>|_gxTK)"+hY܃Qg},?E&/y-Mh7BEZ;f d|^J tW"1?d&6sIu|[oL̠԰=6ΓSZ(k=E/BQz>Vo|9`:Iৢ( [L,}}c4lOX9ۍ`1BɶҴtD#8KHH$O/"kokrH͓w5"O܂r3$g_IFd֚h|kނ‡ IDATbJLGY18Z uodZg;b6M[<8 bkml^L[k?=s֔sl.[ݶ;95.?VT13~LƗ Yx* Z(ukqS9z56TAoߍ|a#iyBk6Ml6B[m˾ӟ[DB"\_Q^rw#6b"? @P&t8r&#Q*`odJ L@Aq=7pPc*w덂f dj퐪VqʡqHX?=c w}~*Rt_vJ & y}LKfWXnMmQlH#U29(m/O/"jf(bTz{ٓT&%(@l/_B DsBAeך~Ҧ?o6)Z2?EܷXz1uIILQP:HOP[V{Sl@?F/@_A-{]6 OZt4Bik[#:!~֮X\nfm39$NoCWMkxZp(8,RZBgIrNC$ecB(% ;3fVkƟ9r.>wXoO5YiT~ؒ݁$bJÂ܅LP{ b4?hPo{(C͎Fd@ Aq`l%*#hRk֜KqDǕdA&ў?擤Z c/9x 4)amy Rc@R{*i-܇͖"d*2l%͑:7AeٕsmJAi1AwZxIIv/kAՂDFp | .c[\CM&s=~3P|}t7wM'X*ۚk>CshE֎,j "k_8 kY|+,nr~hͯL,Q [ZpshIUȍ3֘ԹuQ M_V-oSd+~^Qŵ8I6PuتI6ՓDcR Y?*6u\H;mGɧ5a][S|NTkYkOؒj-򃉈\<`H*x-1@g*V]2þ߶7ڊӐIkd ǑixfU[;bOp2ņe$["""Gth\LS%+[3UaAPH }+`;} }2r]#=e} 23v3s<ր5w& ̭= O q2a6&;ŖsYj B)jxY8 ̊zDD;i*G@$-a(XPJrҥK<~D)h(,d ^݋j, ="zDD~SdRgm|ȼچLFUʭeK"^g">Ag]:Z;? ;|t^(}{ EFd(n@>=ca)dYǠ:TN#~L;{'Q(\WZ$Ψ[Kg!UR~b!ЈL''a&PPeZEqa!+mx cK*" E~NdLyW[X;ϸLev{p"rZ<HנE&z*1'>M5(2y5k=gMlw$e#t߄rG^@b'L Q@_7?PY o/4BcH޶ V0,R Wc(ా$zDgWVTOcy#oޗ#y nI 7-gk;Yqj^avDa5/9w[XkK(T pX *o'~ @)P&͟(lHWwİIK$j>DU4ѲEwG&Iy>w!+\ ŀ~?s4HXKRQś&|`6i#E擐{{ 3}Ц"Pk(`i2EiY?L})2]$ ĚNIk%YE-L鴵ũIiͭbR'ooşJDBY ] Ocv56rTkp__4x1ԅǽG_)As8YlnLi߿Y$e?:jr yIH팗x!]t3h(h5$)f+<<ɓ|'QD:E? |LGh`D?RPIt:].7hӸS2BBH]x>]Xc:E3kYF7򳇲#Q 8 #_h=_C1 _" #M#_9JmQJs.ufsPR>%%إV+I]Bv lwsZRRmBM~( zQJl p )?sQJ[ҐJS0BП$8>E3M(pn$IZgz?B97}S=L|KP둉{I"{{xg=!x~`sQ9ZE$Ѷ4Rs-VA!# ls-B~gGܓk$&اĮ/{{ 5`"}Ȃj E-tO&~4}L~*zAU$cgZ/qS6K(v3o;ǭ/C עbE-@[EMҽ%ʂ1HyLd6Sz[W60=EԳY?mmE] {HZIL<tI7,܊R8ҵ|@fwx̯,A \d¿xϱ Inۂb1>άq[:œ^`hCPdn?.k_-砉($Q`RwOunw2ǖEY@Q; /BTu$#͛ٮI"GDD[n<;|4[N@H̢#=8k>ݑ{{dfsA[%,~g J<Ǣ#M-l"_>l{5 @{ "Yo-3rhienW֣D?:[eB}H"gh|:o6? -t{RBBٟ#I .m-zDDĖIVL#&*&=U?|ᠠ=>a`C)j9 J5>>lFd'𮌻lǖWIR 0 E|+EףJ3MrۭY(^?,Z@%{%)W_o?|Koh߳/=۵{|I9B4Gty;STYagT$QkY?*=$l>צ["g-84j_vZ|2Qޖ?Z ~f7 2%@,rw[h Rw=,l,4ֆVR Fy=PrLGZδ`IYlEe=KPȝyx[w=sIk}o>uǝ_w}~PS7O/Xn` znd_N $8m>~(uA IDAT:6.LO<ue(mY^c}y(kP"?_}sJyb>FDoye7 p_7cB| YS B;U$tSR=[ dk;64*a^OEi}՚/Eb@R`#0-ݓ_HTg x"=$Hpy]$>$A+Q8L%jGj"bMt| E KjjHҺQ@kޞj- EƟs,A|>lAd_)!{OD[@y(BG[h`ArUoQU(/E& t{Z|H[ 7Ѥ6VH]鼋%o&V'{5=/2?"Mҵ3dMtc6YwxҿZַa`q;a[j `QoOF ,vERZ1~-ǯFPy_kKMYbR_VZx_Oh r%ZC1xT =n\>_i[P&tpNB&АQaXz֖ҐbMnWڮKWrY-?7o%UlAgSX-pVjT1|ku56ݓ>A3_dҟkJJ\9U(('LW!Xk[Q#Swߝ~ųךI_ }=Sc7~K!zL[<Ĵ*Xoo6[;P|s)"Αm#񣷤ڴnvzڡk1yZ/E-5.*FDJ7^ ÔV~ DdR/Gi3M'Y Gwf4@iz&XckoG~jkaAfҳL7;""zDb"~?2@f55((9\Rꑙ@Խ$?/(H [אXZ,P<Ҫ" > ȏ^mdϲ 5f*?2Gz-7KQ|?-~((1h>2GXxnFfǩJ] 2\ 7W$t؅bk( mֆCf/oᄎ%QpV7W (nWk>&Ĝz8 z4wu;E/6i\d8[Ezmj-1L[/hFmPY-kagR^w|)f9WQ^}IU&YttrBC) >:o5a&&m'7I|}'˕_GRiRo[{̮ړ\S1͓*?w[$]hd[/c04[Z9‚)mnwjgr߰IϟG9O?[eŠh7W="z/NBnfoUJ-Vz .6 wDIy_{cdA׌Azhrr#GBp^^QEpW=.Vra_B֓X0^뉪ĚF?{OogḪս^cz"{_f˜~n V ##Q/RkߵnVu5oYS,2O:Z,}Og(+A.D rTd_^hi(sD%(F7xB& omE6( 4d:仛vJsL@!GAG=Ok{!?`_](T䔖5{kt?w=I ؇w7j__΂^xx0$F4o?ʑ[Mkm$'znWS D!(כ""֩a_Voq*X[*28[ɴ< | s )j(hZs D9$¼wj|a.c`EjrֳjpX40RaUjI5赩vz֏Ogw:Jl{Bo4X}# ,w5=r?٤CC!T>ۋ.]/;Y?:0x +;&Am+"/-;#v2/e+ڷHjZ\2뭥pn'zuܦ#_s/:~Y{Es_em9oO+'!~q,8iyV}E7NuPZkVY+ x+1`|qÅmU'1pZ{Oe~K-Ud2ao 5j,hU=xm;e)ra<2>{*GnPZ!u{XgqhYHo FyG <ĠwF*l%on/$KυS^nGJ0]ڿ҇V-0LPї}QC5 hf.W?gAL 4Cn(J=/ob5΄5mA<D׷ۂm$+]Km8sF@FBܝ*)UT1>*9ޗlUޗwB} d6˵c[pmRC='e"nC$A1 En7׿g+M&b7$b5;d X8 UB=N$œ #oK (-u`IMcO{!֡6{ޛ|{]7Y5zɤԓR&QCZS].69Ժm? Yyr,F}жEW ^A% !_n~2o?e((W^}}w_AAM|V}5=P($\?5,pGD+b{Ķ~_@CE$VAGt׵3cs_ 8d RLon\v( D}䇐ױI|WYX\O2iuꂏAl}PJ߁(ETS; s f&]zߙҔ$?$edȞkM~M~Btzx"QK8PXKR /u85^M]w ='܈Dc W>VjjbJg\kHMbmHMx,Tk2 =}ol@D+HVb˘Ъ]:-ha`pa^s@aȄfklOML )0r=D* AN¤Ic9$(`nw@5$iN[ --@dסHXm!T ǡCjUα"TS+}6Cg"|ӗ4f䳿!)>TBRŰ3 (/_}|ǹKY>jk֍t*Q @wW|7%+''lWĴw/f+&m-t #kH-h) >)̡01j$ UR ?E⯤ڭDNK]}$roR}_E@K.I )|I~t PwqZ"IZ7|9 $QNlUh"IjC-r!4"xox?$u rR!>P7cבYp$w1r9L8de~~`?"&ɽ(ovgB.DhI$%<%~Jqy1szDD=t S{:j5PPOIfMʄmBZ8ͤ2AunJk~ $+] e ~:Isk$>@O4GmIXm^u/6"| x_d[ M&6ipx 7+$5M#w{rRee;5"_anwɻENˠ7r;}a2BLw67s_ʒIY^fo";]X=dGn|H_%?|ޫ&@šU޻\!NL#" kO;ld_ tucץצ5~Te)-tq:u̼TY6K78fnݫk5TڽS`L^HD6TROsW=yP=y~F&F[3E9KmY8vIխ(/r@i_&<W0[=CwyUe4tI@[i*HR@B AFF@ԢQPe鰌|V#Ё6T--]oY=ӗtKҼo䓛s9rc\Fa9X˰@Ư⾒2XJk|7x;˹Bz lA̋h!OMyuKX\C Qf\P=lVؔñ|hrQ;"g>rv7 Z>6tNڱۢR}WSF{mlhF*˭|GOHQyȩ^}MϲЅN|KAp&Mh{丧yZ_Fkg$-y:_k=[DkjBq,@i>(kEK|=l.}\gh:?T nE?,Z ,{-ټǁ鑯siͦV鑴Nb{)Y`66vf7]&7WƦٚ6Y|Mf9߷mֻ#@,w?LX> cSE\5h5X ,a*`sdz`٫`s Ka&PA-!Ľ a.ѳۛJOg)r:'7hG\ !|C!^(!Ǐ[S}ӄHw+|\kCkd]7"Ϛ6Ez~V_pN wOU߆[_uJ*4H"W呛pB~yJfYۂBjo뼈5V(⵽^z/"/kDu}!ms B\ԨoJve'6axRAuQyD̕hlyQr;l)5JKM@/ŊhL`9+Fȳ˻){amoYFH;@onn "H )i_zC4cFCH,A-M|H eY  TH m d>c3UX:%5=ݜnzJXc?u_4RބV%R(J"7oy ^CW[/κ-5^V/K%ew ef[WGnb[ݢS4{;IDAT[> >R6e@~>mFn;?Ѳ|} -{?P@N^Vɿ~ C5 >grǗ¢Excx$o_>*sOa>`{=dNK.[;4/?}l?wW ؜q8 42'ir ͡ Q¼=ڋdCt܀|!榺şnnDdqtw|]f2:OkkǣANjDYW5 {.˩CmTޜHqsٿ]3;*]ۊ>JAޏx*K)N1a9|VD빘c8>RX|o,kSo(`w56OK zZ,SRN5iWQ[ Ym49K#R9lC 3ϯMq;Sco|3,.T"=hՇ繋}Ok!VB!y [t ӏBۣ>`0W]zա07 #, =鰴Bb#Mr&w]òSي8J`sܯ#KWP>V_~g7ۍ?a>q7J[:>ikV;24 2UhD{ik|%gO9w7FB a5<˃eBrz_^}5c|T#l! ^.œGenKo˷/) |_W~({ !m)ϲ칑xa-@s,`;XCT#'%TF%mX0(*|M%&f專"-Ϳ>KWK`gT'~Q]#,D |_K?.Kn*=1kLeels 7x=?;  7Z Ϲ loP`+J[c)v9NTGݸ>{g-t_6:wBJ:h |#~9&s^g=^tf\_6Oq#64g"%w|!nRWR~!uԹKoss ˽yWGǿfޢU XVw!ao>a$9^]BVL 5T|T$}l̦l{\~E~aSY#˺8G)g=Ǒ YC`S/}]xHEKlյt=`)u}R 9%LC[$S?OhX;@ަ = lnF-Jr9߹=U]~9W:rw|S42aT^s5s5x^k߯4>nu lzzAN[ rG/:*0(l=W|P-Gg3-BXK^My-ev{E!>|^OQ!9 ;?Z_=GXϲ}ݺ-b}Bx sYзBϩin+z0p-[2Uy{vBnq#a"zD /+I$Pzoyskn?c_JW$\}m&U]SʃcB4Rm ,/B>H R! ! ]>|j p`sS ܽE{g KC IU&\Q:;p=c"8=0=6{3,- ˽֧h6{+DVސµ+ wasv#2U"* hbV K92 &a׵vjPeB]KS,n*0el>rG>;ba.`p}a ,`X@S)ka}Jp*3r> q?: ǥ2}l6ZS؜1b)PQy9 `*>Uv|U l2n9A]"/浓ک뵝hEw/تy8wcc8/c[6?.vd^ `R4h]|ޕ!W+a6oil,NIn͹-:rʎq0^<]Ӕs]Z~^cTfl ؜s^<mi˩kLnCTs=>Ɯ\S}?`S7s#Xn}ˡ~V R@*ds#E발 0POaYMK|| C=l`?fϙ/xe"s z~Ϧ\e썙*ܗ8X>a$T¾`L s|x9yėo Kt\)m̫i]_dh &_ş`TK^ve>C{_ {9VlZQ+yG+ޠ]IkMpT F", z%N ϰgi1?s6AqXcikh_FAUh\po|>'hYov yVjl쫱<~-7iʣ9o%O'}I/HޯA B[BVk yԸo,!9#342xX^v}Sd۱7ٶ~kgۣ]?w5?YwSd?}+ȵItE}bT%yE35kΎ{ 65Sa1~9 `S,l{_@R@e7J}ZAepZ}#ڷ=('!/|ak9y2mT|w'l5aW] S{R{ߝ$iZJ{'ېКۗPju[Km{0B*FGI /B>u:2,r?GaXJ ZͰ?O$1+sSi{Cǽl-T4Nq1G[{*#`հ'P`;$~ vB'͡kw5LBHwt&B!$лy2 !]Ay;&B!${@CD!z,mB Pt~A [$E!@}_LҴID!zpJ;SCD!z[<go>x`6^6$M5I56!"l+k.!}ZOg++ޔ 3rLc zB3Hule nsEh B!z@PxXIS!Nq!I6+B!B!B!B!Bt+[)1IENDB`jp2a-1.3.2/tests/jp2a-colormap.png000066400000000000000000000236511471373143100167020ustar00rootroot00000000000000PNG  IHDR}GzTXtRaw profile type exifxڭi\v3 l 3-2R떔y3OY rO\ZVϟ<7o}{Rkھ~#ؿ~Iwٿ~ꊟW{z{U~ 7 7J1ߘ#HCbPɿOJ w$o[sGG0~#o_rsD_#b fD~+ʻD/Bi~?Oo|{ #Dr]an8Ղ1Olh1zjqD#GnldoN.-ǟc B;ph \,p?ˏ`OWT]3 eNr ~KaT3)̝ N>X%U[9q\B!ޅD| |@; < cNFb7%֨&QRM_$+BܩYRɥZZ鮌2kZkR˭ZmSϽ[}9H``usF7Z'ʫkie+VYasǝ60n 'riqn[o;f?d-|_t\5>uD匌xS(訜rʜrG)JdEq;(c0 ?sWWys]R9G5oا S"wt}7WԸ[n:cp{Ծ4Bgz̶ݽ!'LJsۨAC霶趓88[+^]]M5FUɀV+N>sӘ%w/)KgJ Y4-ŠO_B[0`[bI'ƙtZ[s[g=2we~"83IX%-KYHӍ|lEXw1[*I T-eMĩ2Ehy'BmGB2GTdW4i$ڸLVV38gR6\7𺚝֩"=pܔb9tkD$ْlm:,T:eͤݍeEW0f`];\7j;+3@ҁ-M)9w/ĥR+Euuo\9v[XҪtΨ]FՉçPNdSs viu*9n7u02кF#<$W!Ms8f2;)9;MbqS=9ihD/"BD%blgܓ+zOB99[QӉ4O+ڊy>Tw:DuZ6HA)p MT &IICT+i Q vi}`RPUNAԚN-(U2Iߴm&io.!f=H7!px- [H5li_<3 t FAZ3R+]C-)uD].M1aVN4,#P|06UlJfYS# 5j%=xd!Yu갯A P ;4E;I9iOY/J9wm"-]0<*2ᚼDɧQ݈dkM1Kݎ*ј\w_[DtϳQ Lטye[pX. ( kb1z".x9-؟(7ja҂_>aݻ2=K1pmI/ܮC@#1ԥ$QOP_ȅy#c[͢{f枣 HHcfj($QD PWZM#˗lsQk G G]BASI&L;25kiS!PZgZ,3VIMUsC.BQyDs*5FⴴK.7Jmk$z*@Fעo/;/z# :U'J0}dUZbm]Y|#}Ϡڠ&l2- vܷ}6'HHI QT`SI9~j!L@o/)ϻ6‚6ŠVRۗh66/LPtYjR.88U5L2V Tw(C`)@gk 06; TКf s/`GзYZFLh w@ II:xf(ʚ"(N.'h(7@PG"N>G鮂)M]\|ԅ4CS؋>pOg^΢y1Y aBƸAF/TÐvH; %4 O{c$'6'O>fn_\d@؛!a\Z.5 dJ #G r$ @M\1SUx1khEwzgg<)++?؍@kӹu] Ȣ7^-Qv"IB41̼•Sݚu`-eHaH8 f!.#0mZsm3B (B3ƩƆ>T$@R?QEעʉ/IF7s \F(uŴp~`MP=h׃FC@VhQ8AeH rS}f$4Ż} +ֆTPoP,+xdx3:FN>N>cy@cTä'J"F{lj0_N"!bD$<\О<C!#Bě(GI+-b$REתH:*z_C-|N$d47hS*vO4G&qTOB GJMץ%" q~AcfȖ,h۲TD̆b"=(i˅ ;~ 5Ak\8H#mjbk ͮE0JsUеwUFiYGs@nE%kRZoyՁ.i[^k<6"LdDgȳ.U1C|0!"3I< o8Q -%-fiwt 4e5 W3Gm hFd\0li!]Y anՠ3Xa^t{I 8[̷P$4&x>8ء8k>z}`MeìW{2KaA4md0}:xj]!<p\}8mO]$"\֚kVzZ6Rcb+ ir(-Fc@ځtriȈ* z ͗޲{# (*nW_& 4Z%8*.рpIl~ľ ĎZzS#%>d W/s{j=fIe] fOZbZΠ$ufzRN0*T>ZBpZh8b21 ҲzAf2IҴ4op !ͨ1i::#Z GC2kW}M.=Ӱmvg hhc.p^.Y9.A+ o&wit$9ByPҔ죳터uٹkV@Ҧi "Z8<IJTz9<ݐxC&z ?7C ܏bfU^ v\X1KCx@RD8TmZCx&ZꀯPKUNOrwƓPh@F-qm;B[3.jLXtJRŵh@@ yYڃD#GT}Fb̎vX"5wq6'ELFcZ׃ ph8Z!MoU6j ;0}]ԡv}ooc@͞ G32C`. 8Xl/I%=0_dђ YĢ>;zۜ3ʱ_vAE[ ~t H2Nɫbwk~FgARǟzɢ3Q @i >;7‍OT0'R,rd=u 2\ǜn?gnZTES(b#}CyDv-¥{k 8)3SIdK@Mlm"f}Z.i۫,* DU^:6bHT9GQٿ}Go߯+uߚ]U<j^/hg E=N`@=6z %%J"srNbl}Vo- =.|Z:<@l/ )TTD!jult-U/:io ꯧWZXu -_a!?S#tk !D:6&WB8hɍht(S|Zdog 3I@XUsI?ZLzZI\`2( y&;0gMAsrEҧv$`P$T Umoሑ~~!=xS%YŒ?UXjS^3''fmc`y&JZ'Us‚G 0cʍbdSa-;EP@aeb&iY=~tx?I ^?}NQ=`̨I#t _ y|V=DtU[=ghBC E&G[%5R9=@hf>ZY1V sT͞tZîvmZ"1.#CcGMg|nzj V+۴ͩ`F>67cR$9EDlH'I1:C40_CO Ǚr)̭b?@5V۵%/[m*x^Cx fhA oHS 7hX\{FјH* .v]w,JYX?`-lpm452(i!z7A_Φ(>K?@ZwnIˤ|Z74iCCPICC profilex}=H@_S*dNVDE EjVL.& IZpc⬫ ~89:)HK -b<8ǻ{wP+2j4l&bQ1^D}Ð,cN_.³9ՌH< LA~QNJϙT4rhJʊf#}.i: <ɼ8񓠏WRmpJV2\/Ec&?}NHfCsvRzUڄj2ΐ~cO[tێ @&\iЪd {_%8?S1ߎCmk qߝ>m @.owt(>="ǯDk eXm7=kpGGUy~wkU;W,}ڐry֐7':p7^;X4< 9ciCUw\d_Gy(A]E\K27?t˔Av3#(I]PNX2): bKM YfV] #t!=7Gq?jخ҃[uz--fnXCGBA:692loZt4̇glNB(o=!/X8fg< Cp%1,s:Cy1ݰ(q:z(%=r!¨vwctOƓ&Ynȗc,/gۢ#ΞP"$Mx=ioDA_#dd:[a (*? R%=·>0Pn*j$:dhp79o$ሉ,"ϖAy20@ól,Kˠ1_.tࣳ[%m{4J:;?kˠf~ / n~ܨxt24]ĉmQԖAߧ`ܖSīoZ C.]tB"HA5IENDB`jp2a-1.3.2/tests/jp2a-horizontal-270.jpg000066400000000000000000000453251471373143100175630ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-horizontal-270.txt000066400000000000000000000114421471373143100176130ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0xdxOXWWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNKOl.. ,:oKMMMMMMMMMMMMM MMMMMMMMMMMMMMNXK0KNMMXOdccccccccccccccccccccccccccc:,. .xMMMMMMMMMMMMM MMMMMMMMMMMMMXo;,',lKM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMWNo lNOo' .:XMMMMMMMMMMMMM MMMMMMMMMMMWNl lNOo' :kKMMMMMMMMMMMMMM MMMMMMMMMMMMM0;. .,OM0l' .'cKMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWKxddx0WMKxc''''''''','''''''''''''''''',,;:lk0NMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMWNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNWWMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMWNXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKd:......................................,OMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKkc. .,,;;;;,,;;.. .;;;,,;;,,,,,:0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWk. .xNWWWWWWWWM0d' cKNWWWWWWWWWWWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKc ;XMMMMMMMMMMWNl .cOMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' cNMMMMMMMMMMMMd. .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. 'ONWMMMMMMMMKk; .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx,. .:okOKXX0kd' .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMOc. ..,;;'. .,xMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKl cOXMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMX:. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0d; ;d0MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWKl,. .';lKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkxxdooooddxO0KNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMWNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMXOOXMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWNk;'''''':ONWMMMMMMMMMMMMMMMMMMNkl,,l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMOc. .oNMMMMMMMMMMMMMMMMMWKkc 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMNc ;kKMMMMMMMMMMMMMMMMW0d;. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0' .oWMMMMMMMMMMMMMMMWNk' 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMWNo .;kMMMMMMMMMMMMMNXO:'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNXc .'xWMMMMMMMMMWWKc'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNK: ;x0WMMMMWK0dc, 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNXc .,oxxdol;'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMWWd. .;c' 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMX: ..:0WN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMkc. .oOXMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWN0l;'. ..':lxOKWMMMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMNOxdddddxOKNMMMMMMMMMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl.......,o0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xxxxxxxOKNMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMWK0000XWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKxl:cccckXWMMM0dc'....,:dXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWl. .;xNWMMK;. .oXWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM0' lKNMMWXl 'o0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNXl :XMMMWx;. .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKd, .;kMMMMX; ... .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMk:. 'd0MMMMk. .;xkxd; .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. 'd0MMNKc cOXMMMWd. 'lOMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. ..lKNx:. ,0NNNNKk; .dNWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx,. .,:' .;::::,. .kMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMOc. :xKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKc ..dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM0, .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWOl, .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWW0dlc:;;;;;;;;;;::,. .;kMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNNNNNNNNNNNN0d, c0NMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0kdxxXMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-horizontal-90.jpg000066400000000000000000000453251471373143100175030ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-horizontal-90.txt000066400000000000000000000114421471373143100175330ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMXxxdk0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMN0c ,d0NNNNNNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMk;. .,::;;;;;;;;;;:cld0WWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,lOWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd.. cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKx: .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMk. .,::::;. ':,. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWNd. ;kKNNNN0, .:xNKl.. .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOl' .dWMMMXOc cKNMM0d' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;dxkx;. .kMMMM0d' .:kMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ... ;XMMMMk;. ,dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .;xWMMMX: lXNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o' lXWMMNKl '0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWXo. .;KMMWNx;. .lWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd:,....'cd0MMMWXkcccc:lxKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWX0000KWMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMNKOxxxxxxx0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o,.......lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMMMMMMMNKOxdddddxONMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMWKOxl:'.. .';l0NWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMXOo. .ckMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NW0:.. :XMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'c;. .dWWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .';lodxxo,. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ,cd0KWMMMMW0x; :KNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .'cKWWMMMMMMMMMWx'. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .':OXNMMMMMMMMMMMMMk;. oNWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'kNWMMMMMMMMMMMMMMMWo. '0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .;d0WMMMMMMMMMMMMMMMMKk; cNMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ckKWMMMMMMMMMMMMMMMMMNo. .cOMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l,,lkNMMMMMMMMMMMMMMMMMMWNO:'''''';kNWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOOXMMMMMMMMMMMMMMMMMMMMMWWNNNNNNNNWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0OxddoooodxxkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl;'. .,lKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM0d; ;d0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMK; .:XMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOc lKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMx,. .';;,.. .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. 'dk0XXKOko:. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;kKMMMMMMMMWNO' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .dMMMMMMMMMMMMNc 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOc. lNWMMMMMMMMMMX; cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWWWWWWWWWWNKc 'd0MWWWWWWWWNx. .kWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0:,,,,,;;,,;;;. ..;;,,;;;;,,. .ckKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMO,......................................:dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMWWNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMN0kl:;,,'''''''''''''''''','''''''''cxKMW0xddxKWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMKc'. 'l0MO,. .;0MMMMMMMMMMMMM MMMMMMMMMMMMMMKk: 'oONl lNWMMMMMMMMMMM MMMMMMMMMMMMMX:. 'oONl oNWMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MKl,',;oXMMMMMMMMMMMMM MMMMMMMMMMMMMx. .,:cccccccccccccccccccccccccccdOXMMNK0KXNMMMMMMMMMMMMMM MMMMMMMMMMMMMKo:, ..lOKNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWXOxdx0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-interlaced-16-bit.png000066400000000000000000001303711471373143100201760ustar00rootroot00000000000000PNG  IHDRpůχCSc~}m/П+? = f9a}6u>g_^xZ/>DiDi v=ǂS1cT3Ss|,! _>^}m6I;7O Q~;ğ6/`Ν ~~y 輢ʫ'|nk^/3^3 5KکqLi|빥&9+ʝ\δ9+9}}ǽߌWY,O_WXaWr\cg߹M_OOrn0w^K/w3 W ֳ!boUcXRj1NS.@I #SɹRO7ϴxߛ$&!Fn/UV:RRDJd\KZkNrr+MZm6K^{뽏# ʨ>PMAHYK_9cɲ֬0g)6SWZyAKw eˮN>ȩ~я=YYOҝ)}dDBz!q P4%&y'E*M,i"upGMBCQEǛL<9Z B,9:qO )}[60ՔV'#D&{wPR ;b~a |'OHx! T 0&UJFٺI콠Y$HWʦ"x'klrZ[]2=)V]Ϡ~=wix ߁k|sߥ7L'DfĒ^?y1,u`ͳ" N|Y;SOUy*]gTaj&' +3zjgi۶bIXXV|$y(*r\lT@ ಌvєa:7j=GRġR4بTf=hhƿYkh@b_=D)΀9t"ޚHc{27^sȡv0yZ oznO%9sݑ[ o ^Q_d־H4F9K>` b08oUf*&e3VHy2W'qo/ A-c8PcGVۧhCt݆filKAluE!N!AmG!{(MA y*+iWCBKɸTGz C rΩKSVNjK|Zv@Aa"DK(<'"U fbTC5ՒW%$rJMGA22O&Q;,C+=s(i>I3̊Zu`/*_WRd45 "9C,gt/B{+Z]-Gz =f8FR4͔}:;Y\lsB,gެ5Q}w(ɨz۬ v!O:*e91lz9Fl9Y'^ ep1brY$#G3 05h xv, H͞®#njqt =E_C ACbkondU"0MG.ƈK _yB!4P& %:k9Xvrmb5QR/t1'IL٨[\/*)9f`# 8?+BV#/RdX/1Uz}Wk q|/\#>c KiCCPICC profilex}=H@_S*dNVDE EjVL.& IZpc⬫ ~89:)HK -b<8ǻ{wP+2j4l&bQ1^D}Ð,cN_.³9ՌH< LA6pX^GwNk~[^xej? %xzՐwo{_8@g?n'o/ng;.LykL1s`A1wsWw\m-!%zW\NӋSq#?`H|0dq=zܒ{׃=7$cEˋ+r-/~1cܴAȠGsϒ->S\hp2e܃V(BĉªCZ=h4e=oJVnf̀>=%eČ)9cI!`?D͍cΑUxcp!eI+O _(^ %Kݳ5 V14OBu{nZ_<ۿeϷ/=z`yҒ$O/)WbMzf|WL+4E!Ɩ[VQhx Jj$Y U4OZRaHjh$cŵeZָHOV6z?i=‚m-T0bBAA`;>wjH)_bGѪ},yJXYrgK~%WX{T Voьҧ 褓"JP8J~[%uӖ9zP&yo7V]hGؐEgmMKчxQ;q{lֹ*PAe #QԪO篏 ՀYkGH>fNqC3/]@DqI# |G|`Tzv[8eAFzec6GӽpS&ȹqHUP#VY3DXqh`]7t2FZ m:>!XFv7H "w]%,ӶnS=aOQA6aㅞ6aڂ>ϒ^z4!1/=Y.956U3uAAA_3J&9^Z%A @b+Oh7T !T8\p9%3nOv8^`r9k`6K~A蝁._1E4zoA&^3oB&D\TzE&8B).@@L̔ԏTg@E*~`lHg AhKbģwh.T[\[nk5d5E!| G\=pi3E̅C=G%5xғJ|sIk_zi4}4]kޔMScazkq>L]̋/`- 5 Xl&Dx&&E!\nHKk"2ubϛ7=3gr~Px[ E YFcq>_v8555Ѽtz P"=l4D2YK&hD+>%홦&3()^ CO]we[Z+}VC;oq^@p/SL!}(qQ9\xKj&ܺ|;@1FL}=)-L19mĒ+Aiv@8RKkY$|UJcKhKrJI]:H [j4f5P&jr ~PTb)'48(R87r yT,gKZvi|ː+g6?Ky}#Dmqtr=/X)]fDDVw'.a+[ƾ )ыJVk_۾;0w9d!*mx&P.L; @&C >pu=('&*MDc&&̷DfJтwd&@pa,D"o.)spv@1}j2j~& (m&ަ2A ͢D<2uYO;22>_z|u!20na{ ߠBcѠE0YLyf\&j 3A0Qx `LvőV ~pira :'˦&z@mA0( ?]AAAAAA0Djzeb*S# . Y69`OtoyOQ?%lYhu]V=@f;󘒧TK) }ٵV)Ts˽@@6X#/fRK0HXzzX:0IUʋut,-~T" K@O~rS7ȒL3 W_]nzm%E;,tfM o;~kQ斖IuI J{`kxSZien/9>8 &pn6, zw[<^ZFӀ 涚XVj1MLyw|{[}uKZ73AV^4v6ZФc%9uNj76̣>zҖt f;h}iwߒ_;VyYHXb?AD:?jXǽّx\=v?@/~qkTAx:_b{%lxsJ>A Ԓ9_(" ߃hh{nc7Y+Hmd+Gqz5/ MH~G[rizk\s:>7SD(k]$Rг9c)KZ?y2b ڪ%;u26 |d n_uU}; T&CKՕCêKl|-Z4D6ݴ2}0U~jTf mKb`D/궩hea|%zA!2q$%D'NT5xuFN^>f^V\Ώ;(螻i,\㭷:9>xJv;; \MK O1Y)Up \ ' ˀ|T/9 r ~~rimQFm٘49v{@W!=*Xe;_>;g%J7b2Ї La덧?#dgcgoF;\X׼3Q n֔gD)Yoҍ :]b4y%ŭj˥^#3a2ЃqA5׋^TR8 (KPw '}=KuTI)<نw~HA1ٙ(xrӒ{^PBf֠BFnWXe\~c;קAz_`4|3iji 8\T`*̫߰_ݞwM(itsv|xv3'WM M^1d,о4u~ڂ H"eք8_xӛZ[*DNo;&*:kra=dIxSyuL呁>T*4MXI69?eR"-)Qa' \2#Ɓ(q3{ɦVTv># ǀ04: JyO;kԀB=~6"r ,j,!{+nšgD# ȩy?~zЭ6н&Z|FP.rNZX؄p)Fd|b?6"cH_0tckZ]vꑁ>& |wOY7&섣)ʔTTBc;J/@DQ:Rc%%c U%8a; Eb $ĘpoxCɍ7./1V}Vj kZ0RO9e1Q m^'xbLLH`O^Hr (5maɕWnUK)@1gM)mgpktSگ 2rϝe3'.:d4ywE/ˣk&q$7E'F_73o4Xb6 w}Y%T,LpEp\%Ld{4:NG~X3 Sg&|tu5XwƮ&3@ī}{W.54q8֒rq :9Y p1,-E #τ`3y@O,MD1e]A4`z{]Ncќ|o&[SyGuTXs3%L4&ƺxX0NJݕ+:)8O D|G2݅)gGȸixe|5U:p$퇻/2bćw}STQ~zIF2d{ȉOO]ʼna>wLiW{) h6Ic}fyw~|aG}SiWhld&6YF+7v,AŠ\,{*}7еU$1sz #Nn'` tA>QHl` z*|A0BC'aA>5zXA Vl1 "^T[ ;dF+g BZ)AAAAAAAAAAAd0&+ XLDpÝwΙyE ()Wm{R) '|؃CI6wWsŰXܖ}cJZNVկJ>%:i_ZI_DBx;6۔b?Bu+㎭b*ȑ>[zKZA. Va+i]{u-y%W] _(WK2ouו\g_zɇ>y-zn5@ = p䑥ƼBA%;U`UQj=¾Βݽ]lo~zƖ{|s?ܹ'v?yH'>v-2W\ndh`va5KJlX8Ưg.t%jxߍ#ߣe7۬{KJz~;K 8Y2g?[rZOkKZ>}nO/)ׅǿ%_^XE/jGL-7\{Az|)p oKJB;㌒[nYR٩я/<8U#s+)Y _;Koyo~N Ihn3LErg0$$9}))>Ѓ dF)J)xfx73ߋc`Q4\ WpLۮuRDAL/yN3$l;[=[n㎍6oJ5@+<T'ٍg _? i>$B=PA`wca=Qský_>o)ʩ:O =Ɵ̺ПIַDSQv?Ub~{oJv0OLp\I\`DMJC><E)4lP\ &Pyؒ(=].bzV:I C#l΂'_ny;_ڟ1%`aw~rޮK7>#zp8RxG _Iq2~Av=E?yjvK/z}oI #_]/iZ%A >)%wۭqǕ֒8/?*|vە8Êb~U;<-`0 = = }bP$8o{ɟ$<׮gn#Y_m:ױǶ׍v_]g>zlv{䭿~I9,_RITz땴ȁPvPck +=.`p]7.)G²r.Wu(((Y7/O^Lz2Yo6E)ql JQ>('<̻0*VœEΣѢ/G1 trs j\rO mU@4x!%?rP 41ϙ%Aң狚ǴHzt} 1w ~%=7z</T)>U5'Xy?$5ic`- քgS1d]c\(nЃ!TשOݽ>2շz@ V*);!쌧<UhT{~%|0kվ'W^Əa#i3xɰЃ,,D=v1`RU9Yk֩Nf{ @L6xZs@)# ЀHՃЊbԽo9(  Hw/\V/{[J f}tPLd,[mzJgUzCbP{u:n#`q&'{ 5؞bнBASruJbNЃ_𖯽.̮S.X6,e W^%eQqcSEk5J6Q Y =E@+e=[< HlZّ2?$'-]KVyjzZE/Kr*i kipuOyJJA2.b:Ŵ?`1$ŝyf;U*, /Bk>ӡYg0Wp?T'xyG*S'ow3ہw( 3Q~oPf RxB(Ͱ첒rH1n1m =P학\)K҂UlŬ<jluP{\I5ƄػSOZ!ѐS޿UV)dWzL"iʞg>8p{)p NWZU?YIm:3YRXW]*)(as^O\L=z܃bdnI)*|RY轆' SFGKBSl"O b<'=ݷ1Ǵ^bb;܎1n==*x n=xwbZ3kL:G$'`pbs38sK6[ã_KSװX4 xs5|5JQnXrUKnqI-oy%I P汊,* zu^u_Tea0rM٩G(`:Rcfۮt/h() D7݉l"4Ńkm4|-'CǓchyB<&'$D2):f獑`XN2|gdz:׿<2 d׽et%GwԼ ˽u8D#Iu:`l4Pr 0.:0b:P yH<0(? E+gCq@jyޘLqזs屧{ %Sv 6Pb~x*ãy4>@M&nL!eLP$C2;Gqi +dyv=CE4b:u;Y}ii:]6S0b0T(n 1(k2.)(P9^#n2AlAj? 4#d"L'BW%zrJ1$N <uZSCu@MH(HL~M&01m1Q<3)ϴۓCqQ(YoB|cD'cv$VuべZ.I&xǣc0+;"_o+ ;~V![7\;@{ԃwXx#6nk=C`8( )t/\-tחB !k,7:/AA@cP  }B(]^C  B",^{Z( Ƈ+[+E@Viy (I(ruF؃ `2^ w"?(  t'ADO:ANBbR/WSQAA)vh?QXgV[0 fz^w+nt)f;,ꪹAAAAAAAAAAAAAAAAAAAAAAA0VXaE,wWO/c?Y;3CJAQ=WW^Yz*yE (iSW}׽hgQ/ϫA 2ˉ"(rb:K^W% d,!Y|%+>'< ``͝wBÇ׽^56yUZ#V!?%/=s\*[nisᇗa׷ sK%5$`v``)RK,1Xgye{%[l {4o%?S?(y{D+B_mRr-J^~yK-U-P|[&y cC/n~Wy艥TRXc㍁Ọ{s ʫj=׮"{CKyяZ'3"Daceoo2%{ߒ^Om{K.loԧJK|{=IpK:;OH3OQs#; ]LL)o|_oP|F;g?nϕD;Cc>zbED'%{{PDO)h0`0{) JYuV^`ǵoWϚ?J>%/Ajw.K1pyxSqF}s24LA0@G$oQ)21je{SLdE9ێKOfa`;s#_ !x K>}u_Ի_vYGHDOb~ ȟ2c4j¢NSH RSrǦCB B"ŞpA?que`RV!3zb~1 b[4]Բnbi%e:I( 4bMcP̒x(ee$O_,yq%sJ|Jj<4zyֳJᮃH@e+c`J=%5?Yy!n(zwO|bIulҗl㷟7e =1AlZ,WP+Qb$a Ʈ l -d>5$ΐ@i+3*clYɭ*)M)vVBE7G}2E︗\R nQAo\hzlZwJjc? SX7f  BH-W)t|Kuֿ{*lVjSa)G[գSZj.^Ojt_~/hZrHI}P "優3^%!qS|իJLݏBB/z)8Hvvlm] 'dJfCD!~xwiȒb:n;1t$tSI:PĶӛ gHh d?3/j-<{[FG}Kuo 2yO=Ѓ0`:AzM[,W6۴q2{]Ikg|r{ش L;aPu{^WQ*) ^Bk|%(((Y;//Lb_RIIWƫUWm=w"]u Zse8S B؇˼2R<łw٥zrYW1[2Q(_T28*pPZyOIw%%UE.+_i !Vk=| kws!ێt%4]EPB#Z駷S]L[N3 j4X%b(3J-} %uʣus} ((V\R jgԙKЇZ!51D#'Y U{J¦Іk0Sս/ IDATz0K)*, R( Cc޼:n`lyiꤠ17gP=eaP(;()fr+u{+[cPb\}uW/ٯF+/yI{=T&'y# EBP0tw(p㍃د^rZ}4t Ƈ׾e^(nhal4 Ƕg{6t Gaw%~A CC[ߥ[%Lʛ2&*[ZR9DoeIt\rf+N0Obp}"0b⒱Hr# xrb>kL!g#Ѓ4&` HDYd+Jwԧd(Tr4@ʂծ,gTEq%YE&R@+{S6==x[Fu A^QA-O]}:^3$whVjɉJv ?(K1[ s?昒ꢇSAvS#C:ɥPFLRG_̂%h!]ʳX uƶewYˠv\WH&L N=,@=2xa~oݺw ^( FO+S,bK.9k8&X;JcG+oԠM^U5)i`v庠GnzMePyXeEbEP?$sK?oxCI1qY˒x\pA2yVN(G2d%<<ЃPvCV[PQ:T>eW]M䣕GI1.v9jM7ouV׍7.U0 m~ݲQALn1 D!$6n%Qۗ\RR#(n'?iK^RR[9\ 1OJ*c;Ս˹p EY07<ǵ,r0 'ǻ*\>BekA(vh'J)gCvK&UuqM&POPxEID)uTI}/D"y!ZqMje-KSI5 rb%;zQgQn#׋Rw]Nn~w=t%YI(HݽSvpz(1!p{&,uͽ1 :tvC1|CAwԺe?G;:  Vo.)IGPy̨u XʜǦnu^ֺE4Ve-wnԷAk![>}NT%}~j~a M=ճ^j 5*fSPmrJ`1z9E?8CCN_g}Uh7ضHt{.u{=gႲBu㖃Uǽ~%}aP UȁA>RI }|0ڪ<׉'u0ylgߕ4ثXsT}~?&>|w?S-8vc=t(I2IDL"Nѹ. B1^!ÇWcI Q* ׇr#]cap=sK!w3ᱰ?lbtxbo9 TRCImj2ћMh2m΄)6y,y( rK-*2#}KO\%AD^ d)OuL猙+qcsBg|6j;}~xޞWa^oؿyOw! =$UYsPWiEٷ#-j6R<7ׄf"hF!:GY)\<*pes$zċyU}C:ؒ(x(sl1@d?3T-4@Y7[6t%iL)tUG6J⾋j%zr˵Nsbl b LBoBqwx߬gϸy>>24>0|PcB(cS WT#Ot(Ru<]'BP`bb ׾Tel{|P;&b1@o_RCUݶ$ʜ!%iA7T`bvr0 gwݞ+@УЃ1#)E#)t83]TcGx<7]v3ʜa EIL ROU(Ivr ώBzuлX10 28[w烢.*ΐ`c{>}U`0Lw-v˱PM&[ځ"t;ÍLN>Q_f@?Կ,|9TKXu~0Oؽɠ-GwH =F-W bVtt햹ut Γ`TQby teynI{b nASb ֥r PϘc pu>E0@}SlEB?9HŬ8M[Vu}uׇ\9>ur \dKvA =zp5o;>h1:? z ^X0Hļ8y<)QݎY(,:CUqyn~wbh#Ǝ!Y;o-p<'w=ĵUG1T4R2I' 1 tPP鞣04<`<廞0p\b/( = $7͝7ܰ vCW1Qרn=Mb(nYjEiyRd&pT%*PEFEO}jkXgb&\WO=vXI1WYΖjTN%Q]3|3Ty)3a(؟PK3k*h*d%d1zۡ!!fQ0 ^t7ZUBY/W2ɰG? :R6n / #1!bV b00b m/{Yk*Z6۴ =`>0|c7Vq}}vI> A[&9 = } =qׂTYgpALLw;vPUxnXޭKqF_{ۻ{ϑX>qOql79cu{-3)Tj >սέ´_1MDOݞXnyj~9sȃ (ᱏlU)# *RO}ogK.i=SOͣ rRȫVem ,|+,H6jo׿ARt?                                        f, 6VXaE,sszK>%~pmmw߳_Kw\=(G   /O'PXayr}AAAAH| 9甼׽ftP9o{|AAAr>>mn+y# ~CJK~%sw.,J*"`K c~I|;K>iBA0ltJ.|+Y⋷py^g=D-2uAN;էCqoQEA_ֱ^{|fG=jbfMIU|d~udαN{ [qCߒ] }hO_:f5,󟗼}KqG[om?[%Ed^߲˖\bgQIO*yu|s ٍq&{;0laݧUVɽ J| J}to|UWJ{lWe9猓K.dE-iOqRAUWm?Anj-nρGDw%{XK,| ˝گ9%mg-ZvݵuVoysJnqKPNKdԞ6AA"rW^>]}u=H>{A0o]IZhAIяN AÂy&=g` &h;Pm!^)"4Vfml/\J!"R 2MD(Fy;_Um&'RNKw"ꚿ!8/y__Rʻ Eя.)%;)%Ӓ2 Q*p5o?_׿n= ,{A *=Zdt$,TIjs)wQRjZma;G59Λ-)ˑ]avj:9:R]Psl Y5j7?%v% !dy~Oz{~,%ޒP+Kyd{>?IIAA R`rJq?܋ f#~Q%@M6u;cՍ*#!:"W%~,sk7XRfGi9SZRZ7sLiU;Zz߻?z%.y"NoTQG8<؟yf{nM7 N01 vp=f`U=,٩Aߧ}C@|AӍO vܱ$S?۱A 7]i):4#ATSȶh =GnHZd?RE_pEVEՖ.+}K,;zw]E|KVC~"~Ex_}?eSReyqCD `)F33ϳUy׀ Va栎0'}v\lIq5@Aqa":7A8z5aQRju)2k+U\0X.,E]vjM5s\]u?.Z$]v%b"'R/^$W\ Txnʽ4#\"RWRC7_3 /,m9-,){Հ?q%EetHM?vH Q9u}*|p?y׻8 >*ַ +_)הC.1`Aj.1sp9ڶv.CImy?5ܶs.aqlv<9>o~  q_3B9~w:Dpl=gsws}uvwg} 1%9nqԃ  "`jMg0sC[g}/~Yg 'wbwhs:]Gq:tS9^DZ[geG= uiN6;5"ɞY'k&5ytKw=O wI`VQ?z.8}J.d{" q9'A->#.̃AA ).R~;V͈9s9#"DoP#Grȶq]9]KޫZ>rmsjԃ ArUn5EDSٟDE~Rw7]/,ﴎhؚ=%w߽n]2s))+z%E_JDb_ڒRRD}V:u]qEIЖs[z`~uKwVX;^||<CH|%~UKLf 6.2DuTvQ;o"bs9R֥q1B=g! ݚxW.  AW®A9̒"""̤lO]R<<%O<1j:zN243YRs:J ꫷ϟoy9u X^M3í.y%[Tv[ˋ^ԾO^RdJ*/C9xJ= )AA0eP3>%qmyMZgwu[ZL9~j焘VH?9ٮ]]ʻ,wjz[G隸9p5x%]HI!G sk]VR* (  !畜wdaAp܂  ^`JZ]Z$]:) ˀ ˘-|IM8ƺ[_]钿%Eʭ;jentNwzǂPx] fA  8Ⱥ_7/i35٤Zu8!Z#qiWR!mInKV/E_O̞. A8,ym?I%W\5>%E!BՅZQMZ'%5o;ht7=8nIg8uaDhj$?oj˟v-n95ԛ44W9lI ok^SJ~y7 L),?|0E~{3 8j:g:Gz%,iԧJαs ){]Rc&ypBIMSN)n-1q%_<~nϼw,bXQ%֑>(tB?%GQKJʔ;В?Ac)dlJ*CzW/|~d'<.N=5 n/]# 0{nmCϋg=lIqM$WR/yA%H^2߬?QG(~zIO:1z!կe':aW~Of>֞U ^|~Gp%5kDP8hAdAAe:{9fѮw5g>SL0`qz/4ALO~rI=d_ZH] &llPRoW]aa4Ο"袒s8C9?qN;) z8q'-, vک>aL R _ԶD%_?qIˠ/%E.RQGZO\$Oʲ9)%.""o|s.uYɔ*8j݇o}kvj%E`EpvےR16)" wKu<|%E5K,Q~Xe )"J$,쒈,HH vK}t7q~Џ^I%w%('+2W"Vy  R8r)nYAlaCJ9JSjjTǩQ7JZ.C|%E(sծ2 aXQZyj5mz>28j?R7۬},!~j}ց?O3A/CI1G>2EjeHW}J(\uU{}gT 75~4zgp|u9o{[D"SDA9 vءu{w;2{Pk} ^Oshs`9>H~7=>w߯.'ko$AL>++\]FX|}KRZ""bjԯHZREEuo_i_i6/(U6R[Ba?qm恒oF:3uDT}/=?]Í7i!.r,2{[nb/ X9Ot]e^˰,{'pfn{QN.5bm)DZǠ&%J 8լ> ?&*A&HR(mPDRFiaB!Ѡ 5hX/zsaʽs}|y9~ֳs੕[@HFAa!bƝC~3(&dD^DA7x$G5)pCIH%AnB>" BKpa8x~ :xu'!g8ouk/Q g@L!iF$Gv쒘`rp^W |#ή=Xꂋ-F(%>Dq%A~fsNr{AVwSAZunvAA=Á~1TQ 0hwp|קz Mmb)oeŖ 'u1~<޷Y_,}RN ˻/w9^,e(TAp9f=gNe˪U6ty]_O~Z(?̣ =yG/^_{MQ"!Ӫډ?Zx$v6*aC_8nI$WA0a.VV쪍uB'6bAcaw\DAjqRXgɠp5";Àd]@{<7,SPoy*V=is??cTh Uč@J IJD&z%}իR3 (@v^ RG00؉{!FQF=Es7<<%u #ÉǵnysOkx|G{ ?nḵ$i  R0c^ZFB <p\$ŒZ!^i/K3 e$$ϓ-7x+tM70?K!L2<_r? =?7&Z-:YN<2 )Gb>VQ|R-y 0tZf!=X?P^M-Q@BV.-S(!E\bآt?M@{q[pzC.A}A{M9QR:63p(8C eM>JJNJNy'pL'l8einX2.*@`x*.Yտ!TAVvm'N }O$)կ]$I<: /CH`GAL"q (BzEIF78pY5W\FUJuLjD䉒ݝmĖ\1xX3,菘R {4Xv1<ټ) A@RnN.Ɲa!ͺ#]vx!<< mse߿Z!K92T):ڪZd:AfăzA 01}"꒾]$8@!<ۈ' 7O9϶$!Yِ򔓖uٯeٶ/|ZexVtC"o2XI>6-:5:AL?(]{_te~j)u]#7uj{}+ 䪠0R>NXw\AzDBѱ6 A#rH j }Kyv^^G?Z w;>K%6SŎKԯSf!_] A<<2 t:rE s b 2n=QPhBG5>7\ ҂`F'GkCɓ-1ϔ&p$I3ժo );a[k߃!B^'=w$@B{#b5eQqhxV 1=lR-ϾE@( c-L/d~!A,Z몥(~j)b"֙ë%G^>jyO?ZY笳m`ǐƠHP95n#A̹d~w4C$Þ~$rm̓y!& ?{OAL$FЃ¬ONrːK{ =_y1ʓ9U^TwxW^9<,Yup+#"#]:C8q] ]jyl%CdSӟVe B9WC"Rp t. rQ?\/vZ3Oj 'ƅ"~1$H.v?GLYfZʬZ0pq?\!_|j%w]Vseex,Dg]#Royxm\j8Zl~BF< GUyUSHroH}o<ܮss< q?I9.Jnr ,2-zI~?$ʶ/y/@GAN BЃ  is0 9eOlϸTdnycH+sDGȝHm|sCw$NbtYW=k+d RY+~7F_[Rw;k,rJν "*۸y+p8e[Uy5|q./{ '֜ n9/7I7"xrh(&^㺯  @O~[7jn9~3~p ĎG?o4#H#qfwIE:_BNOV6V7݈+Àu2sΐ8|~oI  ~-9%CuשgH[w$ 4ggL&AAAAAy'M}I f/ɳ4ْO9re e d,cSrVw AdZZIsO6Q灥\aXx"0ǀƐbyfywIˌ,)h҄JY$s} 64,({Ɛ'mfْ1 ,%r=.޺ȋ_hHЕSEa@uN:ZJ ͈=H܃_6j6Bc _^nlJ3g&YϲSlÇ:FyHmkU6<$mt}.re  ăZb 0nQ&sI_qqDž?OVu[YIY%܉'8w9"4@ωxM*x$֜ag_-a@5RP91A.{^VV1bϯ\ lQz_rInK91h'l r_j'<\w<TnBuB(.$KFa޹O^`y ^~yT}zKqDdYcjX6:<,w1OHds0! b87I=R[nrWبB㑷Qt6uz C6Ti؈>ƒHz7DxȂL aۆuJ'E)$\Mkx!Gש~y>r$˓|Ǫe`Ԍ'M=jI؞17쏻b`4lag#A`ˋnyd1I'<*Sqssٲjy?qH8{2[r4Cg AFlsyylEJ}FTh[!;0H8?Ow;<O?#<ks~qDD-~P>"3P?f>8b0@!As8~;NW~hPrr+O$?jy+8NO!!zU2 `phܖ2kϽ}җpF_z leCCO* _]ϟW+73Ӻ̠踮>2z?M`zz<+lx.ܟWum\lH" uT6/lIby^;@a $qQѺjI%chcSff Q C9i: oVp9xu}.֝k?ڱ1 p Tpp 1?󉡍"H.DjQ:R0o_p}C(4T=y  SOc]菏猪Z҅YOpvmNN;m!^1Qq=d}?׎˃#~J. C ~ܞ kO"1b\!fF\KIdg͗Nnml׿n#qpx~jy\C@ @21{GU xa%07xA!!!A0 }#hS=N=:K9ƒ!qg?Њ-; 2K":b9.&GDNzu륃SwQ-5Cj<wQ$0b\IjIO+;}[-Pya@*7|>HhI4cXo=vIJ3Xu)6w>D}}xJܹV+f`Phκ0ey09d@|J%9:%u`U?ϳGY*?{8?%X7ϳym9F;Ŏu֧?:a1ގ #oƥ;-ixmݍ<= A ;P2nTmtl8ImK 6~6`^@!XmH)3"6$$$6bCAx!D鷿ZRnVȂuMՊ9Rd'qSktx#&@!m?sq6b/>jjx}[sÍ>/FX% {p):dyQ2I%t3$Iư(yBFY"y%c3Ϋ눨Sk&`^2(I|Ѐ`3b[$03ʽJ[,=ÉqG+ߧ4Nb{O%~= 6<5{6V=Iχ "IeI%6N6d<$ / .zx(z4>@ϡ Vy w= $<  ;Mza>0p~ '4Bv2r._^-);Î3)0|PxJyvٲj JqՊf0yAJm>\e17Q}aw^Y!} BЃ XG~Oe޳'n| ד69Ên( p2yqӿ^7ӟ^WxWY'o+ k/G!@< 3\?ä;ߩV 4% 9C4))A('Aeaa8ԜS$aqTJ/1ʴBl;S:>{orwDaF3/rC0q0Ĥ;~ʖ>> G޷OsL/"q}<_Asz%3@2/eL5N,{^vxsx~';x%"}|]1w~ ǃ ^=˿V]uEEO:<vA<}ݫ ~xw!^#<7`rz3"hw:/AƢ}556@5aPt'䑢@H,4 tK)Di\ bbϓ,X?,MOnIAxy8"aBUqZ5fs b)/BCVNNB:(X$c"daxA^_n*:Eyy G0BŊj($s$}aQł5A_/]ry"   )4# i ;   BbKAAA!賌K>#c!dVAAAAz,sY[   YByewT~aT2 AAA!s{#<   }󗽬^=x/x8曋zkfBAAA O>YK_:ezIDATϋÙ AAA!Hz??T[lAAA>c~V^4.b93#   f/7!G{ڷm\ ~뭋_AAA1?z%+؈eEȷ*<  `v0:z^uWl0Qxjw߽Q   A_|=;$<   } Ϊ3]pov睋?p|AAA vW+VTᆹ ,XpE/XAAAW ~z /̔   Y܋w\qܮZ C̃   &>>U>S_bȃ   &Sg׫㏟WqUվ%u=mbAAA0L\"KGo[j>SAAAO$Q_b(}W}3pCLΔ   FEЇD;k{=s}sΩ|wVAAAFul\Doҿj,C   `ډ+^QdD           f exIENDB`jp2a-1.3.2/tests/jp2a-mirror-horizontal-flipx.txt000066400000000000000000000035501471373143100217360ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-mirror-horizontal.jpg000066400000000000000000000453251471373143100205650ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-mirror-horizontal.txt000066400000000000000000000035501471373143100206160ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWKdc;''',;lxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMXo;':kWMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKc. .oWMMMMMMMMMMMMMMMMMMMMMMMMMMd. ,KMMMM MMMMMMMMMMMMMMMMMMMMMMMMK, . 'NMMMMMMMMMMMMMMMMMMMMMMMMMMXo,';xWMMMM MMMMWXkolc:::codkKWMMMMMd .oOK0Od;;NMMMMMNOdlc:clxKOlllllkNMMNxllcllOWMMM MMM0:. ... .'xWMMMk. dMMMMMMWXWMMWOc. ,KMM0' cWMMM MMN: .xXXX0ko,.cNMMMWo :NMMMMMMMMMMx. .:dxo:. ,KMM0' cWMMM MMX; .cdkKNWMW00WMMMMNd. cXMMMMMMMMX: .xWMMMWl ,KMM0' cWMMM MMX; .. ..;lkXMMMMMMMWO' ,OWMMMMMMK, ,KMMMMWl ,KMM0' cWMMM MMX; :KOo. .xWMMWWWWWKc. .c0MMMMMN: .kMMMMWl ,KMM0' cWMMM NN0, ;KMMx. .OMO;''''''. .oXMMMMk. .lkOxo. ,KMM0' cWMMM k,. .:c. '0Mx. ,0MMMWk. ,KMM0' cWMMM Ko:;,'',cdo:,''',;o0WM0c;;;;;;;;;;;;;;;oXMMMMNko:,''',;c' ,KMM0' cNMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMK, .xNMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMWd. cXM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMMNx' .kMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOc::::dNMMMMMNko::kWMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-mirror-vertical.jpg000066400000000000000000000453251471373143100202050ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-mirror-vertical.txt000066400000000000000000000035501471373143100202360ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-png-colormap.txt000066400000000000000000000121441471373143100175120ustar00rootroot00000000000000 ..... ......... .......... ......... ..... .,,,,,,,, ,,,,,, ..';;cccc:;,'. .:::::::: cccccc' .:cccccccccccccc:,. .:::::::: ccccccccccccccccccccccccccc;. .:::::::: cccccccccc cccccccccc. .:::::::: cccccccc ccccccccc. .:::::::: cccccccc cccccccc: .:::::::: cccccccc cccccccc .:::::::: cccccccc cccccccc. .:::::::: cccccccc cccccccc .:::::::: cccccccc .cccccccc .:::::::: cccccccc ;ccccccc, .:::::::: cccccccc' ,cccccccc .:::::::: ccccccccc:,.. .,ccccccccc .:::::::: ccccccccccccccccccccccccccc' .:::::::: ccccccccccccccccccccccccc. .:::::::: cccccccc ccccccccccc .:::::::: cccccccc ::::::::' cccccccc .:::::::: cccccccc .:::::::: cccccccc .,:::::::. cccccccc ':::::::. cccccccc ':::' cccccccc jp2a-1.3.2/tests/jp2a-png-interlaced-16-bit.txt000066400000000000000000031266461471373143100210300ustar00rootroot00000000000000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .......                                                                                                                                                                                                                                                                                                     ..........                                                                                                                                                                                                                                                                                                 ..............                                                                                                                                                                                                                                                                                              ................                                                                                                                                                                                                                                                                                            ..................                                                                                                                                                                                                                                                                                          ...................                                                                                                                                                                                                                                                                                          ....................                                                                                                                                                                                                                                                                                        .....................                                                                                                                                                                                                                                                                                        .....................                                                                                                                                                                                                                                                                                        ......................                                                                                                                                                                                                                                                                                       ......................                                                                                                                                                                                                                                                                                       ......................                                                                                                                                                                                                                                                                                       ......................                                                                                                                                                                                                                                                                                       ......................                                                                                                                                                                                                                                                                                       .....................                                                                                                                                                                                                                                                                                         ....................                                                                                                                                                                                                                                                                                         ....................                                                                                                                                                                                                                                                                                          ..................                                                                                                                                                                                                                                                                                            ................                                                                                                                                                                                                                                                                                             ................                                                                                                                                                                                                                                                                                               ............                                                                                                                                                                                                                                                                                                   .......                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .''..                                                                                                                                                                                                                                                                                                 .''ccccccccccccc''.                                                                                                                                                                                                                         ::::::::::::::::::                    'ccccccccccc;            .ccccccccccccccccccccc.                                                                                                                                                                                                                       ::::::::::::::::::                    'cccccccccccc          ';ccccccccccccccccccccccc;.                                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccc.       'ccccccccccccccccccccccccccccc'                                                                                                                                                                                                                   ::::::::::::::::::                    'cccccccccccc;      cccccccccccccccccccccccccccccccc:                                                                                                                                                                                                                  ::::::::::::::::::                    'ccccccccccccc.   .ccccccccccccccccccccccccccccccccccc.                                                                                                                                                                                                                ::::::::::::::::::                    'cccccccccccccc  'ccccccccccccccccccccccccccccccccccccc.                                                                                                                                                                                                               ::::::::::::::::::                    'cccccccccccccc .ccccccccccccccccccccccccccccccccccccccc'                                                                                                                                                                                                              ::::::::::::::::::                    'cccccccccccccc;ccccccccccccccccccccccccccccccccccccccccc'                                                                                                                                                                                                             ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.                                                                                                                                                                                                            ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc:                                                                                                                                                                                                            ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                           ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc,                                                                                                                                                                                                          ::::::::::::::::::                    'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                          ::::::::::::::::::                    'ccccccccccccccccccccccccccc,'...':cccccccccccccccccccccccccc'                                                                                                                                                                                                         ::::::::::::::::::                    'ccccccccccccccccccccccc.            .:ccccccccccccccccccccccc.                                                                                                                                                                                                        ::::::::::::::::::                    'ccccccccccccccccccccc;                ,cccccccccccccccccccccc:                                                                                                                                                                                                        ::::::::::::::::::                    'ccccccccccccccccccc:                    cccccccccccccccccccccc                                                                                                                                                                                                        ::::::::::::::::::                    'cccccccccccccccccc.                      .cccccccccccccccccccc'                                                                                                                                                                                                       ::::::::::::::::::                    'ccccccccccccccccc,                        ccccccccccccccccccccc                                                                                                                                                                                                       ::::::::::::::::::                    'cccccccccccccccc;                          cccccccccccccccccccc                                                                                                                                                                                                       ::::::::::::::::::                    'cccccccccccccccc;                           ccccccccccccccccccc.                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                           ;cccccccccccccccccc,                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                            ccccccccccccccccccc                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                            ;cccccccccccccccccc.                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                            'cccccccccccccccccc.                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             cccccccccccccccccc:                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             ccccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             ;cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             .cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              :ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              ;ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              ;ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              ;ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              ;ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              :ccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                              cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             .cccccccccccccccccc                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             'ccccccccccccccccc,                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             cccccccccccccccccc.                                                                                                                                                                                                     ::::::::::::::::::                    'cccccccccccccccc;                             cccccccccccccccccc                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                            .ccccccccccccccccc:                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                            :ccccccccccccccccc'                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;                            cccccccccccccccccc.                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc:                           .cccccccccccccccccc                                                                                                                                                                                                       ::::::::::::::::::                    'ccccccccccccccccc'                         .cccccccccccccccccc:                                                                                                                                                                                                       ::::::::::::::::::                    'cccccccccccccccccc                         ccccccccccccccccccc,                                                                                                                                                                                                       ::::::::::::::::::                    'cccccccccccccccccc;                       ,ccccccccccccccccccc                                                                                                                                                                                                        ::::::::::::::::::                    'cccccccccccccccccccc.                    ,ccccccccccccccccccc,                                                                                                                                                                                                        ::::::::::::::::::                    'ccccccccccccccccccccc.                  ;cccccccccccccccccccc.                                                                                                                                                                                                        ::::::::::::::::::                    'cccccccccccccccccccccc'.              .;cccccccccccccccccccc,                                                                                                                                                                                                         ::::::::::::::::::                    'cccccccccccccccccccccccc;'.         'ccccccccccccccccccccccc                                                                                                                                                                                                          ::::::::::::::::::                    'ccccccccccccccccccccccccccccc,...cccccccccccccccccccccccccc;                                                                                                                                                                                                          ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                           ::::::::::::::::::                    'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                            ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc,                                                                                                                                                                                                            ::::::::::::::::::                    'cccccccccccccccccccccccccccccccccccccccccccccccccccccccc:                                                                                                                                                                                                             ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccc:                                                                                                                                                                                                              ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                               ::::::::::::::::::                    'cccccccccccccccccccccccccccccccccccccccccccccccccccccc                                                                                                                                                                                                                ::::::::::::::::::                    'cccccccccccccccccccccccccccccccccccccccccccccccccccc,                                                                                                                                                                                                                 ::::::::::::::::::                    'ccccccccccccccccccccccccccccccccccccccccccccccccccc;                                                                                                                                                                                                                  ::::::::::::::::::                    'cccccccccccccccc; cccccccccccccccccccccccccccccccc.                                                                                                                                                                                                                   ::::::::::::::::::                    'cccccccccccccccc;  .:ccccccccccccccccccccccccccc                                                                                                                                                                                                                      ::::::::::::::::::                    'cccccccccccccccc;    .:cccccccccccccccccccccc,                                                                                                                                                                                                                        ::::::::::::::::::                    'cccccccccccccccc;      'cccccccccccccccccccc.                                                                                                                                                                                                                         ::::::::::::::::::                    'cccccccccccccccc;          ,:cccccccccc,.                                                                                                                                                                                                                             ::::::::::::::::::                    'cccccccccccccccc;                                                                                                                                                                                                                                                     :::::::::::::::::;                    'cccccccccccccccc;                                                                                                                                                                                                                                                    .:::::::::::::::::'                    'cccccccccccccccc;                                                                                                                                                                                                                                                    ,:::::::::::::::::.                    'cccccccccccccccc;                                                                                                                                                                                                                                                    ;:::::::::::::::::                     'cccccccccccccccc;                                                                                                                                                                                                                                                    :::::::::::::::::;                     'cccccccccccccccc;                                                                                                                                                                                                                                                   .:::::::::::::::::'                     'cccccccccccccccc;                                                                                                                                                                                                                                                   ':::::::::::::::::.                     'cccccccccccccccc;                                                                                                                                                                                                                                                   ::::::::::::::::::                      'cccccccccccccccc;                                                                                                                                                                                                                                                  .:::::::::::::::::,                      'cccccccccccccccc;                                                                                                                                                                                                                                                  ,:::::::::::::::::'                      'cccccccccccccccc;                                                                                                                                                                                                                                                 .::::::::::::::::::                       'cccccccccccccccc;                                                                                                                                                                                                                                                 ::::::::::::::::::.                       'cccccccccccccccc;                                                                                                                                                                                                                                                '::::::::::::::::::                        'cccccccccccccccc;                                                                                                                                                                                                                                                ::::::::::::::::::.                        'cccccccccccccccc;                                                                                                                                                                                                                                               ::::::::::::::::::,                         'cccccccccccccccc;                                                                                                                                                                                                                                              :::::::::::::::::::.                         'cccccccccccccccc;                                                                                                                                                                                                                                             ;::::::::::::::::::.                          'cccccccccccccccc;                                                                                                                                                                                                                                            ;::::::::::::::::::.                           'cccccccccccccccc;                                                                                                                                                                                                                                           ::::::::::::::::::::                            'cccccccccccccccc;                                                                                                                                                                                                                                         .::::::::::::::::::::                             'cccccccccccccccc;                                                                                                                                                                                                                                         ,::::::::::::::::::,                              'cccccccccccccccc;                                                                                                                                                                                                                                         .::::::::::::::::::                               'cccccccccccccccc;                                                                                                                                                                                                                                          :::::::::::::::::                                'cccccccccccccccc;                                                                                                          [38;2;0;0;0m                                                                                                                                .::::::::::::::.                                 'cccccccccccccccc;                                                                                                                                                                                                                                           :::::::::::::,                                  'cccccccccccccccc;                                                                                                                                                                                                                                           .::::::::::;                                    'cccccccccccccccc;                                                                                                                                                                                                                                            '::::::::.                                     'cccccccccccccccc;                                                                                                                                                                                                                                            .::::::;                                       'cccccccccccccccc;                                                                                                                                                                                                                                             ;:::,                                                                                                                                                                                                                                                                                                        .;.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            jp2a-1.3.2/tests/jp2a-png-invert.txt000066400000000000000000002731471471373143100172210ustar00rootroot00000000000000                                                                                                                                                                                                                                                                                                                                                                                                                                                               :NXKKKXXK                                                                                                                                       cKKKKKKKKKX                                                 .00OOXOK0O00k0xdk,.                                                                  cKKKKKKKKKK                                             .NXXNNXNKKK00OOkkOxxkdkxl.                                                                KKKKKKKKK:                                           .WWWNWNXXXKKKO0kOkkkddkoddokl;                                                                kKKKK'                                              :WWNNNXXXK0d;c;xkkkddkoddocod;                                                                                                                    xWNNl;;d:xcxdodd:dookoddocdcc;                                                                                                                     ;occ:            cxoooococ::,                                                                                            .kNNXc                                    'ollc:c;;,'                                                           ckkkkkkkk          kkkkkk'  ;KOkxoooooodxOKk                                lcc:;:,,..             c:lllodoollooc:                               :dddddddd          oooooox0kdoooooooooooooooxK.                             c;;;,,'..         ;ocxlldlloolololoocdo:o'                           :dddddddd          ooooooooooooooooooooooooooodO                           ,,'.....           ,',;,':,,;,';';';;';,,,;,;                         :dddddddd          oooooooooo.        loooooooook                        .;,,'.....            ;.''.,.,;,',';.''.,''''.;,                        :dddddddd          oooooooo.            looooooooo                      ,:;,,'....             ..'.,.         .'.........                        :dddddddd          oooooooo.             ooooooooo.                   .c::;,,'...                                ...... ..                       :dddddddd          oooooooo.             ,oooooooo;                  llc::;,,'.                                                                  :dddddddd          oooooooo.             .oooooooo:                dollc::;,,.                                                                   :dddddddd          oooooooo.             .oooooooo;              xddollc::;.                                                                     :dddddddd          oooooooo.             coooooooo.            kkxxdoolcc,.                                                                      :dddddddd          oooooooo.            'dooooooo:          ;00OOkxxddo:.                                                                        :dddddddd          ooooooookO          0xoooooooo         0NXNNNNXXN0d;'.''.'.'.'.',.;                                                           :dddddddd          ooooooooook0KNKKNX0xooooooool        WWWWWNNNNNXNXXXKXKKK0OKOO0O0Oko.                                                         :dddddddd          ooooooooooooooooooooooooooo,        XWWWWWNNNNNXNXXXXXKKK00KOO0O0Okd.            .       .  .                                 :dddddddd          ooooooooooooooooooooooooo'          XWWWWWWNNNNNXXXXXXKKK00KOO0OOOOd.       '................. ........                       :dddddddd          oooooooo. .ooooooooooo              XWWWNNNXXXKKK000O0kkOkxkddkoddlc           ..,.'...'.'. .   .''.'.                        cdddddddo          oooooooo.                                                                                                                    .dddddddd;          oooooooo.                                                                                                                    xdddddddd           oooooooo.                                                                                                                  .Odddddddo            oooooooo.                                                                                                                ;Kxddddddd.             oooooooo.                                                                                                                cddddddd'               oooooooo.                                                                                                                 cddd,                  oooooooo.                                                                                                                                                                                                                                                                                                                                                                                                           jp2a-1.3.2/tests/jp2a-rotate-180.jpg000066400000000000000000000453251471373143100166700ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-rotate-180.txt000066400000000000000000000035501471373143100167210ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOc::::dNMMMMMNko::kWMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMMNx' .kMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMWd. cXM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMK, .xNMM Ko:;,'',cdo:,''',;o0WM0c;;;;;;;;;;;;;;;oXMMMMNko:,''',;c' ,KMM0' cNMMM k,. .:c. '0Mx. ,0MMMWk. ,KMM0' cWMMM NN0, ;KMMx. .OMO;''''''. .oXMMMMk. .lkOxo. ,KMM0' cWMMM MMX; :KOo. .xWMMWWWWWKc. .c0MMMMMN: .kMMMMWl ,KMM0' cWMMM MMX; .. ..;lkXMMMMMMMWO' ,OWMMMMMMK, ,KMMMMWl ,KMM0' cWMMM MMX; .cdkKNWMW00WMMMMNd. cXMMMMMMMMX: .xWMMMWl ,KMM0' cWMMM MMN: .xXXX0ko,.cNMMMWo :NMMMMMMMMMMx. .:dxo:. ,KMM0' cWMMM MMM0:. ... .'xWMMMk. dMMMMMMWXWMMWOc. ,KMM0' cWMMM MMMMWXkolc:::codkKWMMMMMd .oOK0Od;;NMMMMMNOdlc:clxKOlllllkNMMNxllcllOWMMM MMMMMMMMMMMMMMMMMMMMMMMMK, . 'NMMMMMMMMMMMMMMMMMMMMMMMMMMXo,';xWMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKc. .oWMMMMMMMMMMMMMMMMMMMMMMMMMMd. ,KMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWKdc;''',;lxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMXo;':kWMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-rotate-270.jpg000066400000000000000000000453251471373143100166700ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-rotate-270.txt000066400000000000000000000114421471373143100167200ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0kdxxXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNNNNNNNNNNNN0d, c0NMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWW0dlc:;;;;;;;;;;::,. .;kMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWOl, .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM0, .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKc ..dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMOc. :xKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx,. .,:' .;::::,. .kMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. ..lKNx:. ,0NNNNKk; .dNWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. 'd0MMNKc cOXMMMWd. 'lOMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMk:. 'd0MMMMk. .;xkxd; .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKd, .;kMMMMX; ... .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNXl :XMMMWx;. .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM0' lKNMMWXl 'o0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWl. .;xNWMMK;. .oXWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKxl:cccckXWMMM0dc'....,:dXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMWK0000XWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xxxxxxxOKNMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl.......,o0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMNOxdddddxOKNMMMMMMMMMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWN0l;'. ..':lxOKWMMMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMkc. .oOXMMN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMX: ..:0WN: 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMWWd. .;c' 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNXc .,oxxdol;'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNK: ;x0WMMMMWK0dc, 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMNXc .'xWMMMMMMMMMWWKc'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMWNo .;kMMMMMMMMMMMMMNXO:'. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0' .oWMMMMMMMMMMMMMMMWNk' 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMNc ;kKMMMMMMMMMMMMMMMMW0d;. 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMOc. .oNMMMMMMMMMMMMMMMMMWKkc 'l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWNk;'''''':ONWMMMMMMMMMMMMMMMMMMNkl,,l0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMWNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMXOOXMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkxxdooooddxO0KNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWKl,. .';lKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0d; ;d0MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMX:. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKl cOXMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMOc. ..,;;'. .,xMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx,. .:okOKXX0kd' .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMx'. 'ONWMMMMMMMMKk; .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' cNMMMMMMMMMMMMd. .dMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMNKc ;XMMMMMMMMMMWNl .cOMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWk. .xNWWWWWWWWM0d' cKNWWWWWWWWWWWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKkc. .,,;;;;,,;;.. .;;;,,;;,,,,,:0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMKd:......................................,OMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMWNXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMWNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNWWMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWKxddx0WMKxc''''''''','''''''''''''''''',,;:lk0NMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0;. .,OM0l' .'cKMMMMMMMMMMMMMMMM MMMMMMMMMMMWNl lNOo' :kKMMMMMMMMMMMMMM MMMMMMMMMMMWNo lNOo' .:XMMMMMMMMMMMMM MMMMMMMMMMMMMXo;,',lKM0l' .xMMMMMMMMMMMMM MMMMMMMMMMMMMMNXK0KNMMXOdccccccccccccccccccccccccccc:,. .xMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNKOl.. ,:oKMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0xdxOXWWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-rotate-90-flipy.txt000066400000000000000000000114421471373143100177610ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMXxxdk0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMN0c ,d0NNNNNNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMk;. .,::;;;;;;;;;;:cld0WWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,lOWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd.. cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKx: .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMk. .,::::;. ':,. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWNd. ;kKNNNN0, .:xNKl.. .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOl' .dWMMMXOc cKNMM0d' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;dxkx;. .kMMMM0d' .:kMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ... ;XMMMMk;. ,dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .;xWMMMX: lXNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o' lXWMMNKl '0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWXo. .;KMMWNx;. .lWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd:,....'cd0MMMWXkcccc:lxKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWX0000KWMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMNKOxxxxxxx0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o,.......lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMMMMMMMNKOxdddddxONMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMWKOxl:'.. .';l0NWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMXOo. .ckMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NW0:.. :XMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'c;. .dWWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .';lodxxo,. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ,cd0KWMMMMW0x; :KNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .'cKWWMMMMMMMMMWx'. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .':OXNMMMMMMMMMMMMMk;. oNWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'kNWMMMMMMMMMMMMMMMWo. '0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .;d0WMMMMMMMMMMMMMMMMKk; cNMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ckKWMMMMMMMMMMMMMMMMMNo. .cOMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l,,lkNMMMMMMMMMMMMMMMMMMWNO:'''''';kNWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOOXMMMMMMMMMMMMMMMMMMMMMWWNNNNNNNNWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0OxddoooodxxkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl;'. .,lKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM0d; ;d0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMK; .:XMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOc lKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMx,. .';;,.. .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. 'dk0XXKOko:. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;kKMMMMMMMMWNO' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .dMMMMMMMMMMMMNc 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOc. lNWMMMMMMMMMMX; cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWWWWWWWWWWNKc 'd0MWWWWWWWWNx. .kWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0:,,,,,;;,,;;;. ..;;,,;;;;,,. .ckKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMO,......................................:dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMWWNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMN0kl:;,,'''''''''''''''''','''''''''cxKMW0xddxKWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMKc'. 'l0MO,. .;0MMMMMMMMMMMMM MMMMMMMMMMMMMMKk: 'oONl lNWMMMMMMMMMMM MMMMMMMMMMMMMX:. 'oONl oNWMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MKl,',;oXMMMMMMMMMMMMM MMMMMMMMMMMMMx. .,:cccccccccccccccccccccccccccdOXMMNK0KXNMMMMMMMMMMMMMM MMMMMMMMMMMMMKo:, ..lOKNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWXOxdx0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-rotate-90.jpg000066400000000000000000000453251471373143100166100ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$ Khttp://ns.adobe.com/xap/1.0/ *Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMAdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a-rotate-90.txt000066400000000000000000000114421471373143100166400ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWXOxdx0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMKo:, ..lOKNNNWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. .,:cccccccccccccccccccccccccccdOXMMNK0KXNMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MKl,',;oXMMMMMMMMMMMMM MMMMMMMMMMMMMX:. 'oONl oNWMMMMMMMMMMM MMMMMMMMMMMMMMKk: 'oONl lNWMMMMMMMMMMM MMMMMMMMMMMMMMMMKc'. 'l0MO,. .;0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMN0kl:;,,'''''''''''''''''','''''''''cxKMW0xddxKWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMWWNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMWXKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKXNWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMO,......................................:dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMx. 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM0:,,,,,;;,,;;;. ..;;,,;;;;,,. .ckKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWWWWWWWWWWNKc 'd0MWWWWWWWWNx. .kWMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOc. lNWMMMMMMMMMMX; cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .dMMMMMMMMMMMMNc 'l0MMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;kKMMMMMMMMWNO' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. 'dk0XXKOko:. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMx,. .';;,.. .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOc lKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMK; .:XMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM0d; ;d0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl;'. .,lKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0OxddoooodxxkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXOOXMMMMMMMMMMMMMMMMMMMMMWWNNNNNNNNWMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l,,lkNMMMMMMMMMMMMMMMMMMWNO:'''''';kNWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ckKWMMMMMMMMMMMMMMMMMNo. .cOMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .;d0WMMMMMMMMMMMMMMMMKk; cNMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'kNWMMMMMMMMMMMMMMMWo. '0MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .':OXNMMMMMMMMMMMMMk;. oNWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .'cKWWMMMMMMMMMWx'. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' ,cd0KWMMMMW0x; :KNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' .';lodxxo,. cXNMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' 'c;. .dWWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NW0:.. :XMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMXOo. .ckMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMWKOxl:'.. .';l0NWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0l' :NMMMMMMMMMMNKOxdddddxONMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o,.......lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMNKOxxxxxxx0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWX0000KWMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXd:,....'cd0MMMWXkcccc:lxKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWXo. .;KMMWNx;. .lWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM0o' lXWMMNKl '0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. .;xWMMMX: lXNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ... ;XMMMMk;. ,dKMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ;dxkx;. .kMMMM0d' .:kMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMOl' .dWMMMXOc cKNMM0d' .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWNd. ;kKNNNN0, .:xNKl.. .'xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMk. .,::::;. ':,. .,xMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMKx: .cOMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd.. cKNMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,0MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd. ,lOWMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMk;. .,::;;;;;;;;;;:cld0WWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMN0c ,d0NNNNNNNNNNNNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMXxxdk0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-webp-scale-up.txt000066400000000000000000000107661471373143100175700ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMWNKOOKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMWNXK0OOOkOKXNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMWk,. ,xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0d:'. .'cxXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMO: .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0o,. .oNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM0c 'OMMMMMWWMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMWXc '0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWXo:'':dXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX: ... :OMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWKOOkxxkkkKNWMMMNKOOOOOOOOKMMNKkxooodkKNWMMMMMMMMMWX: .,lxOOOOx:. .oMMMMMMMMMMMWNX0kdooooodk0XWMMMMMMMMMM MMMMMWX; :OWMMMKo. 'xc.. ..;dXWMMMMMWWXl.o0NWMMMMMMW0. .oWMMMMMMWKkc'.. ..':kXWMMMMMM MMMMMWX, ;kWMMMKl c0WMMMMMWWNWMMMMMMMMMMN:. .oMMMMMMX; 'xXMMMMM MMMMMWX, ;kWMMMKl 'ONMMMMMMMMMMMMMMMMMMN;. ;OMMMMMW0. ..,;;,'. .OMMMMM MMMMMWX, ;kWMMMKl .,lkkxc' 'kMMMMMMMMMMMMMMMMMNO. .OWMWMMMNO. 'l0KXNNWWNOc. oXMMMM MMMMMWX, ;kWMMMKl 'KWMMMMWNk. cXWMMMMMMMMMMMMMMMk, ,kNMMMMMMWKclONMMMMMMMWNKd. oXMMMM MMMMMWX, ;kWMMMKl ,XWMMMMMMXo. ;OWMMMMMMMMMMMMMWk, :OMMMMMMWMMWWWWMMMWX0xl:,. oXMMMM MMMMMWX, ;kWMMMKl 'XMMMMMMMNO, ,kWMMMMMMMMMMMMKo. .cKWMMMMMMWWMMMMMKxc'.. oXMMMM MMMMMWX, ;kWMMMKl 'XMMMMMMMNx' ;0WMMMMMMMMMMNx' ,xWMMMMMMMMMMMWKo. .'lxO. oXMMMM MMMMMWX, ;kWMMMKl 'XMMMMMMW0,. cXMMMMMMMMMWk; .cKNNNWWWWWWWMWN0' .l0WWN0' oXMMMM MMMMMWX, ;kWMMMKl .cONWMWNd, .dWMMMMWMMWXl. .........';kMMO: .;KMMMNK' oXMMMM MMMMMWX, ;kWMMMKl ... .xXMMMWMMMNd. .oMMO, .xXNKd;. 'cdokM MMMMMWX, ;kWMMMKl ;kWMMMMMMNk,. .dMMKo. .. .lM MMMMMWN, ;kWMMM0c .;kXMMMMMMWO:. .oWMWXl. .,'. 'dM MMMMMWX, ;OWMMMKl '00d:;,''',:o0XWMMMMMMMMNxooooooooooooooooooooooooood0MMMMWXOl;,''',;lkXWNO:;,,,,,cxKNMM MMMMMXx. ;OWMMMKl 'XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMWMMMMMMMMMMMMMMMMMMMM MMMN0l. cKMMMMKl 'XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMXx. .xWMMMM0c 'XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWN: 'kNMMMMM0c 'XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM WMMM0c .l0MMMMMMM0c 'XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWO;'';oONWMMMMMMMMXx,'''''',lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a-webp.txt000066400000000000000000000035501471373143100160520ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMXl',oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxc,,'',cxXMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWl :MMMMMMMMMMMMMMMMMMMMMMMMMMWl. ;KMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWK:..cKMMMMMMMMMMMMMMMMMMMMMMMMMMX .0MMMMMMWMMMMMMMMMMMMMMMMM MMMMXcc::coKMMNxcccccOKdc;,;cx0WMMMMMX .o0XXXO; lMMMMMWKkdc;,;,;cd0WMMMMM MMMM0 .kMMX: .xWMMMWKWMMMMMMX. lMMMWd. .dWMMM MMMM0 .kMMX: .';' cWMMMMMMMMMMM0 ,KMMMN: ,ldkOx, KMMM MMMM0 .OMMX: lNMMWX; OMMMMMMMMMMX' 'KMMMMWkdXWMMMWXd. kWMM MMMM0 .OMMX: oMMMMM0. oWMMMMMMMWk. :NMMMMMMMMNOo;. kMMM MMMM0 .OMMX: oMMMMWx. xWMMMMMMK, .kWMMMMMMM0, .:k0. kMMM MMMM0 .OMMX: ,ONWXd. .XMMMMMXc ,;;;;;:OMO. .OMMK. kWWM MMMM0 .OMMX: .KMMMMWd. oMO. ;oc. .';W MMMM0 .OMMX: .. .,xNMMMMk' .dMWx' .,;. .cM MMMWx .OMMX: oNK0OOO0NWMMMMMMXKKKKKKKKKKKKKKKKXNMMMWK0OOO0NWMKOOOOKWMM MMKc .XMMX: oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MM0 .kMMMX: oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWO. .,dXMMMMXc dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMNXNWMMMMMMWNXXXXXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/jp2a.jpg000066400000000000000000000532151471373143100150630ustar00rootroot00000000000000JFIFHH/ExifMM*bj(1r2iAdobe Photoshop CS Macintosh2006:06:23 21:59:08P2&(.HHJFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$*Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMI2P Untitled-2P2nullboundsObjcRct1Top longLeftlongBtomlong2RghtlongPslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong2RghtlongPurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM P2.JFIFHH Adobe_CMAdobed            2P"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?*iM,mUT` kZѵck5 ipǵ C?HcӃW^lk}ȵml۽%=J=< M 7v鍻wnܘN2>s(ޒI(s ܿ'V f ^~o_ZǤ^Cbuie[e { lM}_׻$$zEzWcg>5[Zy?Ƨ!4#_Sc5??T(O꜒/#'/uo$kqmos6;Vm>ٛKykK;wzƷ9;땝A670.l2Η(kfK mLߤ&_V]+>{6z6<ˍVno~wc1pqCXc@kƏZƵyY^WYV4鹵6??k3i}~[-f ?8j?ħ?[ZFQ}+׮}}wtnѮ8 w4PfWgMy_߯U1e=)9we:7S?em׫_#{oun%k7cl}eW:J˺wT80zCٿ"7깭Y(aێ"emޱUS7X.Ջ]\XOwo~׮u9ĽέnĔjN_I9.O2_c 3Ht.in;tV4s]eף~Һ;1;r1Ĉx.VqqqٍS(hkZ?֤J`WUmvsND9k\SoJ|^Y?%lEgo玢Μ}qn'}H69[)v1h #f۷`}Mʜ@Jy7*qZlCtn1ѩ|kA$}EӮze-:Z֨b@2it2>U+STʩ$ꤗʩ$ꤗʩ$ꤗʩ$ꤗʩ$8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMhttp://ns.adobe.com/xap/1.0/ 4294967295 80 50 1 27/1 27/1 3 2006-06-23T21:59:08+02:00 2006-06-23T21:59:08+02:00 2006-06-23T21:59:08+02:00 Adobe Photoshop CS Macintosh adobe:docid:photoshop:1e6c3631-0494-11db-9a66-ee67d6f99181 image/jpeg AdobedC 2P     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?߽߽߽߽߽C%n|)7OM9ڝ-w\-~{qmL>}GRBJXj"TD`}cm_ۈ>=ն{ yA[7tlꨰWjvem-˻q-IYRFVWKO$`0Am{c/Aol.ٝqW\8 {/?|tVj()eR1I {S}zc|TRAYm ż'T5;_+3pKM'ExFE_)K|sn^3VSsYMUuxJ "YZ>^d~g5wόW\n[wc_p=ٔsU[ژ|n˘LDpBSZY';GM)}GI|4awOf䪷oguoffhvEș6ڻ>`WPjjHh*SM <2TKA<: 0ĥYGhlN|CEbӬ~ܣ (N }ԙAXŬdz#OQOWO]$RCE5M<5=E<ȲC<FVRU <_S~:J*OH RGV*uo:|k+UKo3s|ٴ]=}EyQ`[nbS6Fd!u7'lzɭQ:yu/;)Cv;+ٽܻ7v|rV pճT)3N(K%;¢M?9_6ZVYݡoq.7nUoJXܛ]6c(bj\~gkvZq)Ɍ3^~EwSJڝڕح}#9׸f2PN9!3P hbB5uąT5 ͏]ۓ`gf1pZlV-iBӽn(Jҽw}WoJ?_;^S,C MS2Ի6O=eO8܇\m7%9&3Tb%EU3Lm8?AKOoϗ[wq|VsCn,^^q܅.9XOJf%"KQ|^ί?5:O^;q{om׬2cV}AWnbXI*g<v_]]O}H/'g/ VU{ ǵmf.tUwZo ٩ UV[u-bO52U &x5R?F_ϳNzgO_VΤm&ݝ¦krnLni* ִ02F߉;xc?%{+p*_ؽv5-xJ,碚g>BU]OHk%;bƽ[M{w#2Q'K-;v&] <ߘK867zo|]M_'AQZsi'jƎsifR9?b|U~:/.|2tY߬_f4Nߩ[0m ~82d8𔎀NN0c{; w8tsRIv>]€L L+E?9Gս.u'tNn͇v7sltz!K5}4U4҅T2HYӻ[#wS ق\"]ߕ>' wdoMٳszYAw)տ!:vtslvVRjlFAYK^VPTˎ?,Aѳ)?`z|_#6޽?9fS7}=abzg(߮oGrki}&j w1u72R#juv}>sv{#305>O ]FtjUyPXup_NvA-꽧8|ޙegvNA-&_hvCjfdh~ܧgS?Ǎ޹~ua+j 6ee۔M-^i1sK0݆`} c=VZi$0EkNV{h|fup#;G|bohkrm͚ܶz-Ǿ8yM~UұM)9+ai߽߽߽߽߽jp2a-1.3.2/tests/jp2a.webp000066400000000000000000000013621471373143100152340ustar00rootroot00000000000000RIFFWEBPVP8 P*P2>F7z^{/qf>>;w9ţ{ֵWקifCh\BĀ s\ߥnNއ/)uޓf ]'Tӿ{_Yg5; 0>dWU׵P{(zߦ[-%>܊a1708R^ޗGYzmx']YTku7gEI)z̜Xr̦t1Ca.mlwozR]^LG35ׯ3ؤ7e2qiV׆?F״B1_K:ZõEI)W``鸁vBZ $'Photoshop 3.08BIM%8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:51Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:51Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2006-06-23T19:47:15Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMxHH/8Ag{HH(dh 8BIMGG8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIM5-8BIM8BIM@@8BIM8BIMS(Untitled-2 copy(nullboundsObjcRct1Top longLeftlongBtomlongRghtlong(slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong(urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM (x JFIFHH Adobe_CMAdobed            ("?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ? _L"'e!c?2AXӴ +ϾUWUUmz5ٿ#1q%>F7z^{/qf>>;w9ţ{ֵWקifCh\BĀ s\ߥnNއ/)uޓf ]'Tӿ{_Yg5; 0>dWU׵P{(zߦ[-%>܊a1708R^ޗGYzmx']YTku7gEI)z̜Xr̦t1Ca.mlwozR]^LG35ׯ3ؤ7e2qiV׆?F״B1_K:ZõEI)W``鸁vBZ $8BIM!SAdobe PhotoshopAdobe Photoshop CS8BIMhttp://ns.adobe.com/xap/1.0/ 4294967295 40 25 1 27/1 27/1 3 2006-06-23T21:48:35+02:00 2006-06-23T21:48:35+02:00 2006-06-23T21:48:35+02:00 Adobe Photoshop CS Macintosh adobe:docid:photoshop:1e6c3631-0494-11db-9a66-ee67d6f99181 image/jpeg AdobedC (    u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyz?܆4=(>7Dv+~=$U0(rۚl\[ ta g׳z('alw9܌| ]فcĐI./y!:\$RW/Su;#?){}l|iSlg'Em s2W6MO XKN&qZ4Ϗ̓.nݕ ErMC1S !&H `s}}6Bh-j1rmÈMQB,eeSJYH Sp}0]Ԫ_Von=U;Y&)g{K1kic7ͲWmWA"}SɆ͕_N1dҖ:뿛<ߖwg~PQSrdزdfle-eg*>߁#dnϔ{m󗮺蜥v>;c/;imJZ#udq Q$ϔ4d%_{D/^=>%~Mvό_"wm]-<}-j ,ĸԎ'ѽ;i}l\qYͣݽeE*["|%  dIȏk|˛ϚynSםC{{5En^V32E"- jp2a converted image

MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMXdcl0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0dcc:clkXMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNo.  ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXOc'      .:kWMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMK,    dMMMMMMMMMMMMMMMMMMMMMMMMMMMKl;.          .xWMMMMMMMMMMMMMMMMMMMMMMMMM
MMMM0'    dMMMMMMMMMMMMMMMMMMMMMMMMMMWo              .OMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNl   ,0MMMMMMMMMMMMMMMMMMMMMMMMMMN:               cNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMKo:lOWMMMMMMMMMMMMMMMMMMMMMMMMMMNc     ...       .OMMMMMMMMMMMMMMMMMMMMMMMM
MMMMX0OkO0KWMMWK00000XMN0xxxOXWMMMMMMN:   ;okkx;      .dMMMMMMMWNKkxxxxOXWMMMMMM
MMMWd'''''cKMMXl'''''dkc'....;dXMMMMMNc.;oKMMMM0,      dMMMMMW0o:,......;o0WMMMM
MMMWc     '0MMK,     ..       .:0MMMMNkkXNMMMMMWo      dMMMMKl'           ,OWMMM
MMMWc     '0MMK,                ;KMMMWNWMMMMMMMMx.    .xMMMWl              ,0MMM
MMMWc     '0MMK,                 lNMMMMMMMMMMMMMd     .OMMMN:    .','.      dMMM
MMMWc     '0MMK,      .;c;.      .OMMMMMMMMMMMMWl     cNMMMNc  ,ok0K0l.     cWMM
MMMWc     '0MMK,     'xXNXd.      oMMMMMMMMMMMMK;    .xMMMMNc.lKWMMMMK,     :NMM
MMMWc     '0MMK,     lWMMMWo      cNMMMMMMMMMMWd.    :XMMMMWkxNMMMMWXx'     ;XMM
MMMWc     '0MMK,     lWMMMMO.     ;XMMMMMMMMMMK,    .OMMMMMMWWMMWXkl;.      ;XMM
MMMWc     '0MMK,     lWMMMMK,     ,KMMMMMMMMMNc    .oWMMMMMMMMW0o;.         ;XMM
MMMWc     '0MMK,     lWMMMMX;     ,KMMMMMMMMNo.    :XMMMMMMMMKl'    .,.     ;XMM
MMMWc     '0MMK,     lWMMMM0'     ;XMMMMMMMWx.    ,0MMMMMMMM0;     ,d0;     ;XMM
MMMWc     '0MMK,     lMMMMWd      cWMMMMMMWk.    .xNNNNNNWMNc     ;KWN:     ;XMM
MMMWc     '0MMK,     ;0WMWO'      dMMMMMMM0'     .;:::::l0MO'    .xMMN:     :NMM
MMMWc     '0MMK,      'ldl'      '0MMMMMMK;             .xMx.    .xMMK,     ,OKN
MMMWc     '0MMK,                 lWMMMMXOc              .xMk.     ;xd;       ,:k
MMMWc     '0MMK,                ;KMMMMXl.               .xMK,      ..          d
MMMWc     '0MMK,               ;0MMMMXl.                .xMWd.       ..       .x
MMMNc     '0MMK,     ,c.    .,oKMMMMMO;.'''''''''''''''',OMMXo'.   .,dk:.   .;dX
MMMN:     '0MMK,     lNOddddxKWMMMMMMX0O00000000000000000NMMMW0xdddxKWMKxdddkKWM
MMMK,     ,KMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWKl      ;XMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MXc.      lWMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MX;      .kMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWd      cNMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMK,    :KMMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMWo..'oKMMMMMX:.....oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMKxx0WMMMMMMW0xxxxxKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/logo.html000066400000000000000000000104231471373143100153450ustar00rootroot00000000000000 jp2a converted image
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMXdcl0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0dcc:clkXMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNo.  ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMNXOc'      .:kWMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMK,    dMMMMMMMMMMMMMMMMMMMMMMMMMMMKl;.          .xWMMMMMMMMMMMMMMMMMMMMMMMMM
MMMM0'    dMMMMMMMMMMMMMMMMMMMMMMMMMMWo              .OMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMNl   ,0MMMMMMMMMMMMMMMMMMMMMMMMMMN:               cNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMKo:lOWMMMMMMMMMMMMMMMMMMMMMMMMMMNc     ...       .OMMMMMMMMMMMMMMMMMMMMMMMM
MMMMX0OkO0KWMMWK00000XMN0xxxOXWMMMMMMN:   ;okkx;      .dMMMMMMMWNKkxxxxOXWMMMMMM
MMMWd'''''cKMMXl'''''dkc'....;dXMMMMMNc.;oKMMMM0,      dMMMMMW0o:,......;o0WMMMM
MMMWc     '0MMK,     ..       .:0MMMMNkkXNMMMMMWo      dMMMMKl'           ,OWMMM
MMMWc     '0MMK,                ;KMMMWNWMMMMMMMMx.    .xMMMWl              ,0MMM
MMMWc     '0MMK,                 lNMMMMMMMMMMMMMd     .OMMMN:    .','.      dMMM
MMMWc     '0MMK,      .;c;.      .OMMMMMMMMMMMMWl     cNMMMNc  ,ok0K0l.     cWMM
MMMWc     '0MMK,     'xXNXd.      oMMMMMMMMMMMMK;    .xMMMMNc.lKWMMMMK,     :NMM
MMMWc     '0MMK,     lWMMMWo      cNMMMMMMMMMMWd.    :XMMMMWkxNMMMMWXx'     ;XMM
MMMWc     '0MMK,     lWMMMMO.     ;XMMMMMMMMMMK,    .OMMMMMMWWMMWXkl;.      ;XMM
MMMWc     '0MMK,     lWMMMMK,     ,KMMMMMMMMMNc    .oWMMMMMMMMW0o;.         ;XMM
MMMWc     '0MMK,     lWMMMMX;     ,KMMMMMMMMNo.    :XMMMMMMMMKl'    .,.     ;XMM
MMMWc     '0MMK,     lWMMMM0'     ;XMMMMMMMWx.    ,0MMMMMMMM0;     ,d0;     ;XMM
MMMWc     '0MMK,     lMMMMWd      cWMMMMMMWk.    .xNNNNNNWMNc     ;KWN:     ;XMM
MMMWc     '0MMK,     ;0WMWO'      dMMMMMMM0'     .;:::::l0MO'    .xMMN:     :NMM
MMMWc     '0MMK,      'ldl'      '0MMMMMMK;             .xMx.    .xMMK,     ,OKN
MMMWc     '0MMK,                 lWMMMMXOc              .xMk.     ;xd;       ,:k
MMMWc     '0MMK,                ;KMMMMXl.               .xMK,      ..          d
MMMWc     '0MMK,               ;0MMMMXl.                .xMWd.       ..       .x
MMMNc     '0MMK,     ,c.    .,oKMMMMMO;.'''''''''''''''',OMMXo'.   .,dk:.   .;dX
MMMN:     '0MMK,     lNOddddxKWMMMMMMX0O00000000000000000NMMMW0xdddxKWMKxdddkKWM
MMMK,     ,KMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWKl      ;XMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MXc.      lWMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MX;      .kMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MWd      cNMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMK,    :KMMMMK,     lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMWo..'oKMMMMMX:.....oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMKxx0WMMMMMMW0xxxxxKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
jp2a-1.3.2/tests/long.jpg000066400000000000000000000027711471373143100151670ustar00rootroot00000000000000JFIF,,Created with GIMPICC_PROFILElcms0mntrRGB XYZ  :9acspAPPL-lcms desc @cprt`6wtptchad,rXYZbXYZgXYZrTRC gTRC bTRC chrm4$dmndX$dmdd|$mluc enUS$GIMP built-in sRGBmluc enUSPublic DomainXYZ -sf32 B%nXYZ o8XYZ $XYZ bparaff Y [chrmT|L&g\mluc enUSGIMPmluc enUSsRGBC     C     Z;?;?;?;?!; $I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$O?;?;?;jp2a-1.3.2/tests/long.png000066400000000000000000000010731471373143100151650ustar00rootroot00000000000000PNG  IHDR tiiCCPICC profile(}=H@_S-VqP,VBЪKhҐ8 ?.κ: "ƃ~{SͶ@,#̊xEB4df곒wQ}LD:Ħs'%>'6ď\W\~\pXa##VZ x8U5.g9oqVKָ'a0-/qX"$PPJU#Dc~/K!9Q nب/1vzնm~+/׀OҫM-rtoMM.w']6dGy)no}>)*qC^xwGkoi4r8r, pHYs.#.#x?vtIME  ZtEXtCommentCreated with GIMPW$IDATh ۿ%^Mr]IENDB`jp2a-1.3.2/tests/no-output.txt000066400000000000000000000000001471373143100162200ustar00rootroot00000000000000jp2a-1.3.2/tests/normal-b.txt000066400000000000000000000040721471373143100157720ustar00rootroot00000000000000+------------------------------------------------------------------------------+ |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM| |MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM| |MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM| |MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM| |MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM| |MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM| |MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM| |MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN| |MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k| |MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK| |MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| +------------------------------------------------------------------------------+ jp2a-1.3.2/tests/normal-clear.txt000066400000000000000000000035621471373143100166420ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/normal-curl.txt000066400000000000000000002677511471373143100165350ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdllllloxOXWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0kdoolllllllllodxkOKXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXx:. .'cxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkdl:,'.. ...,:ox0XWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNO:. .;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOoc,.. .':okKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXd, .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl;. .;oONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXo. .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNOo;. .ckXWMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWNd. .oXMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMWMMWXkc. .:kXMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO' .xNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWMMMWXx;. .:ONMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK: ,OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWKx:. .oXWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWXd;. .:kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNk:. .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xc. .lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo cWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXd,. .cKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWc ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMWNOc. cKWMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWKo' .cKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXk;. cXMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0, .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNc ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO. 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO' :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' '0MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK; 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ,0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXo. .cKMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWXd. .oXWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMNx;. .;kXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXx:'. ..:dXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWN0xolllloxOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .';;;;;;;'. .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .,cdk0XXXXXXX0kd:. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .;lkKWMMMMMMMMMMMMMNOc. lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' 'ckKNWMMMMMMMMMMMMMMMMMNOc. :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' 'lONWMWWMMMMMMMMMMMMMMMMMMWXd. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .cONMMMMMMMMMMMMMMMMMMMMMMMMMMNk' '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMWMMMMMMMMWNKOkxdolllllllllodk0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .;xXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. .kMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNKOkxxollllllllllllloddxO0XNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNkllllllllllllllllllllllllllllllllllkNMMMMMMMMMMMMMMMMMMMMMWOllllllllllllllllllllllllllllllllllkNMMMMMWWMMMMMWKkoc,... .':ldOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .dKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNo. .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkdlc:,'... ...';codkKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMWMMMMK; :KMMMMMMMMMMMMMMMMMMMMMWl ;KMMMMMWMMMWXkl,. .;lkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ;ONMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKOxl:,. .,cdOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; :XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMWKx:. .;d0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .lKWMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdc,.. ..;oOXMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMWMMMMMMMMMMMMMMMMMMMMl ;XMWMMMWXx;. .'lONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .:dXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWo oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXko;.. .:xKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMWWMNk:. 'lONMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ,kXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, lMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOo;. .;xKWMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMWKo. 'l0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' :OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo lMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKx:. .;xXWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMNk:. ,dXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' cKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO' lMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0o,. .c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XXd' .l0WMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWW0' .:KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNOl, ,xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;xc. ;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWO'.lKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKo. .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .' .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO;lXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXd;. .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oXWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXOKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXk:. .oXWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .lKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .kMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl. .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, '0MMMMMMMMMMMMMMMMMMMMMMMMMMM0; .xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ,OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; :NMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; lWMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, dMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ,0MWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. oWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oNMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .dWMWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. :XMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo .OMMWWMMMMMMMMMMMMMMMMMMMMMMMMMx. ..',;:;;;;;;,.. '0MMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWc ;XMMWWMMMMMMMMMMMMMMMMMMMMMMMMMx. .,coxO0KXXXXXXXXKOxo:. .xWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX; oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .':okKNMMMMMMMMMMMMMMMMMXx:. lWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .:d0XWMMMMMMMMMMMMMMMMMMMMMWXo. cNMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ..,;::;:;'. oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMx. cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'lOXWMMWMMMMMMMMMMMMMMMMMMMMWWMXo. ;KMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .;oxk0XXXXXX0xo;. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'lONMWWMMWMMMMMMMMMMMMMMMMMMMMWWMMX: '0MMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .:kXWMMMMMMMMMMMWXkl' .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .lONMMWMMMMMMWMMMMMMMMMMMMMMMMMMMMMMWk. .kMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .:xXMMMMMMMMMMMMMMMMMWO:. cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .:ONWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMX: .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,xXWMMMMMMMMMMMMMMMMMMMWKo. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNc '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ,xXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWd. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .c0NMMMMMMMMMMMMMMMMMMMMMMWXx' .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd. .l0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMO' .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oXMMMMMMMMMMMMMMMMMMMMMMMMMWWx. lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ;xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .dXMMMMMMMMMMMMMMMMMMMMMMMMMMWWXl. ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNc .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK; .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'dXWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWo .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. ,kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl cWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. :0WMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :NMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWWWO' ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. .cKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMMNl '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx..oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOl. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMk. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMXc .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx'oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxc' .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMWWWWx. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0xXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWWWK; ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMWKkl;. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMWo. .kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMNKxl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO. cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .oNMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0xl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: ;KMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOxl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN: ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWN0d:'. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMO' .lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMN0dc'. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWK: ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0dc'. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .kWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk' lNMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMWKd;. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0, ,0MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK: .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKd:. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKd,. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMXx. :KMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMW0d;. .. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXd,. .cdc .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMM0: .oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMNOc. 'ckXWx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXd' 'lONMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWc ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. ,0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. .,o0NMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0:. ,d0WMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, cWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk' .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO; 'o0WMMWMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO. oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0, .cOWMWWWWMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0; ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK: .;xNWMMWMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc. .kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl .oKWMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK; '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMNd. ,xXWMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. cKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWO' ;OWMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWNl cWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. ;0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMXc 'OWMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMM0, .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. 'kWMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. .dWMMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0, .xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: :XMWMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK; .oNMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' .xWWWMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXc lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc .cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMWd. ;XMMMMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWx. .xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. :KWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNc lWMMMMMMMMMMMMMMMMMMMMMx. .xMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,OWMMMMMMMMMMMMMMMMMMMMMMMMMMMW0, '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNo. 'clllllllllllllllllllllllllllllllllllllllllkWMMMMMMMMMMMMMK, .dMMMMMMMMMMMMMMMMMMMMMMx. .xMMMMMMWMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .:xXMMMMMMMMMMMMMMMMMMMMMMMMMWO; cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx. ;XMMMMMMMMMMMMMk. .kMMMMMMMMMMMMMMMWMMMMMMd. .xMMMMMMWMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .cONMMMMMMMMMMMMMMMMWMMMMMWO, .xWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk' ;XMMMMMMMMMMMMMx. .OMMMMMMMMMMMMMMMMMMMWMMd dMMMMMMMMMMWMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl 'o0WMMMMMMMMMMMMMMMMMMMNk; ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, ;XMMMMMMMMMMMMMd 'OMMMMMMMMMMMMMMMMMMMMMMx. oMMMMMMMMMMWMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,o0WMMMMMMMMMMMMMMMWXd' oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0; ;XMMMMMMMMMMMMMl .kMMMMMMMMMMMMMMMMMMMMMMx. lWMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .'lkXWWMMMMWWWWMWXx:. .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK: ;XMMMMMMMMMMMMMl .dMMMMMMMMMMMMMMMMMMWWMMd. ;XMMMMMMMMWMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .;ldOKXXXXK0ko;. cNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc ;XMMMMMMMMMMMMMl lWMMMMMMMMMMMMMMMMMWWWKc .OMMMMMMMMMMWNWMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ..,;:::;,. .kMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. ;XMMMMMMMMMMMMMl ;KWMMMMMMMMMMMMMMMMMW0c. oWMMMMMMMWKddKWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMXo. ;XMMMMMMMMMMMMMl .dNMWMMMMMMMMMMMMMMNk; ,ONMMMWXOo,.,OWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .kWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMNd. ;XMMMMMMMMMMMMMl ,OWWWMMMMMMMMMMMW0l. ,dkkxo:. 'OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl lNMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMWk' ;XMMMMMMMMMMMMMo :0WWMMMMMMMMMWXx, .... .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl '0MMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, ;XMMMMMMMMMMMMMd ;kNMMMMMMMWXx:. 'OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .dWMWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0, ;XMMMMMMMMMMMMMk. .lkKXXXKOd;. 'OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWK; ;XMMMMMMMMMMMMM0, .,;;;,.. 'OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKx: ;XMMMMMMMMMMMMMNc .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .dNMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:. ;XMMMMMMMMMMMMMMo .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl cXMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl ;XMMMMMMMMMMMMMMO. .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMWMXo. ;XMMMMMMMMMMMMMMX: .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;OWMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMWXo. ;XMMMMMMMMMMMMMMWd. .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd. ;XMMMMMMMMMMMMMMMK; .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,OWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx. ;XMMMMMMMMMMMMMMMWd. .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx' ;XMMMMMMMMMMMMMMMMXc .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .c0WMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNk' ;XMMMMMMMMMMMMMMMMMO' .,. .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .oKWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx' ;XMMMMMMMMMMMMMMMMMNx. ,x0: .OMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ,xNMMWMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMNx' ;XMMMMMMMMMMMMMMMMWMNo. .c0WMx. 'OWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl .,. .c0WMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWMNx' ;XMMMMMMMMMMMMMMMMMMMXd' 'dXWWMK: ;KWMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;kx,. .;xXMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx' ;XMMMMMMMMMMMMMMMMMMMMNk, .cOWMWWMWO' .;lONMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XW0o,. .;dKWMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk. ;XMMMMMMMMMMMMMMMMMMMMMWO:. .:kXWMMMMMMNd. .'cxKWWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMK, ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMN0o,. .;dKWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMWl ;XMMMMMMMMMMMMMMMMMMMWWMWKd;. .:kXWMWMMMMMMMNo. .'cd0NWMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ;XMMMMMMMMMMMMMMMMMMMMMMl :XMMMMW0d;. .'cxKWMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl ;KMMMMMMMMMMMMMMMMMMMWMMMMWKd,. 'ckNMMMMWWMMMMMMMXo. .'cd0NWMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMO' ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMXkl,. .,cd0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllxNMMMMMMMMMMMMMMMMMMMMMMWMMMWKxc'. .';o0NMMMMMMMMWMMMWWMMNx,. .;lx0NWMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMO. ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMNKkoc;'.. ..';cokKWMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMWWMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMN0dl:,.. ...,:lx0XWMMMMMMMMMMMMMMWWMMMN0xl,. ..,:ldOKNMMMMMMMMMMMWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMk. ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMWNX0kddollllllllllodxk0XWMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMWXKOxollllllllllodxkOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMN0kdollllllllllodkOKNWMMMMMMMMMMMMMMMWMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMd ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMo ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWWWc ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMWWX; ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM0' ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWx. ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMNl ;XMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMWMMMMMMMMM0, :NMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMWMMMMMMMMNo. cNMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWMM0, lWMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXl. oMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMNd. dMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMNx' .kMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMWXd. '0MMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMNOc. ;XMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMNOl' cNMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMWKxc' oWWWMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMKc. .OMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMM0' :XMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMNc oWMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMk. .OMWMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMK; cXMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMWd. .dWMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMK, ;KMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMWo .xWMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMM0' :XMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMNc .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMk. .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMX: :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMx. ,OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMK, .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMNo. .dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMM0' .dNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMXc .oXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMWMWk. .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMXc .oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMWWx. ,xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMWMK; .c0NMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMWo. 'dXMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM0' 'lOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMNo 'lONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMO' .;o0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMl ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMXc .,cxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMOllllllllllllllllllllllllllllllllllkNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMWx. ..,:okKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMXdllloxOKNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/normal-verbose.txt000066400000000000000000000134121471373143100172140ustar00rootroot00000000000000File: jp2a.jpg Source width: 80 Source height: 50 Source color components: 1 Orientation: 1 (Horizontal/normal) Output width: 78 Output height: 24 Output palette (23 chars): ' ...',;:clodxkO0KXNWM' Decompressing image [##....................................................]Decompressing image [###...................................................]Decompressing image [####..................................................]Decompressing image [#####.................................................]Decompressing image [######................................................]Decompressing image [########..............................................]Decompressing image [#########.............................................]Decompressing image [##########............................................]Decompressing image [###########...........................................]Decompressing image [############..........................................]Decompressing image [#############.........................................]Decompressing image [##############........................................]Decompressing image [###############.......................................]Decompressing image [################......................................]Decompressing image [#################.....................................]Decompressing image [##################....................................]Decompressing image [###################...................................]Decompressing image [#####################.................................]Decompressing image [######################................................]Decompressing image [#######################...............................]Decompressing image [########################..............................]Decompressing image [#########################.............................]Decompressing image [##########################............................]Decompressing image [###########################...........................]Decompressing image [############################..........................]Decompressing image [#############################.........................]Decompressing image [##############################........................]Decompressing image [###############################.......................]Decompressing image [################################......................]Decompressing image [#################################.....................]Decompressing image [###################################...................]Decompressing image [####################################..................]Decompressing image [#####################################.................]Decompressing image [######################################................]Decompressing image [#######################################...............]Decompressing image [########################################..............]Decompressing image [#########################################.............]Decompressing image [##########################################............]Decompressing image [###########################################...........]Decompressing image [############################################..........]Decompressing image [#############################################.........]Decompressing image [##############################################........]Decompressing image [################################################......]Decompressing image [#################################################.....]Decompressing image [##################################################....]Decompressing image [###################################################...]Decompressing image [####################################################..]Decompressing image [#####################################################.]Decompressing image [######################################################]Decompressing image [#######################################################] MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/normal.txt000066400000000000000000000035501471373143100155530ustar00rootroot00000000000000MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWk:';oXMMMMMMMMMMMMMMMMMMMMMMMMMMMWKxl;,''';cdKWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMK, .dMMMMMMMMMMMMMMMMMMMMMMMMMMWo. .cKMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWx;',oXMMMMMMMMMMMMMMMMMMMMMMMMMMN' . ,KMMMMMMMMMMMMMMMMMMMMMMMM MMMWOllcllxNMMNklllllOKxlc:cldONMMMMMN;;dO0KOo. dMMMMMWKkdoc:::clokXWMMMM MMMWc '0MMK, .cOWMMWXWMMMMMMd .kMMMWx'. ... .:0MMM MMMWc '0MMK, .:oxd:. .xMMMMMMMMMMN: oWMMMNc.,ok0XXXx. :NMM MMMWc '0MMK, lWMMMWx. :XMMMMMMMMXc .dNMMMMW00WMWNKkdc. ;XMM MMMWc '0MMK, lWMMMMK, ,KMMMMMMWO, 'OWMMMMMMMXkl;.. .. ;XMM MMMWc '0MMK, lWMMMMk. :NMMMMM0c. .cKWWWWWMMWx. .oOK: ;XMM MMMWc '0MMK, .oxOkl. .kMMMMXo. .'''''';OMO. .xMMK; ,0NN MMMWc '0MMK, .kWMMM0, .xM0' .c:. .,k MMMNc '0MMK, 'c;,''',:okNMMMMXo;;;;;;;;;;;;;;;c0MW0o;,''',:odc,'',;:oK MMNx. ,KMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MXc .dWMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMk. 'xNMMMK, lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMWk::okNMMMMMNd::::cOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM jp2a-1.3.2/tests/run-tests.sh000077500000000000000000000262011471373143100160230ustar00rootroot00000000000000#!/bin/bash # Copyright 2006-2016 Christian Stigen Larsen # Copyright 2020 Christoph Raitzig # # This is a small script to test if jp2a has been correctly built. ## PATH TO EXECUTABLE jp2a JP=../src/jp2a UNAME=`uname -a` UPDATE=no ## FOR LOCAL DEPENDENT INPUTS LIKE --edge-threshold=0.3 TO BE INTERPRETED CORRECTLY export LC_ALL=C if test "`echo ${UNAME} | cut -c1-6`" == "CYGWIN" ; then JP=../src/jp2a.exe fi if test "${1}" == "update" ; then UPDATE=yes fi ## INITIALIZE VARS RESULT_OK=0 RESULT_FAILED=0 FAILED_STR="" function print_intense() { echo -e -n "\033[1m${1}\033[0m" } function test_ok() { print_intense "OK" RESULT_OK=$((RESULT_OK + 1)) } function test_failed() { print_intense "FAILED" RESULT_FAILED=$((RESULT_FAILED + 1)) FAILED_STR="${FAILED_STR}\n${2} | diff --strip-trailing-cr --brief - ${1}" } function test_jp2a() { CMD="${JP} ${2}" printf "test (%2s) %-45s " "$((RESULT_OK+RESULT_FAILED+1))" "(${1})" if [ ! -e "${3}" ] ; then print_intense "(missing ${3}) " test_failed ${3} "${CMD}" else if test "${UPDATE}" == "no" ; then eval ${CMD} | diff --strip-trailing-cr --brief - ${3} 1>/dev/null && test_ok || test_failed ${3} "${CMD}" else eval ${CMD} > ${3} test_ok fi fi echo "" } function test_results() { echo "" echo "TEST RESULTS FOR JP2A" echo "" printf "Tests OK : %2d of %2d (%4s)\n" "$((RESULT_OK))" "$((RESULT_OK+RESULT_FAILED))" "$((100*RESULT_OK/(RESULT_OK+RESULT_FAILED)))%" printf "Tests FAILED: %2d of %2d (%4s)\n" "$((RESULT_FAILED))" "$((RESULT_OK+RESULT_FAILED))" "$((100*RESULT_FAILED/(RESULT_OK+RESULT_FAILED)))%" echo "" if test "x${FAILED_STR}" != "x" ; then echo "Summary of failed tests:" echo -e "${FAILED_STR}" fi } echo "-------------------------------------------------------------" echo " TESTING JP2A BUILD" echo " " echo " Note that the output may vary a bit on different platforms," echo " so some tests may fail. This does not mean that jp2a is" echo " completely broken." echo "-------------------------------------------------------------" echo "" export COLORTERM=truecolor test_jp2a "width" "--width=78 jp2a.jpg" normal.txt test_jp2a "border, width" "-b --width=78 jp2a.jpg" normal-b.txt test_jp2a "size" "--size=160x49 jp2a.jpg" 160x49.txt test_jp2a "height" "--height=10 jp2a.jpg" 10h.txt test_jp2a "size" "--size=40x40 jp2a.jpg" 40x40.txt test_jp2a "size" "--size=1x1 --invert jp2a.jpg" 1x1-inv.txt test_jp2a "invert, border" "-i -b --width=110 --height=30 jp2a.jpg" 110x30-i-b.txt test_jp2a "width, flip, invert" "--width=78 --flipx --flipy --invert jp2a.jpg" flip-xy-invert.txt test_jp2a "width, border" "--width=78 -b jp2a.jpg jp2a.jpg" 2xnormal-b.txt test_jp2a "width, verbose" "--verbose --width=78 jp2a.jpg 2>&1 | tr -d '\r'" normal-verbose.txt TEMPFILE=`mktemp /tmp/jp2a-test-XXXXXX` test_jp2a "width, outfile" "--width=78 jp2a.jpg --output=${TEMPFILE} && cat ${TEMPFILE}" normal.txt rm -f ${TEMPFILE} test_jp2a "width, clear" "--width=78 jp2a.jpg --clear" normal-clear.txt test_jp2a "height, grayscale" "logo-40x25-gray.jpg --height=30" logo-30.txt test_jp2a "size, invert" "grind.jpg -i --size=80x30" grind.txt test_jp2a "size, invert, red channel" "grind.jpg -i --size=80x30 --red=1.0 --green=0.0 --blue=0.0" grind-red.txt test_jp2a "size, invert, blue channel" "grind.jpg -i --size=80x30 --red=0.0 --green=1.0 --blue=0.0" grind-green.txt test_jp2a "size, invert, green channel" "grind.jpg -i --size=80x30 --red=0.0 --green=0.0 --blue=1.0" grind-blue.txt test_jp2a "width, grayscale" "--width=78 dalsnuten-640x480-gray-low.jpg" dalsnuten-normal.txt test_jp2a "invert, width, grayscale" "--invert --width=78 dalsnuten-640x480-gray-low.jpg" dalsnuten-invert.txt test_jp2a "invert, size, grayscale" "--invert --size=80x49 dalsnuten-640x480-gray-low.jpg" dalsnuten-80x49-inv.txt test_jp2a "size, invert, border" "dalsnuten-640x480-gray-low.jpg --size=80x25 --invert --border --size=150x45" dalsnuten-640x480-gray-low.txt test_jp2a "size, html" "--size=80x50 --htmlls --html-fontsize=7 jp2a.jpg" logo.html test_jp2a "size, xhtml" "--size=80x50 --xhtml --html-fontsize=7 jp2a.jpg" logo-x.html test_jp2a "size, color, html, flipx" "--size=80x50 --htmlls --color --html-fontsize=8 --flipx grind.jpg" grind-flipx.html test_jp2a "size, color, html, flipy" "--size=80x50 --htmlls --color --html-fontsize=8 --flipy grind.jpg" grind-flipy.html test_jp2a "size, color, html, flipxy" "--size=80x50 --htmlls --color --html-fontsize=8 --flipx --flipy grind.jpg" grind-flipxy.html test_jp2a "size, color, xhtml, flipx" "--size=80x50 --xhtml --color --html-fontsize=8 --flipx grind.jpg" grind-flipx-x.html test_jp2a "size, color, xhtml, flipy" "--size=80x50 --xhtml --color --html-fontsize=8 --flipy grind.jpg" grind-flipy-x.html test_jp2a "size, color, xhtml, flipxy" "--size=80x50 --xhtml --color --html-fontsize=8 --flipx --flipy grind.jpg" grind-flipxy-x.html test_jp2a "width, html, gray, dark" "dalsnuten-640x480-gray-low.jpg --width=128 --htmlls --html-fontsize=8" dalsnuten-256.html test_jp2a "width, html, gray, light" "dalsnuten-640x480-gray-low.jpg --width=128 --background=light --htmlls --html-fontsize=8" dalsnuten-256-light.html test_jp2a "color, html, dark" "grind.jpg --color --background=dark --width=60 --htmlls --html-fontsize=8" grind-color-dark.html test_jp2a "color, html, dark fill" "grind.jpg --color --fill --background=dark --width=60 --htmlls --html-fontsize=8" grind-color-dark-fill.html test_jp2a "color, html, light" "grind.jpg --color --fill --background=light --width=60 --htmlls --html-fontsize=8" grind-color.html test_jp2a "color, html, grayscale" "dalsnuten-640x480-gray-low.jpg --color --width=78 --htmlls --background=light --fill --html-fontsize=8" dalsnuten-color.html test_jp2a "color, html, --grayscale" "grind.jpg --color --width=78 --htmlls --grayscale" grind-2grayscale.html test_jp2a "color, html, --grayscale, fill" "grind.jpg --color --width=78 --htmlls --grayscale --fill" grind-2grayscale-fill.html test_jp2a "width, xhtml, gray, dark" "dalsnuten-640x480-gray-low.jpg --width=128 --xhtml --html-fontsize=8" dalsnuten-256-x.html test_jp2a "width, xhtml, gray, light" "dalsnuten-640x480-gray-low.jpg --width=128 --background=light --xhtml --html-fontsize=8" dalsnuten-256-light-x.html test_jp2a "color, xhtml, dark" "grind.jpg --color --background=dark --width=60 --xhtml --html-fontsize=8" grind-color-dark-x.html test_jp2a "color, xhtml, dark fill" "grind.jpg --color --fill --background=dark --width=60 --xhtml --html-fontsize=8" grind-color-dark-fill-x.html test_jp2a "color, xhtml, light" "grind.jpg --color --fill --background=light --width=60 --xhtml --html-fontsize=8" grind-color-x.html test_jp2a "color, xhtml, grayscale" "dalsnuten-640x480-gray-low.jpg --color --width=78 --xhtml --background=light --fill --html-fontsize=8" dalsnuten-color-x.html test_jp2a "color, xhtml, --grayscale" "grind.jpg --color --width=78 --xhtml --grayscale" grind-2grayscale-x.html test_jp2a "color, xhtml, --grayscale, fill" "grind.jpg --color --width=78 --xhtml --grayscale --fill" grind-2grayscale-fill-x.html test_jp2a "color, ANSI, fill" "grind.jpg --color-depth=4 --fill --width=78" grind-ANSI-fill.txt test_jp2a "color, ANSI, fill, --grayscale" "grind.jpg --color-depth=4 --fill --grayscale --width=78" grind-2grayscale-ANSI-fill.txt test_jp2a "color, 256 color palette, fill" "grind.jpg --color-depth=8 --fill --width=78" grind-256-fill.txt test_jp2a "color, 256 color palette, fill, --grayscale" "grind.jpg --color-depth=8 --fill --grayscale --width=78" grind-2grayscale-256-fill.txt test_jp2a "color, truecolor, fill" "grind.jpg --color-depth=24 --fill --width=78" grind-truecolor-fill.txt test_jp2a "color, truecolor, fill, --grayscale" "grind.jpg --color-depth=24 --fill --grayscale --width=78" grind-2grayscale-truecolor-fill.txt test_jp2a "color, html, no-bold" "grind.jpg --colors --htmlls --html-no-bold --width=78" grind-nobold.html test_jp2a "color, xhtml, no-bold" "grind.jpg --colors --xhtml --html-no-bold --width=78" grind-nobold-x.html test_jp2a "html-title, xhtml" "--width=10 --xhtml --html-title='just testing' jp2a.jpg" html-title.txt test_jp2a "html-title, html" "--size=80x50 --htmlls --html-title=\"C&amp;\\\"&'